Commit a38f89b4 by Cat
parents 4044d1e0 8cbd4b10
import request from '@/utils/request'
import request from "@/utils/request";
// 查询老师请假信息列表
export function listTeacherLeave(query) {
return request({
url: '/school/teacherLeave/list',
method: 'get',
params: query
})
url: "/school/teacherLeave/list",
method: "get",
params: query,
});
}
// 查询老师请假信息详细
export function getTeacherLeave(id) {
return request({
url: '/school/teacherLeave/queryOne/' + id,
method: 'get'
})
url: "/school/teacherLeave/queryOne/" + id,
method: "get",
});
}
// 新增老师请假信息
export function addTeacherLeave(data) {
return request({
url: '/school/teacherLeave/add',
method: 'post',
data: data
})
url: "/school/teacherLeave/add",
method: "post",
data: data,
});
}
// 修改老师请假信息
export function updateTeacherLeave(data) {
return request({
url: '/school/teacherLeave/edit',
method: 'put',
data: data
})
url: "/school/teacherLeave/edit",
method: "put",
data: data,
});
}
// 删除老师请假信息
export function delTeacherLeave(ids) {
return request({
url: '/school/teacherLeave/delete/' + ids,
method: 'delete'
})
url: "/school/teacherLeave/delete/" + ids,
method: "delete",
});
}
//提交申请
export function submitApply(id) {
return request({
url: '/school/teacherLeave/submitApply/' + id,
method: 'post',
})
url: "/school/teacherLeave/submitApply/" + id,
method: "post",
});
}
/**
* 待办事项列表
*/
export function taskList(query) {
return request({
url: '/school/teacherLeave/taskList',
method: 'get',
params: query
})
url: "/school/teacherLeave/taskList",
method: "get",
params: query,
});
}
/**
......@@ -68,58 +67,58 @@ export function taskList(query) {
*/
export function taskDoneList(query) {
return request({
url: '/school/teacherLeave/taskDoneList',
method: 'get',
params: query
})
url: "/school/teacherLeave/taskDoneList",
method: "get",
params: query,
});
}
//审批历史列表
export function listHistory(data) {
return request({
url: '/activiti/process/listHistory',
method: 'get',
params: data
})
url: "/activiti/process/listHistory",
method: "get",
params: data,
});
}
/** 销假列表(同历史任务接口,目前分两个接口来做) */
export function revokeList(data) {
return request({
url: '/activiti/process/listHistory',
method: 'get',
params: data
})
url: "/activiti/process/listHistory",
method: "get",
params: data,
});
}
// 进度查看
export function viewSchedule(data) {
return request({
url: '/activiti/process/read-resource',
method: 'get',
params: data
})
url: "/activiti/process/read-resource",
method: "get",
params: data,
});
}
/** 审批任务 */
export function complete({taskId, instanceId, comment, pass}) {
export function complete({ taskId, instanceId, comment, pass }) {
return request({
url: `/school/teacherLeave/complete/${taskId}/${instanceId}`,
method: 'post',
method: "post",
data: {
comment,
pass
}
})
pass,
},
});
}
/** 销假 */
export function cancelLeave(taskId, postForm) {
return request({
url: '/school/teacherLeave/cancelLeave/' + taskId,
method: 'post',
data: postForm
})
url: "/school/teacherLeave/cancelLeave/" + taskId,
method: "post",
data: postForm,
});
}
/*新增修改dialog*/
......@@ -127,44 +126,49 @@ export function cancelLeave(taskId, postForm) {
//获取级部/处室下拉框
export function getGradeOfficeList(query) {
return request({
url: '/schoolGrade/getList',
method: 'get',
params: query
})
url: "/schoolGrade/getList",
method: "get",
params: query,
});
}
//获取级部/处室 主任 下拉框
export function getGradeOfficeDirectorList(form) {
return request({
url: '/school/teacherLeave/getDeptLeader/' + form.applyOrgid,
url: "/school/teacherLeave/getDeptLeader/" + form.applyOrgid,
params: form,
method: 'get',
})
method: "get",
});
}
//分管领导/主要领导下拉框
export function getLeaderList(form) {
return request({
url: '/school/teacherLeave/getSchoolLeader',
url: "/school/teacherLeave/getSchoolLeader",
params: form,
method: 'get',
})
method: "get",
});
}
//根据请假开始时间和结束时间,获取请假时长
export function getLeaveTime(data) {
return request({
url: '/school/teacherLeave/getTotalTime',
method: 'get',
url: "/school/teacherLeave/getTotalTime",
method: "get",
params: data,
})
});
}
export function getDepId() {
return request({
url: '/schoolGrade/getDeptOrGrade',
method: 'get',
})
url: "/schoolGrade/getDeptOrGrade",
method: "get",
});
}
//判断用户所选部门是属于级部还是科室
export function getDepids(deptId) {
return request({
url: "/schoolGrade/judgeDeptOrGrade/" + deptId,
method: "get",
});
}
......@@ -284,7 +284,7 @@ import {
getLeaderList
} from "@/api/smartSchool/personWork/leaveApply";
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 "@riophae/vue-treeselect/dist/vue-treeselect.css";
import SelectUser from "./components/SelectUser";
......@@ -323,7 +323,7 @@ export default {
created() {
this.getList();
this.schoolLeader();
this.employeeType = this.$store.state.user.employeeType;
// this.employeeType = this.$store.state.user.employeeType;
this.form.teacherId = this.$store.state.user.userId;
},
......@@ -529,8 +529,14 @@ export default {
},
deptIdAndName(node) {
this.form.applyOrgname = node.label;
this.form.handUserName1 = undefined;
console.log(node);
getDepids(node.id).then(response => {
this.employeeType = response.employeeType;
});
// this.form.applyOrgname = node.label;
// this.form.handUserName1 = undefined;
// this.gradeDirectorList()
},
/** 导出按钮操作 */
......@@ -746,7 +752,6 @@ export default {
if (res.code == 200) {
this.schoolLeaderList = res.rows
}
}))
},
......@@ -841,6 +846,8 @@ export default {
getDepId().then(res => {
this.$set(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)
const node = arr.find(item => {
if (item.id == this.form.applyOrgid) {
......
......@@ -2,12 +2,7 @@
<div class="app-container">
<el-form :model="queryForm" :inline="true" size="small" @submit.native.prevent>
<el-form-item label="序号" prop="sortId">
<el-input
clearable
placeholder="请输入序号"
v-model="queryForm.sortId"
@keyup.enter.native="handleQuery"
>
<el-input clearable placeholder="请输入序号" v-model="queryForm.sortId" @keyup.enter.native="handleQuery">
</el-input>
</el-form-item>
......@@ -20,63 +15,31 @@
<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="handleAdd"
v-hasPermi="['system:schoolTimeDetail:add']"
>新增
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:schoolTimeDetail:add']">新增
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:schoolTimeDetail:edit']"
>修改
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['system:schoolTimeDetail:edit']">修改
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:schoolTimeDetail:remove']"
>删除
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['system:schoolTimeDetail:remove']">删除
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport">导出
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="info"
plain
icon="el-icon-close"
size="mini"
@click="handleClose"
v-hasPermi="['system:schoolTimeDetail:close']"
>关闭
<el-button type="info" plain icon="el-icon-close" size="mini" @click="handleClose"
v-hasPermi="['system:schoolTimeDetail:close']">关闭
</el-button>
</el-col>
......@@ -84,67 +47,34 @@
</el-row>
</el-form>
<el-table
v-loading="loading"
:data="timeList"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column label="序号" sortable align="center" width="80px" prop="sortId"/>
<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 v-loading="loading" :data="timeList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" sortable align="center" width="80px" prop="sortId" />
<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 label="备注" align="center" prop="remark" show-overflow-tooltip>
</el-table-column>
<el-table-column label="操作" align="center"
class-name="small-padding fixed-width">
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:schoolTimeDetail:edit']"
>编辑
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:schoolTimeDetail:edit']">编辑
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:schoolTimeDetail:remove']"
>删除
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:schoolTimeDetail:remove']">删除
</el-button>
</template>
</el-table-column>
</el-table>
<el-dialog
:title="title"
:visible.sync="open"
width="600px"
append-to-body
@close="cancel"
>
<el-dialog :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-item label="节次" prop="sortName">
<el-select
v-model="postForm.sortName"
value-key="sortId"
placeholder="请选择节次"
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 v-model="postForm.sortName" value-key="sortId" placeholder="请选择节次" 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-form-item>
......@@ -153,29 +83,18 @@
</el-form-item> -->
<el-form-item label="开始时间" prop="startTime">
<el-time-picker
v-model="postForm.startTime"
value-format="HH:mm"
format="HH:mm"
placeholder="选择开始时间"
style="width: 100%"
>
<el-time-picker v-model="postForm.startTime" value-format="HH:mm" format="HH:mm" placeholder="选择开始时间"
style="width: 100%">
</el-time-picker>
</el-form-item>
<el-form-item label="结束时间" prop="endTime">
<div class="block">
<el-time-picker
v-model="postForm.endTime"
value-format="HH:mm"
format="HH:mm"
placeholder="选择结束时间"
style="width: 100%"
>
<el-time-picker v-model="postForm.endTime" value-format="HH:mm" format="HH:mm" placeholder="选择结束时间"
style="width: 100%">
</el-time-picker>
</div>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input clearable v-model="postForm.remark"></el-input>
</el-form-item>
......@@ -186,11 +105,7 @@
</div>
</el-dialog>
<ExportTable
:open-export.sync="exportOptions.open"
:title="exportOptions.title"
@export="exportFile"
></ExportTable>
<ExportTable :open-export.sync="exportOptions.open" :title="exportOptions.title" @export="exportFile"></ExportTable>
</div>
</template>
......@@ -203,10 +118,10 @@ import {
queryOneDetail,
deleteTimeDetail
} from '@/api/smartSchool/schoolManage/schoolMomentsDetail'
import {ExportType} from "@/enums/common"
import {TimeName} from '@/enums/schedule/schoolMomentsDetail'
import {CustomCellStyle} from '@/enums/customStyle';
import {getDicts} from '@/api/system/dict/data'
import { ExportType } from "@/enums/common"
import { TimeName } from '@/enums/schedule/schoolMomentsDetail'
import { CustomCellStyle } from '@/enums/customStyle';
import { getDicts } from '@/api/system/dict/data'
import { closeCurrentTab } from "../../../../../../utils/utilLibrary/routerBatch/routerBatch";
export default {
......@@ -247,13 +162,13 @@ export default {
// 表单校验
rules: {
sortName: [
{required: true, message: "名称不能为空", trigger: "blur"}
{ required: true, message: "名称不能为空", trigger: "blur" }
],
startTime: [
{required: true, message: "开始时间不能为空", trigger: "blur"}
{ required: true, message: "开始时间不能为空", trigger: "blur" }
],
endTime: [
{required: true, message: "结束时间不能为空", trigger: "blur"}
{ required: true, message: "结束时间不能为空", trigger: "blur" }
],
},
// 弹出层标题
......@@ -291,8 +206,9 @@ export default {
exportType: '',
}
},
created() {
this.schoolTimeId = this.$route.query && this.$route.query.schoolTimeId;
this.getList();
this.getDict();
......@@ -313,7 +229,9 @@ export default {
// 获取列表数据
getList() {
this.loading = true;
this.schoolTimeId = this.$route.query && this.$route.query.schoolTimeId;
getDetailList(this.queryForm, this.schoolTimeId).then(response => {
console.log(this.queryForm, this.schoolTimeId);
this.loading = false
this.timeList = response.rows
this.sortList = this.timeList.map(function (value, index) {
......@@ -411,12 +329,12 @@ export default {
const ids = this.ids;
const schoolTimeId = this.schoolTimeId
const options = [
{type: ExportType.TOTAL, path: '/schoolTimeDetail/export/', params: {schoolTimeId}},
{type: ExportType.SELECT, path: '/schoolTimeDetail/export/' + ids, params: {schoolTimeId}},
{ type: ExportType.TOTAL, path: '/schoolTimeDetail/export/', params: { schoolTimeId } },
{ type: ExportType.SELECT, path: '/schoolTimeDetail/export/' + ids, params: { schoolTimeId } },
{
type: ExportType.QUERY,
path: '/schoolTimeDetail/export/',
params: {schoolTimeId, sortId: this.queryForm.sortId}
params: { schoolTimeId, sortId: this.queryForm.sortId }
},
]
callback(options, `学校时刻明细${new Date().getTime()}.xlsx`);
......@@ -502,7 +420,7 @@ export default {
this.resetForm('postForm')
},
setSortId(data) {
const {sortId, sortName} = data
const { sortId, sortName } = data
this.postForm.sortId = sortId
this.postForm.sortName = sortName
}
......@@ -512,6 +430,4 @@ export default {
}
</script>
<style>
</style>
<style></style>
......@@ -2,12 +2,8 @@
<section class="app-container">
<el-form :model="queryParams" :inline="true" size="small" @submit.native.prevent>
<el-form-item label="时刻名称" prop="timeName">
<el-input
clearable
v-model="queryParams.timeName"
@keyup.enter.native="handleQuery"
placeholder="选择时刻"
></el-input>
<el-input clearable v-model="queryParams.timeName" @keyup.enter.native="handleQuery"
placeholder="选择时刻"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
......@@ -16,38 +12,18 @@
</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="handleAdd"
v-hasPermi="['system:schoolTime:add']"
>新增
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:schoolTime:add']">新增
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:schoolTime:edit']"
>修改
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['system:schoolTime:edit']">修改
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:schoolTime:remove']"
>删除
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['system:schoolTime:remove']">删除
</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
......@@ -63,83 +39,48 @@
<!-- </el-col>-->
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>-->
</el-row>
<el-table
v-loading="loading"
:data="momentList"
@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 v-loading="loading" :data="momentList" @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">
<template slot-scope="scope">
<el-switch
v-model="scope.row.isUsed"
active-value="1"
inactive-value="0"
@change="handleUsedChange(scope.row)"
/>
<el-switch v-model="scope.row.isUsed" active-value="1" inactive-value="0"
@change="handleUsedChange(scope.row)" />
</template>
</el-table-column>
<el-table-column label="备注" align="center" v-if="columns[2].visible" prop="remark">
</el-table-column>
<el-table-column label="操作" align="center" v-if="columns[3].visible"
class-name="small-padding fixed-width">
<el-table-column label="操作" align="center" v-if="columns[3].visible" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:schoolTime:edit']"
>编辑
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:schoolTime:edit']">编辑
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-search"
@click="handleViewDetail(scope.row)"
>明细
<el-button size="mini" type="text" icon="el-icon-search" @click="handleViewDetail(scope.row)">明细
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:schoolTime:remove']"
>删除
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:schoolTime:remove']">删除
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
: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"
>
<pagination v-show="total > 0" :total="total" :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">
<div class="custom-dialog__header">
<span class="el-dialog__title">{{ title }}</span>
<div class="custom-dialog__right">
<div class="custom__dialog__size" @click="isFullScreen = !isFullScreen">
<svg-icon style="color: #909399; font-size: 13px"
:icon-class="isFullScreen?'exit-fullscreen':'fullscreen'"/>
:icon-class="isFullScreen ? 'exit-fullscreen' : 'fullscreen'" />
</div>
</div>
</div>
</template>
<el-form :model="form" ref="form" label-width="100px" :rules="rules">
<el-form-item label="时刻名称:" prop="timeName">
<el-input clearable v-model="form.timeName"
></el-input>
<el-input clearable v-model="form.timeName"></el-input>
</el-form-item>
<!-- <el-form-item label="是否使用:">
<el-select v-model="form.isUsed" style="width: 100%;">
......@@ -152,13 +93,8 @@
</el-select>
</el-form-item> -->
<el-form-item label="备注:" prop="remark">
<el-input
type="textarea"
maxlength="200"
:autosize="{ minRows: 2, maxRows: 5}"
show-word-limit
v-model="form.remark"
></el-input>
<el-input type="textarea" maxlength="200" :autosize="{ minRows: 2, maxRows: 5 }" show-word-limit
v-model="form.remark"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
......@@ -179,7 +115,7 @@ import {
deleteSelect,
changeUserStatus
} from '@/api/smartSchool/schoolManage/schoolMoments'
import {UseStatus} from "@/enums/schedule/schoolMoments";
import { UseStatus } from "@/enums/schedule/schoolMoments";
export default {
name: "SchoolMoments",
......@@ -211,15 +147,15 @@ export default {
// 校验
rules: {
timeName: [
{required: true, message: '请输入时刻名称', trigger: 'blur'}
{ required: true, message: '请输入时刻名称', trigger: 'blur' }
],
},
// 列信息
columns: [
{key: 0, label: `时刻名称`, visible: true},
{key: 1, label: `是否使用`, visible: true},
{key: 2, label: `备注`, visible: true},
{key: 3, label: `操作`, visible: true}
{ key: 0, label: `时刻名称`, visible: true },
{ key: 1, label: `是否使用`, visible: true },
{ key: 2, label: `备注`, visible: true },
{ key: 3, label: `操作`, visible: true }
],
// 选中数据
ids: [],
......@@ -300,16 +236,15 @@ export default {
/** 【学校时刻明细】按钮 */
handleViewDetail(row) {
// 这里进行一次路由跳转
this.$router.push({
// path: '/schoolManage/schoolMomentsDetail/' + row.id,
path: '/schoolManage/schoolMomentsDetail',
query: {
schoolTimeId: row.id
}
})
});
},
/** 【删除】按钮 */
handleDelete(row) {
this.throttle(() => {
......@@ -415,5 +350,4 @@ export default {
<style lang="scss" scoped>
@import "~@/assets/styles/moduleStyle/custom-dialog.scss";
</style>
......@@ -9,9 +9,7 @@
<el-button type="primary" plain size="mini" @click="printTable">打印
</el-button>
</div>
</div>
<el-card style="height: 100%;width: 900px;">
<br/> <br/>
<div style="width: 100%; margin: auto;" id="postFormContainer">
......
......@@ -3,37 +3,17 @@
<el-row>
<el-col :span="4">
<el-card style="height: 950px">
<el-form
:model="queryParams"
style="border-bottom: 1px solid #dfe6ec; padding: 10px 0 0 5px"
>
<el-form :model="queryParams" style="border-bottom: 1px solid #dfe6ec; padding: 10px 0 0 5px">
<el-form-item label="班级信息" prop="schoolYear">
<el-select
v-model="queryParams.schoolYear"
@change="getTreeData"
style="width: 100%"
size="mini"
>
<el-option
v-for="item in yearList"
:key="item.value"
:value="item.value"
:label="item.label"
>
<el-select v-model="queryParams.schoolYear" @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-select>
</el-form-item>
<el-form-item></el-form-item>
</el-form>
<el-tree
ref="tree"
node-key="id"
:data="treeData"
:expand-on-click-node="false"
highlight-current
default-expand-all
@node-click="handleNodeClick"
></el-tree>
<el-tree ref="tree" node-key="id" :data="treeData" :expand-on-click-node="false" highlight-current
default-expand-all @node-click="handleNodeClick"></el-tree>
<!-- </div>-->
</el-card>
</el-col>
......@@ -41,109 +21,61 @@
<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 :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-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 type="success" plain icon="el-icon-upload" size="mini" @click="handleImport">导入
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出
<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 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 :span="5" :offset="3">
<div
style="
<div style="
width: 100%;
display: flex;
justify-content: center;
flex-direction: column;
align-items: center;
"
>
<el-button type="primary" plain @click="printTable"
>打 印
">
<el-button type="primary" plain @click="printTable">打 印
</el-button>
<br/>
<el-button
type="primary"
class="affirmCourse"
size="medium"
@click="getTableValue"
>确认课表信息
<br />
<el-button type="primary" class="affirmCourse" size="medium" @click="getTableValue">确认课表信息
</el-button>
</div>
</el-col>
</el-row>
<br/>
<br />
<el-row>
<el-col :span="21">
<div class="course">
<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) => {
return row.id;
}
"
height="710px"
>
<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) => {
return row.id;
}
" height="710px">
<el-table-column label="节次" min-width="90" align="center">
<template slot-scope="scope">
{{ scope.row.sortName }}
......@@ -152,83 +84,44 @@
<el-table-column label="时间" align="center" min-width="90">
<template slot-scope="scope">
<span style="font-size: 8px">
{{ scope.row.startTime }}--{{ scope.row.endTime }}</span
>
{{ scope.row.startTime }}--{{ scope.row.endTime }}</span>
</template>
</el-table-column>
<el-table-column
prop="monday.courseName"
label="周一"
min-width="100"
align="center"
>
<el-table-column prop="monday.courseName" label="周一" min-width="100" align="center">
<template slot-scope="scope">
<div
draggable
@dragstart="
(res) => {
dragstart(res, scope.$index, 'monday');
}
"
@dragover="dragover"
@drop="
(res) => {
drop(res, scope.$index, 'monday');
}
"
@dragend="dragend"
class="dragBox"
>
<div draggable @dragstart="(res) => {
dragstart(res, scope.$index, 'monday');
}
" @dragover="dragover" @drop="(res) => {
drop(res, scope.$index, 'monday');
}
" @dragend="dragend" class="dragBox">
{{ scope.row.monday && scope.row.monday.courseName }}
</div>
</template>
</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">
<div
draggable
@dragstart="
(res) => {
dragstart(res, scope.$index, 'tuesday');
}
"
@dragover="dragover"
@drop="
(res) => {
drop(res, scope.$index, 'tuesday');
}
"
@dragend="dragend"
class="dragBox"
>
<div draggable @dragstart="(res) => {
dragstart(res, scope.$index, 'tuesday');
}
" @dragover="dragover" @drop="(res) => {
drop(res, scope.$index, 'tuesday');
}
" @dragend="dragend" class="dragBox">
{{ scope.row.tuesday && scope.row.tuesday.courseName }}
</div>
</template>
</el-table-column>
<el-table-column label="周三" min-width="100" align="center">
<template slot-scope="scope">
<div
draggable
@dragstart="
(res) => {
dragstart(res, scope.$index, 'wednesday');
}
"
@dragover="dragover"
@drop="
(res) => {
drop(res, scope.$index, 'wednesday');
}
"
@dragend="dragend"
class="dragBox"
>
<div draggable @dragstart="(res) => {
dragstart(res, scope.$index, 'wednesday');
}
" @dragover="dragover" @drop="(res) => {
drop(res, scope.$index, 'wednesday');
}
" @dragend="dragend" class="dragBox">
{{
scope.row.wednesday && scope.row.wednesday.courseName
}}
......@@ -237,22 +130,13 @@
</el-table-column>
<el-table-column label="周四" min-width="100" align="center">
<template slot-scope="scope">
<div
draggable
@dragstart="
(res) => {
<div draggable @dragstart="(res) => {
dragstart(res, scope.$index, 'thursday');
}
"
@dragover="dragover"
@drop="
(res) => {
drop(res, scope.$index, 'thursday');
}
"
@dragend="dragend"
class="dragBox"
>
" @dragover="dragover" @drop="(res) => {
drop(res, scope.$index, 'thursday');
}
" @dragend="dragend" class="dragBox">
{{
scope.row.thursday && scope.row.thursday.courseName
}}
......@@ -261,44 +145,26 @@
</el-table-column>
<el-table-column label="周五" min-width="100" align="center">
<template slot-scope="scope">
<div
draggable
@dragstart="
(res) => {
<div draggable @dragstart="(res) => {
dragstart(res, scope.$index, 'friday');
}
"
@dragover="dragover"
@drop="
(res) => {
drop(res, scope.$index, 'friday');
}
"
@dragend="dragend"
class="dragBox"
>
" @dragover="dragover" @drop="(res) => {
drop(res, scope.$index, 'friday');
}
" @dragend="dragend" class="dragBox">
{{ scope.row.friday && scope.row.friday.courseName }}
</div>
</template>
</el-table-column>
<el-table-column label="周六" min-width="100" align="center">
<template slot-scope="scope">
<div
draggable
@dragstart="
(res) => {
dragstart(res, scope.$index, 'saturday');
}
"
@dragover="dragover"
@drop="
(res) => {
drop(res, scope.$index, 'saturday');
}
"
@dragend="dragend"
class="dragBox"
>
<div draggable @dragstart="(res) => {
dragstart(res, scope.$index, 'saturday');
}
" @dragover="dragover" @drop="(res) => {
drop(res, scope.$index, 'saturday');
}
" @dragend="dragend" class="dragBox">
{{
scope.row.saturday && scope.row.saturday.courseName
}}
......@@ -307,22 +173,13 @@
</el-table-column>
<el-table-column label="周日" min-width="100" align="center">
<template slot-scope="scope">
<div
draggable
@dragstart="
(res) => {
<div draggable @dragstart="(res) => {
dragstart(res, scope.$index, 'sunday');
}
"
@dragover="dragover"
@drop="
(res) => {
drop(res, scope.$index, 'sunday');
}
"
@dragend="dragend"
class="dragBox"
>
" @dragover="dragover" @drop="(res) => {
drop(res, scope.$index, 'sunday');
}
" @dragend="dragend" class="dragBox">
{{ scope.row.sunday && scope.row.sunday.courseName }}
</div>
</template>
......@@ -332,17 +189,10 @@
</el-col>
<el-col :span="2" :offset="1">
<div class="courseBox">
<div
v-for="(item, index) in courseTypeList"
:key="item.courseName"
draggable
@dragstart="
(res) => {
<div v-for="(item, index) in courseTypeList" :key="item.courseName" draggable @dragstart="(res) => {
dragCloneStart(res, index);
}
"
class="courseClone"
>
" class="courseClone">
{{ item.courseName }}
</div>
</div>
......@@ -353,24 +203,10 @@
</el-row>
<!-- 用户导入对话框 -->
<el-dialog
:title="upload.title"
:visible.sync="upload.open"
width="400px"
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
>
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" 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>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
......@@ -406,14 +242,14 @@ import {
getClassTree,
saveClassTable,
} from "@/api/smartSchool/teachAffairAdministration/lessonManage";
import {getYearList} from "@/utils/utilLibrary/getYearList";
import { getYearList } from "@/utils/utilLibrary/getYearList";
import {
getFirstLeafNode,
handleTreeData,
} from "@/utils/utilLibrary/getTreeClass";
import {getToken} from "@/utils/auth";
import {commonUpload} from "@/api/common";
import { getToken } from "@/utils/auth";
import { commonUpload } from "@/api/common";
import * as dd from 'dingtalk-jsapi';
export default {
name: "index",
components: {
......@@ -495,7 +331,7 @@ export default {
// 是否更新已经存在的数据
// updateSupport: 0,
// 设置上传的请求头部
headers: {Authorization: "Bearer " + getToken()},
headers: { Authorization: "Bearer " + getToken() },
},
};
......@@ -718,16 +554,18 @@ export default {
// 打印
printTable() {
// 重置表单
printJS({
printable: "postFormContainer",
maxWidth: 10000,
header: "",
ignoreElements: ["no-print", "back-no-print", "front-no-print"],
targetStyles: ["*"],
gridHeaderStyle: "border: 1px solid black",
type: "html",
gridStyle: `text-align: center; border: 1px solid black`,
const baseUrl = window.location.protocol + '//' + window.location.host + '/printLesson';
const urlWithParams = `${baseUrl}?courseList=${encodeURIComponent(JSON.stringify(this.courseList))}`;
dd.biz.util.openLink({
url: urlWithParams,
onSuccess: () => {
console.log('跳转成功,准备打印');
// 打印条码
// this.printCode();
},
onFail: (error) => {
console.error('跳转失败', error);
}
});
},
/** 导入按钮操作 */
......@@ -750,7 +588,7 @@ export default {
response.msg +
"</div>",
"导入结果",
{dangerouslyUseHTMLString: true}
{ dangerouslyUseHTMLString: true }
);
},
// 上传成功回调
......@@ -847,7 +685,6 @@ export default {
/* line-height: 50px;*/
/* text-align: center;*/
/*}*/
</style>
......
<template>
<div class="app-container">
<el-row :gutter="10" class="mb8">
<el-button type="primary" plain @click="printTable">打 印
</el-button>
</el-row>
<el-col :span="21">
<div class="course">
<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) => {
return row.id;
}
" height="710px">
<el-table-column label="节次" min-width="90" align="center">
<template slot-scope="scope">
{{ scope.row.sortName }}
</template>
</el-table-column>
<el-table-column label="时间" align="center" min-width="90">
<template slot-scope="scope">
<span style="font-size: 8px">
{{ scope.row.startTime }}--{{ scope.row.endTime }}</span>
</template>
</el-table-column>
<el-table-column prop="monday.courseName" label="周一" min-width="100" align="center">
<template slot-scope="scope">
<div draggable @dragstart="(res) => {
dragstart(res, scope.$index, 'monday');
}
" @dragover="dragover" @drop="(res) => {
<el-row>
<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-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>
<br />
<el-row>
<el-col :span="21">
<div class="course">
<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) => {
return row.id;
}
" height="710px">
<el-table-column label="节次" min-width="90" align="center">
<template slot-scope="scope">
{{ scope.row.sortName }}
</template>
</el-table-column>
<el-table-column label="时间" align="center" min-width="90">
<template slot-scope="scope">
<span style="font-size: 8px">
{{ scope.row.startTime }}--{{ scope.row.endTime }}</span>
</template>
</el-table-column>
<el-table-column prop="monday.courseName" label="周一" min-width="100" align="center">
<template slot-scope="scope">
<div draggable @dragstart="(res) => {
dragstart(res, scope.$index, 'monday');
}
" @dragover="dragover" @drop="(res) => {
drop(res, scope.$index, 'monday');
}
" @dragend="dragend" class="dragBox">
{{ scope.row.monday && scope.row.monday.courseName }}
</div>
</template>
</el-table-column>
<el-table-column prop="tuesday.courseName" droppable label="周二" min-width="100" align="center">
<template slot-scope="scope">
<div draggable @dragstart="(res) => {
dragstart(res, scope.$index, 'tuesday');
}
" @dragover="dragover" @drop="(res) => {
{{ scope.row.monday && scope.row.monday.courseName }}
</div>
</template>
</el-table-column>
<el-table-column prop="tuesday.courseName" droppable label="周二" min-width="100"
align="center">
<template slot-scope="scope">
<div draggable @dragstart="(res) => {
dragstart(res, scope.$index, 'tuesday');
}
" @dragover="dragover" @drop="(res) => {
drop(res, scope.$index, 'tuesday');
}
" @dragend="dragend" class="dragBox">
{{ scope.row.tuesday && scope.row.tuesday.courseName }}
</div>
</template>
</el-table-column>
<el-table-column label="周三" min-width="100" align="center">
<template slot-scope="scope">
<div draggable @dragstart="(res) => {
dragstart(res, scope.$index, 'wednesday');
}
" @dragover="dragover" @drop="(res) => {
{{ scope.row.tuesday && scope.row.tuesday.courseName }}
</div>
</template>
</el-table-column>
<el-table-column label="周三" min-width="100" align="center">
<template slot-scope="scope">
<div draggable @dragstart="(res) => {
dragstart(res, scope.$index, 'wednesday');
}
" @dragover="dragover" @drop="(res) => {
drop(res, scope.$index, 'wednesday');
}
" @dragend="dragend" class="dragBox">
{{
scope.row.wednesday && scope.row.wednesday.courseName
}}
</div>
</template>
</el-table-column>
<el-table-column label="周四" min-width="100" align="center">
<template slot-scope="scope">
<div draggable @dragstart="(res) => {
dragstart(res, scope.$index, 'thursday');
}
" @dragover="dragover" @drop="(res) => {
{{
scope.row.wednesday && scope.row.wednesday.courseName
}}
</div>
</template>
</el-table-column>
<el-table-column label="周四" min-width="100" align="center">
<template slot-scope="scope">
<div draggable @dragstart="(res) => {
dragstart(res, scope.$index, 'thursday');
}
" @dragover="dragover" @drop="(res) => {
drop(res, scope.$index, 'thursday');
}
" @dragend="dragend" class="dragBox">
{{
scope.row.thursday && scope.row.thursday.courseName
}}
</div>
</template>
</el-table-column>
<el-table-column label="周五" min-width="100" align="center">
<template slot-scope="scope">
<div draggable @dragstart="(res) => {
dragstart(res, scope.$index, 'friday');
}
" @dragover="dragover" @drop="(res) => {
{{
scope.row.thursday && scope.row.thursday.courseName
}}
</div>
</template>
</el-table-column>
<el-table-column label="周五" min-width="100" align="center">
<template slot-scope="scope">
<div draggable @dragstart="(res) => {
dragstart(res, scope.$index, 'friday');
}
" @dragover="dragover" @drop="(res) => {
drop(res, scope.$index, 'friday');
}
" @dragend="dragend" class="dragBox">
{{ scope.row.friday && scope.row.friday.courseName }}
</div>
</template>
</el-table-column>
<el-table-column label="周六" min-width="100" align="center">
<template slot-scope="scope">
<div draggable @dragstart="(res) => {
dragstart(res, scope.$index, 'saturday');
}
" @dragover="dragover" @drop="(res) => {
{{ scope.row.friday && scope.row.friday.courseName }}
</div>
</template>
</el-table-column>
<el-table-column label="周六" min-width="100" align="center">
<template slot-scope="scope">
<div draggable @dragstart="(res) => {
dragstart(res, scope.$index, 'saturday');
}
" @dragover="dragover" @drop="(res) => {
drop(res, scope.$index, 'saturday');
}
" @dragend="dragend" class="dragBox">
{{
scope.row.saturday && scope.row.saturday.courseName
}}
</div>
</template>
</el-table-column>
<el-table-column label="周日" min-width="100" align="center">
<template slot-scope="scope">
<div draggable @dragstart="(res) => {
dragstart(res, scope.$index, 'sunday');
}
" @dragover="dragover" @drop="(res) => {
{{
scope.row.saturday && scope.row.saturday.courseName
}}
</div>
</template>
</el-table-column>
<el-table-column label="周日" min-width="100" align="center">
<template slot-scope="scope">
<div draggable @dragstart="(res) => {
dragstart(res, scope.$index, 'sunday');
}
" @dragover="dragover" @drop="(res) => {
drop(res, scope.$index, 'sunday');
}
" @dragend="dragend" class="dragBox">
{{ scope.row.sunday && scope.row.sunday.courseName }}
{{ scope.row.sunday && scope.row.sunday.courseName }}
</div>
</template>
</el-table-column>
</el-table>
</div>
</el-col>
<el-col :span="2" :offset="1">
<div class="courseBox">
<div v-for="(item, index) in courseTypeList" :key="item.courseName" draggable @dragstart="(res) => {
dragCloneStart(res, index);
}
" class="courseClone">
{{ item.courseName }}
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
</el-col>
<el-col :span="2" :offset="1">
<div class="courseBox">
<div v-for="(item, index) in courseTypeList" :key="item.courseName" draggable @dragstart="(res) => {
dragCloneStart(res, index);
}
" class="courseClone">
{{ item.courseName }}
</div>
</div>
</el-col>
</el-col>
</el-row>
</el-card>
</el-col>
</el-row>
</div>
</template>
......@@ -139,21 +188,21 @@
<script>
import draggable from "vuedraggable";
import printJS from "print-js";
// import {
// getNewYear,
// getClassType,
// getCourseInfo,
// getClassTree,
// saveClassTable,
// } from "@/api/smartSchool/teachAffairAdministration/lessonManage";
import {
// getNewYear,
// getClassType,
getCourseInfo,
// getClassTree,
// saveClassTable,
} from "@/api/smartSchool/teachAffairAdministration/lessonManage";
// import { getYearList } from "@/utils/utilLibrary/getYearList";
// import {
// getFirstLeafNode,
// handleTreeData,
// } from "@/utils/utilLibrary/getTreeClass";
// import { getToken } from "@/utils/auth";
// import { commonUpload } from "@/api/common";
import { getToken } from "@/utils/auth";
import { commonUpload } from "@/api/common";
import * as dd from 'dingtalk-jsapi';
export default {
name: "index",
components: {
......@@ -168,18 +217,11 @@ export default {
"student_type",
"child_state",
],
created() {
// 获取 URL 参数
const urlParams = new URLSearchParams(window.location.search);
// 获取 courseList 参数的值
const courseListParam = urlParams.get('courseList');
// 将 courseList 参数的值反序列化为 JavaScript 对象
const courseList = JSON.parse(decodeURIComponent(courseListParam));
console.log(courseList, 'courseList');
this.courseList = JSON.parse(decodeURIComponent(courseListParam)); // 将获取到的 courseList 赋值给 this.courseList
},
computed: {
// 上传的地址
url: function () {
......@@ -247,18 +289,144 @@ export default {
},
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) {
......@@ -285,6 +453,20 @@ export default {
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) {
// 作用于:被拖拽的元素
......@@ -300,8 +482,27 @@ export default {
event.preventDefault();
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() {
// 重置表单
......@@ -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>
......
......@@ -5,15 +5,13 @@
<div class="head-container">
<el-input v-model="deptName" placeholder="请输入部门名称" clearable size="small" prefix-icon="el-icon-search"
style="margin-bottom: 20px" />
</div>
<div class="head-container">
<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" />
</div>
</el-col>
<el-col :span="20" :xs="24">
<el-form :model="queryParams" ref="queryForm" size="small" label-width="90px" :inline="true" v-show="showSearch">
<el-form-item label="姓名" clearable prop="teacherName">
......@@ -562,522 +560,525 @@ export default {
// If the selection exceeds the limit, remove the last item
this.form.deptIds.pop();
}
},
}
},
created() {
this.getList();
this.getDeptTree();
// this.getConfigKey('sys.user.initPassword').then(response => {
// this.initPassword = response.msg
// })
created() {
this.getList();
this.getDeptTree();
// this.getConfigKey('sys.user.initPassword').then(response => {
// this.initPassword = response.msg
// })
},
methods: {
handleSelectionChange(selectedItems) {
if (selectedItems.length > 8) {
// 用户选择的项数超过了最大限制,您可以在此处进行处理,例如取消选择最后一个项
this.form.deptIds.pop();
}
},
methods: {
handleSelectionChange(selectedItems) {
if (selectedItems.length > 8) {
// 用户选择的项数超过了最大限制,您可以在此处进行处理,例如取消选择最后一个项
this.form.deptIds.pop();
}
},
// 筛选节点
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
// 节点单击事件
handleNodeClick(data) {
this.queryParams.deptId = data.id;
this.handleQuery();
},
// 筛选节点
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
// 节点单击事件
handleNodeClick(data) {
this.queryParams.deptId = data.id;
this.handleQuery();
/** 查询学校老师列表 */
getList() {
this.loading = true;
listInform(this.queryParams).then((response) => {
this.informList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
teacherName: null,
// userName: null,
teacherTel: null,
// phonenumber: null,
teacherCode: null,
idCard: null,
homeAddress: null,
nation: null,
picUrl: null,
birthday: null,
education: null,
sex: null,
postIds: null,
roleIds: null,
deptId: null,
password: null,
};
this.imageUrl = "";
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.throttle(() => {
this.queryParams.pageNum = 1;
this.getList();
});
},
getResumelist() {
this.resumeListLoading = true;
listResume({ teacherId: this.teacherId }).then((res) => {
if (res.code == 200) {
this.resumeList = res.rows;
this.resumeListLoading = false;
} else {
this.$message.error("数据请求失败");
this.resumeListLoading = false;
}
},
/** 查询学校老师列表 */
getList() {
this.loading = true;
listInform(this.queryParams).then((response) => {
this.informList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
teacherName: null,
// userName: null,
teacherTel: null,
// phonenumber: null,
teacherCode: null,
idCard: null,
homeAddress: null,
nation: null,
picUrl: null,
birthday: null,
education: null,
sex: null,
postIds: null,
roleIds: null,
deptId: null,
password: null,
};
this.imageUrl = "";
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.throttle(() => {
this.queryParams.pageNum = 1;
this.getList();
});
},
getResumelist() {
this.resumeListLoading = true;
listResume({ teacherId: this.teacherId }).then((res) => {
if (res.code == 200) {
this.resumeList = res.rows;
this.resumeListLoading = false;
} else {
this.$message.error("数据请求失败");
this.resumeListLoading = false;
}
});
},
getHonorlist() {
this.honorListLoading = true;
listTeacherAward({ teacherId: this.teacherId }).then((res) => {
if (res.code == 200) {
this.honorList = res.rows;
this.honorListLoading = false;
} else {
this.$message.error("数据请求失败");
this.honorListLoading = false;
}
});
},
handleResume(row) {
this.$router.push({
path: "/teacherManage/resume",
query: {
teacherId: row.id,
},
});
},
handleHonor(row) {
// 进入下一个页面
this.$router.push({
path: "/teacherManage/awardDetails",
query: {
teacherId: row.id,
},
});
},
handleClassView(row) {
this.$router.push({
path: "/teachManage/classView",
query: {
teacherId: row.id,
},
});
},
/** 重置密码按钮操作 */
handleResetPwd(row) {
this.$prompt('请输入"' + row.teacherName + '"的新密码', "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
closeOnClickModal: false,
inputPattern: /^.{5,20}$/,
inputErrorMessage: "用户密码长度必须介于 5 和 20 之间"
}).then(({ value }) => {
resetUserPwd(row.userId, value).then(response => {
this.$modal.msgSuccess("修改成功,新密码是:" + value);
});
},
getHonorlist() {
this.honorListLoading = true;
listTeacherAward({ teacherId: this.teacherId }).then((res) => {
if (res.code == 200) {
this.honorList = res.rows;
this.honorListLoading = false;
} else {
this.$message.error("数据请求失败");
this.honorListLoading = false;
}
}).catch(() => {
});
},
/** 分配角色操作 */
handleAuthRole: function (row) {
// const userId = row.userId;
this.$router.push({
path: "/teacherInforManage/authRole",
query: {
userId: row.userId
}
});
},
//确认分配角色
submitAssignRoles() {
console.log(this.authRole);
let query = {};
query.id = this.userId;
query.authRole = this.authRole;
submitRoles(query).then((res) => {
this.assignRolesopen = false;
this.$message({
type: "success",
message: `分配角色成功`,
});
},
handleResume(row) {
this.$router.push({
path: "/teacherManage/resume",
query: {
teacherId: row.id,
},
});
},
// 关闭对话框
close() {
this.assignRolesopen = false;
this.resetPasswordopen = false;
},
//确认重置密码
submitReset() {
let query = {};
query.userId = this.userId;
query.password = this.password;
sendResetPassword(query).then((res) => {
this.resetPasswordopen = false;
this.$message({
type: "info",
message: `重置密码成功`,
});
},
handleHonor(row) {
// 进入下一个页面
this.$router.push({
path: "/teacherManage/awardDetails",
query: {
teacherId: row.id,
},
});
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.isDisabled = false;
this.reset();
this.signUrl = "",
this.imageUrl = "",
this.open = true;
this.title = "添加教职工信息";
this.getPostAndRoleList();
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.getPostAndRoleList();
const id = row.id || this.ids;
this.$modal.loading("正在加载数据,请稍等...");
getInform(id)
.then((response) => {
this.$modal.closeLoading();
this.form = response.data;
this.imageUrl = this.peV + this.form.picUrl;
this.signUrl = this.peV + this.form.sign;
this.open = true;
this.isDisabled = false;
this.title = "修改教职工信息";
})
.catch((error) => {
this.$modal.closeLoading();
});
},
handleClassView(row) {
this.$router.push({
path: "/teachManage/classView",
query: {
teacherId: row.id,
},
},
/** 查看详情 */
handleDetail(row) {
this.reset();
this.getPostAndRoleList();
const id = row.id || this.ids;
this.$modal.loading("正在加载数据,请稍等...");
getInform(id)
.then((response) => {
this.$modal.closeLoading();
this.form = response.data;
this.imageUrl = this.form.picUrl;
this.open = true;
this.isDisabled = true;
this.title = "查看教职工信息";
})
.catch((error) => {
this.$modal.closeLoading();
});
},
},
// 上传成功回调
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;
},
/** 重置密码按钮操作 */
handleResetPwd(row) {
this.$prompt('请输入"' + row.teacherName + '"的新密码', "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
closeOnClickModal: false,
inputPattern: /^.{5,20}$/,
inputErrorMessage: "用户密码长度必须介于 5 和 20 之间"
}).then(({ value }) => {
resetUserPwd(row.userId, value).then(response => {
this.$modal.msgSuccess("修改成功,新密码是:" + value);
});
}).catch(() => {
// 上传图片
uploadImage(file, type) {
const fileData = file.file;
const formData = new FormData();
formData.append("file", fileData);
if (type == 'photo') {
this.photoUploadLoading = true;
commonUpload(formData).then((response) => {
console.log(response, 1147)
this.photoUploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.imageUrl = process.env.VUE_APP_BASE_API + response.url;
this.form.avatar = response.url;
}).catch((error) => {
this.photoUploadLoading = false;
});
},
/** 分配角色操作 */
handleAuthRole: function (row) {
// const userId = row.userId;
this.$router.push({
path: "/teacherInforManage/authRole",
query: {
userId: row.userId
}
} else {
this.signUploadLoading = true;
signUpload(formData).then((response) => {
this.signUploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.signUrl = process.env.VUE_APP_BASE_API + response.url;
this.form.sign = response.url;
}).catch((error) => {
this.signUploadLoading = false;
});
},
}
//确认分配角色
submitAssignRoles() {
console.log(this.authRole);
let query = {};
query.id = this.userId;
query.authRole = this.authRole;
submitRoles(query).then((res) => {
this.assignRolesopen = false;
this.$message({
type: "success",
message: `分配角色成功`,
});
});
},
// 关闭对话框
close() {
this.assignRolesopen = false;
this.resetPasswordopen = false;
},
//确认重置密码
submitReset() {
let query = {};
query.userId = this.userId;
query.password = this.password;
sendResetPassword(query).then((res) => {
this.resetPasswordopen = false;
this.$message({
type: "info",
message: `重置密码成功`,
});
});
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.isDisabled = false;
this.reset();
this.signUrl = "",
this.imageUrl = "",
this.open = true;
this.title = "添加教职工信息";
this.getPostAndRoleList();
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.getPostAndRoleList();
const id = row.id || this.ids;
this.$modal.loading("正在加载数据,请稍等...");
getInform(id)
.then((response) => {
this.$modal.closeLoading();
this.form = response.data;
this.imageUrl = this.peV + this.form.picUrl;
this.signUrl = this.peV + this.form.sign;
this.open = true;
this.isDisabled = false;
this.title = "修改教职工信息";
})
.catch((error) => {
this.$modal.closeLoading();
});
},
/** 查看详情 */
handleDetail(row) {
this.reset();
this.getPostAndRoleList();
const id = row.id || this.ids;
this.$modal.loading("正在加载数据,请稍等...");
getInform(id)
.then((response) => {
this.$modal.closeLoading();
this.form = response.data;
this.imageUrl = this.form.picUrl;
this.open = true;
this.isDisabled = true;
this.title = "查看教职工信息";
})
.catch((error) => {
this.$modal.closeLoading();
});
},
// 上传成功回调
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, type) {
const fileData = file.file;
const formData = new FormData();
formData.append("file", fileData);
if (type == 'photo') {
this.photoUploadLoading = true;
commonUpload(formData).then((response) => {
console.log(response, 1147)
this.photoUploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.imageUrl = process.env.VUE_APP_BASE_API + response.url;
this.form.avatar = response.url;
}).catch((error) => {
this.photoUploadLoading = false;
});
/** 提交按钮 */
submitForm() {
if (!this.form.picUrl) {
if (this.form.sex === Gender.FEMALE) {
this.form.picUrl =
"https://eos-wuxi-1.cmecloud.cn/dy-pro/image/2022/08/09/b076ed42bfca4a8cae062dfffd5f3618.jpg";
} else {
this.signUploadLoading = true;
signUpload(formData).then((response) => {
this.signUploadLoading = false;
this.$modal.msgSuccess("上传成功");
this.signUrl = process.env.VUE_APP_BASE_API + response.url;
this.form.sign = response.url;
}).catch((error) => {
this.signUploadLoading = false;
});
this.form.picUrl =
"https://eos-wuxi-1.cmecloud.cn/dy-pro/image/2022/08/09/8a6c1334494d418d8a53cc7bf5abd668.jpg";
}
},
/** 提交按钮 */
submitForm() {
if (!this.form.picUrl) {
if (this.form.sex === Gender.FEMALE) {
this.form.picUrl =
"https://eos-wuxi-1.cmecloud.cn/dy-pro/image/2022/08/09/b076ed42bfca4a8cae062dfffd5f3618.jpg";
}
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateInform(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
this.form.picUrl =
"https://eos-wuxi-1.cmecloud.cn/dy-pro/image/2022/08/09/8a6c1334494d418d8a53cc7bf5abd668.jpg";
addInform(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateInform(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addInform(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm(
`是否确认删除选中的${Object.hasOwnProperty.call(ids, "length") ? ids.length : 1
}条数据?`
)
.then(() => {
this.$modal.loading("正在删除数据,请稍等...");
return delInform(ids);
})
.then(() => {
this.$modal.closeLoading();
this.$modal.msgSuccess("删除成功");
this.getList();
})
.catch(() => {
this.$modal.closeLoading();
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal
.confirm(
`是否确认删除选中的${Object.hasOwnProperty.call(ids, "length") ? ids.length : 1
}条数据?`
)
.then(() => {
this.$modal.loading("正在删除数据,请稍等...");
return delInform(ids);
})
.then(() => {
this.$modal.closeLoading();
this.$modal.msgSuccess("删除成功");
this.getList();
})
.catch(() => {
this.$modal.closeLoading();
});
},
/** 导出按钮操作 */
handleExport() {
// 导出选中,导出全部,根据查询条件导出
this.exportOptions.open = true;
// this.$confirm(`是否确认导出${ !!this.ids.length ? this.ids.length + '条' : '所有' }数据?`, '提示', {
// confirmButtonText: '确定',
// cancelButtonText: '取消',
// type: 'warning'
// }).then(() => {
// if (this.ids.length) {
// this.download('/school/teacher/export/' + this.ids, {
// ...this.queryParams
// }, `教师信息.xlsx`)
// } else {
// this.download('/school/teacher/export', {
// ...this.queryParams
// }, `教师信息.xlsx`)
// }
//
// }).catch(() => {
//
// });
},
/** 导入按钮 */
handleImport() {
this.upload.title = "用户导入";
this.upload.open = true;
},
dateFormat(row, column, cellValue, index) {
const daterc = row[column.property];
if (daterc) {
if (daterc.indexOf("T") === -1) return daterc;
const arr = daterc.split("T");
const d = arr[0];
const darr = d.split("-");
const t = arr[1];
const tarr = t.split(".000");
const marr = tarr[0].split(":");
const dd = darr[0] + "-" + darr[1] + "-" + darr[2];
return dd;
}
},
/** 更多下拉菜单 */
// handleCommand(command, row) {
// this[command].apply(undefined, [row]);
// },
// 更多操作触发
handleCommand(command, row) {
switch (command) {
case "handleHonor":
this.handleHonor(row)
break;
case "handleResume":
this.handleResume(row)
break;
case "handleResetPwd":
this.handleResetPwd(row);
break;
case "handleAuthRole":
this.handleAuthRole(row);
break;
default:
break;
}
},
},
/** 导出按钮操作 */
handleExport() {
// 导出选中,导出全部,根据查询条件导出
this.exportOptions.open = true;
// this.$confirm(`是否确认导出${ !!this.ids.length ? this.ids.length + '条' : '所有' }数据?`, '提示', {
// confirmButtonText: '确定',
// cancelButtonText: '取消',
// type: 'warning'
// }).then(() => {
// if (this.ids.length) {
// this.download('/school/teacher/export/' + this.ids, {
// ...this.queryParams
// }, `教师信息.xlsx`)
// } else {
// this.download('/school/teacher/export', {
// ...this.queryParams
// }, `教师信息.xlsx`)
// }
//
// }).catch(() => {
//
// });
},
/** 导入按钮 */
handleImport() {
this.upload.title = "用户导入";
this.upload.open = true;
},
dateFormat(row, column, cellValue, index) {
const daterc = row[column.property];
if (daterc) {
if (daterc.indexOf("T") === -1) return daterc;
const arr = daterc.split("T");
const d = arr[0];
const darr = d.split("-");
const t = arr[1];
const tarr = t.split(".000");
const marr = tarr[0].split(":");
const dd = darr[0] + "-" + darr[1] + "-" + darr[2];
return dd;
}
},
/** 更多下拉菜单 */
// handleCommand(command, row) {
// this[command].apply(undefined, [row]);
// },
// 更多操作触发
handleCommand(command, row) {
switch (command) {
case "handleHonor":
this.handleHonor(row)
break;
case "handleResume":
this.handleResume(row)
break;
case "handleResetPwd":
this.handleResetPwd(row);
break;
case "handleAuthRole":
this.handleAuthRole(row);
break;
default:
break;
}
},
/** 查询部门下拉树结构 */
getDeptTree() {
this.$store
.dispatch("getDeptTree")
.then((response) => {
this.deptOptions = response;
})
.catch((error) => {
this.deptOptions = [];
});
},
/** 查询岗位列表,角色列表 */
getPostAndRoleList() {
this.$store
.dispatch("getPostList")
.then((response) => {
/** 查询部门下拉树结构 */
getDeptTree() {
this.$store
.dispatch("getDeptTree")
.then((response) => {
this.deptOptions = response;
})
.catch((error) => {
this.deptOptions = [];
});
},
/** 查询岗位列表,角色列表 */
getPostAndRoleList() {
this.$store
.dispatch("getPostList")
.then((response) => {
this.postOptions = response.posts;
console.log(this.postOptions, 1304);
this.roleOptions = response.roles;
})
.catch((error) => {
this.postOptions = [];
this.roleOptions = [];
});
},
/** 下载模板操作 */
importTemplate() {
this.download(
"school/teacher/importTemplate",
{},
`老师信息模板_${new Date().getTime()}.xlsx`
);
},
// 文件上传中处理
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.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
/** 导出 */
exportFile(callback) {
const ids = this.ids;
const options = [
{ type: ExportType.TOTAL, path: "/school/teacher/export", params: {} },
{
type: ExportType.SELECT,
path: "/school/teacher/export/" + ids,
params: {},
},
{
type: ExportType.QUERY,
path: "/school/teacher/export",
params: this.queryParams,
},
];
callback(options, `老师信息${new Date().getTime()}.xlsx`);
},
/** 是否可以被勾选 */
isSelected(row, index) {
if (row.id == 1) {
return false;
}
return true;
},
switchChange(row, status) {
this.$modal
.confirm(status === '1' ? '是否确认停用此用户状态?' : '是否确认启用此用户状态?')
.then(() => {
this.$modal.loading('正在修改状态,请稍等...')
statusChange(status, row.id)
.then(response => {
this.$modal.closeLoading()
this.$modal.msgSuccess('修改成功')
})
})
.catch(() => {
this.$modal.closeLoading()
})
// console.log(row, status, 56565656)
// statusChange(status, row.id).then(() => {
this.postOptions = response.posts;
console.log(this.postOptions, 1304);
this.roleOptions = response.roles;
})
.catch((error) => {
this.postOptions = [];
this.roleOptions = [];
});
},
/** 下载模板操作 */
importTemplate() {
this.download(
"school/teacher/importTemplate",
{},
`老师信息模板_${new Date().getTime()}.xlsx`
);
},
// 文件上传中处理
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.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
/** 导出 */
exportFile(callback) {
const ids = this.ids;
const options = [
{ type: ExportType.TOTAL, path: "/school/teacher/export", params: {} },
{
type: ExportType.SELECT,
path: "/school/teacher/export/" + ids,
params: {},
},
{
type: ExportType.QUERY,
path: "/school/teacher/export",
params: this.queryParams,
},
];
callback(options, `老师信息${new Date().getTime()}.xlsx`);
},
// })
/** 是否可以被勾选 */
isSelected(row, index) {
if (row.id == 1) {
return false;
}
return true;
},
};
switchChange(row, status) {
this.$modal
.confirm(status === '1' ? '是否确认停用此用户状态?' : '是否确认启用此用户状态?')
.then(() => {
this.$modal.loading('正在修改状态,请稍等...')
statusChange(status, row.id)
.then(response => {
this.$modal.closeLoading()
this.$modal.msgSuccess('修改成功')
})
})
.catch(() => {
this.$modal.closeLoading()
})
// console.log(row, status, 56565656)
// statusChange(status, row.id).then(() => {
// })
}
},
};
</script>
<style scoped>
.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