Merge branch 'main' of http://47.112.118.149:10082/xgxt_sd/zhxg_pc
# Conflicts: # src/views/Home/comps/jwc-undo.vue
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import request from '@/utils/request'
|
import request from "@/utils/request";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取聊天历史记录
|
* 获取聊天历史记录
|
||||||
@@ -9,29 +9,24 @@ import request from '@/utils/request'
|
|||||||
* @param {string} [params.beforeId] 获取此ID之前的记录
|
* @param {string} [params.beforeId] 获取此ID之前的记录
|
||||||
* @returns {Promise} 包含历史记录的Promise
|
* @returns {Promise} 包含历史记录的Promise
|
||||||
*/
|
*/
|
||||||
export const getHistory = ({
|
export const getHistory = ({ conversationId, user, limit = 20, beforeId }) => {
|
||||||
|
const params = {
|
||||||
conversationId,
|
conversationId,
|
||||||
user,
|
user,
|
||||||
limit = 20,
|
limit,
|
||||||
beforeId
|
};
|
||||||
}) => {
|
|
||||||
const params = {
|
|
||||||
conversationId,
|
|
||||||
user,
|
|
||||||
limit
|
|
||||||
}
|
|
||||||
|
|
||||||
// 如果有beforeId参数,添加到请求中(后端参数名为firstId)
|
// 如果有beforeId参数,添加到请求中(后端参数名为firstId)
|
||||||
if (beforeId) {
|
if (beforeId) {
|
||||||
params.firstId = beforeId
|
params.firstId = beforeId;
|
||||||
}
|
}
|
||||||
|
|
||||||
return request({
|
return request({
|
||||||
url: '/aitutor/aichat/getMessagesToUser',
|
url: "/aitutor/aichat/getMessagesToUser",
|
||||||
method: 'get',
|
method: "get",
|
||||||
params
|
params,
|
||||||
})
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发送反馈(点赞/点踩)
|
* 发送反馈(点赞/点踩)
|
||||||
@@ -41,21 +36,17 @@ export const getHistory = ({
|
|||||||
* @param {string} params.user 用户ID
|
* @param {string} params.user 用户ID
|
||||||
* @returns {Promise} 包含操作结果的Promise
|
* @returns {Promise} 包含操作结果的Promise
|
||||||
*/
|
*/
|
||||||
export const sendFeedback = ({
|
export const sendFeedback = ({ messageId, action, user }) => {
|
||||||
messageId,
|
return request({
|
||||||
action,
|
url: "/aitutor/aichat/feedback",
|
||||||
user
|
method: "post",
|
||||||
}) => {
|
data: {
|
||||||
return request({
|
message_id: messageId,
|
||||||
url: '/aitutor/aichat/feedback',
|
rating: action === 1 ? "like" : "dislike",
|
||||||
method: 'post',
|
user,
|
||||||
data: {
|
},
|
||||||
message_id: messageId,
|
});
|
||||||
rating: action === 1 ? 'like' : 'dislike',
|
};
|
||||||
user
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上传文件
|
* 上传文件
|
||||||
@@ -64,16 +55,16 @@ export const sendFeedback = ({
|
|||||||
* @returns {Promise} 包含文件URL的Promise
|
* @returns {Promise} 包含文件URL的Promise
|
||||||
*/
|
*/
|
||||||
export const uploadFile = (formData, user) => {
|
export const uploadFile = (formData, user) => {
|
||||||
formData.append('user', user)
|
formData.append("user", user);
|
||||||
return request({
|
return request({
|
||||||
url: '/aitutor/aichat/files/upload',
|
url: "/aitutor/aichat/files/upload",
|
||||||
method: 'post',
|
method: "post",
|
||||||
data: formData,
|
data: formData,
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'multipart/form-data'
|
"Content-Type": "multipart/form-data",
|
||||||
}
|
},
|
||||||
})
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建新会话
|
* 创建新会话
|
||||||
@@ -82,15 +73,15 @@ export const uploadFile = (formData, user) => {
|
|||||||
* @returns {Promise} 包含新会话ID的Promise
|
* @returns {Promise} 包含新会话ID的Promise
|
||||||
*/
|
*/
|
||||||
export const createConversation = (user, title) => {
|
export const createConversation = (user, title) => {
|
||||||
return request({
|
return request({
|
||||||
url: '/aitutor/aichat/conversation/create',
|
url: "/aitutor/aichat/conversation/create",
|
||||||
method: 'post',
|
method: "post",
|
||||||
data: {
|
data: {
|
||||||
user,
|
user,
|
||||||
title
|
title,
|
||||||
}
|
},
|
||||||
})
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除会话
|
* 删除会话
|
||||||
@@ -99,12 +90,12 @@ export const createConversation = (user, title) => {
|
|||||||
* @returns {Promise} 包含操作结果的Promise
|
* @returns {Promise} 包含操作结果的Promise
|
||||||
*/
|
*/
|
||||||
export const deleteConversation = (conversationId, user) => {
|
export const deleteConversation = (conversationId, user) => {
|
||||||
return request({
|
return request({
|
||||||
url: '/aitutor/aichat/conversation/delete',
|
url: "/aitutor/aichat/conversation/delete",
|
||||||
method: 'post',
|
method: "post",
|
||||||
data: {
|
data: {
|
||||||
conversation_id: conversationId,
|
conversation_id: conversationId,
|
||||||
user
|
user,
|
||||||
}
|
},
|
||||||
})
|
});
|
||||||
}
|
};
|
||||||
|
@@ -42,3 +42,11 @@ export function delIdentifytexs(id) {
|
|||||||
method: 'post'
|
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) {
|
export function delNewRecord(id) {
|
||||||
return request({
|
return request({
|
||||||
url: '/dormitory/newRecord/' + id,
|
url: '/dormitory/newRecord/' + id,
|
||||||
method: 'post'
|
method: 'delete'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 一键确认未进行住宿费用确认的学生
|
||||||
|
export function confirmUnconfirmedStudents() {
|
||||||
|
return request({
|
||||||
|
url: '/dormitory/newRecord/confirmUnconfirmedStudents',
|
||||||
|
method: 'POST'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -21,7 +21,7 @@
|
|||||||
<!-- 其他页面内容 -->
|
<!-- 其他页面内容 -->
|
||||||
<!-- 触发按钮,控制弹窗显示隐藏 -->
|
<!-- 触发按钮,控制弹窗显示隐藏 -->
|
||||||
<div class="ai-hover" @click="toggleAI">
|
<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>
|
<i v-else class="el-icon-close" style="font-size: 20px;"></i>
|
||||||
</div>
|
</div>
|
||||||
<!-- 聊天弹窗,通过 v-if 控制显隐 -->
|
<!-- 聊天弹窗,通过 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
|
||||||
.ai-hover {
|
.ai-hover {
|
||||||
@@ -215,8 +200,8 @@ export default {
|
|||||||
right: 20px;
|
right: 20px;
|
||||||
bottom: 20px;
|
bottom: 20px;
|
||||||
/* 和弹窗拉开距离 */
|
/* 和弹窗拉开距离 */
|
||||||
width: 40px;
|
width: 5vw;
|
||||||
height: 40px;
|
height: 7vh;
|
||||||
background-color: #409eff;
|
background-color: #409eff;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
@@ -3,6 +3,7 @@ import {
|
|||||||
getTokenKeySessionStorage,
|
getTokenKeySessionStorage,
|
||||||
removeToken,
|
removeToken,
|
||||||
setTokenKeySessionStorage,
|
setTokenKeySessionStorage,
|
||||||
|
clearAllUserCache,
|
||||||
} from "@/utils/auth";
|
} from "@/utils/auth";
|
||||||
|
|
||||||
const user = {
|
const user = {
|
||||||
@@ -92,7 +93,9 @@ const user = {
|
|||||||
commit("SET_TOKEN", "");
|
commit("SET_TOKEN", "");
|
||||||
commit("SET_ROLES", []);
|
commit("SET_ROLES", []);
|
||||||
commit("SET_PERMISSIONS", []);
|
commit("SET_PERMISSIONS", []);
|
||||||
removeToken();
|
commit("SET_USERINFO", {});
|
||||||
|
// 清理所有用户相关的缓存数据,包括conversation_id
|
||||||
|
clearAllUserCache();
|
||||||
resolve();
|
resolve();
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
@@ -105,7 +108,11 @@ const user = {
|
|||||||
FedLogOut({ commit }) {
|
FedLogOut({ commit }) {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
commit("SET_TOKEN", "");
|
commit("SET_TOKEN", "");
|
||||||
removeToken();
|
commit("SET_ROLES", []);
|
||||||
|
commit("SET_PERMISSIONS", []);
|
||||||
|
commit("SET_USERINFO", {});
|
||||||
|
// 清理所有用户相关的缓存数据,包括conversation_id
|
||||||
|
clearAllUserCache();
|
||||||
resolve();
|
resolve();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@@ -5,7 +5,8 @@ import { showToast } from "@/utils/toast"; // 请替换为你的Toast组件
|
|||||||
|
|
||||||
// 创建axios实例
|
// 创建axios实例
|
||||||
const service = axios.create({
|
const service = axios.create({
|
||||||
baseURL: process.env.VUE_APP_API_BASE_URL || 'http://localhost:8088',
|
// baseURL: process.env.VUE_APP_API_BASE_URL || 'http://localhost:8088',
|
||||||
|
baseURL: process.env.VUE_APP_BASE_API,
|
||||||
timeout: 15000,
|
timeout: 15000,
|
||||||
headers: {
|
headers: {
|
||||||
"Content-Type": "application/json",
|
"Content-Type": "application/json",
|
||||||
|
@@ -23,3 +23,28 @@ export function getTokenKeySessionStorage() {
|
|||||||
export function removeToken() {
|
export function removeToken() {
|
||||||
return Cookies.remove(TokenKey)
|
return Cookies.remove(TokenKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 清理sessionStorage中的token
|
||||||
|
export function removeTokenFromSessionStorage() {
|
||||||
|
sessionStorage.removeItem(TokenKey)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 清理AI聊天相关的localStorage数据
|
||||||
|
export function clearAIChatCache() {
|
||||||
|
localStorage.removeItem('conversation_id')
|
||||||
|
// 可以根据需要添加其他AI聊天相关的缓存清理
|
||||||
|
}
|
||||||
|
|
||||||
|
// 清理所有用户相关的缓存数据
|
||||||
|
export function clearAllUserCache() {
|
||||||
|
// 清理token相关
|
||||||
|
removeToken()
|
||||||
|
removeTokenFromSessionStorage()
|
||||||
|
|
||||||
|
// 清理AI聊天缓存
|
||||||
|
clearAIChatCache()
|
||||||
|
|
||||||
|
// 清理其他用户相关的localStorage数据
|
||||||
|
localStorage.removeItem('userId')
|
||||||
|
localStorage.removeItem('userName')
|
||||||
|
}
|
||||||
|
@@ -1,28 +1,34 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
|
<div class="six-action-container">
|
||||||
<div class="six-action-container">
|
<div
|
||||||
<div style="padding: 1rem;" class="six-action-item" v-for="(v, i) in taskList" :key="i">
|
style="padding: 1rem"
|
||||||
<div class="bubble"
|
class="six-action-item"
|
||||||
:style="{ backgroundImage: `url(${require('@/assets/index_bg/' + (i + 1) + '.png')})` }">
|
v-for="(v, i) in taskList"
|
||||||
<div class="act-text">
|
:key="i"
|
||||||
|
>
|
||||||
<div class="title">
|
<div
|
||||||
{{ v.label }}·待办
|
class="bubble"
|
||||||
</div>
|
:style="{
|
||||||
<div class="todo">
|
backgroundImage: `url(${require('@/assets/index_bg/' +
|
||||||
{{ v.value }}
|
(i + 1) +
|
||||||
</div>
|
'.png')})`,
|
||||||
</div>
|
}"
|
||||||
<div class="bg-to" @click="toRoute(v.url)">更多☞</div>
|
>
|
||||||
</div>
|
<div class="act-text">
|
||||||
|
<div class="title">{{ v.label }}·待办</div>
|
||||||
|
<div class="todo">
|
||||||
|
{{ v.value }}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bg-to" @click="toRoute(v.url)">更多☞</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
import { isEmpty } from "@/api/helpFunc";
|
import { isEmpty } from "@/api/helpFunc";
|
||||||
|
|
||||||
import { countDeptUnTodo as getUndo } from "@/api/workstudy/post";
|
import { countDeptUnTodo as getUndo } from "@/api/workstudy/post";
|
||||||
@@ -30,114 +36,112 @@ import { countDeptUnTodo as getUndo } from "@/api/workstudy/post";
|
|||||||
import { checkPermi } from "@/utils/permission";
|
import { checkPermi } from "@/utils/permission";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "zzbld-qgzx",
|
name: "zzbld-qgzx",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
hasPrem:false,
|
hasPrem: false,
|
||||||
taskList: [
|
taskList: [],
|
||||||
],
|
|
||||||
|
|
||||||
|
myChartStyle: {
|
||||||
|
float: "left",
|
||||||
|
width: "400px",
|
||||||
|
height: "300px",
|
||||||
|
margin: 0,
|
||||||
|
}, //图表样式
|
||||||
|
|
||||||
myChartStyle: { float: "left", width: "400px", height: "300px", margin: 0 },//图表样式
|
init_park_list: [],
|
||||||
|
};
|
||||||
|
},
|
||||||
init_park_list: []
|
created() {
|
||||||
|
if (checkPermi(["home:dept:qgzx"])) {
|
||||||
}
|
this.getUndo();
|
||||||
},
|
this.hasPrem = true;
|
||||||
created() {
|
|
||||||
if (checkPermi(['home:dept:qgzx'])) {
|
|
||||||
this.getUndo();
|
|
||||||
this.hasPrem = true;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
async getUndo() {
|
|
||||||
this.taskList = [];
|
|
||||||
let res = await getUndo();
|
|
||||||
if (res.code == 200) {
|
|
||||||
let data = { ...res.data };
|
|
||||||
console.log(data);
|
|
||||||
this.taskList.push({
|
|
||||||
label: "部门·学生岗位审核",
|
|
||||||
name: "post",
|
|
||||||
value: data.post,
|
|
||||||
url: "/workstudy/post/dept"
|
|
||||||
});
|
|
||||||
this.taskList.push({
|
|
||||||
label: "部门·薪资审核",
|
|
||||||
name: "money",
|
|
||||||
value: data.money,
|
|
||||||
url: "/workstudy/money/dept"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
toRoute(url) {
|
|
||||||
if (!isEmpty(url)) {
|
|
||||||
this.$router.push(url);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async getUndo() {
|
||||||
|
this.taskList = [];
|
||||||
|
let res = await getUndo();
|
||||||
|
if (res.code == 200) {
|
||||||
|
let data = { ...res.data };
|
||||||
|
console.log(data);
|
||||||
|
this.taskList.push({
|
||||||
|
label: "部门·学生岗位审核",
|
||||||
|
name: "post",
|
||||||
|
value: data.post,
|
||||||
|
url: "/workstudy/post/dept",
|
||||||
|
});
|
||||||
|
this.taskList.push({
|
||||||
|
label: "部门·薪资审核",
|
||||||
|
name: "money",
|
||||||
|
value: data.money,
|
||||||
|
url: "/workstudy/money/dept",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
}
|
toRoute(url) {
|
||||||
|
if (!isEmpty(url)) {
|
||||||
|
this.$router.push(url);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.six-action-container {
|
.six-action-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.six-action-item {
|
.six-action-item {
|
||||||
flex-basis: 33.33%;
|
flex-basis: 33.33%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bubble {
|
.bubble {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 170px;
|
height: 170px;
|
||||||
border-radius: 1rem;
|
border-radius: 1rem;
|
||||||
// background-image: linear-gradient(120deg, rgb(134, 233, 98) 0%, rgb(45, 175, 92) 100%);
|
// background-image: linear-gradient(120deg, rgb(134, 233, 98) 0%, rgb(45, 175, 92) 100%);
|
||||||
position: relative;
|
position: relative;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
min-width: 250px;
|
min-width: 250px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.act-text {
|
.act-text {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
margin: 1rem;
|
margin: 1rem;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
text-align: left;
|
||||||
|
font-size: 1.25rem;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
.title {
|
.todo {
|
||||||
text-align: left;
|
font-size: 6rem;
|
||||||
font-size: 1.25rem;
|
color: #fff;
|
||||||
color: #fff;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
.todo {
|
|
||||||
font-size: 6rem;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.bg-to {
|
.bg-to {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
z-index: 3;
|
z-index: 3;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 5%;
|
bottom: 5%;
|
||||||
right: 3%;
|
right: 3%;
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.six-action-item:hover,
|
.six-action-item:hover,
|
||||||
.fast-act:hover {
|
.fast-act:hover {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
transform: scale(1.1);
|
transform: scale(1.1);
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@@ -110,7 +110,28 @@ export default {
|
|||||||
name: "knzzgl",
|
name: "knzzgl",
|
||||||
value: 0,
|
value: 0,
|
||||||
url: "/hard/gl/fdy"
|
url: "/hard/gl/fdy"
|
||||||
}
|
},
|
||||||
|
// 陈冠元
|
||||||
|
{
|
||||||
|
label: "辅导员·自治区人民政府奖学金审核",
|
||||||
|
name: "knzzzzq",
|
||||||
|
value: 0,
|
||||||
|
url: "/hard/zzq/fdy",
|
||||||
|
},
|
||||||
|
//知无涯
|
||||||
|
{
|
||||||
|
label: "辅导员·中职升高职补助审核",
|
||||||
|
name: "zsg",
|
||||||
|
value: 0,
|
||||||
|
url: "hard/zsg/fdy"
|
||||||
|
},
|
||||||
|
//邵政文
|
||||||
|
{
|
||||||
|
label: "辅导员·住宿费用确认审核",
|
||||||
|
name: "zsfy",
|
||||||
|
value: 0,
|
||||||
|
url: "/dormitory/new/FdyConfirm"
|
||||||
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,195 +1,238 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="six-action-container">
|
<div class="six-action-container">
|
||||||
<div style="padding: 1rem;" class="six-action-item" v-for="(v, i) in taskList" :key="i">
|
<div
|
||||||
<div class="bubble"
|
style="padding: 1rem"
|
||||||
:style="{ backgroundImage: `url(${require('@/assets/index_bg/' + (i + 1) + '.png')})` }">
|
class="six-action-item"
|
||||||
<div class="act-text">
|
v-for="(v, i) in taskList"
|
||||||
<div class="title">
|
:key="i"
|
||||||
{{ v.label }}·待办
|
>
|
||||||
</div>
|
<div
|
||||||
<div class="todo">
|
class="bubble"
|
||||||
{{ v.value }}
|
:style="{
|
||||||
</div>
|
backgroundImage: `url(${require('@/assets/index_bg/' +
|
||||||
</div>
|
(i + 1) +
|
||||||
<div class="bg-to" @click="toRoute(v.url)">更多☞</div>
|
'.png')})`,
|
||||||
</div>
|
}"
|
||||||
|
>
|
||||||
|
<div class="act-text">
|
||||||
|
<div class="title">{{ v.label }}·待办</div>
|
||||||
|
<div class="todo">
|
||||||
|
{{ v.value }}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bg-to" @click="toRoute(v.url)">更多☞</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
import { countJwcUnDo as countUndo } from "@/api/stuCQS/good/apply";
|
import { countJwcUnDo as countUndo } from "@/api/stuCQS/good/apply";
|
||||||
import { isEmpty } from "@/api/helpFunc";
|
import { isEmpty } from "@/api/helpFunc";
|
||||||
import { checkPermi } from "@/utils/permission";
|
import { checkPermi } from "@/utils/permission";
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "jwc-undo",
|
name: "jwc-undo",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
hasPrem:false,
|
hasPrem: false,
|
||||||
taskList: [
|
taskList: [
|
||||||
{
|
{
|
||||||
label: "学工·评优评先审核",
|
label: "学工·评优评先审核",
|
||||||
name: "good",
|
name: "good",
|
||||||
value: 0,
|
value: 0,
|
||||||
url: "/stuGood/about-good/jwc"
|
url: "/stuGood/about-good/jwc",
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "学工·静湖之星审核",
|
|
||||||
name: "lake",
|
|
||||||
value: 0,
|
|
||||||
url: "/stuGood/about-lake/jwc"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "学工·优秀毕业生审核",
|
|
||||||
name: "biye",
|
|
||||||
value: 0,
|
|
||||||
url: "/stuGood/good-graduate/jwc"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "学工·困难认定审核",
|
|
||||||
name: "kn",
|
|
||||||
value: 0,
|
|
||||||
url: "/hard/pks/jwc"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "学工·助学金审核",
|
|
||||||
name: "zx",
|
|
||||||
value: 0,
|
|
||||||
url: "/hard/zxj/jwc"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "学工·宿舍管理审核",
|
|
||||||
name: "dms",
|
|
||||||
value: 0,
|
|
||||||
url: "/dormitory/stuDormitoryManage/final"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "学工·任务管理审核",
|
|
||||||
name: "rwgl",
|
|
||||||
value: 0,
|
|
||||||
url: "/task/todo"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "学工·困难资助审核",
|
|
||||||
name: "knzz",
|
|
||||||
value: 0,
|
|
||||||
url: "hard/tufa/xg"
|
|
||||||
},
|
|
||||||
// 宁博
|
|
||||||
{
|
|
||||||
label: "学工·国家励志奖学金审核",
|
|
||||||
name: "knzzgl",
|
|
||||||
value: 0,
|
|
||||||
url: "/hard/gl/xg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "学工·学生证补办审核",
|
|
||||||
name: "xszb",
|
|
||||||
value: 0,
|
|
||||||
url: "/routine/sicr/learningIndustrialProductionAudit"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "学工·在校证明审核",
|
|
||||||
name: "zxzm",
|
|
||||||
value: 0,
|
|
||||||
url: "/routine/school/learning"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
}
|
|
||||||
},
|
|
||||||
created() {
|
|
||||||
if (checkPermi(['home:xg:undo1'])) {
|
|
||||||
this.countUndo();
|
|
||||||
this.hasPrem = true;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
async countUndo() {
|
|
||||||
let res = await countUndo();
|
|
||||||
if (res.code == 200) {
|
|
||||||
let data = [...res.data];
|
|
||||||
this.taskList.map(x => {
|
|
||||||
let temp = data.filter(y => y.startsWith(x.name));
|
|
||||||
if (!isEmpty(temp)) {
|
|
||||||
let result = temp[0].split("-")[1];
|
|
||||||
x.value = result;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
{
|
||||||
toRoute(url) {
|
label: "学工·静湖之星审核",
|
||||||
if (!isEmpty(url)) {
|
name: "lake",
|
||||||
this.$router.push(url);
|
value: 0,
|
||||||
}
|
url: "/stuGood/about-lake/jwc",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: "学工·优秀毕业生审核",
|
||||||
|
name: "biye",
|
||||||
|
value: 0,
|
||||||
|
url: "/stuGood/good-graduate/jwc",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "学工·困难认定审核",
|
||||||
|
name: "kn",
|
||||||
|
value: 0,
|
||||||
|
url: "/hard/pks/jwc",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "学工·助学金审核",
|
||||||
|
name: "zx",
|
||||||
|
value: 0,
|
||||||
|
url: "/hard/zxj/jwc",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "学工·宿舍管理审核",
|
||||||
|
name: "dms",
|
||||||
|
value: 0,
|
||||||
|
url: "/dormitory/stuDormitoryManage/final",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "学工·任务管理审核",
|
||||||
|
name: "rwgl",
|
||||||
|
value: 0,
|
||||||
|
url: "/task/todo",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "学工·困难资助审核",
|
||||||
|
name: "knzz",
|
||||||
|
value: 0,
|
||||||
|
url: "hard/tufa/xg",
|
||||||
|
},
|
||||||
|
// 宁博
|
||||||
|
{
|
||||||
|
label: "学工·国家励志奖学金审核",
|
||||||
|
name: "knzzgl",
|
||||||
|
value: 0,
|
||||||
|
url: "/hard/gl/xg",
|
||||||
|
},
|
||||||
|
// 陈冠元
|
||||||
|
{
|
||||||
|
label: "学工·自治区人民政府奖学金审核",
|
||||||
|
name: "knzzzzq",
|
||||||
|
value: 0,
|
||||||
|
url: "/hard/zzq/xg",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "学工·学生证补办审核",
|
||||||
|
name: "xszb",
|
||||||
|
value: 0,
|
||||||
|
url: "/routine/sicr/learningIndustrialProductionAudit",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "学工·在校证明审核",
|
||||||
|
name: "zxzm",
|
||||||
|
value: 0,
|
||||||
|
url: "/routine/school/learning",
|
||||||
|
},
|
||||||
|
//知无涯 学工·中职升高职补助审核
|
||||||
|
{
|
||||||
|
label: "学工·中职升高职补助审核",
|
||||||
|
name: "zsg",
|
||||||
|
value: 0,
|
||||||
|
url: "/hard/zsg/xg",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "学工·辅导员综合绩效审核初审",
|
||||||
|
name: "jx",
|
||||||
|
value: 0,
|
||||||
|
url: "teacher/performance/evaluate/learn",
|
||||||
|
},
|
||||||
|
// 宁博
|
||||||
|
{
|
||||||
|
label: "学工·辅导员管理-成果绩效审核",
|
||||||
|
name: "cg",
|
||||||
|
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",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
if (checkPermi(["home:xg:undo1"])) {
|
||||||
|
this.countUndo();
|
||||||
|
this.hasPrem = true;
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async countUndo() {
|
||||||
|
let res = await countUndo();
|
||||||
|
if (res.code == 200) {
|
||||||
|
let data = [...res.data];
|
||||||
|
this.taskList.map((x) => {
|
||||||
|
let temp = data.filter((y) => y.startsWith(x.name));
|
||||||
|
if (!isEmpty(temp)) {
|
||||||
|
let result = temp[0].split("-")[1];
|
||||||
|
x.value = result;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
}
|
toRoute(url) {
|
||||||
|
if (!isEmpty(url)) {
|
||||||
|
this.$router.push(url);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.six-action-container {
|
.six-action-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.six-action-item {
|
.six-action-item {
|
||||||
flex-basis: 33.33%;
|
flex-basis: 33.33%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bubble {
|
.bubble {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 170px;
|
height: 170px;
|
||||||
border-radius: 1rem;
|
border-radius: 1rem;
|
||||||
// background-image: linear-gradient(120deg, rgb(134, 233, 98) 0%, rgb(45, 175, 92) 100%);
|
// background-image: linear-gradient(120deg, rgb(134, 233, 98) 0%, rgb(45, 175, 92) 100%);
|
||||||
position: relative;
|
position: relative;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
min-width: 250px;
|
min-width: 250px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.act-text {
|
.act-text {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
margin: 1rem;
|
margin: 1rem;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
text-align: left;
|
||||||
|
font-size: 1.25rem;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
.title {
|
.todo {
|
||||||
text-align: left;
|
margin-top: 1rem;
|
||||||
font-size: 1.25rem;
|
font-size: 6rem;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.todo {
|
|
||||||
margin-top: 1rem;
|
|
||||||
font-size: 6rem;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.bg-to {
|
.bg-to {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
z-index: 3;
|
z-index: 3;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 5%;
|
bottom: 5%;
|
||||||
right: 3%;
|
right: 3%;
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.six-action-item:hover,
|
.six-action-item:hover,
|
||||||
.fast-act:hover {
|
.fast-act:hover {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
transform: scale(1.1);
|
transform: scale(1.1);
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@@ -1,132 +1,157 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="six-action-container">
|
<div class="six-action-container">
|
||||||
<div style="padding: 1rem;" class="six-action-item" v-for="(v, i) in taskList" :key="i">
|
<div
|
||||||
<div class="bubble"
|
style="padding: 1rem"
|
||||||
:style="{ backgroundImage: `url(${require('@/assets/index_bg/' + (i + 1) + '.png')})` }">
|
class="six-action-item"
|
||||||
<div class="act-text">
|
v-for="(v, i) in taskList"
|
||||||
<div class="title">
|
:key="i"
|
||||||
{{ v.label }}·待办
|
>
|
||||||
</div>
|
<div
|
||||||
<div class="todo">
|
class="bubble"
|
||||||
{{ v.value }}
|
:style="{
|
||||||
</div>
|
backgroundImage: `url(${require('@/assets/index_bg/' +
|
||||||
</div>
|
(i + 1) +
|
||||||
<div class="bg-to" @click="toRoute(v.url)">更多☞</div>
|
'.png')})`,
|
||||||
</div>
|
}"
|
||||||
|
>
|
||||||
|
<div class="act-text">
|
||||||
|
<div class="title">{{ v.label }}·待办</div>
|
||||||
|
<div class="todo">
|
||||||
|
{{ v.value }}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bg-to" @click="toRoute(v.url)">更多☞</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { countSjUnDo as countUndo } from "@/api/stuCQS/good/apply";
|
||||||
import {countSjUnDo as countUndo} from "@/api/stuCQS/good/apply";
|
|
||||||
import { isEmpty } from "@/api/helpFunc";
|
import { isEmpty } from "@/api/helpFunc";
|
||||||
import { checkPermi } from "@/utils/permission";
|
import { checkPermi } from "@/utils/permission";
|
||||||
export default {
|
export default {
|
||||||
name: "sj-undo",
|
name: "sj-undo",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
hasPrem:false,
|
hasPrem: false,
|
||||||
|
|
||||||
taskList: [
|
taskList: [
|
||||||
{
|
{
|
||||||
label: "书记·任务管理审核",
|
label: "书记·任务管理审核",
|
||||||
name: "rwgl",
|
name: "rwgl",
|
||||||
value: 0,
|
value: 0,
|
||||||
url: "/task/todo",
|
url: "/task/todo",
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
}
|
|
||||||
},
|
|
||||||
created() {
|
|
||||||
if (checkPermi(['home:sj:undo1'])) {
|
|
||||||
this.countUndo();
|
|
||||||
this.hasPrem = true;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
async countUndo() {
|
|
||||||
let res = await countUndo();
|
|
||||||
if (res.code == 200) {
|
|
||||||
let data = [...res.data];
|
|
||||||
this.taskList.map(x => {
|
|
||||||
let temp = data.filter(y => y.startsWith(x.name));
|
|
||||||
if (!isEmpty(temp)) {
|
|
||||||
let result = temp[0].split("-")[1];
|
|
||||||
x.value = result;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
{
|
||||||
toRoute(url) {
|
label: "书记·辅导员综合绩效审核",
|
||||||
if (!isEmpty(url)) {
|
name: "jx",
|
||||||
this.$router.push(url);
|
value: 0,
|
||||||
}
|
url: "teacher/performance/evaluate/party",
|
||||||
},
|
},
|
||||||
|
// 宁博
|
||||||
|
{
|
||||||
|
label: "书记·辅导员管理-成果绩效审核",
|
||||||
|
name: "cg",
|
||||||
|
value: 0,
|
||||||
|
url: "/teacher/achievement/achievementCheck",
|
||||||
|
},
|
||||||
|
// 陈冠元
|
||||||
|
{
|
||||||
|
label: "书记·辅导员管理-业绩考核",
|
||||||
|
name: "yj",
|
||||||
|
value: 0,
|
||||||
|
url: "/teacher/teacherKpiFilling/collegeAudit/DZZSJAuditList",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
if (checkPermi(["home:sj:undo1"])) {
|
||||||
|
this.countUndo();
|
||||||
|
this.hasPrem = true;
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async countUndo() {
|
||||||
|
let res = await countUndo();
|
||||||
|
if (res.code == 200) {
|
||||||
|
let data = [...res.data];
|
||||||
|
this.taskList.map((x) => {
|
||||||
|
let temp = data.filter((y) => y.startsWith(x.name));
|
||||||
|
if (!isEmpty(temp)) {
|
||||||
|
let result = temp[0].split("-")[1];
|
||||||
|
x.value = result;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
}
|
toRoute(url) {
|
||||||
|
if (!isEmpty(url)) {
|
||||||
|
this.$router.push(url);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.six-action-container {
|
.six-action-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.six-action-item {
|
.six-action-item {
|
||||||
flex-basis: 33.33%;
|
flex-basis: 33.33%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bubble {
|
.bubble {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 170px;
|
height: 170px;
|
||||||
border-radius: 1rem;
|
border-radius: 1rem;
|
||||||
// background-image: linear-gradient(120deg, rgb(134, 233, 98) 0%, rgb(45, 175, 92) 100%);
|
// background-image: linear-gradient(120deg, rgb(134, 233, 98) 0%, rgb(45, 175, 92) 100%);
|
||||||
position: relative;
|
position: relative;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
min-width: 250px;
|
min-width: 250px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.act-text {
|
.act-text {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
margin: 1rem;
|
margin: 1rem;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
text-align: left;
|
||||||
|
font-size: 1.25rem;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
.title {
|
.todo {
|
||||||
text-align: left;
|
margin-top: 1rem;
|
||||||
font-size: 1.25rem;
|
font-size: 6rem;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.todo {
|
|
||||||
margin-top: 1rem;
|
|
||||||
font-size: 6rem;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.bg-to {
|
.bg-to {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
z-index: 3;
|
z-index: 3;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 5%;
|
bottom: 5%;
|
||||||
right: 3%;
|
right: 3%;
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.six-action-item:hover,
|
.six-action-item:hover,
|
||||||
.fast-act:hover {
|
.fast-act:hover {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
transform: scale(1.1);
|
transform: scale(1.1);
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@@ -95,6 +95,27 @@ export default {
|
|||||||
value: 0,
|
value: 0,
|
||||||
url: "/hard/gl/xw",
|
url: "/hard/gl/xw",
|
||||||
},
|
},
|
||||||
|
// 陈冠元
|
||||||
|
{
|
||||||
|
label: "学务·自治区人民政府奖学金审核",
|
||||||
|
name: "knzzzzq",
|
||||||
|
value: 0,
|
||||||
|
url: "/hard/zzq/xw",
|
||||||
|
},
|
||||||
|
// 宁博
|
||||||
|
{
|
||||||
|
label: "学务·辅导员管理-成果绩效审核",
|
||||||
|
name: "cg",
|
||||||
|
value: 0,
|
||||||
|
url: "/teacher/achievement/achievementCheck",
|
||||||
|
},
|
||||||
|
// 陈冠元
|
||||||
|
{
|
||||||
|
label: "学务·辅导员管理-业绩考核",
|
||||||
|
name: "yj",
|
||||||
|
value: 0,
|
||||||
|
url: "/teacher/teacherKpiFilling/collegeAudit/XWAuditList",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
@@ -70,6 +70,18 @@ export default {
|
|||||||
value: data.workLog,
|
value: data.workLog,
|
||||||
url: "/workstudy/worklog/zdls"
|
url: "/workstudy/worklog/zdls"
|
||||||
});
|
});
|
||||||
|
this.taskList.push({
|
||||||
|
label: "学工处长综合绩效审核",
|
||||||
|
name: "jx",
|
||||||
|
value: data.jx || 0,
|
||||||
|
url: "teacher/performance/studentW/director"
|
||||||
|
});
|
||||||
|
this.taskList.push({
|
||||||
|
label: "科室综合绩效复核",
|
||||||
|
name: "jx",
|
||||||
|
value: data.jx || 0,
|
||||||
|
url: "teacher/performance/studentW/department"
|
||||||
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@@ -372,7 +372,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<button class="action-button" @click="going(scope.row.url)">
|
<button class="action-button" @click="going(scope.row.url)">
|
||||||
查看更多
|
点击前往处理
|
||||||
</button>
|
</button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@@ -4,7 +4,22 @@
|
|||||||
<el-form-item label="学号" prop="studentCode">
|
<el-form-item label="学号" prop="studentCode">
|
||||||
<el-input v-model="queryParams.studentCode" placeholder="请输入学号" clearable @keyup.enter.native="handleQuery" />
|
<el-input v-model="queryParams.studentCode" placeholder="请输入学号" clearable @keyup.enter.native="handleQuery" />
|
||||||
</el-form-item>
|
</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"
|
<el-cascader v-model="queryParams.classId" ref="cas" style="width: 500px;" :options="cascaderData"
|
||||||
:props="{ checkStrictly: false }" @change="handleChange" clearable filterable></el-cascader>
|
:props="{ checkStrictly: false }" @change="handleChange" clearable filterable></el-cascader>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -479,7 +494,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<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 { treeStudent } from "@/api/stuCQS/basedata/student";
|
||||||
import { listQiyongYear as listYear } from "@/api/stuCQS/basedata/year";
|
import { listQiyongYear as listYear } from "@/api/stuCQS/basedata/year";
|
||||||
import * as XLSX from 'xlsx';
|
import * as XLSX from 'xlsx';
|
||||||
@@ -519,6 +534,7 @@ export default {
|
|||||||
biaoJi: null,
|
biaoJi: null,
|
||||||
excelName: null,
|
excelName: null,
|
||||||
redingData: false,
|
redingData: false,
|
||||||
|
xflag: false,
|
||||||
// 查询参数
|
// 查询参数
|
||||||
queryParams: {
|
queryParams: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
@@ -595,13 +611,20 @@ export default {
|
|||||||
},
|
},
|
||||||
// 获取级联数据
|
// 获取级联数据
|
||||||
async getCascaderData() {
|
async getCascaderData() {
|
||||||
const res = await treeStudent()
|
const res = await deptDataList()
|
||||||
this.cascaderData = res.data
|
this.cascaderData = res.data
|
||||||
this.cascaderData.forEach(dept => {
|
if(this.cascaderData.length > 0) {
|
||||||
dept.children.forEach(major => {
|
this.xflag = true;
|
||||||
major.children.forEach(c => { delete c.children })
|
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() {
|
async listAllStuYear() {
|
||||||
|
@@ -4,7 +4,22 @@
|
|||||||
<el-form-item label="学号" prop="studentCode">
|
<el-form-item label="学号" prop="studentCode">
|
||||||
<el-input v-model="queryParams.studentCode" placeholder="请输入学号" clearable @keyup.enter.native="handleQuery" />
|
<el-input v-model="queryParams.studentCode" placeholder="请输入学号" clearable @keyup.enter.native="handleQuery" />
|
||||||
</el-form-item>
|
</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"
|
<el-cascader v-model="queryParams.classId" ref="cas" style="width: 500px;" :options="cascaderData"
|
||||||
:props="{ checkStrictly: false }" @change="handleChange" clearable filterable></el-cascader>
|
:props="{ checkStrictly: false }" @change="handleChange" clearable filterable></el-cascader>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -388,6 +403,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import { listRemarkstext, getRemarkstext, delRemarkstext, addRemarkstext, updateRemarkstext } from "@/api/comprehensive/remarkstext";
|
import { listRemarkstext, getRemarkstext, delRemarkstext, addRemarkstext, updateRemarkstext } from "@/api/comprehensive/remarkstext";
|
||||||
import { treeStudent } from "@/api/stuCQS/basedata/student";
|
import { treeStudent } from "@/api/stuCQS/basedata/student";
|
||||||
|
import { deptDataList } from "@/api/comprehensive/identifytexs";
|
||||||
import { listQiyongYear as listYear } from "@/api/stuCQS/basedata/year";
|
import { listQiyongYear as listYear } from "@/api/stuCQS/basedata/year";
|
||||||
import * as XLSX from 'xlsx';
|
import * as XLSX from 'xlsx';
|
||||||
import { excelDateToJSDate } from '@/utils/index';
|
import { excelDateToJSDate } from '@/utils/index';
|
||||||
@@ -426,6 +442,7 @@ export default {
|
|||||||
excelName: null,
|
excelName: null,
|
||||||
mode: 'add',
|
mode: 'add',
|
||||||
redingdata: false,
|
redingdata: false,
|
||||||
|
xflag: false,
|
||||||
// 查询参数
|
// 查询参数
|
||||||
queryParams: {
|
queryParams: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
@@ -492,12 +509,18 @@ export default {
|
|||||||
},
|
},
|
||||||
// 获取级联数据
|
// 获取级联数据
|
||||||
async getCascaderData() {
|
async getCascaderData() {
|
||||||
const res = await treeStudent()
|
const res = await deptDataList()
|
||||||
this.cascaderData = res.data
|
this.cascaderData = res.data
|
||||||
this.cascaderData.forEach(dept => {
|
if(this.cascaderData.length > 0) {
|
||||||
dept.children.forEach(major => {
|
this.xflag = true
|
||||||
major.children.forEach(c => { delete c.children })
|
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);
|
let res = await initRecord(sdata);
|
||||||
loading.close();
|
loading.close();
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
this.$message.success(res.msg);
|
this.$message.success(res.msg + ",住宿费用确认消息已发送给相关学生");
|
||||||
|
this.getList(); // 刷新列表
|
||||||
|
} else {
|
||||||
|
this.$message.error(res.msg || "初始化失败");
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async listAllGrade() {
|
async listAllGrade() {
|
||||||
|
@@ -40,7 +40,7 @@
|
|||||||
<el-form-item label="学院" prop="deptId">
|
<el-form-item label="学院" prop="deptId">
|
||||||
<el-select @change="changeDept" v-model="queryParams.deptId" placeholder="请选择学院" filterable
|
<el-select @change="changeDept" v-model="queryParams.deptId" placeholder="请选择学院" filterable
|
||||||
clearable>
|
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-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -88,6 +88,43 @@
|
|||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
</el-collapse>
|
</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-form-item label=" ">
|
||||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
@@ -119,7 +156,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<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 { cleanNotStu } from "@/api/dormitory/basedata/dormitory";
|
||||||
import { fullLoading, groupBy, getChineseKey, getImg, isEmpty } from "@/api/helpFunc";
|
import { fullLoading, groupBy, getChineseKey, getImg, isEmpty } from "@/api/helpFunc";
|
||||||
|
|
||||||
@@ -139,8 +176,7 @@ export default {
|
|||||||
dicts: ['dorm_in_status'],
|
dicts: ['dorm_in_status'],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
searInputS: ['1', '2'],
|
// 加载层
|
||||||
// 遮罩层
|
|
||||||
loading: true,
|
loading: true,
|
||||||
// 选中数组
|
// 选中数组
|
||||||
ids: [],
|
ids: [],
|
||||||
@@ -162,75 +198,67 @@ export default {
|
|||||||
queryParams: {
|
queryParams: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
|
campusId: null,
|
||||||
|
parkId: null,
|
||||||
|
buildingId: null,
|
||||||
|
floorId: null,
|
||||||
dormitoryId: null,
|
dormitoryId: null,
|
||||||
bedId: null,
|
deptId: null,
|
||||||
|
majorId: null,
|
||||||
|
classId: null,
|
||||||
|
gradeId: null,
|
||||||
stuNo: null,
|
stuNo: null,
|
||||||
isDormitoryHead: null,
|
stuName: null,
|
||||||
status: null,
|
teacherName: null,
|
||||||
checkinTime: null,
|
idCard: null,
|
||||||
inStatus: null
|
submitTime: null,
|
||||||
|
roleType: null
|
||||||
},
|
},
|
||||||
// 表单参数
|
// 表单参数
|
||||||
form: {},
|
form: {},
|
||||||
// 表单校验
|
// 表单校验
|
||||||
rules: {
|
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: {
|
fastForm: {
|
||||||
campusId: null,
|
campusId: null,
|
||||||
parkId: null,
|
parkId: null,
|
||||||
buildingId: null,
|
buildingId: null,
|
||||||
floorId: null,
|
floorId: null,
|
||||||
|
dormitoryId: null,
|
||||||
},
|
},
|
||||||
|
searInputS: ['1', '2'],
|
||||||
|
campus_list: [],
|
||||||
deptList: [],//学院列表
|
|
||||||
majorList: [],//专业列表
|
|
||||||
classList: [],//班级列表
|
|
||||||
gradeList: [],//年级列表
|
|
||||||
|
|
||||||
park_list: [],
|
park_list: [],
|
||||||
building_list: [],
|
building_list: [],
|
||||||
floor_list: [],
|
floor_list: [],
|
||||||
room_list: [],
|
room_list: [],
|
||||||
|
deptList: [],
|
||||||
|
majorList: [],
|
||||||
exportV: false,
|
classList: [],
|
||||||
campus_list: [],
|
gradeList: [],
|
||||||
fast_park_list: [],
|
userRoleInfo: null,
|
||||||
fast_building_list: [],
|
showRoleSwitch: false,
|
||||||
fast_floor_list: [],
|
// 导入参数
|
||||||
fast_class_list: [],
|
|
||||||
fast_major_list: [],
|
|
||||||
fast_room_list: [],
|
|
||||||
|
|
||||||
uploadV: false,
|
|
||||||
upload: {
|
upload: {
|
||||||
|
// 是否显示弹出层(导入)
|
||||||
|
open: false,
|
||||||
|
// 弹出层标题(导入)
|
||||||
|
title: "",
|
||||||
|
// 是否禁用上传
|
||||||
isUploading: false,
|
isUploading: false,
|
||||||
|
// 是否更新已经存在的用户数据
|
||||||
updateSupport: 0,
|
updateSupport: 0,
|
||||||
|
// 设置上传的请求头部
|
||||||
headers: { Authorization: 'Bearer ' + getTokenKeySessionStorage() },
|
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
|
allLoading: false
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
async created() {
|
||||||
this.listDept();
|
await this.getUserRoles();
|
||||||
|
await this.listDept();
|
||||||
this.listGrade();
|
this.listGrade();
|
||||||
this.getList();
|
this.getList();
|
||||||
this.listAllCampus();
|
this.listAllCampus();
|
||||||
@@ -247,8 +275,8 @@ export default {
|
|||||||
},
|
},
|
||||||
async changeFloor(val) {
|
async changeFloor(val) {
|
||||||
this.queryParams.dormitoryId = null;
|
this.queryParams.dormitoryId = null;
|
||||||
|
|
||||||
this.room_list = [];
|
this.room_list = [];
|
||||||
|
|
||||||
if (!isEmpty(val)) {
|
if (!isEmpty(val)) {
|
||||||
let res = await listAllRoomByFloor(this.queryParams.floorId);
|
let res = await listAllRoomByFloor(this.queryParams.floorId);
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
@@ -259,9 +287,10 @@ export default {
|
|||||||
|
|
||||||
async changeBuilding(val) {
|
async changeBuilding(val) {
|
||||||
this.queryParams.floorId = null;
|
this.queryParams.floorId = null;
|
||||||
|
this.queryParams.dormitoryId = null;
|
||||||
this.floor_list = [];
|
this.floor_list = [];
|
||||||
this.room_list = [];
|
this.room_list = [];
|
||||||
this.queryParams.dormitoryId = null;
|
|
||||||
if (!isEmpty(val)) {
|
if (!isEmpty(val)) {
|
||||||
let res = await listFloorByBuilding(this.queryParams.buildingId);
|
let res = await listFloorByBuilding(this.queryParams.buildingId);
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
@@ -273,7 +302,6 @@ export default {
|
|||||||
this.queryParams.buildingId = null;
|
this.queryParams.buildingId = null;
|
||||||
this.queryParams.floorId = null;
|
this.queryParams.floorId = null;
|
||||||
this.queryParams.dormitoryId = null;
|
this.queryParams.dormitoryId = null;
|
||||||
|
|
||||||
this.building_list = [];
|
this.building_list = [];
|
||||||
this.floor_list = [];
|
this.floor_list = [];
|
||||||
this.room_list = [];
|
this.room_list = [];
|
||||||
@@ -291,7 +319,6 @@ export default {
|
|||||||
this.queryParams.buildingId = null;
|
this.queryParams.buildingId = null;
|
||||||
this.queryParams.floorId = null;
|
this.queryParams.floorId = null;
|
||||||
this.queryParams.dormitoryId = null;
|
this.queryParams.dormitoryId = null;
|
||||||
|
|
||||||
this.park_list = [];
|
this.park_list = [];
|
||||||
this.building_list = [];
|
this.building_list = [];
|
||||||
this.floor_list = [];
|
this.floor_list = [];
|
||||||
@@ -304,44 +331,43 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
async listGrade() {
|
async listGrade() {
|
||||||
let res = await listGrade();
|
let res = await listGrade();
|
||||||
this.gradeList = [...res.rows];
|
this.gradeList = [...res.rows];
|
||||||
},
|
},
|
||||||
|
async changeMajor(val) {
|
||||||
async changeMajor() {
|
this.queryParams.classId = null;
|
||||||
if (!isEmpty(this.queryParams.majorId)) {
|
this.classList = [];
|
||||||
let sdata = {
|
if (!isEmpty(val)) {
|
||||||
majorId: this.queryParams.majorId
|
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() {
|
async changeDept(val) {
|
||||||
if (!isEmpty(this.queryParams.deptId)) {
|
this.queryParams.majorId = null;
|
||||||
let sdata = {
|
this.queryParams.classId = null;
|
||||||
collegeId: this.queryParams.deptId,
|
this.majorList = [];
|
||||||
pageNum: 1,
|
this.classList = [];
|
||||||
pageSize: 100
|
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() {
|
async listDept() {
|
||||||
let res = await getDeptName();
|
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) {
|
async changeFastFloor(val) {
|
||||||
this.form.dormitoryId = null;
|
this.fastForm.dormitoryId = null;
|
||||||
|
this.room_list = [];
|
||||||
this.fast_room_list = [];
|
|
||||||
if (!isEmpty(val)) {
|
if (!isEmpty(val)) {
|
||||||
let res = await listAllRoomByFloor(this.fastForm.floorId);
|
let res = await listAllRoomByFloor(this.fastForm.floorId);
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
this.fast_room_list = [...res.data];
|
this.room_list = [...res.data];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
async changeFastBuilding(val) {
|
async changeFastBuilding(val) {
|
||||||
this.fastForm.floorId = null;
|
this.fastForm.floorId = null;
|
||||||
this.fast_floor_list = [];
|
this.fastForm.dormitoryId = null;
|
||||||
this.fast_room_list = [];
|
this.floor_list = [];
|
||||||
this.form.dormitoryId = null;
|
this.room_list = [];
|
||||||
if (!isEmpty(val)) {
|
if (!isEmpty(val)) {
|
||||||
let res = await listFloorByBuilding(this.fastForm.buildingId);
|
let res = await listFloorByBuilding(this.fastForm.buildingId);
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
this.fast_floor_list = [...res.data];
|
this.floor_list = [...res.data];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async changeFastPark(val) {
|
async changeFastPark(val) {
|
||||||
this.fastForm.buildingId = null;
|
this.fastForm.buildingId = null;
|
||||||
this.fastForm.floorId = null;
|
this.fastForm.floorId = null;
|
||||||
this.form.dormitoryId = null;
|
this.fastForm.dormitoryId = null;
|
||||||
|
this.building_list = [];
|
||||||
this.fast_building_list = [];
|
this.floor_list = [];
|
||||||
this.fast_floor_list = [];
|
this.room_list = [];
|
||||||
this.fast_room_list = [];
|
|
||||||
|
|
||||||
if (!isEmpty(val)) {
|
if (!isEmpty(val)) {
|
||||||
let res = await listBuildingByPark(this.fastForm.parkId);
|
let res = await listBuildingByPark(this.fastForm.parkId);
|
||||||
if (res.code == 200) {
|
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.parkId = null;
|
||||||
this.fastForm.buildingId = null;
|
this.fastForm.buildingId = null;
|
||||||
this.fastForm.floorId = null;
|
this.fastForm.floorId = null;
|
||||||
this.form.dormitoryId = null;
|
this.fastForm.dormitoryId = null;
|
||||||
|
this.park_list = [];
|
||||||
this.fast_park_list = [];
|
this.building_list = [];
|
||||||
this.fast_building_list = [];
|
this.floor_list = [];
|
||||||
this.fast_floor_list = [];
|
this.room_list = [];
|
||||||
this.fast_room_list = [];
|
|
||||||
|
|
||||||
if (!isEmpty(val)) {
|
if (!isEmpty(val)) {
|
||||||
let res = await listParkByCampus(this.fastForm.campusId);
|
let res = await listParkByCampus(this.fastForm.campusId);
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
this.fast_park_list = [...res.data];
|
this.park_list = [...res.data];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -441,13 +464,13 @@ export default {
|
|||||||
reset() {
|
reset() {
|
||||||
this.form = {
|
this.form = {
|
||||||
id: null,
|
id: null,
|
||||||
|
stuId: null,
|
||||||
dormitoryId: null,
|
dormitoryId: null,
|
||||||
bedId: null,
|
createBy: null,
|
||||||
stuNo: null,
|
createTime: null,
|
||||||
isDormitoryHead: null,
|
updateBy: null,
|
||||||
status: null,
|
updateTime: null,
|
||||||
checkinTime: null,
|
remark: null
|
||||||
inStatus: null
|
|
||||||
};
|
};
|
||||||
this.resetForm("form");
|
this.resetForm("form");
|
||||||
},
|
},
|
||||||
@@ -462,7 +485,33 @@ export default {
|
|||||||
this.handleQuery();
|
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>
|
</script>
|
||||||
@@ -472,4 +521,5 @@ export default {
|
|||||||
margin-bottom: 5px;
|
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 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 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="fastConfirm">一键确认所有辅导员已确认的记录</el-button>
|
||||||
|
<el-button type="success" icon="el-icon-check" size="mini" @click="confirmUnconfirmedStudents">一键确认未进行住宿费用确认的学生</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
@@ -152,7 +153,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<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";
|
import { listAllYear } from "@/api/stuCQS/basedata/year";
|
||||||
|
|
||||||
@@ -358,6 +359,26 @@ export default {
|
|||||||
this.download('dormitory/newRecord/export', {
|
this.download('dormitory/newRecord/export', {
|
||||||
...this.queryParams
|
...this.queryParams
|
||||||
}, `newRecord_${new Date().getTime()}.xlsx`)
|
}, `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>
|
<template slot="label"> 班级 </template>
|
||||||
{{ form.className }}
|
{{ form.className }}
|
||||||
</el-descriptions-item>
|
</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>
|
<el-descriptions-item>
|
||||||
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
||||||
{{ form.jg }}
|
{{ form.jg }}
|
||||||
|
@@ -56,6 +56,11 @@
|
|||||||
{{ form.mz }}
|
{{ form.mz }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
<el-descriptions-item>
|
||||||
|
<template slot="label"> 政治面貌 </template>
|
||||||
|
{{ form.politicalStatus }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
|
||||||
<el-descriptions-item>
|
<el-descriptions-item>
|
||||||
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
||||||
{{ form.jg }}
|
{{ form.jg }}
|
||||||
|
@@ -121,6 +121,10 @@
|
|||||||
<template slot="label"> 民族 </template>
|
<template slot="label"> 民族 </template>
|
||||||
{{ form.mz }}
|
{{ form.mz }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item>
|
||||||
|
<template slot="label"> 政治面貌 </template>
|
||||||
|
{{ form.politicalStatus }}
|
||||||
|
</el-descriptions-item>
|
||||||
<el-descriptions-item>
|
<el-descriptions-item>
|
||||||
<template slot="label"> 出生日期 </template>
|
<template slot="label"> 出生日期 </template>
|
||||||
{{ form.birthday }}
|
{{ form.birthday }}
|
||||||
@@ -185,6 +189,10 @@
|
|||||||
<template slot="label"> 民族 </template>
|
<template slot="label"> 民族 </template>
|
||||||
{{ form.mz }}
|
{{ form.mz }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item>
|
||||||
|
<template slot="label"> 政治面貌 </template>
|
||||||
|
{{ form.politicalStatus }}
|
||||||
|
</el-descriptions-item>
|
||||||
<el-descriptions-item>
|
<el-descriptions-item>
|
||||||
<template slot="label"> 出生日期 </template>
|
<template slot="label"> 出生日期 </template>
|
||||||
{{ form.birthday }}
|
{{ form.birthday }}
|
||||||
@@ -265,6 +273,11 @@
|
|||||||
{{ form.mz }}
|
{{ form.mz }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
<el-descriptions-item>
|
||||||
|
<template slot="label"> 政治面貌 </template>
|
||||||
|
{{ form.politicalStatus }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
|
||||||
<el-descriptions-item>
|
<el-descriptions-item>
|
||||||
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
||||||
{{ form.jg }}
|
{{ form.jg }}
|
||||||
|
@@ -56,6 +56,11 @@
|
|||||||
{{ form.mz }}
|
{{ form.mz }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
<el-descriptions-item>
|
||||||
|
<template slot="label"> 政治面貌 </template>
|
||||||
|
{{ form.politicalStatus }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
|
||||||
<el-descriptions-item>
|
<el-descriptions-item>
|
||||||
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
||||||
{{ form.jg }}
|
{{ form.jg }}
|
||||||
|
@@ -58,6 +58,11 @@
|
|||||||
{{ form.mz }}
|
{{ form.mz }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
<el-descriptions-item>
|
||||||
|
<template slot="label"> 政治面貌 </template>
|
||||||
|
{{ form.politicalStatus }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
|
||||||
<el-descriptions-item>
|
<el-descriptions-item>
|
||||||
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
||||||
{{ form.jg }}
|
{{ form.jg }}
|
||||||
|
@@ -42,7 +42,7 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<!-- <el-col :span="1.5">
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
plain
|
plain
|
||||||
@@ -64,7 +64,7 @@
|
|||||||
v-hasPermi="['system:deployment:remove']"
|
v-hasPermi="['system:deployment:remove']"
|
||||||
>删除</el-button
|
>删除</el-button
|
||||||
>
|
>
|
||||||
</el-col>
|
</el-col> -->
|
||||||
<right-toolbar
|
<right-toolbar
|
||||||
:showSearch.sync="showSearch"
|
:showSearch.sync="showSearch"
|
||||||
@queryTable="getList"
|
@queryTable="getList"
|
||||||
@@ -90,12 +90,12 @@
|
|||||||
prop="procDefName"
|
prop="procDefName"
|
||||||
:show-overflow-tooltip="true"
|
:show-overflow-tooltip="true"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<!-- <el-table-column
|
||||||
label="流程类别"
|
label="流程类别"
|
||||||
align="center"
|
align="center"
|
||||||
prop="category"
|
prop="category"
|
||||||
width="100px"
|
width="100px"
|
||||||
/>
|
/> -->
|
||||||
<!-- <el-table-column label="流程版本" align="center" width="80px">
|
<!-- <el-table-column label="流程版本" align="center" width="80px">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-tag size="medium">v{{ scope.row.procDefVersion }}</el-tag>
|
<el-tag size="medium">v{{ scope.row.procDefVersion }}</el-tag>
|
||||||
@@ -159,6 +159,7 @@
|
|||||||
>删除</el-button
|
>删除</el-button
|
||||||
>
|
>
|
||||||
</template>
|
</template>
|
||||||
|
<a href=""></a>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
|
@@ -42,6 +42,14 @@
|
|||||||
<template slot="label"> 班级 </template>
|
<template slot="label"> 班级 </template>
|
||||||
{{ form.className }}
|
{{ form.className }}
|
||||||
</el-descriptions-item>
|
</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>
|
<el-descriptions-item>
|
||||||
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
||||||
{{ form.jg }}
|
{{ form.jg }}
|
||||||
|
@@ -57,6 +57,10 @@
|
|||||||
<template slot="label"> 民族 </template>
|
<template slot="label"> 民族 </template>
|
||||||
{{ form.mz }}
|
{{ form.mz }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item>
|
||||||
|
<template slot="label"> 政治面貌 </template>
|
||||||
|
{{ form.politicalStatus }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
|
||||||
<el-descriptions-item>
|
<el-descriptions-item>
|
||||||
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
||||||
|
@@ -123,6 +123,10 @@
|
|||||||
<template slot="label"> 民族 </template>
|
<template slot="label"> 民族 </template>
|
||||||
{{ form.mz }}
|
{{ form.mz }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item>
|
||||||
|
<template slot="label"> 政治面貌 </template>
|
||||||
|
{{ form.politicalStatus }}
|
||||||
|
</el-descriptions-item>
|
||||||
<el-descriptions-item>
|
<el-descriptions-item>
|
||||||
<template slot="label"> 出生日期 </template>
|
<template slot="label"> 出生日期 </template>
|
||||||
{{ form.birthday }}
|
{{ form.birthday }}
|
||||||
@@ -195,6 +199,10 @@
|
|||||||
<template slot="label"> 民族 </template>
|
<template slot="label"> 民族 </template>
|
||||||
{{ form.mz }}
|
{{ form.mz }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item>
|
||||||
|
<template slot="label"> 政治面貌 </template>
|
||||||
|
{{ form.politicalStatus }}
|
||||||
|
</el-descriptions-item>
|
||||||
<el-descriptions-item>
|
<el-descriptions-item>
|
||||||
<template slot="label"> 出生日期 </template>
|
<template slot="label"> 出生日期 </template>
|
||||||
{{ form.birthday }}
|
{{ form.birthday }}
|
||||||
@@ -274,6 +282,10 @@
|
|||||||
<template slot="label"> 民族 </template>
|
<template slot="label"> 民族 </template>
|
||||||
{{ form.mz }}
|
{{ form.mz }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item>
|
||||||
|
<template slot="label"> 政治面貌 </template>
|
||||||
|
{{ form.politicalStatus }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
|
||||||
<el-descriptions-item>
|
<el-descriptions-item>
|
||||||
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
||||||
|
@@ -57,6 +57,10 @@
|
|||||||
<template slot="label"> 民族 </template>
|
<template slot="label"> 民族 </template>
|
||||||
{{ form.mz }}
|
{{ form.mz }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item>
|
||||||
|
<template slot="label"> 政治面貌 </template>
|
||||||
|
{{ form.politicalStatus }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
|
||||||
<el-descriptions-item>
|
<el-descriptions-item>
|
||||||
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
||||||
|
@@ -57,6 +57,10 @@
|
|||||||
<template slot="label"> 民族 </template>
|
<template slot="label"> 民族 </template>
|
||||||
{{ form.mz }}
|
{{ form.mz }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item>
|
||||||
|
<template slot="label"> 政治面貌 </template>
|
||||||
|
{{ form.politicalStatus }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
|
||||||
<el-descriptions-item>
|
<el-descriptions-item>
|
||||||
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
<template slot="label"> 籍贯:省/自治区/直辖市 </template>
|
||||||
|
@@ -41,6 +41,10 @@
|
|||||||
<template slot="label"> 民族 </template>
|
<template slot="label"> 民族 </template>
|
||||||
{{ form.mz }}
|
{{ form.mz }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item>
|
||||||
|
<template slot="label"> 政治面貌 </template>
|
||||||
|
{{ form.politicalStatus }}
|
||||||
|
</el-descriptions-item>
|
||||||
<el-descriptions-item>
|
<el-descriptions-item>
|
||||||
<template slot="label"> 出生日期 </template>
|
<template slot="label"> 出生日期 </template>
|
||||||
{{ form.birthday }}
|
{{ form.birthday }}
|
||||||
|
@@ -23,16 +23,16 @@
|
|||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
|
<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>
|
||||||
<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"
|
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
|
||||||
v-hasPermi="['routine:disciplinaryApplication:edit']">修改</el-button>
|
v-hasPermi="['routine:disciplinaryApplication:edit']">修改</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
|
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
|
||||||
v-hasPermi="['routine:disciplinaryApplication:remove']">删除</el-button>
|
v-hasPermi="['routine:disciplinaryApplication:remove']">删除</el-button>
|
||||||
</el-col>
|
</el-col> -->
|
||||||
<el-col :span="1.5">
|
<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"
|
||||||
v-hasPermi="['routine:disciplinaryApplication:export']">导出</el-button>
|
v-hasPermi="['routine:disciplinaryApplication:export']">导出</el-button>
|
||||||
@@ -136,6 +136,18 @@
|
|||||||
<el-input v-model="form.mz" placeholder="" />
|
<el-input v-model="form.mz" placeholder="" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</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-col :span="12">
|
||||||
<el-form-item label="出生日期" prop="birthday">
|
<el-form-item label="出生日期" prop="birthday">
|
||||||
<el-input v-model="form.birthday" placeholder="" />
|
<el-input v-model="form.birthday" placeholder="" />
|
||||||
@@ -267,6 +279,7 @@ export default {
|
|||||||
gradeName: [{ required: true, message: '请输入年级', trigger: 'blur' }],
|
gradeName: [{ required: true, message: '请输入年级', trigger: 'blur' }],
|
||||||
className: [{ required: true, message: '请输入班级', trigger: 'blur' }],
|
className: [{ required: true, message: '请输入班级', trigger: 'blur' }],
|
||||||
mz: [{ required: true, message: '请输入民族', trigger: 'blur' }],
|
mz: [{ required: true, message: '请输入民族', trigger: 'blur' }],
|
||||||
|
politicalStatus: [{ required: true, message: '请选择政治面貌', trigger: 'blur' }],
|
||||||
birthday: [{ required: true, message: '请输入出生日期', trigger: 'blur' }],
|
birthday: [{ required: true, message: '请输入出生日期', trigger: 'blur' }],
|
||||||
jg: [{ required: true, message: '请选择籍贯', trigger: 'blur' }],
|
jg: [{ required: true, message: '请选择籍贯', trigger: 'blur' }],
|
||||||
violationDate: [{ required: true, message: '请选择违纪时间', trigger: 'blur' }],
|
violationDate: [{ required: true, message: '请选择违纪时间', trigger: 'blur' }],
|
||||||
|
@@ -19,16 +19,16 @@
|
|||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
|
<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>
|
||||||
<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"
|
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
|
||||||
v-hasPermi="['routine:disqualification:edit']">修改</el-button>
|
v-hasPermi="['routine:disqualification:edit']">修改</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
|
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
|
||||||
v-hasPermi="['routine:disqualification:remove']">删除</el-button>
|
v-hasPermi="['routine:disqualification:remove']">删除</el-button>
|
||||||
</el-col>
|
</el-col> -->
|
||||||
<el-col :span="1.5">
|
<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"
|
||||||
v-hasPermi="['routine:disqualification:export']">导出</el-button>
|
v-hasPermi="['routine:disqualification:export']">导出</el-button>
|
||||||
@@ -240,7 +240,9 @@ export default {
|
|||||||
departmentName: [{ required: true, message: '部门不能为空', trigger: 'blur' }],
|
departmentName: [{ required: true, message: '部门不能为空', trigger: 'blur' }],
|
||||||
gradeName: [{ required: true, message: '年级不能为空', trigger: 'blur' }],
|
gradeName: [{ required: true, message: '年级不能为空', trigger: 'blur' }],
|
||||||
className: [{ required: true, message: '班级不能为空', trigger: 'blur' }],
|
className: [{ required: true, message: '班级不能为空', trigger: 'blur' }],
|
||||||
|
mz: [{ required: true, message: '民族不能为空', trigger: 'blur' }],
|
||||||
jg: [{ required: true, message: '籍贯不能为空', trigger: 'blur' }],
|
jg: [{ required: true, message: '籍贯不能为空', trigger: 'blur' }],
|
||||||
|
politicalStatus: [{ required: true, message: '请选择政治面貌', trigger: 'blur' }],
|
||||||
attachmentUpload: [{ required: true, message: '请上传附件', trigger: 'blur' }],
|
attachmentUpload: [{ required: true, message: '请上传附件', trigger: 'blur' }],
|
||||||
ideologicalEducation: [{ required: true, message: '请输入辅导员联系情况及学生不在校情况说明', trigger: 'blur' }],
|
ideologicalEducation: [{ required: true, message: '请输入辅导员联系情况及学生不在校情况说明', trigger: 'blur' }],
|
||||||
instructionSchoolHours: [{ required: true, message: '在校时间说明', trigger: 'blur' }],
|
instructionSchoolHours: [{ required: true, message: '在校时间说明', trigger: 'blur' }],
|
||||||
|
@@ -41,6 +41,10 @@
|
|||||||
<template slot="label"> 民族 </template>
|
<template slot="label"> 民族 </template>
|
||||||
{{ form.mz }}
|
{{ form.mz }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item>
|
||||||
|
<template slot="label"> 政治面貌 </template>
|
||||||
|
{{ form.politicalStatus }}
|
||||||
|
</el-descriptions-item>
|
||||||
<el-descriptions-item>
|
<el-descriptions-item>
|
||||||
<template slot="label"> 出生日期 </template>
|
<template slot="label"> 出生日期 </template>
|
||||||
{{ form.birthday }}
|
{{ form.birthday }}
|
||||||
|
@@ -18,14 +18,14 @@
|
|||||||
|
|
||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<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>
|
||||||
<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-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>
|
||||||
<el-col :span="1.5">
|
<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-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-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-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['routine:relieve:export']">导出</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
@@ -119,6 +119,18 @@
|
|||||||
<el-input v-model="form.mz" placeholder="" />
|
<el-input v-model="form.mz" placeholder="" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</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-col :span="12">
|
||||||
<el-form-item label="出生日期" prop="birthday">
|
<el-form-item label="出生日期" prop="birthday">
|
||||||
<el-input v-model="form.birthday" placeholder="" />
|
<el-input v-model="form.birthday" placeholder="" />
|
||||||
@@ -247,6 +259,7 @@ export default {
|
|||||||
gradeName: [{ required: true, message: '请输入年级', trigger: 'blur' }],
|
gradeName: [{ required: true, message: '请输入年级', trigger: 'blur' }],
|
||||||
className: [{ required: true, message: '请输入班级', trigger: 'blur' }],
|
className: [{ required: true, message: '请输入班级', trigger: 'blur' }],
|
||||||
mz: [{ required: true, message: '请输入民族', trigger: 'blur' }],
|
mz: [{ required: true, message: '请输入民族', trigger: 'blur' }],
|
||||||
|
politicalStatus: [{ required: true, message: '请选择政治面貌', trigger: 'blur' }],
|
||||||
birthday: [{ required: true, message: '请输入出生日期', trigger: 'blur' }],
|
birthday: [{ required: true, message: '请输入出生日期', trigger: 'blur' }],
|
||||||
jg: [{ required: true, message: '请选择籍贯', trigger: 'blur' }],
|
jg: [{ required: true, message: '请选择籍贯', trigger: 'blur' }],
|
||||||
penaltyNumber: [{ required: true, message: '请输入处分文号', trigger: 'blur' }],
|
penaltyNumber: [{ required: true, message: '请输入处分文号', trigger: 'blur' }],
|
||||||
|
@@ -20,14 +20,14 @@
|
|||||||
|
|
||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<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>
|
||||||
<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-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>
|
||||||
<el-col :span="1.5">
|
<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-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-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-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['routine:rtStuDropOutSchool:export']">导出</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
@@ -304,6 +304,7 @@ export default {
|
|||||||
parentPhone: [{ required: true, message: '家长电话不能为空', trigger: 'blur' }],
|
parentPhone: [{ required: true, message: '家长电话不能为空', trigger: 'blur' }],
|
||||||
mz: [{ required: true, message: '民族不能为空', trigger: 'blur' }],
|
mz: [{ required: true, message: '民族不能为空', trigger: 'blur' }],
|
||||||
jg: [{ required: true, message: '籍贯不能为空', trigger: 'blur' }],
|
jg: [{ required: true, message: '籍贯不能为空', trigger: 'blur' }],
|
||||||
|
politicalStatus: [{ required: true, message: '请选择政治面貌', trigger: 'blur' }],
|
||||||
attachmentUpload: [{ required: true, message: '请上传附件', trigger: 'blur' }],
|
attachmentUpload: [{ required: true, message: '请上传附件', trigger: 'blur' }],
|
||||||
reasonApplying: [{ required: true, message: '请输入申请原因', trigger: 'blur' }],
|
reasonApplying: [{ required: true, message: '请输入申请原因', trigger: 'blur' }],
|
||||||
applySignature: [{ required: true, message: '请上传申请人签名', trigger: 'blur' }],
|
applySignature: [{ required: true, message: '请上传申请人签名', trigger: 'blur' }],
|
||||||
|
@@ -18,14 +18,14 @@
|
|||||||
|
|
||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<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>
|
||||||
<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-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>
|
||||||
<el-col :span="1.5">
|
<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-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-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-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['routine:rtStuQuitSchool:export']">导出</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
@@ -293,6 +293,7 @@ export default {
|
|||||||
parentPhone: [{ required: true, message: '家长电话不能为空', trigger: 'blur' }],
|
parentPhone: [{ required: true, message: '家长电话不能为空', trigger: 'blur' }],
|
||||||
mz: [{ required: true, message: '民族不能为空', trigger: 'blur' }],
|
mz: [{ required: true, message: '民族不能为空', trigger: 'blur' }],
|
||||||
jg: [{ required: true, message: '籍贯不能为空', trigger: 'blur' }],
|
jg: [{ required: true, message: '籍贯不能为空', trigger: 'blur' }],
|
||||||
|
politicalStatus: [{ required: true, message: '请选择政治面貌', trigger: 'blur' }],
|
||||||
attachmentUpload: [{ required: true, message: '请上传附件', trigger: 'blur' }],
|
attachmentUpload: [{ required: true, message: '请上传附件', trigger: 'blur' }],
|
||||||
reasonApplying: [{ required: true, message: '请输入申请原因', trigger: 'blur' }],
|
reasonApplying: [{ required: true, message: '请输入申请原因', trigger: 'blur' }],
|
||||||
applySignature: [{ required: true, message: '请上传申请人签名', trigger: 'blur' }],
|
applySignature: [{ required: true, message: '请上传申请人签名', trigger: 'blur' }],
|
||||||
|
@@ -18,14 +18,14 @@
|
|||||||
|
|
||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<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>
|
||||||
<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-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>
|
||||||
<el-col :span="1.5">
|
<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-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-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-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['routine:rtStuReentrySchool:export']">导出</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
@@ -308,6 +308,7 @@ export default {
|
|||||||
parentPhone: [{ required: true, message: '家长电话不能为空', trigger: 'blur' }],
|
parentPhone: [{ required: true, message: '家长电话不能为空', trigger: 'blur' }],
|
||||||
mz: [{ required: true, message: '民族不能为空', trigger: 'blur' }],
|
mz: [{ required: true, message: '民族不能为空', trigger: 'blur' }],
|
||||||
jg: [{ required: true, message: '籍贯不能为空', trigger: 'blur' }],
|
jg: [{ required: true, message: '籍贯不能为空', trigger: 'blur' }],
|
||||||
|
politicalStatus: [{ required: true, message: '请选择政治面貌', trigger: 'blur' }],
|
||||||
attachmentUpload: [{ required: true, message: '请上传附件', trigger: 'blur' }],
|
attachmentUpload: [{ required: true, message: '请上传附件', trigger: 'blur' }],
|
||||||
reasonApplying: [{ required: true, message: '请输入申请原因', trigger: 'blur' }],
|
reasonApplying: [{ required: true, message: '请输入申请原因', trigger: 'blur' }],
|
||||||
applySignature: [{ required: true, message: '请上传申请人签名', trigger: 'blur' }],
|
applySignature: [{ required: true, message: '请上传申请人签名', trigger: 'blur' }],
|
||||||
|
@@ -16,7 +16,7 @@
|
|||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
<el-form-item label="审核时间" prop="reviewTime">
|
<el-form-item label="审核时间" prop="reviewTime">
|
||||||
<el-date-picker clearable v-model="queryParams.reviewTime" type="date" value-format="yyyy-MM-dd"
|
<el-date-picker clearable v-model="queryParams.reviewTime" type="date" value-format="yyyy-MM-dd"
|
||||||
placeholder="请选择审核时间">
|
placeholder="请选择审核时间">
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
@@ -28,19 +28,19 @@
|
|||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
|
<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>
|
||||||
<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"
|
<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>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
|
<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>
|
||||||
<el-col :span="1.5">
|
<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"
|
||||||
v-hasPermi="['routine:stuMultiLevelReview:export']">导出</el-button>
|
v-hasPermi="['routine:stuMultiLevelReview:export']">导出</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getUser"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getUser"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
@@ -76,17 +76,17 @@
|
|||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="300">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="300">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button size="mini" type="text" @click="handleCompleted(scope.row)"
|
<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)"
|
<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)"
|
<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>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
<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>
|
||||||
<el-form-item label="审核时间" prop="reviewTime">
|
<el-form-item label="审核时间" prop="reviewTime">
|
||||||
<el-date-picker clearable v-model="form.reviewTime" type="date" value-format="yyyy-MM-dd"
|
<el-date-picker clearable v-model="form.reviewTime" type="date" value-format="yyyy-MM-dd"
|
||||||
placeholder="请选择审核时间">
|
placeholder="请选择审核时间">
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="备注" prop="notes">
|
<el-form-item label="备注" prop="notes">
|
||||||
@@ -229,7 +229,7 @@ export default {
|
|||||||
this.roleGroup = response.roleGroup;
|
this.roleGroup = response.roleGroup;
|
||||||
// this.postGroup = response.postGroup;
|
// this.postGroup = response.postGroup;
|
||||||
// console.log(response);
|
// console.log(response);
|
||||||
if (!response.roleGroup.includes("超级管理员")) {
|
if (!response.roleGroup.includes("超级管理员")) {
|
||||||
this.queryParams.reviewer = response.data.nickName
|
this.queryParams.reviewer = response.data.nickName
|
||||||
}
|
}
|
||||||
this.getList();
|
this.getList();
|
||||||
@@ -237,7 +237,7 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
/** 查询多级审核
|
/** 查询多级审核
|
||||||
列表 */
|
列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
listStuMultiLevelReview(this.queryParams).then(response => {
|
listStuMultiLevelReview(this.queryParams).then(response => {
|
||||||
@@ -346,25 +346,25 @@ export default {
|
|||||||
this.completedForm.id = row.id;
|
this.completedForm.id = row.id;
|
||||||
this.completedOpen = true;
|
this.completedOpen = true;
|
||||||
},
|
},
|
||||||
|
|
||||||
// 完成制作表单重置
|
// 完成制作表单重置
|
||||||
resetCompleted() {
|
resetCompleted() {
|
||||||
this.completedForm = {
|
this.completedForm = {
|
||||||
stuName: null,
|
stuName: null,
|
||||||
stuNo: null,
|
stuNo: null,
|
||||||
reason: null,
|
reason: null,
|
||||||
messageContent: "你申请办理的学生证制作完成,长堽校区前往xxx领取,里建校区前往xxx领取",
|
messageContent: "你申请办理的学生证制作完成,长堽校区前往经管楼学工处1-1办公室领取,里建校区前往“一站式”学生社区大厅领取",
|
||||||
id: null
|
id: null
|
||||||
};
|
};
|
||||||
this.resetForm("completedForm");
|
this.resetForm("completedForm");
|
||||||
},
|
},
|
||||||
|
|
||||||
// 完成制作取消按钮
|
// 完成制作取消按钮
|
||||||
cancelCompleted() {
|
cancelCompleted() {
|
||||||
this.completedOpen = false;
|
this.completedOpen = false;
|
||||||
this.resetCompleted();
|
this.resetCompleted();
|
||||||
},
|
},
|
||||||
|
|
||||||
// 完成制作提交按钮
|
// 完成制作提交按钮
|
||||||
submitCompleted() {
|
submitCompleted() {
|
||||||
this.$refs["completedForm"].validate(valid => {
|
this.$refs["completedForm"].validate(valid => {
|
||||||
@@ -374,10 +374,10 @@ export default {
|
|||||||
const receiverId = response.data;
|
const receiverId = response.data;
|
||||||
if (!receiverId) {
|
if (!receiverId) {
|
||||||
throw new Error('未找到学生用户ID');
|
throw new Error('未找到学生用户ID');
|
||||||
}
|
}
|
||||||
// 第二步:获取当前用户信息作为发送者
|
// 第二步:获取当前用户信息作为发送者
|
||||||
return getUserProfile().then(userResponse => {
|
return getUserProfile().then(userResponse => {
|
||||||
const senderId = userResponse.data.userId;
|
const senderId = userResponse.data.userId;
|
||||||
// 第三步:发送消息通知学生
|
// 第三步:发送消息通知学生
|
||||||
return addMsg({
|
return addMsg({
|
||||||
sender: senderId,
|
sender: senderId,
|
||||||
|
Reference in New Issue
Block a user