Commit c435fba3 by Cat
parents 85807a4a 801bdf89
...@@ -144,12 +144,18 @@ export default { ...@@ -144,12 +144,18 @@ export default {
}; };
this.fetchStudioUseData(); // 重新发一次请求 this.fetchStudioUseData(); // 重新发一次请求
}, },
// changeStudio(value) {
// console.log('value', value);
// console.log('this.queryParams.startTime', this.queryParams.startTime);
// this.queryParams.studioId = value;
// this.fetchStudioUseData();
// },
changeStudio(value) { changeStudio(value) {
console.log('value', value); this.selectedTimeSlots = []; // 在切换录播室时清空已选时间段
console.log('this.queryParams.startTime', this.queryParams.startTime);
this.queryParams.studioId = value; this.queryParams.studioId = value;
this.fetchStudioUseData(); this.fetchStudioUseData();
}, },
changeDate() { changeDate() {
this.endTime = moment(this.queryParams.startTime).add(9, 'days') this.endTime = moment(this.queryParams.startTime).add(9, 'days')
// this.fetchData(); // this.fetchData();
...@@ -224,7 +230,7 @@ export default { ...@@ -224,7 +230,7 @@ export default {
if (selectObj != undefined) { if (selectObj != undefined) {
this.remark = true this.remark = true
this.selectedTimeSlots = this.selectedTimeSlots.filter(item => item.index != index) this.selectedTimeSlots = this.selectedTimeSlots.filter(item => item.index != index)
this.selectedTimeSlots.length == 0 ? this.remark = false : this.selectedTimeSlots this.selectedTimeSlots.length === 0 ? this.remark = false : this.selectedTimeSlots
} else { } else {
this.selectedTimeSlots.push({ day, index }) this.selectedTimeSlots.push({ day, index })
} }
......
...@@ -31,10 +31,10 @@ ...@@ -31,10 +31,10 @@
<!-- >新增--> <!-- >新增-->
<!-- </el-button>--> <!-- </el-button>-->
<!--</el-col>--> <!--</el-col>-->
<el-col :span="1.5"> <!-- <el-col :span="1.5">
<el-button type="danger" plain size="mini" icon="el-icon-delete" :disabled="!isMultiple" @click="handleDelete">删除 <el-button type="danger" plain size="mini" icon="el-icon-delete" :disabled="!isMultiple" @click="handleDelete">删除
</el-button> </el-button>
</el-col> </el-col> -->
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="info" plain size="mini" icon="el-icon-close" @click="handleClose">关闭 <el-button type="info" plain size="mini" icon="el-icon-close" @click="handleClose">关闭
</el-button> </el-button>
......
<template>
<div class="app-container">
<el-tabs v-model="activeName" @tab-click="handleTabChange">
<el-tab-pane label="正常" :name="State.NORMAL"></el-tab-pane>
<el-tab-pane label="停用" :name="State.STOP"></el-tab-pane>
</el-tabs>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="标题" prop="title">
<el-input size="small" v-model="queryParams.title" placeholder="请输入标题" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="接收人" prop="groupId">
<el-select v-model="queryParams.groupId" size="small" clearable @keyup.enter.native="handleQuery"
placeholder="请选择接收人">
<el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:push:add']">新增
</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="info" plain icon="el-icon-search" size="mini" :disabled="single" @click="viewDetailButton"
v-hasPermi="['system:push:export']">详情
</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:push: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:push:remove']">删除
</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['system:push:export']">导出
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table ref="table" v-loading="loading" :data="pushList" @selection-change="handleSelectionChange"
@row-click="rowClick">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="标题" align="center" v-if="columns[0].visible" prop="title" show-overflow-tooltip />
<el-table-column label="类型" align="center" prop="messageType">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_notice_type" :value="scope.row.messageType"></dict-tag>
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" v-if="columns[1].visible" prop="createTime" width="200"
show-overflow-tooltip />
<el-table-column label="创建人" align="center" v-if="columns[2].visible" prop="createBy" width="200"
show-overflow-tooltip />
<el-table-column label="接收人" align="center" v-if="columns[3].visible" prop="groupName" width="200"
show-overflow-tooltip>
<!-- <template slot-scope="scope">
<span>{{ resolveRole(scope.row.receivePacket) }}</span>
</template> -->
</el-table-column>
<el-table-column label="状态" align="center" v-if="columns[4].visible" prop="state" width="200">
<template slot-scope="scope">
<el-switch v-model="scope.row.state" active-value="0" inactive-value="1"
@change="handleChangeState(scope.row)"></el-switch>
</template>
</el-table-column>
<el-table-column label="操作" align="center" v-if="columns[5].visible" width="200"
class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-user" @click="getReceiveList(scope.row)"
v-hasPermi="['system:push:edit']">接收人列表
</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:push:edit']">修改
</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:push: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" />
<!-- 添加或修改学校消息推送对话框 -->
<el-dialog :title="title" :visible.sync="open" width="960px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :span="12">
<el-form-item label="标题" prop="title">
<el-input size="small" v-model="form.title" placeholder="请输入标题" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="接收人" prop="groupName">
<el-select size="small" v-model="form.groupName" placeholder="请选择角色" style="width: 100%;">
<el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="类型" prop="messageType">
<el-select v-model="form.messageType" style="width: 100%;">
<el-option v-for="dict in dict.type.sys_notice_type" :key="dict.value" :value="dict.value"
:label="dict.label"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col>
<el-form-item label="内容" prop="content">
<editor v-model="form.content" :min-height="192" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!-- 查看详细内容学校消息推送对话框 -->
<el-dialog title="详细内容查看" :visible.sync="viewDetail" width="960px" append-to-body>
<el-card type="always">
<div style="text-align: center">
<h1 style="display: inline-block">{{ form.title }}</h1>
</div>
<span class="info-container" :disabled="true" v-html="form.content"></span>
<br /><br />
<div style="float: right;">
<el-descriptions column="3">
<!-- <el-descriptions-item label="标题">{{ form.title }}</el-descriptions-item>-->
<el-descriptions-item label="接收人">{{ resolveRole(form.receivePacket) }}</el-descriptions-item>
<el-descriptions-item label="创建时间">{{ form.createTime }}</el-descriptions-item>
<el-descriptions-item label="创建人">{{ form.createBy }}</el-descriptions-item>
</el-descriptions>
</div>
<br>
</el-card>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="viewDetail = false">关闭</el-button>
</div>
</el-dialog>
<!-- 导出对话框 -->
<ExportTable :open-export.sync="exportOptions.open" :title="exportOptions.title" @export="exportFile"></ExportTable>
</div>
</template>
<script>
import {
getList,
getInfoOne,
addInfo,
editInfo,
deleteInfo,
changeState
} from "@/api/smartSchool/informationPush/school";
import { State } from "@/enums/infoPush";
// import { getUser } from "@/api/system/user";
import { ExportType } from "@/enums/common";
import {
getUserList,//获取分组集合
} from "@/api/smartSchool/informationPush/personnelGrouping";
export default {
name: "SchoolMessage",
dicts: ['status', 'inform_push_state', 'receive_packet', 'sys_notice_type'],
data() {
return {
selection: [],
pageState: '0',
// 状态
State,
viewDetail: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 学校消息推送表格数据
pushList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
title: null,
groupId: null,
state: State.NORMAL,
// content: null,
// messageType: null,
},
// 导出选项
exportOptions: {
title: '选择导出类别',
open: false
},
//分组
idList: [],
// 表单参数
form: {},
// 列信息
columns: [
{ key: 0, label: `标题`, visible: true },
{ key: 1, label: `创建时间`, visible: true },
{ key: 2, label: `创建人`, visible: true },
{ key: 3, label: `接收人`, visible: true },
{ key: 4, label: `状态`, visible: true },
{ key: 5, label: `操作`, visible: true },
],
// 表单校验
rules: {
title: [
{ required: true, message: "请输入标题", trigger: "blur" }
],
receivePacket: [
{ required: true, message: "接收人不能为空", trigger: "blur" }
],
messageType: [
{ required: true, message: "类型不能为空", trigger: "blur" }
],
content: [
{ required: true, message: "内容不能为空", trigger: "blur" }
],
},
// 当前状态
activeName: State.NORMAL,
// 角色列表
roleList: []
};
},
computed: {
resolveRole() {
return value => {
const result = this.roleList.find(item => item.roleId === value);
return result ? result.roleName : '';
}
}
},
created() {
this.getList();
// this.getRoleList();
this.groupList();
},
methods: {
//接收人分组
groupList() {
getUserList().then(response => {
this.roleList = response.rows;
console.log('this.roleList', this.roleList);
this.total = response.total;
this.loading = false;
});
},
/** 查询学校消息推送列表 */
getList() {
this.loading = true;
getList(this.queryParams).then(response => {
this.pushList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
title: null,
content: null,
receivePacket: null,
messageType: '1',
state: State.STOP,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.throttle(() => {
this.queryParams.pageNum = 1;
this.getList();
})
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.selection = selection
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加学校消息推送";
},
getReceiveList(row) {
this.$router.push({
path: '/schoolManage/infoPush/receiveList',
query: {
id: row.id,
// title: row.title,
// type: row.messageType,
}
})
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids[0];
this.open = true;
this.title = "修改学校消息推送";
getInfoOne(id).then(response => {
this.form = response.data;
console.log('this.form', this.form);
});
},
/** 提交按钮 */
submitForm() {
const groupId = this.form.groupId
this.form.groupName = groupId == '' ? '' : this.roleList.find(item => item.id == groupId).name
this.throttle(() => {
this.$refs["form"].validate(valid => {
if (valid) {
console.log(valid);
this.$modal.loading('正在上传数据,请稍等...');
if (this.form.id != null) {
editInfo(this.form).then(response => {
this.$modal.closeLoading();
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
}).catch(error => {
this.$modal.closeLoading();
})
} else {
addInfo(this.form).then(response => {
console.log(this.form);
this.$modal.closeLoading();
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
}).catch(error => {
this.$modal.closeLoading();
})
}
}
});
})
},
/** 删除按钮操作 */
handleDelete(row) {
this.throttle(() => {
const ids = row.id || this.ids;
if (ids) {
this.$modal.confirm(`是否确认删除选中的${Object.hasOwnProperty.call(ids, 'length') ? ids.length : 1}条数据?`).then(function () {
return deleteInfo(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
});
}
})
},
/** 导出按钮操作 */
handleExport() {
this.exportOptions.open = true;
// this.$confirm(`是否确认导出${ !!this.ids.length ? this.ids.length + '条' : '所有' }数据?`, '提示', {
// confirmButtonText: '确定',
// cancelButtonText: '取消',
// type: 'warning'
// }).then(() => {
// if (this.ids.length) {
// console.log("this.ids", this.ids)
// this.download('/schoolMessagePush/export/' + this.ids, {
// ...this.queryParams
// }, `学校信息推送.xlsx`)
// } else {
// this.download('/schoolMessagePush/export/', {
// ...this.queryParams
// }, `学校信息推送.xlsx`)
// }
// this.$message({
// type: 'success',
// message: '导出成功!'
// });
// }).catch(() => {
// this.$message({
// type: 'info',
// message: '已取消'
// });
// });
},
viewDetailButton() {
this.viewDetail = true;
this.reset();
const id = this.ids[0];
getInfoOne(id).then(response => {
this.form = response.data;
});
},
/** 停用/推送消息 */
handleChangeState(row) {
let text = row.state === "0" ? "推送" : "停用";
this.$modal.confirm('确认要' + text + '当前通知(公告)?').then(function () {
return changeState(row.id, row.state);
return Promise.reject();
}).then(() => {
this.$modal.msgSuccess(text + "成功");
this.getList();
}).catch(function () {
row.state = row.state === "0" ? "1" : "0";
});
},
// 切换状态
handleTabChange({ name }) {
if (name == State.NORMAL) {
this.pageState = 0
} else {
this.pageState = 1
}
this.queryParams.state = name;
this.handleQuery();
},
// 获取角色信息
// getRoleList() {
// getUser().then(response => {
// this.roleList = response.roles;
// }).catch(error => {
// })
// },
/** 导出 */
exportFile(callback) {
const ids = this.ids;
const options = [
{ type: ExportType.TOTAL, path: '/schoolMessagePush/exportAll', params: { state: this.pageState } },
{ type: ExportType.SELECT, path: '/schoolMessagePush/export/' + ids, params: {} },
{
type: ExportType.QUERY, path: '/schoolMessagePush/exportAll', params: {
state: this.pageState,
...this.queryParams
}
},
]
callback(options, `学校信息推送${new Date().getTime()}.xlsx`);
},
rowClick(row) {
if (this.selection.includes(row)) {
this.$refs.table.toggleRowSelection(row, false)
} else {
this.$refs.table.toggleRowSelection(row, true)
}
}
}
};
</script>
<style lang="scss" scoped>
.info-container {
max-height: 500px;
overflow-y: auto;
}
</style>
...@@ -363,7 +363,7 @@ export default { ...@@ -363,7 +363,7 @@ export default {
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
const groupId = this.form.groupId const groupId = this.form.groupId
this.form.group = groupId == '' ? '' : this.roleList.find(item => item.id == groupId).name this.form.groupName = groupId == '' ? '' : this.roleList.find(item => item.id == groupId).name
console.log(this.form.borrowBy); console.log(this.form.borrowBy);
this.throttle(() => { this.throttle(() => {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
......
...@@ -78,8 +78,6 @@ ...@@ -78,8 +78,6 @@
</el-table> </el-table>
<pagination v-show="totalcy > 0" :total="total" :page.sync="queryParam.pageNum" :limit.sync="queryParam.pageSize" <pagination v-show="totalcy > 0" :total="total" :page.sync="queryParam.pageNum" :limit.sync="queryParam.pageSize"
@pagination="getListcy" /> @pagination="getListcy" />
</el-row> </el-row>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleSelectUser">确 定</el-button> <el-button type="primary" @click="handleSelectUser">确 定</el-button>
...@@ -167,7 +165,7 @@ export default { ...@@ -167,7 +165,7 @@ export default {
this.notificationId = this.$route.query.id; this.notificationId = this.$route.query.id;
console.log('this..notificationId', this.notificationId); console.log('this..notificationId', this.notificationId);
getUser(this.notificationId).then(response => { getUser(this.notificationId).then(response => {
this.userList = response.rows; this.userList = response.data;
console.log('this.userList', this.userList); console.log('this.userList', this.userList);
this.loading = false; this.loading = false;
}); });
......
...@@ -473,7 +473,7 @@ export default { ...@@ -473,7 +473,7 @@ export default {
classValue: [{required: true, message: '班级不能为空', trigger: 'change'}], classValue: [{required: true, message: '班级不能为空', trigger: 'change'}],
teacherName: [{required: true, message: '班主任姓名不能为空', trigger: 'change'}], teacherName: [{required: true, message: '班主任姓名不能为空', trigger: 'change'}],
teacherTel: [{required: true, message: '班主任手机号不能为空', trigger: 'change'}], teacherTel: [{required: true, message: '班主任手机号不能为空', trigger: 'change'}],
houseName: [{required: true, message: '所在教学楼不能为空', trigger: 'change'}], // houseName: [{required: true, message: '所在教学楼不能为空', trigger: 'change'}],
classNum1: [{required: true, message: '高一班级数量不能为空', trigger: 'blur'}], classNum1: [{required: true, message: '高一班级数量不能为空', trigger: 'blur'}],
classNum2: [{required: true, message: '高二班级数量不能为空', trigger: 'blur'}], classNum2: [{required: true, message: '高二班级数量不能为空', trigger: 'blur'}],
classNum3: [{required: true, message: '高三班级数量不能为空', trigger: 'blur'}], classNum3: [{required: true, message: '高三班级数量不能为空', trigger: 'blur'}],
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="70px"> <el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="70px">
<el-form-item label="学年" prop="classYear"> <el-form-item label="学年" prop="classYear">
<el-date-picker v-model="queryForm.classYear" type="year" @change="getList" format="yyyy" value-format="yyyy" <el-date-picker v-model="queryForm.classYear" type="year" @change="getList" format="yyyy" value-format="yyyy"
placeholder="选择年度"></el-date-picker> placeholder="选择年度" :clearable="false"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport">导出</el-button> <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
...@@ -155,7 +155,7 @@ export default { ...@@ -155,7 +155,7 @@ export default {
newYear() { newYear() {
getNewYear().then((res) => { getNewYear().then((res) => {
//数值类型转换成字符串 //数值类型转换成字符串
this.queryForm.classYear = res.schoolYear + '' ; this.queryForm.classYear = res.schoolYear + '';
console.log('this.queryForm.classYear', typeof this.queryForm.classYear); console.log('this.queryForm.classYear', typeof this.queryForm.classYear);
this.getList(); this.getList();
}); });
......
...@@ -47,10 +47,8 @@ ...@@ -47,10 +47,8 @@
<el-table-column type="selection" align="center" width="55" /> <el-table-column type="selection" align="center" width="55" />
<el-table-column label="序号" type="index" align="center" width="55" /> <el-table-column label="序号" type="index" align="center" width="55" />
<el-table-column label="学校/工作单位" width="width" align="center" prop="learnSchool" /> <el-table-column label="学校/工作单位" width="width" align="center" prop="learnSchool" />
<el-table-column label="履历开始时间" :formatter="dateFormat" width="width" align="center" <el-table-column label="履历开始时间" width="width" align="center" prop="learnStart"></el-table-column>
prop="learnStart"></el-table-column> <el-table-column label="履历结束时间" width="width" align="center" prop="learnEnd"></el-table-column>
<el-table-column label="履历结束时间" :formatter="dateFormat" width="width" align="center"
prop="learnEnd"></el-table-column>
<el-table-column label="备注" width="width" align="center" prop="remark" /> <el-table-column label="备注" width="width" align="center" prop="remark" />
</el-table> </el-table>
<ExPagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" <ExPagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
...@@ -64,12 +62,12 @@ ...@@ -64,12 +62,12 @@
<el-input v-model="resumeForm.learnSchool" clearable style="width: 100%" /> <el-input v-model="resumeForm.learnSchool" clearable style="width: 100%" />
</el-form-item> </el-form-item>
<el-form-item label="履历开始时间" prop="learnStart"> <el-form-item label="履历开始时间" prop="learnStart">
<el-date-picker v-model="resumeForm.learnStart" type="date" style="width: 100%" <el-date-picker v-model="resumeForm.learnStart" type="date" style="width: 100%" placeholder="履历开始时间"
placeholder="履历开始时间"></el-date-picker> value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="履历结束时间" clearable prop="learnEnd"> <el-form-item label="履历结束时间" clearable prop="learnEnd">
<el-date-picker v-model="resumeForm.learnEnd" type="date" style="width: 100%" <el-date-picker v-model="resumeForm.learnEnd" type="date" style="width: 100%" placeholder="履历结束时间"
placeholder="履历结束时间"></el-date-picker> value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="备注" clearable prop="remark"> <el-form-item label="备注" clearable prop="remark">
<el-input type="textarea" :rows="3" style="width: 100%" v-model="resumeForm.remark" clearable /> <el-input type="textarea" :rows="3" style="width: 100%" v-model="resumeForm.remark" clearable />
......
...@@ -195,8 +195,6 @@ ...@@ -195,8 +195,6 @@
<img v-if="imageUrl" :src="imageUrl" class="avatar" /> <img v-if="imageUrl" :src="imageUrl" class="avatar" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i> <i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload> </el-upload>
</template> </template>
</el-form-item> </el-form-item>
<div style="width:50px; height: 20px; margin:auto;"><b>照片</b></div> <div style="width:50px; height: 20px; margin:auto;"><b>照片</b></div>
...@@ -232,12 +230,19 @@ ...@@ -232,12 +230,19 @@
<el-date-picker clearable v-model="form.birthday" type="date" style="width: 100%" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="form.birthday" type="date" style="width: 100%" value-format="yyyy-MM-dd"
placeholder="请选择生日"></el-date-picker> placeholder="请选择生日"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="岗位" prop="postId"> <el-form-item label="岗位" prop="postId">
<el-select v-model="form.postIds" multiple placeholder="请选择岗位" style="width: 100%"> <el-select v-model="form.postIds" multiple placeholder="请选择岗位" style="width: 100%">
<el-option v-for="item in postOptions" :key="item.postId" :label="item.postName" <el-option v-for="item in postOptions" :key="item.postId" :label="item.postName"
:value="item.postId"></el-option> :value="item.postId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="任职部门" prop="deptIds">
<treeselect :disabled="isDisabled" v-model="form.deptIds" :options="deptOptions" :show-count="true"
:defaultExpandLevel="2" placeholder="请选择主部门" @change="handleSelectionChange" multiple :max="8" />
<!-- 添加 multiple 和 max 属性 -->
</el-form-item>
</el-col> </el-col>
...@@ -254,9 +259,9 @@ ...@@ -254,9 +259,9 @@
</el-form-item> </el-form-item>
<div style="width:50px; height: 20px;margin:auto;"><b>签名</b></div> <div style="width:50px; height: 20px;margin:auto;"><b>签名</b></div>
<br /> <br />
<el-form-item label="归属部门" prop="deptId"> <el-form-item label="部门" prop="deptId">
<treeselect :disabled="isDisabled" v-model="form.deptId" :options="deptOptions" :show-count="true" <treeselect :disabled="isDisabled" v-model="form.deptId" :options="deptOptions" :show-count="true"
:defaultExpandLevel="2" placeholder="请选择归属部门" /> :defaultExpandLevel="2" placeholder="请选择部门" />
</el-form-item> </el-form-item>
<!-- :placeholder="isDisabled ? '' : '请选择归属部门'"--> <!-- :placeholder="isDisabled ? '' : '请选择归属部门'"-->
<el-form-item label="密码" v-if="!form.id" prop="password"> <el-form-item label="密码" v-if="!form.id" prop="password">
...@@ -384,10 +389,15 @@ export default { ...@@ -384,10 +389,15 @@ export default {
}, },
data() { data() {
return { return {
peV: process.env.VUE_APP_BASE_API, peV: process.env.VUE_APP_BASE_API,
// 民族 // 民族
Nations, Nations,
honorQueryAdd: {}, honorQueryAdd: {},
isDisabled: false, // 根据需要设置是否禁用
deptOptions: [
// 选项数据
],
honorTitle: undefined, honorTitle: undefined,
honorQuery: {}, honorQuery: {},
resumeTitle: undefined, resumeTitle: undefined,
...@@ -459,7 +469,9 @@ export default { ...@@ -459,7 +469,9 @@ export default {
employeeType: null, employeeType: null,
}, },
// 表单参数 // 表单参数
form: {}, form: {
deptIds: [],
},
// 列信息 // 列信息
columns: [ columns: [
{ key: 0, label: `头像`, visible: true }, { key: 0, label: `头像`, visible: true },
...@@ -545,6 +557,12 @@ export default { ...@@ -545,6 +557,12 @@ export default {
deptName(val) { deptName(val) {
this.$refs.tree.filter(val); this.$refs.tree.filter(val);
}, },
'form.deptIds'(newVal) {
if (newVal.length > 8) {
// If the selection exceeds the limit, remove the last item
this.form.deptIds.pop();
}
},
}, },
created() { created() {
this.getList(); this.getList();
...@@ -554,6 +572,12 @@ export default { ...@@ -554,6 +572,12 @@ export default {
// }) // })
}, },
methods: { methods: {
handleSelectionChange(selectedItems) {
if (selectedItems.length > 8) {
// 用户选择的项数超过了最大限制,您可以在此处进行处理,例如取消选择最后一个项
this.form.deptIds.pop();
}
},
// 筛选节点 // 筛选节点
filterNode(value, data) { filterNode(value, data) {
if (!value) return true; if (!value) return true;
...@@ -1053,7 +1077,7 @@ export default { ...@@ -1053,7 +1077,7 @@ export default {
} }
}, },
}; };
</script> </script>
<style scoped> <style scoped>
.avatar-uploader { .avatar-uploader {
......
...@@ -10,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -10,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import yangtz.cs.liu.campus.domain.teacherFiles.TeacherFiles; import yangtz.cs.liu.campus.domain.teacherFiles.TeacherFiles;
import yangtz.cs.liu.campus.domain.teacherFiles.TeacherFilesNotice;
import yangtz.cs.liu.campus.service.teacherFiles.ITeacherFilesService; import yangtz.cs.liu.campus.service.teacherFiles.ITeacherFilesService;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
...@@ -90,10 +91,10 @@ public class TeacherFilesController extends BaseController ...@@ -90,10 +91,10 @@ public class TeacherFilesController extends BaseController
*/ */
@PreAuthorize("@ss.hasPermi('teacherFiles:files:remove')") @PreAuthorize("@ss.hasPermi('teacherFiles:files:remove')")
@Log(title = "教师档案", businessType = BusinessType.DELETE) @Log(title = "教师档案", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}") @DeleteMapping("/{id}")
public AjaxResult remove(@PathVariable Long[] ids) public AjaxResult remove(@PathVariable Long id)
{ {
return toAjax(teacherFilesService.deleteTeacherFilesByIds(ids)); return toAjax(teacherFilesService.deleteTeacherFilesById(id));
} }
...@@ -108,4 +109,38 @@ public class TeacherFilesController extends BaseController ...@@ -108,4 +109,38 @@ public class TeacherFilesController extends BaseController
return toAjax(teacherFilesService.synchronous(id)); return toAjax(teacherFilesService.synchronous(id));
} }
@PreAuthorize("@ss.hasPermi('teacherFiles:notice:edit')")
@Log(title = "教师档案审核通过", businessType = BusinessType.UPDATE)
@PutMapping("/passThrough/{id}")
public AjaxResult passThrough(@PathVariable("id") Long id)
{
TeacherFiles teacherFiles = new TeacherFiles();
teacherFiles.setId(id);
teacherFiles.setState("5");
return toAjax(teacherFilesService.updateTeacherFiles(teacherFiles));
}
@PreAuthorize("@ss.hasPermi('teacherFiles:notice:edit')")
@Log(title = "教师档案审核驳回", businessType = BusinessType.UPDATE)
@PutMapping("/reject/{id}")
public AjaxResult reject(@PathVariable("id") Long id)
{
TeacherFiles teacherFiles = new TeacherFiles();
teacherFiles.setId(id);
teacherFiles.setState("9");
return toAjax(teacherFilesService.updateTeacherFiles(teacherFiles));
}
@PreAuthorize("@ss.hasPermi('teacherFiles:notice:edit')")
@Log(title = "教师档案提交", businessType = BusinessType.UPDATE)
@PutMapping("/submitTo/{id}")
public AjaxResult submitTo(@PathVariable("id") Long id)
{
TeacherFiles teacherFiles = new TeacherFiles();
teacherFiles.setId(id);
teacherFiles.setState("4");
return toAjax(teacherFilesService.updateTeacherFiles(teacherFiles));
}
} }
...@@ -94,14 +94,31 @@ public class TeacherFilesNoticeController extends BaseController ...@@ -94,14 +94,31 @@ public class TeacherFilesNoticeController extends BaseController
return toAjax(teacherFilesNoticeService.release(id)); return toAjax(teacherFilesNoticeService.release(id));
} }
@PreAuthorize("@ss.hasPermi('teacherFiles:notice:edit')")
@Log(title = "教师档案通知撤回", businessType = BusinessType.UPDATE)
@PutMapping("/withdraw/{id}")
public AjaxResult withdraw(@PathVariable("id") String id)
{
return toAjax(teacherFilesNoticeService.withdraw(id));
}
@PreAuthorize("@ss.hasPermi('teacherFiles:notice:edit')")
@Log(title = "教师档案通知完成", businessType = BusinessType.UPDATE)
@PutMapping("/complete/{id}")
public AjaxResult complete(@PathVariable("id") String id)
{
return toAjax(teacherFilesNoticeService.complete(id));
}
/** /**
* 删除教师档案通知 * 删除教师档案通知
*/ */
@PreAuthorize("@ss.hasPermi('teacherFiles:notice:remove')") @PreAuthorize("@ss.hasPermi('teacherFiles:notice:remove')")
@Log(title = "教师档案通知", businessType = BusinessType.DELETE) @Log(title = "教师档案通知", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}") @DeleteMapping("/{id}")
public AjaxResult remove(@PathVariable String[] ids) public AjaxResult remove(@PathVariable("id") String id)
{ {
return toAjax(teacherFilesNoticeService.deleteTeacherFilesNoticeByIds(ids)); return toAjax(teacherFilesNoticeService.deleteTeacherFilesNoticeById(id));
} }
} }
...@@ -39,7 +39,7 @@ public class TeacherFilesAward extends BaseEntity ...@@ -39,7 +39,7 @@ public class TeacherFilesAward extends BaseEntity
private Date awardTime; private Date awardTime;
/** 获奖等级(1一等奖,2二等奖,3三等奖) */ /** 获奖等级(1一等奖,2二等奖,3三等奖) */
@Excel(name = "获奖等级", readConverterExp = "1=一等奖,2二等奖,3三等奖") @Excel(name = "获奖等级", readConverterExp = "1=一等奖,2=二等奖,3=三等奖")
private String gradeOfAward; private String gradeOfAward;
/** 发证机关 */ /** 发证机关 */
......
...@@ -4,6 +4,7 @@ import yangtz.cs.liu.campus.domain.teacherFiles.TeacherFiles; ...@@ -4,6 +4,7 @@ import yangtz.cs.liu.campus.domain.teacherFiles.TeacherFiles;
import yangtz.cs.liu.campus.domain.teacherFiles.TeacherFilesVO; import yangtz.cs.liu.campus.domain.teacherFiles.TeacherFilesVO;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 教师档案Mapper接口 * 教师档案Mapper接口
...@@ -47,6 +48,13 @@ public interface TeacherFilesMapper ...@@ -47,6 +48,13 @@ public interface TeacherFilesMapper
public int updateTeacherFilesState(String noticeId); public int updateTeacherFilesState(String noticeId);
public int updateTeacherFilesState1(String noticeId);
public int updateTeacherFilesState7(String noticeId);
public int updateTeacherFilesName(Map map);
/** /**
* 删除教师档案 * 删除教师档案
* *
...@@ -62,4 +70,7 @@ public interface TeacherFilesMapper ...@@ -62,4 +70,7 @@ public interface TeacherFilesMapper
* @return 结果 * @return 结果
*/ */
public int deleteTeacherFilesByIds(Long[] ids); public int deleteTeacherFilesByIds(Long[] ids);
public int deleteTeacherFilesByNoticeId(String noticeId);
} }
...@@ -176,7 +176,6 @@ public class TeacherFilesNoticeServiceImpl implements ITeacherFilesNoticeService ...@@ -176,7 +176,6 @@ public class TeacherFilesNoticeServiceImpl implements ITeacherFilesNoticeService
teacherFiles.setIdCard(schoolTeacher.getIdCard()); teacherFiles.setIdCard(schoolTeacher.getIdCard());
teacherFiles.setSex(schoolTeacher.getSex()); teacherFiles.setSex(schoolTeacher.getSex());
teacherFiles.setEducation(schoolTeacher.getEducation()); teacherFiles.setEducation(schoolTeacher.getEducation());
System.out.println(schoolTeacher.getTeacherName()+"---------"+schoolTeacher.getBirthday());
Date birthday = schoolTeacher.getBirthday(); Date birthday = schoolTeacher.getBirthday();
if(birthday!=null){ if(birthday!=null){
SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy"); SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy");
...@@ -200,7 +199,13 @@ public class TeacherFilesNoticeServiceImpl implements ITeacherFilesNoticeService ...@@ -200,7 +199,13 @@ public class TeacherFilesNoticeServiceImpl implements ITeacherFilesNoticeService
public int updateTeacherFilesNotice(TeacherFilesNotice teacherFilesNotice) public int updateTeacherFilesNotice(TeacherFilesNotice teacherFilesNotice)
{ {
teacherFilesNotice.setUpdateTime(DateUtils.getNowDate()); teacherFilesNotice.setUpdateTime(DateUtils.getNowDate());
return teacherFilesNoticeMapper.updateTeacherFilesNotice(teacherFilesNotice); teacherFilesNotice.setNoticeName(teacherFilesNotice.getNoticeYear()+"学年"+teacherFilesNotice.getNoticeSemester()+"教师档案填写");
int i = teacherFilesNoticeMapper.updateTeacherFilesNotice(teacherFilesNotice);
Map map = new HashMap();
map.put("noticeId",teacherFilesNotice.getId());
map.put("filesSemester",teacherFilesNotice.getNoticeYear()+"学年"+teacherFilesNotice.getNoticeSemester());
teacherFilesMapper.updateTeacherFilesName(map);
return i;
} }
@Override @Override
...@@ -208,11 +213,34 @@ public class TeacherFilesNoticeServiceImpl implements ITeacherFilesNoticeService ...@@ -208,11 +213,34 @@ public class TeacherFilesNoticeServiceImpl implements ITeacherFilesNoticeService
TeacherFilesNotice teacherFilesNotice =new TeacherFilesNotice(); TeacherFilesNotice teacherFilesNotice =new TeacherFilesNotice();
teacherFilesNotice.setId(id); teacherFilesNotice.setId(id);
teacherFilesNotice.setUpdateTime(DateUtils.getNowDate()); teacherFilesNotice.setUpdateTime(DateUtils.getNowDate());
teacherFilesNotice.setNoticeState("2");
int i = teacherFilesMapper.updateTeacherFilesState(id); int i = teacherFilesMapper.updateTeacherFilesState(id);
teacherFilesNoticeMapper.updateTeacherFilesNotice(teacherFilesNotice); teacherFilesNoticeMapper.updateTeacherFilesNotice(teacherFilesNotice);
return i; return i;
} }
@Override
public int withdraw(String id) {
TeacherFilesNotice teacherFilesNotice =new TeacherFilesNotice();
teacherFilesNotice.setId(id);
teacherFilesNotice.setUpdateTime(DateUtils.getNowDate());
teacherFilesNotice.setNoticeState("1");
int i = teacherFilesMapper.updateTeacherFilesState1(id);
teacherFilesNoticeMapper.updateTeacherFilesNotice(teacherFilesNotice);
return i;
}
@Override
public int complete(String id) {
TeacherFilesNotice teacherFilesNotice =new TeacherFilesNotice();
teacherFilesNotice.setId(id);
teacherFilesNotice.setUpdateTime(DateUtils.getNowDate());
teacherFilesNotice.setNoticeState("7");
int i = teacherFilesMapper.updateTeacherFilesState7(id);
teacherFilesNoticeMapper.updateTeacherFilesNotice(teacherFilesNotice);
return i;
}
/** /**
* 批量删除教师档案通知 * 批量删除教师档案通知
* *
...@@ -234,6 +262,8 @@ public class TeacherFilesNoticeServiceImpl implements ITeacherFilesNoticeService ...@@ -234,6 +262,8 @@ public class TeacherFilesNoticeServiceImpl implements ITeacherFilesNoticeService
@Override @Override
public int deleteTeacherFilesNoticeById(String id) public int deleteTeacherFilesNoticeById(String id)
{ {
return teacherFilesNoticeMapper.deleteTeacherFilesNoticeById(id); int i = teacherFilesNoticeMapper.deleteTeacherFilesNoticeById(id);
teacherFilesMapper.deleteTeacherFilesByNoticeId(id);
return i;
} }
} }
...@@ -47,6 +47,10 @@ public interface ITeacherFilesNoticeService ...@@ -47,6 +47,10 @@ public interface ITeacherFilesNoticeService
public int release(String id); public int release(String id);
public int withdraw(String id);
public int complete(String id);
/** /**
* 批量删除教师档案通知 * 批量删除教师档案通知
* *
......
...@@ -143,14 +143,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -143,14 +143,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where id = #{id} where id = #{id}
</update> </update>
<update id="updateTeacherFilesName" parameterType="Map">
update teacher_files set files_semester = #{filesSemester} where notice_id = #{noticeId}
</update>
<update id="updateTeacherFilesState" parameterType="String"> <update id="updateTeacherFilesState" parameterType="String">
update teacher_files set state = 2 where notice_id = #{noticeId} update teacher_files set state = 2 where notice_id = #{noticeId}
</update> </update>
<update id="updateTeacherFilesState1" parameterType="String">
update teacher_files set state = 1 where notice_id = #{noticeId}
</update>
<update id="updateTeacherFilesState7" parameterType="String">
update teacher_files set state = 7 where notice_id = #{noticeId}
</update>
<delete id="deleteTeacherFilesById" parameterType="Long"> <delete id="deleteTeacherFilesById" parameterType="Long">
delete from teacher_files where id = #{id} delete from teacher_files where id = #{id}
</delete> </delete>
<delete id="deleteTeacherFilesByNoticeId" parameterType="String">
delete from teacher_files where notice_id = #{noticeId}
</delete>
<delete id="deleteTeacherFilesByIds" parameterType="String"> <delete id="deleteTeacherFilesByIds" parameterType="String">
delete from teacher_files where id in delete from teacher_files where id in
<foreach item="id" collection="array" open="(" separator="," close=")"> <foreach item="id" collection="array" open="(" separator="," close=")">
......
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