Merge branch 'main' of http://47.112.118.149:10082/xgxt_sd/zhxg_pc
This commit is contained in:
@@ -42,3 +42,11 @@ export function delIdentifytexs(id) {
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
// 班级信息列表
|
||||
export function deptDataList() {
|
||||
return request({
|
||||
url: '/comprehensive/identifytexs/deptdata',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
@@ -47,6 +47,13 @@ export function listView(params) {
|
||||
})
|
||||
}
|
||||
|
||||
export function checkRoles() {
|
||||
return request({
|
||||
url: '/dormitory/daily/checkRoles',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 查询学生宿舍打卡列表
|
||||
|
@@ -122,6 +122,14 @@ export function updateNewRecord(data) {
|
||||
export function delNewRecord(id) {
|
||||
return request({
|
||||
url: '/dormitory/newRecord/' + id,
|
||||
method: 'post'
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 一键确认未进行住宿费用确认的学生
|
||||
export function confirmUnconfirmedStudents() {
|
||||
return request({
|
||||
url: '/dormitory/newRecord/confirmUnconfirmedStudents',
|
||||
method: 'POST'
|
||||
})
|
||||
}
|
||||
|
@@ -1706,10 +1706,10 @@ export default {
|
||||
/* 聊天弹窗容器 */
|
||||
.chat-popup {
|
||||
position: fixed;
|
||||
bottom: 45px;
|
||||
right: 60px;
|
||||
width: 400px;
|
||||
height: 600px;
|
||||
bottom: 9vh;
|
||||
right: 5vw;
|
||||
width: 40vw;
|
||||
height: 80vh;
|
||||
background: #fff;
|
||||
border-radius: 16px;
|
||||
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15), 0 8px 32px rgba(0, 0, 0, 0.1);
|
||||
|
@@ -21,7 +21,7 @@
|
||||
<!-- 其他页面内容 -->
|
||||
<!-- 触发按钮,控制弹窗显示隐藏 -->
|
||||
<div class="ai-hover" @click="toggleAI">
|
||||
<span v-if="!showAI" style="font-size: 14px; font-weight: bold;">AI</span>
|
||||
<span v-if="!showAI" style="font-size: 30px; font-weight: bold;">AI</span>
|
||||
<i v-else class="el-icon-close" style="font-size: 20px;"></i>
|
||||
</div>
|
||||
<!-- 聊天弹窗,通过 v-if 控制显隐 -->
|
||||
@@ -192,22 +192,7 @@ export default {
|
||||
}
|
||||
|
||||
|
||||
// ai悬停
|
||||
.ai-hover {
|
||||
position: fixed;
|
||||
bottom: 20px;
|
||||
right: 20px;
|
||||
z-index: 999;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
border-radius: 50%;
|
||||
background-color: #409eff;
|
||||
color: #fff;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
||||
//AI
|
||||
.ai-hover {
|
||||
@@ -215,8 +200,8 @@ export default {
|
||||
right: 20px;
|
||||
bottom: 20px;
|
||||
/* 和弹窗拉开距离 */
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
width: 5vw;
|
||||
height: 7vh;
|
||||
background-color: #409eff;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
|
@@ -125,6 +125,13 @@ export default {
|
||||
value: 0,
|
||||
url: "hard/zsg/fdy"
|
||||
},
|
||||
//邵政文
|
||||
{
|
||||
label: "辅导员·住宿费用确认审核",
|
||||
name: "zsfy",
|
||||
value: 0,
|
||||
url: "/dormitory/new/FdyConfirm"
|
||||
},
|
||||
],
|
||||
|
||||
|
||||
|
@@ -133,6 +133,19 @@ export default {
|
||||
value: 0,
|
||||
url: "/teacher/achievement/achievementCheck",
|
||||
},
|
||||
// 陈冠元
|
||||
{
|
||||
label: "学工·辅导员管理-业绩考核-科室复审",
|
||||
name: "yj",
|
||||
value: 0,
|
||||
url: "/teacher/teacherKpiFilling/studentAffairsOfficeAudit/KSAuditList",
|
||||
},
|
||||
{
|
||||
label: "学工·辅导员管理-业绩考核-学工处长审核",
|
||||
name: "bj",
|
||||
value: 0,
|
||||
url: "/teacher/teacherKpiFilling/studentAffairsOfficeAudit/XGCZAuditList",
|
||||
},
|
||||
],
|
||||
};
|
||||
},
|
||||
|
@@ -58,6 +58,13 @@ export default {
|
||||
value: 0,
|
||||
url: "/teacher/achievement/achievementCheck",
|
||||
},
|
||||
// 陈冠元
|
||||
{
|
||||
label: "书记·辅导员管理-业绩考核",
|
||||
name: "yj",
|
||||
value: 0,
|
||||
url: "/teacher/teacherKpiFilling/collegeAudit/DZZSJAuditList",
|
||||
},
|
||||
],
|
||||
};
|
||||
},
|
||||
|
@@ -109,6 +109,13 @@ export default {
|
||||
value: 0,
|
||||
url: "/teacher/achievement/achievementCheck",
|
||||
},
|
||||
// 陈冠元
|
||||
{
|
||||
label: "学务·辅导员管理-业绩考核",
|
||||
name: "yj",
|
||||
value: 0,
|
||||
url: "/teacher/teacherKpiFilling/collegeAudit/XWAuditList",
|
||||
},
|
||||
],
|
||||
};
|
||||
},
|
||||
|
@@ -4,7 +4,22 @@
|
||||
<el-form-item label="学号" prop="studentCode">
|
||||
<el-input v-model="queryParams.studentCode" placeholder="请输入学号" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="班级" prop="deptId">
|
||||
<el-form-item label="班级" prop="classId" v-if="xflag">
|
||||
<el-select
|
||||
v-model="queryParams.classId"
|
||||
placeholder="请选择班级"
|
||||
clearable
|
||||
filterable
|
||||
style="width: 300px;">
|
||||
<el-option
|
||||
v-for="item in cascaderData"
|
||||
:key="item.classId"
|
||||
:label="item.className"
|
||||
:value="item.classId">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="班级" prop="deptId" v-else>
|
||||
<el-cascader v-model="queryParams.classId" ref="cas" style="width: 500px;" :options="cascaderData"
|
||||
:props="{ checkStrictly: false }" @change="handleChange" clearable filterable></el-cascader>
|
||||
</el-form-item>
|
||||
@@ -479,7 +494,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listIdentifytexs, getIdentifytexs, delIdentifytexs, addIdentifytexs, updateIdentifytexs } from "@/api/comprehensive/identifytexs";
|
||||
import { listIdentifytexs, getIdentifytexs, delIdentifytexs, addIdentifytexs, updateIdentifytexs, deptDataList } from "@/api/comprehensive/identifytexs";
|
||||
import { treeStudent } from "@/api/stuCQS/basedata/student";
|
||||
import { listQiyongYear as listYear } from "@/api/stuCQS/basedata/year";
|
||||
import * as XLSX from 'xlsx';
|
||||
@@ -519,6 +534,7 @@ export default {
|
||||
biaoJi: null,
|
||||
excelName: null,
|
||||
redingData: false,
|
||||
xflag: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
@@ -595,13 +611,20 @@ export default {
|
||||
},
|
||||
// 获取级联数据
|
||||
async getCascaderData() {
|
||||
const res = await treeStudent()
|
||||
const res = await deptDataList()
|
||||
this.cascaderData = res.data
|
||||
this.cascaderData.forEach(dept => {
|
||||
dept.children.forEach(major => {
|
||||
major.children.forEach(c => { delete c.children })
|
||||
})
|
||||
if(this.cascaderData.length > 0) {
|
||||
this.xflag = true;
|
||||
return;
|
||||
}
|
||||
const ress = await treeStudent()
|
||||
this.cascaderData = ress.data
|
||||
this.cascaderData.forEach(dept => {
|
||||
dept.children.forEach(major => {
|
||||
major.children.forEach(c => { delete c.children })
|
||||
})
|
||||
});
|
||||
//console.log(this.cascaderData, "班级数据");
|
||||
},
|
||||
// 获取学年信息
|
||||
async listAllStuYear() {
|
||||
|
@@ -4,7 +4,22 @@
|
||||
<el-form-item label="学号" prop="studentCode">
|
||||
<el-input v-model="queryParams.studentCode" placeholder="请输入学号" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="班级" prop="deptId">
|
||||
<el-form-item label="班级" prop="classId" v-if="xflag">
|
||||
<el-select
|
||||
v-model="queryParams.classId"
|
||||
placeholder="请选择班级"
|
||||
clearable
|
||||
filterable
|
||||
style="width: 300px;">
|
||||
<el-option
|
||||
v-for="item in cascaderData"
|
||||
:key="item.classId"
|
||||
:label="item.className"
|
||||
:value="item.classId">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="班级" prop="deptId" v-else>
|
||||
<el-cascader v-model="queryParams.classId" ref="cas" style="width: 500px;" :options="cascaderData"
|
||||
:props="{ checkStrictly: false }" @change="handleChange" clearable filterable></el-cascader>
|
||||
</el-form-item>
|
||||
@@ -388,6 +403,7 @@
|
||||
<script>
|
||||
import { listRemarkstext, getRemarkstext, delRemarkstext, addRemarkstext, updateRemarkstext } from "@/api/comprehensive/remarkstext";
|
||||
import { treeStudent } from "@/api/stuCQS/basedata/student";
|
||||
import { deptDataList } from "@/api/comprehensive/identifytexs";
|
||||
import { listQiyongYear as listYear } from "@/api/stuCQS/basedata/year";
|
||||
import * as XLSX from 'xlsx';
|
||||
import { excelDateToJSDate } from '@/utils/index';
|
||||
@@ -426,6 +442,7 @@ export default {
|
||||
excelName: null,
|
||||
mode: 'add',
|
||||
redingdata: false,
|
||||
xflag: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
@@ -492,12 +509,18 @@ export default {
|
||||
},
|
||||
// 获取级联数据
|
||||
async getCascaderData() {
|
||||
const res = await treeStudent()
|
||||
const res = await deptDataList()
|
||||
this.cascaderData = res.data
|
||||
this.cascaderData.forEach(dept => {
|
||||
dept.children.forEach(major => {
|
||||
major.children.forEach(c => { delete c.children })
|
||||
})
|
||||
if(this.cascaderData.length > 0) {
|
||||
this.xflag = true
|
||||
return;
|
||||
}
|
||||
const ress = await treeStudent()
|
||||
this.cascaderData = ress.data
|
||||
this.cascaderData.forEach(dept => {
|
||||
dept.children.forEach(major => {
|
||||
major.children.forEach(c => { delete c.children })
|
||||
})
|
||||
});
|
||||
},
|
||||
// 获取学年信息
|
||||
|
@@ -204,7 +204,10 @@ export default {
|
||||
let res = await initRecord(sdata);
|
||||
loading.close();
|
||||
if (res.code == 200) {
|
||||
this.$message.success(res.msg);
|
||||
this.$message.success(res.msg + ",住宿费用确认消息已发送给相关学生");
|
||||
this.getList(); // 刷新列表
|
||||
} else {
|
||||
this.$message.error(res.msg || "初始化失败");
|
||||
}
|
||||
},
|
||||
async listAllGrade() {
|
||||
|
@@ -40,7 +40,7 @@
|
||||
<el-form-item label="学院" prop="deptId">
|
||||
<el-select @change="changeDept" v-model="queryParams.deptId" placeholder="请选择学院" filterable
|
||||
clearable>
|
||||
<el-option v-for="(v, i) in deptList" :key="i" :label="v.label" :value="v.value">
|
||||
<el-option v-for="(v, i) in deptList" :key="i" :label="v.label" :value="v.value" :disabled="v.disabled">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -88,6 +88,43 @@
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
|
||||
<!-- 角色切换按钮 -->
|
||||
<el-form-item label="查看权限" v-if="showRoleSwitch">
|
||||
<el-button-group>
|
||||
<!-- 学工+辅导员组合 -->
|
||||
<template v-if="userRoleInfo && userRoleInfo.isXuegong && userRoleInfo.isFudaoyuan">
|
||||
<el-button
|
||||
:type="queryParams.roleType === 'xuegong' ? 'primary' : 'default'"
|
||||
size="mini"
|
||||
@click="switchRole('xuegong')">
|
||||
学工数据(全部)
|
||||
</el-button>
|
||||
<el-button
|
||||
:type="queryParams.roleType === 'teacher' ? 'primary' : 'default'"
|
||||
size="mini"
|
||||
@click="switchRole('teacher')">
|
||||
个人班级
|
||||
</el-button>
|
||||
</template>
|
||||
|
||||
<!-- 学务干事+辅导员组合 -->
|
||||
<template v-else-if="userRoleInfo && userRoleInfo.isXuewu && userRoleInfo.isFudaoyuan">
|
||||
<el-button
|
||||
:type="queryParams.roleType === 'dept' ? 'primary' : 'default'"
|
||||
size="mini"
|
||||
@click="switchRole('dept')">
|
||||
学院数据
|
||||
</el-button>
|
||||
<el-button
|
||||
:type="queryParams.roleType === 'teacher' ? 'primary' : 'default'"
|
||||
size="mini"
|
||||
@click="switchRole('teacher')">
|
||||
个人班级
|
||||
</el-button>
|
||||
</template>
|
||||
</el-button-group>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label=" ">
|
||||
<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>
|
||||
@@ -119,7 +156,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listView as getList, sendMail } from "@/api/dormitory/daily";
|
||||
import { listView as getList, sendMail, checkRoles } from "@/api/dormitory/daily";
|
||||
import { cleanNotStu } from "@/api/dormitory/basedata/dormitory";
|
||||
import { fullLoading, groupBy, getChineseKey, getImg, isEmpty } from "@/api/helpFunc";
|
||||
|
||||
@@ -139,8 +176,7 @@ export default {
|
||||
dicts: ['dorm_in_status'],
|
||||
data() {
|
||||
return {
|
||||
searInputS: ['1', '2'],
|
||||
// 遮罩层
|
||||
// 加载层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
@@ -162,75 +198,67 @@ export default {
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
campusId: null,
|
||||
parkId: null,
|
||||
buildingId: null,
|
||||
floorId: null,
|
||||
dormitoryId: null,
|
||||
bedId: null,
|
||||
deptId: null,
|
||||
majorId: null,
|
||||
classId: null,
|
||||
gradeId: null,
|
||||
stuNo: null,
|
||||
isDormitoryHead: null,
|
||||
status: null,
|
||||
checkinTime: null,
|
||||
inStatus: null
|
||||
stuName: null,
|
||||
teacherName: null,
|
||||
idCard: null,
|
||||
submitTime: null,
|
||||
roleType: null
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
dormitoryId: [
|
||||
{ required: true, message: "宿舍ID不能为空", trigger: "blur" }
|
||||
],
|
||||
bedId: [
|
||||
{ required: true, message: "床位ID不能为空", trigger: "blur" }
|
||||
],
|
||||
stuNo: [
|
||||
{ required: true, message: "学生学号不能为空", trigger: "blur" }
|
||||
],
|
||||
status: [
|
||||
{ required: true, message: "状态(0未缴费不能为空", trigger: "change" }
|
||||
],
|
||||
checkinTime: [
|
||||
{ required: true, message: "入住时间不能为空", trigger: "blur" }
|
||||
],
|
||||
},
|
||||
|
||||
fastForm: {
|
||||
campusId: null,
|
||||
parkId: null,
|
||||
buildingId: null,
|
||||
floorId: null,
|
||||
dormitoryId: null,
|
||||
},
|
||||
|
||||
|
||||
deptList: [],//学院列表
|
||||
majorList: [],//专业列表
|
||||
classList: [],//班级列表
|
||||
gradeList: [],//年级列表
|
||||
|
||||
searInputS: ['1', '2'],
|
||||
campus_list: [],
|
||||
park_list: [],
|
||||
building_list: [],
|
||||
floor_list: [],
|
||||
room_list: [],
|
||||
|
||||
|
||||
exportV: false,
|
||||
campus_list: [],
|
||||
fast_park_list: [],
|
||||
fast_building_list: [],
|
||||
fast_floor_list: [],
|
||||
fast_class_list: [],
|
||||
fast_major_list: [],
|
||||
fast_room_list: [],
|
||||
|
||||
uploadV: false,
|
||||
deptList: [],
|
||||
majorList: [],
|
||||
classList: [],
|
||||
gradeList: [],
|
||||
userRoleInfo: null,
|
||||
showRoleSwitch: false,
|
||||
// 导入参数
|
||||
upload: {
|
||||
// 是否显示弹出层(导入)
|
||||
open: false,
|
||||
// 弹出层标题(导入)
|
||||
title: "",
|
||||
// 是否禁用上传
|
||||
isUploading: false,
|
||||
// 是否更新已经存在的用户数据
|
||||
updateSupport: 0,
|
||||
// 设置上传的请求头部
|
||||
headers: { Authorization: 'Bearer ' + getTokenKeySessionStorage() },
|
||||
url: process.env.VUE_APP_BASE_API + '/dormitory/srs-dormitory-student/importData',
|
||||
// 上传的地址
|
||||
url: process.env.VUE_APP_BASE_API + '/dormitory/srs-dormitory-student/importData'
|
||||
},
|
||||
allLoading: false
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.listDept();
|
||||
async created() {
|
||||
await this.getUserRoles();
|
||||
await this.listDept();
|
||||
this.listGrade();
|
||||
this.getList();
|
||||
this.listAllCampus();
|
||||
@@ -247,8 +275,8 @@ export default {
|
||||
},
|
||||
async changeFloor(val) {
|
||||
this.queryParams.dormitoryId = null;
|
||||
|
||||
this.room_list = [];
|
||||
|
||||
if (!isEmpty(val)) {
|
||||
let res = await listAllRoomByFloor(this.queryParams.floorId);
|
||||
if (res.code == 200) {
|
||||
@@ -259,9 +287,10 @@ export default {
|
||||
|
||||
async changeBuilding(val) {
|
||||
this.queryParams.floorId = null;
|
||||
this.queryParams.dormitoryId = null;
|
||||
this.floor_list = [];
|
||||
this.room_list = [];
|
||||
this.queryParams.dormitoryId = null;
|
||||
|
||||
if (!isEmpty(val)) {
|
||||
let res = await listFloorByBuilding(this.queryParams.buildingId);
|
||||
if (res.code == 200) {
|
||||
@@ -273,7 +302,6 @@ export default {
|
||||
this.queryParams.buildingId = null;
|
||||
this.queryParams.floorId = null;
|
||||
this.queryParams.dormitoryId = null;
|
||||
|
||||
this.building_list = [];
|
||||
this.floor_list = [];
|
||||
this.room_list = [];
|
||||
@@ -291,7 +319,6 @@ export default {
|
||||
this.queryParams.buildingId = null;
|
||||
this.queryParams.floorId = null;
|
||||
this.queryParams.dormitoryId = null;
|
||||
|
||||
this.park_list = [];
|
||||
this.building_list = [];
|
||||
this.floor_list = [];
|
||||
@@ -304,44 +331,43 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
|
||||
async listGrade() {
|
||||
let res = await listGrade();
|
||||
this.gradeList = [...res.rows];
|
||||
},
|
||||
|
||||
async changeMajor() {
|
||||
if (!isEmpty(this.queryParams.majorId)) {
|
||||
let sdata = {
|
||||
majorId: this.queryParams.majorId
|
||||
async changeMajor(val) {
|
||||
this.queryParams.classId = null;
|
||||
this.classList = [];
|
||||
if (!isEmpty(val)) {
|
||||
let res = await listClass({ majorId: this.queryParams.majorId });
|
||||
if (res.code == 200) {
|
||||
this.classList = [...res.data];
|
||||
}
|
||||
let res = await listClass(sdata);
|
||||
this.classList = [...res.data];
|
||||
} else {
|
||||
this.queryParams.classId = null;
|
||||
this.classList = [];
|
||||
}
|
||||
|
||||
},
|
||||
async changeDept() {
|
||||
if (!isEmpty(this.queryParams.deptId)) {
|
||||
let sdata = {
|
||||
collegeId: this.queryParams.deptId,
|
||||
pageNum: 1,
|
||||
pageSize: 100
|
||||
async changeDept(val) {
|
||||
this.queryParams.majorId = null;
|
||||
this.queryParams.classId = null;
|
||||
this.majorList = [];
|
||||
this.classList = [];
|
||||
if (!isEmpty(val)) {
|
||||
let res = await listMajors({ collegeId: this.queryParams.deptId, pageNum: 1, pageSize: 100 });
|
||||
if (res.code == 200) {
|
||||
this.majorList = [...res.rows];
|
||||
}
|
||||
let res = await listMajors(sdata);
|
||||
this.majorList = [...res.rows];
|
||||
} else {
|
||||
this.queryParams.majorId = null;
|
||||
this.majorList = [];
|
||||
}
|
||||
},
|
||||
async listDept() {
|
||||
let res = await getDeptName();
|
||||
this.deptList = [...res.data];
|
||||
let allDepts = [...res.data];
|
||||
|
||||
// 如果是学务干事或辅导员(但不是学工),只显示其所属的学院
|
||||
// 学工角色可以查看所有学院
|
||||
if (this.userRoleInfo && (this.userRoleInfo.isXuewu || this.userRoleInfo.isFudaoyuan) && !this.userRoleInfo.isXuegong && this.userRoleInfo.userDeptName) {
|
||||
this.deptList = allDepts.filter(dept => dept.label === this.userRoleInfo.userDeptName);
|
||||
} else {
|
||||
this.deptList = allDepts;
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@@ -353,42 +379,40 @@ export default {
|
||||
},
|
||||
|
||||
async changeFastFloor(val) {
|
||||
this.form.dormitoryId = null;
|
||||
|
||||
this.fast_room_list = [];
|
||||
this.fastForm.dormitoryId = null;
|
||||
this.room_list = [];
|
||||
if (!isEmpty(val)) {
|
||||
let res = await listAllRoomByFloor(this.fastForm.floorId);
|
||||
if (res.code == 200) {
|
||||
this.fast_room_list = [...res.data];
|
||||
this.room_list = [...res.data];
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
async changeFastBuilding(val) {
|
||||
this.fastForm.floorId = null;
|
||||
this.fast_floor_list = [];
|
||||
this.fast_room_list = [];
|
||||
this.form.dormitoryId = null;
|
||||
this.fastForm.dormitoryId = null;
|
||||
this.floor_list = [];
|
||||
this.room_list = [];
|
||||
if (!isEmpty(val)) {
|
||||
let res = await listFloorByBuilding(this.fastForm.buildingId);
|
||||
if (res.code == 200) {
|
||||
this.fast_floor_list = [...res.data];
|
||||
this.floor_list = [...res.data];
|
||||
}
|
||||
}
|
||||
},
|
||||
async changeFastPark(val) {
|
||||
this.fastForm.buildingId = null;
|
||||
this.fastForm.floorId = null;
|
||||
this.form.dormitoryId = null;
|
||||
|
||||
this.fast_building_list = [];
|
||||
this.fast_floor_list = [];
|
||||
this.fast_room_list = [];
|
||||
this.fastForm.dormitoryId = null;
|
||||
this.building_list = [];
|
||||
this.floor_list = [];
|
||||
this.room_list = [];
|
||||
|
||||
if (!isEmpty(val)) {
|
||||
let res = await listBuildingByPark(this.fastForm.parkId);
|
||||
if (res.code == 200) {
|
||||
this.fast_building_list = [...res.data];
|
||||
this.building_list = [...res.data];
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -397,17 +421,16 @@ export default {
|
||||
this.fastForm.parkId = null;
|
||||
this.fastForm.buildingId = null;
|
||||
this.fastForm.floorId = null;
|
||||
this.form.dormitoryId = null;
|
||||
|
||||
this.fast_park_list = [];
|
||||
this.fast_building_list = [];
|
||||
this.fast_floor_list = [];
|
||||
this.fast_room_list = [];
|
||||
this.fastForm.dormitoryId = null;
|
||||
this.park_list = [];
|
||||
this.building_list = [];
|
||||
this.floor_list = [];
|
||||
this.room_list = [];
|
||||
|
||||
if (!isEmpty(val)) {
|
||||
let res = await listParkByCampus(this.fastForm.campusId);
|
||||
if (res.code == 200) {
|
||||
this.fast_park_list = [...res.data];
|
||||
this.park_list = [...res.data];
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -441,13 +464,13 @@ export default {
|
||||
reset() {
|
||||
this.form = {
|
||||
id: null,
|
||||
stuId: null,
|
||||
dormitoryId: null,
|
||||
bedId: null,
|
||||
stuNo: null,
|
||||
isDormitoryHead: null,
|
||||
status: null,
|
||||
checkinTime: null,
|
||||
inStatus: null
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateBy: null,
|
||||
updateTime: null,
|
||||
remark: null
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
@@ -462,7 +485,33 @@ export default {
|
||||
this.handleQuery();
|
||||
},
|
||||
|
||||
/** 获取用户角色信息 */
|
||||
async getUserRoles() {
|
||||
try {
|
||||
let res = await checkRoles();
|
||||
if (res.code === 200 && res.data) {
|
||||
this.userRoleInfo = res.data;
|
||||
// 只有在多角色情况下才显示角色切换按钮
|
||||
if (res.data.hasMultipleRoles) {
|
||||
this.showRoleSwitch = true;
|
||||
} else {
|
||||
this.showRoleSwitch = false;
|
||||
}
|
||||
// 设置默认角色类型
|
||||
this.queryParams.roleType = res.data.defaultRole;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('获取用户角色信息失败:', error);
|
||||
}
|
||||
},
|
||||
|
||||
/** 切换角色 */
|
||||
switchRole(roleType) {
|
||||
this.queryParams.roleType = roleType;
|
||||
// 角色切换时重新加载学院列表,确保权限正确
|
||||
this.listDept();
|
||||
this.handleQuery();
|
||||
},
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@@ -472,4 +521,5 @@ export default {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
|
@@ -42,6 +42,7 @@
|
||||
<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-button type="success" icon="el-icon-check" size="mini" @click="fastConfirm">一键确认所有辅导员已确认的记录</el-button>
|
||||
<el-button type="success" icon="el-icon-check" size="mini" @click="confirmUnconfirmedStudents">一键确认未进行住宿费用确认的学生</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
@@ -152,7 +153,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { fastConfirm, jwcConfirm, listNewRecord, getNewRecord, delNewRecord, addNewRecord, updateNewRecord } from "@/api/dormitory/new/record";
|
||||
import { fastConfirm, jwcConfirm, listNewRecord, getNewRecord, delNewRecord, addNewRecord, updateNewRecord, confirmUnconfirmedStudents } from "@/api/dormitory/new/record";
|
||||
|
||||
import { listAllYear } from "@/api/stuCQS/basedata/year";
|
||||
|
||||
@@ -358,6 +359,26 @@ export default {
|
||||
this.download('dormitory/newRecord/export', {
|
||||
...this.queryParams
|
||||
}, `newRecord_${new Date().getTime()}.xlsx`)
|
||||
},
|
||||
/** 一键确认未进行住宿费用确认的学生 */
|
||||
confirmUnconfirmedStudents() {
|
||||
this.$modal.confirm('确定要一键确认所有未进行住宿费用确认的学生吗?').then(() => {
|
||||
this.loading = true;
|
||||
confirmUnconfirmedStudents().then(response => {
|
||||
this.loading = false;
|
||||
if (response.code === 200) {
|
||||
this.$modal.msgSuccess(response.msg || "确认成功");
|
||||
this.getList();
|
||||
} else {
|
||||
this.$modal.msgError(response.msg || "确认失败");
|
||||
}
|
||||
}).catch(error => {
|
||||
this.loading = false;
|
||||
this.$modal.msgError("操作失败,请稍后重试");
|
||||
});
|
||||
}).catch(() => {
|
||||
// 用户取消操作
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@@ -42,6 +42,14 @@
|
||||
<template slot="label"> 班级 </template>
|
||||
{{ form.className }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 民族 </template>
|
||||
{{ form.mz }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 政治面貌 </template>
|
||||
{{ form.politicalStatus }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
||||
{{ form.jg }}
|
||||
|
@@ -56,6 +56,11 @@
|
||||
{{ form.mz }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 政治面貌 </template>
|
||||
{{ form.politicalStatus }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
||||
{{ form.jg }}
|
||||
|
@@ -121,6 +121,10 @@
|
||||
<template slot="label"> 民族 </template>
|
||||
{{ form.mz }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 政治面貌 </template>
|
||||
{{ form.politicalStatus }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 出生日期 </template>
|
||||
{{ form.birthday }}
|
||||
@@ -185,6 +189,10 @@
|
||||
<template slot="label"> 民族 </template>
|
||||
{{ form.mz }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 政治面貌 </template>
|
||||
{{ form.politicalStatus }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 出生日期 </template>
|
||||
{{ form.birthday }}
|
||||
@@ -265,6 +273,11 @@
|
||||
{{ form.mz }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 政治面貌 </template>
|
||||
{{ form.politicalStatus }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
||||
{{ form.jg }}
|
||||
|
@@ -56,6 +56,11 @@
|
||||
{{ form.mz }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 政治面貌 </template>
|
||||
{{ form.politicalStatus }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
||||
{{ form.jg }}
|
||||
|
@@ -58,6 +58,11 @@
|
||||
{{ form.mz }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 政治面貌 </template>
|
||||
{{ form.politicalStatus }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
||||
{{ form.jg }}
|
||||
|
@@ -42,7 +42,7 @@
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
@@ -64,7 +64,7 @@
|
||||
v-hasPermi="['system:deployment:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
</el-col>
|
||||
</el-col> -->
|
||||
<right-toolbar
|
||||
:showSearch.sync="showSearch"
|
||||
@queryTable="getList"
|
||||
@@ -90,12 +90,12 @@
|
||||
prop="procDefName"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
<!-- <el-table-column
|
||||
label="流程类别"
|
||||
align="center"
|
||||
prop="category"
|
||||
width="100px"
|
||||
/>
|
||||
/> -->
|
||||
<!-- <el-table-column label="流程版本" align="center" width="80px">
|
||||
<template slot-scope="scope">
|
||||
<el-tag size="medium">v{{ scope.row.procDefVersion }}</el-tag>
|
||||
@@ -159,6 +159,7 @@
|
||||
>删除</el-button
|
||||
>
|
||||
</template>
|
||||
<a href=""></a>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
|
@@ -42,6 +42,14 @@
|
||||
<template slot="label"> 班级 </template>
|
||||
{{ form.className }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 民族 </template>
|
||||
{{ form.mz }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 政治面貌 </template>
|
||||
{{ form.politicalStatus }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
||||
{{ form.jg }}
|
||||
|
@@ -57,6 +57,10 @@
|
||||
<template slot="label"> 民族 </template>
|
||||
{{ form.mz }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 政治面貌 </template>
|
||||
{{ form.politicalStatus }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
||||
|
@@ -123,6 +123,10 @@
|
||||
<template slot="label"> 民族 </template>
|
||||
{{ form.mz }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 政治面貌 </template>
|
||||
{{ form.politicalStatus }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 出生日期 </template>
|
||||
{{ form.birthday }}
|
||||
@@ -195,6 +199,10 @@
|
||||
<template slot="label"> 民族 </template>
|
||||
{{ form.mz }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 政治面貌 </template>
|
||||
{{ form.politicalStatus }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 出生日期 </template>
|
||||
{{ form.birthday }}
|
||||
@@ -274,6 +282,10 @@
|
||||
<template slot="label"> 民族 </template>
|
||||
{{ form.mz }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 政治面貌 </template>
|
||||
{{ form.politicalStatus }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
||||
|
@@ -57,6 +57,10 @@
|
||||
<template slot="label"> 民族 </template>
|
||||
{{ form.mz }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 政治面貌 </template>
|
||||
{{ form.politicalStatus }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
||||
|
@@ -57,6 +57,10 @@
|
||||
<template slot="label"> 民族 </template>
|
||||
{{ form.mz }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 政治面貌 </template>
|
||||
{{ form.politicalStatus }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
||||
|
@@ -41,6 +41,10 @@
|
||||
<template slot="label"> 民族 </template>
|
||||
{{ form.mz }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 政治面貌 </template>
|
||||
{{ form.politicalStatus }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 出生日期 </template>
|
||||
{{ form.birthday }}
|
||||
|
@@ -23,16 +23,16 @@
|
||||
<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="['routine:disciplinaryApplication:add']">新增</el-button>
|
||||
v-hasPermi="['routine:disciplinaryApplication:add']">发起处分</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
|
||||
v-hasPermi="['routine:disciplinaryApplication: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="['routine:disciplinaryApplication:remove']">删除</el-button>
|
||||
</el-col>
|
||||
</el-col> -->
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
|
||||
v-hasPermi="['routine:disciplinaryApplication:export']">导出</el-button>
|
||||
@@ -136,6 +136,18 @@
|
||||
<el-input v-model="form.mz" placeholder="" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="政治面貌" prop="politicalStatus">
|
||||
<el-select v-model="form.politicalStatus" placeholder="请选择政治面貌" clearable>
|
||||
<el-option label="群众" value="群众"></el-option>
|
||||
<el-option label="团员" value="团员"></el-option>
|
||||
<el-option label="中共党员" value="中共党员"></el-option>
|
||||
<el-option label="其他" value="其他"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="出生日期" prop="birthday">
|
||||
<el-input v-model="form.birthday" placeholder="" />
|
||||
@@ -267,6 +279,7 @@ export default {
|
||||
gradeName: [{ required: true, message: '请输入年级', trigger: 'blur' }],
|
||||
className: [{ required: true, message: '请输入班级', trigger: 'blur' }],
|
||||
mz: [{ required: true, message: '请输入民族', trigger: 'blur' }],
|
||||
politicalStatus: [{ required: true, message: '请选择政治面貌', trigger: 'blur' }],
|
||||
birthday: [{ required: true, message: '请输入出生日期', trigger: 'blur' }],
|
||||
jg: [{ required: true, message: '请选择籍贯', trigger: 'blur' }],
|
||||
violationDate: [{ required: true, message: '请选择违纪时间', trigger: 'blur' }],
|
||||
|
@@ -19,16 +19,16 @@
|
||||
<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="['routine:disqualification:add']">新增</el-button>
|
||||
v-hasPermi="['routine:disqualification:add']">给予学生退学申请</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
|
||||
v-hasPermi="['routine:disqualification: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="['routine:disqualification:remove']">删除</el-button>
|
||||
</el-col>
|
||||
</el-col> -->
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
|
||||
v-hasPermi="['routine:disqualification:export']">导出</el-button>
|
||||
@@ -240,7 +240,9 @@ export default {
|
||||
departmentName: [{ required: true, message: '部门不能为空', trigger: 'blur' }],
|
||||
gradeName: [{ required: true, message: '年级不能为空', trigger: 'blur' }],
|
||||
className: [{ required: true, message: '班级不能为空', trigger: 'blur' }],
|
||||
mz: [{ required: true, message: '民族不能为空', trigger: 'blur' }],
|
||||
jg: [{ required: true, message: '籍贯不能为空', trigger: 'blur' }],
|
||||
politicalStatus: [{ required: true, message: '请选择政治面貌', trigger: 'blur' }],
|
||||
attachmentUpload: [{ required: true, message: '请上传附件', trigger: 'blur' }],
|
||||
ideologicalEducation: [{ required: true, message: '请输入辅导员联系情况及学生不在校情况说明', trigger: 'blur' }],
|
||||
instructionSchoolHours: [{ required: true, message: '在校时间说明', trigger: 'blur' }],
|
||||
|
@@ -41,6 +41,10 @@
|
||||
<template slot="label"> 民族 </template>
|
||||
{{ form.mz }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 政治面貌 </template>
|
||||
{{ form.politicalStatus }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label"> 出生日期 </template>
|
||||
{{ form.birthday }}
|
||||
|
@@ -18,14 +18,14 @@
|
||||
|
||||
<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="['routine:relieve:add']">新增</el-button>
|
||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['routine:relieve:add']">发起解除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" v-hasPermi="['routine:relieve: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="['routine:relieve:remove']">删除</el-button>
|
||||
</el-col>
|
||||
</el-col> -->
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['routine:relieve:export']">导出</el-button>
|
||||
</el-col>
|
||||
@@ -119,6 +119,18 @@
|
||||
<el-input v-model="form.mz" placeholder="" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="政治面貌" prop="politicalStatus">
|
||||
<el-select v-model="form.politicalStatus" placeholder="请选择政治面貌" clearable>
|
||||
<el-option label="群众" value="群众"></el-option>
|
||||
<el-option label="团员" value="团员"></el-option>
|
||||
<el-option label="中共党员" value="中共党员"></el-option>
|
||||
<el-option label="其他" value="其他"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="出生日期" prop="birthday">
|
||||
<el-input v-model="form.birthday" placeholder="" />
|
||||
@@ -247,6 +259,7 @@ export default {
|
||||
gradeName: [{ required: true, message: '请输入年级', trigger: 'blur' }],
|
||||
className: [{ required: true, message: '请输入班级', trigger: 'blur' }],
|
||||
mz: [{ required: true, message: '请输入民族', trigger: 'blur' }],
|
||||
politicalStatus: [{ required: true, message: '请选择政治面貌', trigger: 'blur' }],
|
||||
birthday: [{ required: true, message: '请输入出生日期', trigger: 'blur' }],
|
||||
jg: [{ required: true, message: '请选择籍贯', trigger: 'blur' }],
|
||||
penaltyNumber: [{ required: true, message: '请输入处分文号', trigger: 'blur' }],
|
||||
|
@@ -20,14 +20,14 @@
|
||||
|
||||
<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="['routine:rtStuDropOutSchool:add']">新增</el-button>
|
||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['routine:rtStuDropOutSchool:add']">发起退学</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" v-hasPermi="['routine:rtStuDropOutSchool: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="['routine:rtStuDropOutSchool:remove']">删除</el-button>
|
||||
</el-col>
|
||||
</el-col> -->
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['routine:rtStuDropOutSchool:export']">导出</el-button>
|
||||
</el-col>
|
||||
@@ -304,6 +304,7 @@ export default {
|
||||
parentPhone: [{ required: true, message: '家长电话不能为空', trigger: 'blur' }],
|
||||
mz: [{ required: true, message: '民族不能为空', trigger: 'blur' }],
|
||||
jg: [{ required: true, message: '籍贯不能为空', trigger: 'blur' }],
|
||||
politicalStatus: [{ required: true, message: '请选择政治面貌', trigger: 'blur' }],
|
||||
attachmentUpload: [{ required: true, message: '请上传附件', trigger: 'blur' }],
|
||||
reasonApplying: [{ required: true, message: '请输入申请原因', trigger: 'blur' }],
|
||||
applySignature: [{ required: true, message: '请上传申请人签名', trigger: 'blur' }],
|
||||
|
@@ -18,14 +18,14 @@
|
||||
|
||||
<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="['routine:rtStuQuitSchool:add']">新增</el-button>
|
||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['routine:rtStuQuitSchool:add']">发起休学</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" v-hasPermi="['routine:rtStuQuitSchool: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="['routine:rtStuQuitSchool:remove']">删除</el-button>
|
||||
</el-col>
|
||||
</el-col> -->
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['routine:rtStuQuitSchool:export']">导出</el-button>
|
||||
</el-col>
|
||||
@@ -293,6 +293,7 @@ export default {
|
||||
parentPhone: [{ required: true, message: '家长电话不能为空', trigger: 'blur' }],
|
||||
mz: [{ required: true, message: '民族不能为空', trigger: 'blur' }],
|
||||
jg: [{ required: true, message: '籍贯不能为空', trigger: 'blur' }],
|
||||
politicalStatus: [{ required: true, message: '请选择政治面貌', trigger: 'blur' }],
|
||||
attachmentUpload: [{ required: true, message: '请上传附件', trigger: 'blur' }],
|
||||
reasonApplying: [{ required: true, message: '请输入申请原因', trigger: 'blur' }],
|
||||
applySignature: [{ required: true, message: '请上传申请人签名', trigger: 'blur' }],
|
||||
|
@@ -18,14 +18,14 @@
|
||||
|
||||
<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="['routine:rtStuReentrySchool:add']">新增</el-button>
|
||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['routine:rtStuReentrySchool:add']">发起复学</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" v-hasPermi="['routine:rtStuReentrySchool: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="['routine:rtStuReentrySchool:remove']">删除</el-button>
|
||||
</el-col>
|
||||
</el-col> -->
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['routine:rtStuReentrySchool:export']">导出</el-button>
|
||||
</el-col>
|
||||
@@ -308,6 +308,7 @@ export default {
|
||||
parentPhone: [{ required: true, message: '家长电话不能为空', trigger: 'blur' }],
|
||||
mz: [{ required: true, message: '民族不能为空', trigger: 'blur' }],
|
||||
jg: [{ required: true, message: '籍贯不能为空', trigger: 'blur' }],
|
||||
politicalStatus: [{ required: true, message: '请选择政治面貌', trigger: 'blur' }],
|
||||
attachmentUpload: [{ required: true, message: '请上传附件', trigger: 'blur' }],
|
||||
reasonApplying: [{ required: true, message: '请输入申请原因', trigger: 'blur' }],
|
||||
applySignature: [{ required: true, message: '请上传申请人签名', trigger: 'blur' }],
|
||||
|
@@ -16,7 +16,7 @@
|
||||
</el-form-item> -->
|
||||
<el-form-item label="审核时间" prop="reviewTime">
|
||||
<el-date-picker clearable v-model="queryParams.reviewTime" type="date" value-format="yyyy-MM-dd"
|
||||
placeholder="请选择审核时间">
|
||||
placeholder="请选择审核时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
@@ -28,19 +28,19 @@
|
||||
<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="['routine:stuMultiLevelReview:add']">新增</el-button>
|
||||
v-hasPermi="['routine:stuMultiLevelReview: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="['routine:stuMultiLevelReview:edit']">修改</el-button>
|
||||
v-hasPermi="['routine:stuMultiLevelReview: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="['routine:stuMultiLevelReview:remove']">删除</el-button>
|
||||
v-hasPermi="['routine:stuMultiLevelReview: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="['routine:stuMultiLevelReview:export']">导出</el-button>
|
||||
v-hasPermi="['routine:stuMultiLevelReview:export']">导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getUser"></right-toolbar>
|
||||
</el-row>
|
||||
@@ -76,17 +76,17 @@
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="300">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" @click="handleCompleted(scope.row)"
|
||||
v-hasPermi="['routine:stuMultiLevelReview:completed']" v-if="scope.row.reviewerStatus === 2">完成制作</el-button>
|
||||
v-hasPermi="['routine:stuMultiLevelReview:completed']" v-if="scope.row.reviewerStatus === 2">完成制作</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['routine:stuMultiLevelReview:edit']">修改</el-button>
|
||||
v-hasPermi="['routine:stuMultiLevelReview:edit']">修改</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
|
||||
v-hasPermi="['routine:stuMultiLevelReview:remove']">删除</el-button>
|
||||
v-hasPermi="['routine:stuMultiLevelReview: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="getUser" />
|
||||
@pagination="getUser" />
|
||||
|
||||
<!-- 添加或修改多级审核
|
||||
对话框 -->
|
||||
@@ -109,7 +109,7 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="审核时间" prop="reviewTime">
|
||||
<el-date-picker clearable v-model="form.reviewTime" type="date" value-format="yyyy-MM-dd"
|
||||
placeholder="请选择审核时间">
|
||||
placeholder="请选择审核时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="notes">
|
||||
@@ -229,7 +229,7 @@ export default {
|
||||
this.roleGroup = response.roleGroup;
|
||||
// this.postGroup = response.postGroup;
|
||||
// console.log(response);
|
||||
if (!response.roleGroup.includes("超级管理员")) {
|
||||
if (!response.roleGroup.includes("超级管理员")) {
|
||||
this.queryParams.reviewer = response.data.nickName
|
||||
}
|
||||
this.getList();
|
||||
@@ -237,7 +237,7 @@ export default {
|
||||
});
|
||||
},
|
||||
/** 查询多级审核
|
||||
列表 */
|
||||
列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
listStuMultiLevelReview(this.queryParams).then(response => {
|
||||
@@ -346,25 +346,25 @@ export default {
|
||||
this.completedForm.id = row.id;
|
||||
this.completedOpen = true;
|
||||
},
|
||||
|
||||
|
||||
// 完成制作表单重置
|
||||
resetCompleted() {
|
||||
this.completedForm = {
|
||||
stuName: null,
|
||||
stuNo: null,
|
||||
reason: null,
|
||||
messageContent: "你申请办理的学生证制作完成,长堽校区前往xxx领取,里建校区前往xxx领取",
|
||||
messageContent: "你申请办理的学生证制作完成,长堽校区前往经管楼学工处1-1办公室领取,里建校区前往“一站式”学生社区大厅领取",
|
||||
id: null
|
||||
};
|
||||
this.resetForm("completedForm");
|
||||
},
|
||||
|
||||
|
||||
// 完成制作取消按钮
|
||||
cancelCompleted() {
|
||||
this.completedOpen = false;
|
||||
this.resetCompleted();
|
||||
},
|
||||
|
||||
|
||||
// 完成制作提交按钮
|
||||
submitCompleted() {
|
||||
this.$refs["completedForm"].validate(valid => {
|
||||
@@ -374,10 +374,10 @@ export default {
|
||||
const receiverId = response.data;
|
||||
if (!receiverId) {
|
||||
throw new Error('未找到学生用户ID');
|
||||
}
|
||||
}
|
||||
// 第二步:获取当前用户信息作为发送者
|
||||
return getUserProfile().then(userResponse => {
|
||||
const senderId = userResponse.data.userId;
|
||||
const senderId = userResponse.data.userId;
|
||||
// 第三步:发送消息通知学生
|
||||
return addMsg({
|
||||
sender: senderId,
|
||||
|
Reference in New Issue
Block a user