Compare commits

..

15 Commits

Author SHA1 Message Date
zhy
1c985b0269 新生分配宿舍 2025-09-07 22:56:54 +08:00
zhy
81692cb83a 同步班级代码到新生信息 2025-09-07 22:10:50 +08:00
e19ebcb9ba 修改新生信息查询的页面 2025-09-06 19:42:18 +08:00
85c9f49679 提交前端博爱错 2025-09-03 15:25:39 +08:00
MDSMO
6bda0684a2 Merge remote-tracking branch 'origin/main' 2025-08-29 19:53:36 +08:00
MDSMO
1573c9f4e1 综合素质评价 2025-08-29 19:51:59 +08:00
d72d8f0235 提交缺失的文件 2025-08-29 11:14:34 +08:00
MDSMO
3027834baf 辅导员查看学生填写的完整信息 2025-08-28 15:16:19 +08:00
MDSMO
8543ce1ce9 新生报道页面加上是否吸烟、是否早睡字段 2025-08-28 15:13:31 +08:00
MDSMO
c6b368d113 Merge remote-tracking branch 'origin/main' 2025-08-28 15:12:15 +08:00
MDSMO
a3f6cce8b4 修改查寝管理修改页面的bug 2025-08-28 15:11:56 +08:00
a3fb6dec15 删除了学工·辅导员管理-业绩考核-科室复审-学工处长这两个角色的待办渲染 2025-08-27 15:09:08 +08:00
55979198fb 先进班集体和综合素质申请审核修改 2025-08-27 15:04:57 +08:00
bbd7fa492c Merge branch 'main' of http://47.112.118.149:10082/xgxt_sd/zhxg_pc 2025-08-26 11:20:24 +08:00
89b7b140bb feat(心理评估): 新增学生心理评估详情页及聊天记录查看功能
- 在API中添加获取单个学生历史心理记录接口
- 重构心理评估列表页面,增加搜索、分页功能
- 新增心理评估详情对话框,包含学生信息和历史记录
- 添加聊天记录标签页,支持查看学生与AI的对话历史
- 实现加载更多消息功能,优化Markdown内容渲染
- 改进UI样式,增加响应式设计和交互效果
2025-08-26 11:19:52 +08:00
25 changed files with 2036 additions and 471 deletions

View File

@@ -1,19 +1,27 @@
import request from '@/utils/request'
import request from "@/utils/request";
// 获取学生AI对话消息列表管理员查看
export function getMessagesToAdmin(params) {
return request({
url: '/aitutor/aichat/getMessagesToAdmin',
method: 'get',
params: params
})
url: "/aitutor/aichat/getMessagesToAdmin",
method: "get",
params: params,
});
}
// 获取心理评估数据
export function getPsychologicalRatings(query) {
return request({
url: '/api/wechat/rating/all',
method: 'get',
params: query
})
}
url: "/api/wechat/rating/all",
method: "get",
params: query,
});
}
// 获取单个学生的历史心理记录
export function getStudentRatingHistory(stuNo) {
return request({
url: `/api/wechat/rating/${stuNo}`,
method: "get",
});
}

View File

@@ -76,6 +76,40 @@ export function updateExperience(data) {
export function delExperience(eduId) {
return request({
url: '/comprehensive/experience/' + eduId,
method: 'post'
method: 'delete'
})
}
// 辅导员查看学生教育经历
export function getOwnExpFdy(stuNo){
return request({
url:`/comprehensive/experience/getOwnExpFdy/${stuNo}`,
method:"get"
});
}
// 辅导员添加学生教育经历
export function addOwnExpFdy(data){
return request({
url:'/comprehensive/experience/addOwnExpFdy',
method:"post",
data
});
}
// 辅导员编辑学生教育经历
export function editOwnExpFdy(data){
return request({
url:'/comprehensive/experience/editOwnExpFdy',
method: 'POST',
data
});
}
// 辅导员删除学生教育经历
export function deleteOwnExpFdy(id){
return request({
url:`/comprehensive/experience/deleteOwnExpFdy/${id}`,
method:"post"
});
}

View File

@@ -0,0 +1,64 @@
import request from '@/utils/request'
// 查询辅导员综合评价完成状态列表
export function getTeacherEvaluationStatus(query) {
return request({
url: '/comprehensive/teacherEvaluationStatus/list',
method: 'get',
params: query
})
}
// 导出辅导员综合评价完成状态
export function exportTeacherEvaluationStatus(query) {
return request({
url: '/comprehensive/teacherEvaluationStatus/export',
method: 'get',
params: query,
responseType: 'blob'
})
}
// 查询辅导员待办事项数量
export function getTeacherTodoCount(query) {
return request({
url: '/comprehensive/teacherEvaluationStatus/todoCount',
method: 'get',
params: query
})
}
// 查询综合评价成绩导入状态
export function getScoreImportStatus(query) {
return request({
url: '/comprehensive/teacherEvaluationStatus/scoreImportStatus',
method: 'get',
params: query
})
}
// 获取辅导员详细信息
export function getTeacherDetail(teacherId) {
return request({
url: '/comprehensive/teacherEvaluationStatus/' + teacherId,
method: 'get'
})
}
// 批量更新辅导员评价状态
export function batchUpdateStatus(data) {
return request({
url: '/comprehensive/teacherEvaluationStatus/batchUpdate',
method: 'post',
data: data
})
}
// 获取学院列表
export function getDeptNameList(query) {
return request({
url: '/comprehensive/teacherEvaluationStatus/deptList',
method: 'get',
params: query
})
}

16
src/api/stureg/temp.js Normal file
View File

@@ -0,0 +1,16 @@
import request from '@/utils/request';
export function syncClassCode() {
return request({
url: "/system/reg/syncClassCode",
method: "post"
});
}
export function listXsxxTemp(params) {
return request({
url: "/system/reg/listXsxxTemp",
method: "GET",
params
});
}

View File

@@ -62,7 +62,7 @@ export default {
url: "/hard/zxj/fdy"
},
{
label: "辅导员·宿舍管理审核",
label: "辅导员·调宿申请审核",
name: "dms",
value: 0,
url: "/dormitory/stuDormitoryManage/fdys"
@@ -132,6 +132,20 @@ export default {
value: 0,
url: "/dormitory/new/FdyConfirm"
},
//庞世斌
{
label: "辅导员·综合素质审核",
name: "zhsz",
value: 0,
url: "/stuCQS/process/TODoList"
},
{
label: "辅导员·先进班集体审核",
name: "xjbjt",
value: 0,
url: "/stuGood/good-class/fdy"
},
],

View File

@@ -133,19 +133,6 @@ export default {
value: 0,
url: "/teacher/achievement/achievementCheck",
},
// 陈冠元
{
label: "学工·辅导员管理-业绩考核-科室复审",
name: "yj",
value: 0,
url: "/teacher/teacherKpiFilling/studentAffairsOfficeAudit/KSAuditList",
},
{
label: "学工·辅导员管理-业绩考核-学工处长审核",
name: "bj",
value: 0,
url: "/teacher/teacherKpiFilling/studentAffairsOfficeAudit/XGCZAuditList",
},
],
};
},

View File

@@ -116,6 +116,13 @@ export default {
value: 0,
url: "/teacher/teacherKpiFilling/collegeAudit/XWAuditList",
},
//庞世斌
{
label: "学务·先进班集体审核",
name: "xjbjt",
value: 0,
url: "/stuGood/good-class/xw",
},
],
};
},
@@ -140,10 +147,10 @@ export default {
}
},
toRoute(url) {
if (!isEmpty(url)) {
this.$router.push(url);
}
toRoute(url) {
if (!isEmpty(url)) {
this.$router.push(url);
}
},
},
};

View File

@@ -218,6 +218,12 @@ export default {
value: 0,
url: "/dormitory/stuDormitoryManage/final"
},
{
label: "学务·先进班集体审核",
name: "xjbjt",
value: 0,
url: "/stuGood/good-class/xw",
},
// {
// label: "勤工助学学生岗位申请审核",
// name: "qgzxgw",

View File

@@ -210,11 +210,25 @@ export default {
url: "/hard/zxj/fdy"
},
{
label: "宿舍管理审核",
label: "调宿申请审核",
name: "dms",
value: 0,
url: "/dormitory/stuDormitoryManage/fdys"
},
//庞世斌
{
label: "辅导员·综合素质审核",
name: "zhsz",
value: 0,
url: "/stuCQS/process/TODoList"
},
{
label: "辅导员·先进班集体审核",
name: "xjbjt",
value: 0,
url: "/stuGood/good-class/fdy"
},
// {
// label: "勤工助学学生岗位申请审核",
// name: "qgzxgw",

View File

@@ -151,6 +151,13 @@ export default {
value: 0,
url: "/dormitory/stuDormitoryManage/accommodation",
},
{
label: "学工·先进班集体审核",
name: "xjbjt",
value: 0,
url: "/stuGood/good-class/jwc"
},
// {
// label: "勤工助学学生岗位申请审核",
// name: "qgzxgw",

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,165 @@
<template>
<div>
<table>
<thead>
<tr>
<th>开始时间</th>
<th>结束时间</th>
<th>学校(单位)名称</th>
<th>职务</th>
<th>证明人</th>
<th style="width: 10rem;">操作</th>
</tr>
</thead>
<tbody>
<tr v-for="(v, i) in exp_list" :key="i" class="custom-input">
<td data-label="开始时间">
<span v-if="isEmpty(v.isEdit)">{{ v.startTime }}</span>
<input v-else type="date" v-model="v.startTime" />
</td>
<td data-label="结束时间">
<span v-if="isEmpty(v.isEdit)">{{ v.endTime }}</span>
<input v-else type="date" v-model="v.endTime" />
</td>
<td data-label="学校(单位)名称">
<span v-if="isEmpty(v.isEdit)">{{ v.schoolName }}</span>
<input v-else v-model="v.schoolName" />
</td>
<td data-label="职务">
<span v-if="isEmpty(v.isEdit)">{{ v.post }}</span>
<input v-else v-model="v.post" />
</td>
<td data-label="证明人">
<span v-if="isEmpty(v.isEdit)">{{ v.certifier }}</span>
<input v-else v-model="v.certifier" />
</td>
<td data-label="操作">
<span>查看</span>
</td>
</tr>
</tbody>
</table>
</div>
</template>
<script>
import { getOwnExpFdy } from "@/api/stuCQS/basedata/experience";
import { fullLoading, isEmpty } from "@/api/helpFunc";
export default {
name: "edu-exp-knrd",
props: {
stuNo: {
type: String,
default: ""
},
},
data() {
return {
isEmpty,
exp_list: []
}
},
created() {
this.getOwnExpFdy(this.stuNo);
},
methods: {
async getOwnExpFdy(stuNo) {
let loading = fullLoading(this);
let res = await getOwnExpFdy(stuNo);
loading.close();
if (res.code == 200) {
this.exp_list = res.data;
}
}
}
}
</script>
<style scoped>
table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
font-size: 14px;
text-align: left;
}
table th,
table td {
padding: 12px 15px;
border: 1px solid #ddd;
}
table th {
background-color: #f2f2f2;
font-weight: bold;
}
table tr:nth-child(even) {
background-color: #f9f9f9;
}
table tr:hover {
background-color: #f5f5f5;
}
.custom-input input {
width: 100%;
padding: 5px;
border: 1px solid #ccc;
border-radius: 3px;
}
@media screen and (max-width: 600px) {
table {
border: 0;
}
table caption {
font-size: 1.3em;
}
table thead {
border: none;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
table tr {
border-bottom: 3px solid #ddd;
display: block;
margin-bottom: .625em;
}
table td {
border-bottom: 1px solid #ddd;
display: block;
font-size: .8em;
text-align: right;
}
table td::before {
content: attr(data-label);
float: left;
font-weight: bold;
text-transform: uppercase;
}
table td:last-child {
border-bottom: 0;
}
}
.note {
max-width: 80%;
margin: 0 auto;
}
</style>

View File

@@ -19,114 +19,51 @@
<tbody>
<tr v-for="(v, i) in family_list" :key="i" class="custom-input">
<td style="width: 5rem;" data-label="姓名">
<span v-if="isEmpty(v.isEdit)">{{ v.familyName }}</span>
<input v-else v-model="v.familyName" />
<span>{{ v.familyName }}</span>
</td>
<td data-label="与学生关系">
<span v-if="isEmpty(v.isEdit)">{{ v.familyRelation }}</span>
<input v-else v-model="v.familyRelation" />
<span>{{ v.familyRelation }}</span>
</td>
<td data-label="年龄">
<span v-if="isEmpty(v.isEdit)">{{ v.age }}</span>
<input v-else type="number" v-model="v.age" />
<span>{{ v.age }}</span>
</td>
<!-- <td data-label="出生日期">
<span v-if="isEmpty(v.isEdit)">{{ v.birthday }}</span>
<input v-else type="date" v-model="v.birthday" />
</td> -->
<td data-label="政治面貌">
<span v-if="isEmpty(v.isEdit)">{{ v.zzmm }}</span>
<input v-else v-model="v.zzmm" />
<span>{{ v.zzmm }}</span>
</td>
<td data-label="职业">
<span v-if="isEmpty(v.isEdit)">{{ v.job }}</span>
<input v-else v-model="v.job" />
<span>{{ v.job }}</span>
</td>
<td data-label="工作单位">
<span v-if="isEmpty(v.isEdit)">{{ v.workPlace }}</span>
<input v-else v-model="v.workPlace" />
<span>{{ v.workPlace }}</span>
</td>
<td data-label="年收入">
<span v-if="isEmpty(v.isEdit)">{{ v.yearMoney }}</span>
<input type="number" v-else v-model="v.yearMoney" />
<span>{{ v.yearMoney }}</span>
</td>
<td data-label="联系电话">
<span v-if="isEmpty(v.isEdit)">{{ v.phone }}</span>
<input v-else v-model="v.phone" />
<span>{{ v.phone }}</span>
</td>
<td data-label="健康情况">
<span v-if="isEmpty(v.isEdit)">{{ v.health }}</span>
<input v-else v-model="v.health" />
<span>{{ v.health }}</span>
</td>
<td data-label="操作">
<el-button v-if="!isEmpty(v.isEdit)" @click="doEdit(v)" type="text" icon="el-icon-check">
保存
</el-button>
<el-button v-if="isEmpty(v.isEdit)" :disabled="oneEdit" @click="willEdit(v)" type="text"
icon="el-icon-edit">
修改
</el-button>
<el-button @click="doDelete(v)" type="text" icon="el-icon-delete">删除</el-button>
<span>查看</span>
</td>
</tr>
<tr v-if="addV">
<td data-label="姓名">
<input v-model="addForm.familyName" />
</td>
<td data-label="与学生关系">
<input v-model="addForm.familyRelation" />
</td>
<td data-label="年龄">
<input type="number" v-model="addForm.age" />
</td>
<!-- <td data-label="出生日期">
<input type="date" v-model="addForm.birthday" />
</td> -->
<td data-label="政治面貌">
<input v-model="addForm.zzmm" />
</td>
<td data-label="职业">
<input v-model="addForm.job" />
</td>
<td data-label="工作单位">
<input v-model="addForm.workPlace" />
</td>
<td data-label="年收入">
<input type="number" v-model="addForm.yearMoney" />
</td>
<td data-label="联系电话">
<input v-model="addForm.phone" />
</td>
<td data-label="健康情况">
<input v-model="addForm.health" />
</td>
<td data-label="操作">
<el-button @click="doAdd" type="text" icon="el-icon-check">保存</el-button>
<el-button @click="addV = false;" type="text" icon="el-icon-close">取消</el-button>
</td>
</tr>
<tr>
<td colspan="9" style="text-align: center;">
<el-button @click="addV = true;" :disabled="addV" style="display: inline-block;" type="text"
icon="el-icon-plus">新增一条</el-button>
</td>
</tr>
</tbody>
</table>
</div>
</template>
<script>
import { getOwnFamilyFdy, addOwnFamilyFdy, deleteOwnFamilyFdy, editOwnFamilyFdy } from "@/api/stuCQS/basedata/member";
import { getOwnFamilyFdy } from "@/api/stuCQS/basedata/member";
import { fullLoading, isEmpty } from "@/api/helpFunc";
import {
getOwnInfo
} from "@/api/stuCQS/basedata/student";
export default {
name: "family-member",
@@ -139,191 +76,20 @@ export default {
data() {
return {
isEmpty,
family_list: [],
addV: false,
addForm: {
},
editForm: {
},
oneEdit: false,
ownPhone: null
family_list: []
}
},
created() {
// this.getOwnInfo();
this.getOwnFamilyFdy(this.stuNo);
},
methods: {
async getOwnInfo() {
let res = await getOwnInfo();
if (res.code == 200) {
if (!isEmpty(res.data)) {
let data = {
...res.data
};
this.ownPhone = data.phone;
}
}
},
willEdit(v) {
this.editForm = { ...v };
v.isEdit = true;
this.oneEdit = true;
},
async doEdit(v) {
let sdata = { ...v };
if (isEmpty(sdata.familyName)) {
this.$message.info("请填写成员名称");
return;
}
if (isEmpty(sdata.age)) {
this.$message.info("请填写成员年龄");
return;
}
if (isEmpty(sdata.familyRelation)) {
this.$message.info("请填写与学生关系");
return;
}
// if (isEmpty(sdata.birthday)) {
// this.$message.info("请填写出生日期");
// return;
// }
if (isEmpty(sdata.zzmm)) {
this.$message.info("请填写政治面貌");
return;
}
if (isEmpty(sdata.job)) {
this.$message.info("请填写职业");
return;
}
if (isEmpty(sdata.workPlace)) {
this.$message.info("请填写工作单位");
return;
}
if (isEmpty(sdata.yearMoney)) {
this.$message.info("请填写年收入");
return;
}
if (isEmpty(sdata.phone)) {
this.$message.info("请填写联系方式");
return;
}
if (sdata.phone == this.ownPhone) {
this.$message.info("不能填写本人电话");
return;
}
if (isEmpty(sdata.health)) {
this.$message.info("请填写健康情况");
return;
}
let loading = fullLoading(this);
sdata.stuNo = this.stuNo;
let res = await editOwnFamilyFdy(sdata);
loading.close();
if (res.code == 200) {
this.$message.success(res.msg);
this.getOwnFamilyFdy(this.stuNo);
}
this.oneEdit = false;
v.isEdit = undefined;
},
async doAdd() {
let sdata = { ...this.addForm };
if (isEmpty(sdata.familyName)) {
this.$message.info("请填写成员名称");
return;
}
if (isEmpty(sdata.familyRelation)) {
this.$message.info("请填写与学生关系");
return;
}
// if (isEmpty(sdata.birthday)) {
// this.$message.info("请填写出生日期");
// return;
// }
if (isEmpty(sdata.zzmm)) {
this.$message.info("请填写政治面貌");
return;
}
if (isEmpty(sdata.job)) {
this.$message.info("请填写职业");
return;
}
if (isEmpty(sdata.workPlace)) {
this.$message.info("请填写工作单位");
return;
}
if (isEmpty(sdata.yearMoney)) {
this.$message.info("请填写年收入");
return;
}
if (isEmpty(sdata.phone)) {
this.$message.info("请填写联系方式");
return;
}
if (sdata.phone == this.ownPhone) {
this.$message.info("不能填写本人电话");
return;
}
if (isEmpty(sdata.health)) {
this.$message.info("请填写健康情况");
return;
}
let loading = fullLoading(this);
sdata.stuNo = this.stuNo;
let res = await addOwnFamilyFdy(sdata);
loading.close();
if (res.code == 200) {
this.addForm = {};
this.$message.success(res.msg);
this.getOwnFamilyFdy(this.stuNo);
}
this.addV = false;
},
async getOwnFamilyFdy(stuNo) {
let loading = fullLoading(this);
let res = await getOwnFamilyFdy(stuNo);
loading.close();
if (res.code == 200) {
this.family_list = [...res.data];
}
},
async doDelete(val) {
let id = val.id;
this.$confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async () => {
let loading = fullLoading(this);
let res = await deleteOwnFamilyFdy(id,this.stuNo);
loading.close();
if (res.code == 200) {
this.$message({
type: 'success',
message: '删除成功!'
});
this.getOwnFamilyFdy(this.stuNo);
}
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
}
}
}

View File

@@ -35,7 +35,7 @@
scope.row.roomNo + "(" + scope.row.gender + ")" }}
</template>
</el-table-column>
<el-table-column label="分配班级" align="center" prop="className" />
<!-- <el-table-column label="分配班级" align="center" prop="className" /> -->
<el-table-column label="宿舍床位数量" align="center" prop="bedNum" />
<el-table-column label="分配到的床位数量" align="center" prop="bedCount" />
<el-table-column label="是否开放给新生宿舍确认" align="center">

View File

@@ -2,8 +2,25 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="宿舍号" prop="dormitoryNumber">
<el-input v-model="queryParams.dormitoryNumber" placeholder="请输入宿舍号" clearable
@keyup.enter.native="handleQuery" />
<el-select
v-model="queryParams.dormitoryId"
placeholder="请选择宿舍"
filterable
remote
:remote-method="searchQueryDormitories"
:loading="queryDormLoading"
clearable
@change="handleQueryDormitoryChange"
style="width: 200px"
>
<el-option
v-for="dorm in queryDormitoryOptions"
:key="dorm.id"
:label="dorm.dorm_name"
:value="dorm.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="查寝时间" prop="checkDate">
<el-date-picker clearable v-model="queryParams.checkDate" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
@@ -63,14 +80,31 @@
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改查寝管理对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="宿舍号">
<DormSelect v-model="form.dormitoryId" />
<el-form-item label="宿舍号" prop="dormitoryId">
<el-select
v-model="form.dormitoryId"
placeholder="请选择宿舍"
filterable
remote
:remote-method="searchDormitories"
:loading="dormLoading"
clearable
@change="handleDormitoryChange"
style="width: 100%"
>
<el-option
v-for="dorm in dormitoryOptions"
:key="dorm.id"
:label="dorm.dorm_name"
:value="dorm.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="查寝图片" prop="checkImage">
<image-upload v-model="form.checkImage" />
@@ -96,15 +130,11 @@
</template>
<script>
import { addDormitoryCheck, delDormitoryCheck, getDormitoryCheck, listDormitoryCheck, updateDormitoryCheck, sendMail } from "@/api/dormitory/dmsDormitoryCheck/dormitoryCheck";
import DormSelect from "@/views/components/DormSelect.vue";
import { addDormitoryCheck, delDormitoryCheck, getDormitoryCheck, listDormitoryCheck, updateDormitoryCheck, sendMail, listDorm } from "@/api/dormitory/dmsDormitoryCheck/dormitoryCheck";
import { fullLoading } from "@/api/helpFunc";
export default {
name: "DormitoryCheck",
components: {
DormSelect
},
data() {
return {
// 遮罩层
@@ -127,15 +157,22 @@ export default {
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
dormitoryId: null,
dormitoryNumber: null,
checkImage: null,
checkResult: null,
checkDate: null,
},
// 查询宿舍选项列表
queryDormitoryOptions: [],
// 查询宿舍搜索加载状态
queryDormLoading: false,
// 表单参数
form: {},
// 宿舍选项列表
dormitoryOptions: [],
// 宿舍搜索加载状态
dormLoading: false,
// 表单校验
rules: {
dormitoryId: [
@@ -193,15 +230,16 @@ export default {
updateTime: null
};
this.resetForm("form");
this.dormitoryOptions = [];
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.queryDormitoryOptions = [];
this.handleQuery();
},
// 多选框选中数据
@@ -219,10 +257,20 @@ export default {
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const checkId = row.checkId || this.ids
const checkId = row.checkId || this.ids;
getDormitoryCheck(checkId).then(response => {
console.log('获取到的数据:', response.data);
this.form = response.data;
console.log(this.form);
// 如果有宿舍信息,添加到选项中
if (this.form.dormitoryId && this.form.dormitoryNumber) {
this.dormitoryOptions = [{
id: this.form.dormitoryId,
dorm_name: this.form.dormitoryNumber
}];
}
this.open = true;
this.title = "修改查寝管理";
});
@@ -262,7 +310,211 @@ export default {
this.download('dmsDormitoryCheck/dormitoryCheck/export', {
...this.queryParams
}, `dormitoryCheck_${new Date().getTime()}.xlsx`)
}
},
/** 搜索宿舍 */
searchDormitories(query) {
if (query !== '') {
this.dormLoading = true;
// 智能搜索:支持多种搜索方式的并行查询
const searchPromises = [];
// 1. 如果包含数字,尝试房间号搜索
if (/\d/.test(query)) {
const roomMatch = query.match(/\d+/);
if (roomMatch) {
searchPromises.push(
listDorm({ pageNum: 1, pageSize: 50, roomNo: roomMatch[0] })
);
}
}
// 2. 尝试楼栋名称搜索
searchPromises.push(
listDorm({ pageNum: 1, pageSize: 50, buildingName: query })
);
// 3. 尝试园区名称搜索
searchPromises.push(
listDorm({ pageNum: 1, pageSize: 50, parkName: query })
);
// 4. 如果查询长度较长,可能是完整的宿舍名称,尝试分解搜索
if (query.length > 2) {
// 尝试提取可能的园区和楼栋信息
const letterPart = query.match(/[A-Za-z\u4e00-\u9fa5]+/);
const numberPart = query.match(/\d+/);
if (letterPart && numberPart) {
// 同时搜索包含字母部分的楼栋和数字部分的房间号
searchPromises.push(
listDorm({
pageNum: 1,
pageSize: 50,
buildingName: letterPart[0],
roomNo: numberPart[0]
})
);
}
}
// 执行所有搜索并合并结果
Promise.allSettled(searchPromises).then(results => {
let allDormitories = [];
const seenIds = new Set();
results.forEach(result => {
if (result.status === 'fulfilled' && result.value.rows) {
result.value.rows.forEach(dorm => {
if (!seenIds.has(dorm.id)) {
seenIds.add(dorm.id);
allDormitories.push(dorm);
}
});
}
});
// 按相关性排序:优先显示包含查询字符串的结果
allDormitories.sort((a, b) => {
const aName = a.dorm_name.toLowerCase();
const bName = b.dorm_name.toLowerCase();
const queryLower = query.toLowerCase();
const aIncludes = aName.includes(queryLower);
const bIncludes = bName.includes(queryLower);
if (aIncludes && !bIncludes) return -1;
if (!aIncludes && bIncludes) return 1;
return aName.localeCompare(bName);
});
this.dormitoryOptions = allDormitories.slice(0, 20); // 限制显示数量
this.dormLoading = false;
}).catch(() => {
this.dormLoading = false;
});
} else {
this.dormitoryOptions = [];
}
},
/** 处理宿舍选择变化 */
handleDormitoryChange(dormitoryId) {
if (dormitoryId) {
const selectedDorm = this.dormitoryOptions.find(dorm => dorm.id === dormitoryId);
if (selectedDorm) {
this.form.dormitoryNumber = selectedDorm.dorm_name;
console.log('选择宿舍:', {
dormitoryId: dormitoryId,
dormitoryNumber: selectedDorm.dorm_name
});
}
} else {
this.form.dormitoryNumber = null;
}
},
/** 搜索查询宿舍 */
searchQueryDormitories(query) {
if (query !== '') {
this.queryDormLoading = true;
// 智能搜索:支持多种搜索方式的并行查询
const searchPromises = [];
// 1. 如果包含数字,尝试房间号搜索
if (/\d/.test(query)) {
const roomMatch = query.match(/\d+/);
if (roomMatch) {
searchPromises.push(
listDorm({ pageNum: 1, pageSize: 50, roomNo: roomMatch[0] })
);
}
}
// 2. 尝试楼栋名称搜索
searchPromises.push(
listDorm({ pageNum: 1, pageSize: 50, buildingName: query })
);
// 3. 尝试园区名称搜索
searchPromises.push(
listDorm({ pageNum: 1, pageSize: 50, parkName: query })
);
// 4. 如果查询长度较长,可能是完整的宿舍名称,尝试分解搜索
if (query.length > 2) {
// 尝试提取可能的园区和楼栋信息
const letterPart = query.match(/[A-Za-z\u4e00-\u9fa5]+/);
const numberPart = query.match(/\d+/);
if (letterPart && numberPart) {
// 同时搜索包含字母部分的楼栋和数字部分的房间号
searchPromises.push(
listDorm({
pageNum: 1,
pageSize: 50,
buildingName: letterPart[0],
roomNo: numberPart[0]
})
);
}
}
// 执行所有搜索并合并结果
Promise.allSettled(searchPromises).then(results => {
let allDormitories = [];
const seenIds = new Set();
results.forEach(result => {
if (result.status === 'fulfilled' && result.value.rows) {
result.value.rows.forEach(dorm => {
if (!seenIds.has(dorm.id)) {
seenIds.add(dorm.id);
allDormitories.push(dorm);
}
});
}
});
// 按相关性排序:优先显示包含查询字符串的结果
allDormitories.sort((a, b) => {
const aName = a.dorm_name.toLowerCase();
const bName = b.dorm_name.toLowerCase();
const queryLower = query.toLowerCase();
const aIncludes = aName.includes(queryLower);
const bIncludes = bName.includes(queryLower);
if (aIncludes && !bIncludes) return -1;
if (!aIncludes && bIncludes) return 1;
return aName.localeCompare(bName);
});
this.queryDormitoryOptions = allDormitories.slice(0, 20); // 限制显示数量
this.queryDormLoading = false;
}).catch(() => {
this.queryDormLoading = false;
});
} else {
this.queryDormitoryOptions = [];
}
},
/** 处理查询宿舍选择变化 */
handleQueryDormitoryChange(dormitoryId) {
if (dormitoryId) {
const selectedDorm = this.queryDormitoryOptions.find(dorm => dorm.id === dormitoryId);
if (selectedDorm) {
this.queryParams.dormitoryNumber = selectedDorm.dorm_name;
console.log('查询选择宿舍:', {
dormitoryId: dormitoryId,
dormitoryNumber: selectedDorm.dorm_name
});
}
} else {
this.queryParams.dormitoryNumber = null;
}
},
/** 宿舍列表查询方法 */
listDorm
}
};
</script>

View File

@@ -248,7 +248,6 @@ export default {
console.log("procInsId",procInsId)
getDisciplinaryApplicationByProcInsId(procInsId).then((response) => {
this.form = response.data
console.log("数据",this.form)
this.form.penaltyType = this.form.penaltyType.toString()
this.getStuInfo(this.form.stuNo)
})

View File

@@ -274,7 +274,6 @@ export default {
getRtStuDropOutSchool(dropOutSchoolId) {
getRtStuDropOutSchool(dropOutSchoolId).then((response) => {
this.form = response.data
this.form.penaltyType = this.form.penaltyType.toString()
})
},
// 类别

View File

@@ -285,7 +285,6 @@ export default {
getRtStuQuitSchool(quitSchoolId) {
getRtStuQuitSchool(quitSchoolId).then((response) => {
this.form = response.data
this.form.penaltyType = this.form.penaltyType.toString()
})
},
reentryYearMethodFormat(row, column) {

View File

@@ -262,7 +262,6 @@ export default {
getRtStuReentrySchool(reentryId) {
getRtStuReentrySchool(reentryId).then((response) => {
this.form = response.data
this.form.penaltyType = this.form.penaltyType.toString()
})
},
getRtStuReentrySchoolByProcInsId(procInsId) {

View File

@@ -182,7 +182,7 @@ import { listAllStuYear } from "@/api/stuCQS/info-fill/score";
import * as XLSX from 'xlsx';
import { workbook2blob, openDownloadDialog, file2Xce } from "@/api/helpFunc";
import { treeStudent, listEnableStu } from "@/api/stuCQS/basedata/student";
import { isEmpty } from "@/api/helpFunc";
import { isEmpty,fullLoading } from "@/api/helpFunc";
import { listAllYear as listYear } from "@/api/stuCQS/basedata/year";
import { listEnableYear } from "@/api/stuCQS/basedata/year";
@@ -399,7 +399,9 @@ export default {
});
let jsonStr = JSON.stringify(sdata);
let loading = fullLoading(this);
let res = await importExcel(jsonStr);
loading.close();
this.loading = false;
this.$message(res.msg);
this.getList();

View File

@@ -0,0 +1,183 @@
<template>
<div class="app-container" v-loading.fullscreen.lock="fullLoading">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="120px">
<el-form-item label="学院" prop="deptId">
<el-select v-model="queryParams.deptId" placeholder="请选择学院" clearable @keyup.enter.native="handleQuery">
<el-option v-for="(dept, index) in deptList" :key="index" :label="dept.label" :value="dept.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="辅导员姓名" prop="teacherName">
<el-input v-model="queryParams.teacherName" placeholder="请输入辅导员姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="工号" prop="employeeId">
<el-input v-model="queryParams.employeeId" placeholder="请输入工号" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="学年" prop="stuYearId">
<el-select v-model="queryParams.stuYearId" placeholder="请选择学年" clearable @keyup.enter.native="handleQuery">
<el-option v-for="year in yearList" :key="year.id" :label="year.stuYearName" :value="year.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="teacherStatusList">
<el-table-column label="学院" align="center" prop="deptName" width="150" />
<el-table-column label="辅导员姓名" align="center" prop="teacherName" width="120" />
<el-table-column label="工号" align="center" prop="employeeId" width="120" />
<el-table-column label="学年" align="center" prop="stuYearName" width="120" />
<el-table-column label="是否完成综合测评" align="center" prop="isCompleted" width="150">
<template slot-scope="scope">
<el-tag :type="scope.row.isCompleted ? 'success' : 'danger'">
{{ scope.row.isCompleted ? '已完成' : '未完成' }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="待办事项数量" align="center" prop="todoCount" width="120" />
<el-table-column label="成绩导入状态" align="center" prop="scoreImported" width="120">
<template slot-scope="scope">
<el-tag :type="scope.row.scoreImported ? 'success' : 'warning'">
{{ scope.row.scoreImported ? '已导入' : '未导入' }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remarks" />
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
</div>
</template>
<script>
import { getTeacherEvaluationStatus, exportTeacherEvaluationStatus, getDeptNameList } from "@/api/stuCQS/teacher-evaluation-status";
import { listAllYear } from "@/api/stuCQS/basedata/year";
import { fullLoading } from "@/api/helpFunc";
export default {
name: "TeacherEvaluationStatus",
data() {
return {
fullLoading: false,
// 遮罩层
loading: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 辅导员评价状态表格数据
teacherStatusList: [],
// 学院列表
deptList: [],
// 学年列表
yearList: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 50,
deptId: null,
teacherName: null,
employeeId: null,
stuYearId: null
}
};
},
created() {
this.getList();
this.getDeptList();
this.getYearList();
},
methods: {
/** 查询辅导员评价状态列表 */
async getList() {
this.loading = true;
try {
const response = await getTeacherEvaluationStatus(this.queryParams);
this.teacherStatusList = response.rows;
this.total = response.total;
} catch (error) {
this.$modal.msgError("查询失败");
} finally {
this.loading = false;
}
},
/** 获取学院列表 */
async getDeptList() {
try {
const response = await getDeptNameList({});
console.log("学院数据响应:", response);
this.deptList = response.data;
} catch (error) {
console.error("获取学院列表失败", error);
}
},
/** 获取学年列表 */
async getYearList() {
try {
const response = await listAllYear();
if (response.code === 200) {
this.yearList = response.data;
}
} catch (error) {
console.error("获取学年列表失败", error);
}
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
/** 导出按钮操作 */
async handleExport() {
try {
const loading = fullLoading(this);
await exportTeacherEvaluationStatus(this.queryParams);
this.$modal.msgSuccess("导出成功");
} catch (error) {
this.$modal.msgError("导出失败");
} finally {
this.fullLoading = false;
}
}
}
};
</script>
<style scoped>
.app-container {
padding: 20px;
color: #333;
}
.el-table {
color: #333;
}
.el-form-item label {
color: #333;
}
.el-input input {
color: #333;
}
.el-select .el-input input {
color: #333;
}
</style>

View File

@@ -35,6 +35,22 @@
<el-option label="是" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否抽烟" prop="isSmoke">
<el-select v-model="queryParams.isSmoke" placeholder="是否抽烟" clearable>
<el-option label="否" value="0"></el-option>
<el-option label="是" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否早睡" prop="isSleep">
<el-select v-model="queryParams.isSleep" placeholder="是否早睡" clearable>
<el-option label="否" value="0"></el-option>
<el-option label="是" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -96,6 +112,17 @@
<div>{{scope.row.isDirection=='1'?'是':'否'}}</div>
</template>
</el-table-column>
<el-table-column label="是否抽烟" align="center" prop="isSmoke" >
<template slot-scope="scope">
<div>{{scope.row.isSmoke=='1'?'是':'否'}}</div>
</template>
</el-table-column>
<el-table-column label="是否早睡" align="center" prop="isSleep" >
<template slot-scope="scope">
<div>{{scope.row.isSleep=='1'?'是':'否'}}</div>
</template>
</el-table-column>
<el-table-column label="兴趣特长" align="center" prop="hobby" width="180" />
<el-table-column label="退役复学" align="center" prop="isRetired" width="180" />
<el-table-column label="建档立卡户" align="center" prop="isFiling" width="180" />
<el-table-column label="是否残疾" align="center" prop="isDisability" width="180" />

View File

@@ -47,6 +47,11 @@
<dict-tag :options="dict.type.srs_stu_reg_status" :value="scope.row.regStatus" />
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-view" @click="viewStudentDetail(scope.row)">查看详情</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
@@ -66,6 +71,143 @@
</el-table>
</el-dialog>
<!-- 学生详情弹窗 -->
<el-dialog title="学生详情" :visible.sync="studentDetailVisible" width="80%" :close-on-click-modal="false">
<el-tabs v-model="activeTab">
<el-tab-pane label="基本信息" name="basic">
<el-form size="mini" label-width="120px">
<el-row>
<el-col :span="12">
<el-form-item label="学院">
<el-input v-model="studentDetail.deptName" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="专业">
<el-input v-model="studentDetail.majorName" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="班级">
<el-input v-model="studentDetail.className" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学号">
<el-input v-model="studentDetail.stuNo" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="姓名">
<el-input v-model="studentDetail.stuName" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="性别">
<el-input v-model="studentDetail.xb" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="考生号">
<el-input v-model="studentDetail.ksh" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号">
<el-input v-model="studentDetail.idCard" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="手机号">
<el-input v-model="studentDetail.phone" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年级">
<el-input v-model="studentDetail.gradeName" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="辅导员">
<el-input v-model="studentDetail.teacherName" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="注册状态">
<el-input v-model="studentDetail.regStatus" readonly></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-tab-pane>
<el-tab-pane label="详细信息" name="detail">
<el-form size="mini" label-width="120px">
<el-row>
<el-col :span="12">
<el-form-item label="出生日期">
<el-input v-model="studentDetail.birthday" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="民族">
<el-input v-model="studentDetail.mz" readonly></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="政治面貌">
<el-input v-model="studentDetail.zzmm" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="血型">
<el-input v-model="studentDetail.xx" readonly></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="籍贯">
<el-input v-model="studentDetail.jg" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="户口性质">
<el-input v-model="studentDetail.hkxz" readonly></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="户口所在地">
<el-input v-model="studentDetail.hkszd" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="银行卡号">
<el-input v-model="studentDetail.yhkh" readonly></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="银行地址">
<el-input v-model="studentDetail.yhdz" readonly></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-tab-pane>
<el-tab-pane label="家庭成员" name="family">
<FamilyMemberKnrd :stuNo="studentDetail.ksh || studentDetail.xh || studentDetail.stuNo" v-if="studentDetail.ksh || studentDetail.xh || studentDetail.stuNo" />
</el-tab-pane>
<el-tab-pane label="教育经历" name="education">
<EduExpKnrd :stuNo="studentDetail.ksh || studentDetail.xh || studentDetail.stuNo" v-if="studentDetail.ksh || studentDetail.xh || studentDetail.stuNo" />
</el-tab-pane>
</el-tabs>
</el-dialog>
</div>
</template>
<script>
@@ -73,12 +215,22 @@ import { listFdy } from "@/api/stureg/stu";
import { listStuTodo } from "@/api/stureg/stu_todo";
import { getStuInfo } from "@/api/stuCQS/basedata/stuInfoView";
import { getExtraInfo } from "@/api/stuCQS/basedata/extraInfo";
import { workbook2blob, openDownloadDialog, dbfToJson, isEmpty, fullLoading } from "@/api/helpFunc";
import FamilyMemberKnrd from "@/views/basedata/private/components/FamilyMemberKnrd.vue";
import EduExpKnrd from "@/views/basedata/private/components/EduExpKnrd.vue";
export default {
name: "reg-stu-fdy",
dicts: ['srs_stu_reg_status', 'srs_remain_status'],
components: {
FamilyMemberKnrd,
EduExpKnrd
},
data() {
return {
stu_list: [],
@@ -91,7 +243,12 @@ export default {
loading: false,
taskV: false,
task_list: []
task_list: [],
// 学生详情相关
studentDetailVisible: false,
activeTab: 'basic',
studentDetail: {}
}
},
created() {
@@ -126,6 +283,46 @@ export default {
this.resetForm("queryForm");
this.handleQuery();
},
/** 查看学生详情 */
async viewStudentDetail(row) {
let loading = fullLoading(this);
try {
// 使用考生号或学号获取基本信息
let stuNo = row.ksh || row.xh || row.stuNo;
if (!stuNo) {
this.$message.error('无法获取学生学号信息');
loading.close();
return;
}
// 获取基本信息
let basicRes = await getStuInfo(stuNo);
loading.close();
if (basicRes.code == 200) {
// 合并基本信息和当前行数据
this.studentDetail = {
...row,
...basicRes.data,
// 映射字段名称
stuName: row.xsxm || basicRes.data.stuName,
ksh: row.ksh || basicRes.data.ksh,
xb: row.xb || basicRes.data.xb
};
this.activeTab = 'basic';
this.studentDetailVisible = true;
} else {
this.$message.error('获取学生详情失败: ' + (basicRes.msg || '未知错误'));
}
} catch (error) {
loading.close();
console.error('获取学生详情出错:', error);
this.$message.error('获取学生详情失败');
}
},
}
}

View File

@@ -0,0 +1,100 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="140px">
<el-form-item label="临时学号" prop="临时学号报到后给新的">
<el-input v-model="queryParams.临时学号报到后给新的" placeholder="请输入临时学号" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="教务系统班级编号" prop="教务系统班级编号">
<el-input v-model="queryParams.教务系统班级编号" placeholder="请输入教务系统班级编号" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button type="success" icon="el-icon-sort" size="mini" @click="syncClassCode">同步班级代码到新生信息</el-button>
</el-form-item>
</el-form>
<el-table :data="tableData" border style="width: 100%"
:header-cell-style="{ background: '#f5f7fa', fontWeight: 'bold' }">
<el-table-column prop="临时学号报到后给新的" label="临时学号(报到后给新的)" width="180"></el-table-column>
<el-table-column prop="姓名" label="姓名" width="120"></el-table-column>
<el-table-column prop="性别" label="性别" width="80"></el-table-column>
<el-table-column prop="出生日期字符串" label="出生日期" width="140"></el-table-column>
<el-table-column prop="民族代码" label="民族代码" width="120"></el-table-column>
<el-table-column prop="民族名称" label="民族名称" width="120"></el-table-column>
<el-table-column prop="政治面貌代码" label="政治面貌代码" width="140"></el-table-column>
<el-table-column prop="政治面貌名称" label="政治面貌名称" width="140"></el-table-column>
<el-table-column prop="教务系统所属院系" label="所属院系" width="160"></el-table-column>
<el-table-column prop="教务系统年度专业代码" label="年度专业代码" width="160"></el-table-column>
<el-table-column prop="教务系统专业名称" label="专业名称" width="160"></el-table-column>
<el-table-column prop="教务系统班级编号" label="班级编号" width="140"></el-table-column>
<el-table-column prop="班级名称" label="班级名称" width="180"></el-table-column>
<el-table-column prop="班级简称" label="班级简称" width="100"></el-table-column>
<el-table-column prop="是否报到核验" label="是否报到核验" width="140"></el-table-column>
<el-table-column prop="报到核验时间" label="报到核验时间" width="160"></el-table-column>
<el-table-column prop="学号" label="学号" width="140"></el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
</div>
</template>
<script>
import { listXsxxTemp, syncClassCode } from "@/api/stureg/temp";
import { fullLoading } from "@/api/helpFunc/index";
export default {
name: "Temp",
data() {
return {
total: 0,
tableData: [],
queryParams: {
pageNum: 1,
pageSize: 10,
},
};
},
created() {
this.getList();
},
mounted() { },
methods: {
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
async getList() {
let loading = fullLoading(this);
let res = await listXsxxTemp(this.queryParams);
loading.close();
if (res.code == 200) {
this.tableData = [...res.rows];
this.total = res.total;
}
},
async syncClassCode() {
let loading = fullLoading(this);
let res = await syncClassCode();
loading.close();
if (res.code == 200) {
this.$message.success("同步成功");
} else {
this.$message.error(res.msg);
}
}
},
};
</script>

View File

@@ -36,7 +36,7 @@ module.exports = {
// detail: https://cli.vuejs.org/config/#devserver-proxy `http://124.70.202.11:8085` https://wap.wzzyhp.com
[process.env.VUE_APP_BASE_API]: {
// target: 'http://172.16.96.111:8585', //`http://zhxg.gxsdxy.cn`,`https://wap.wzzyhp.com`, http://localhost:8085 http://zhxgjava.gxsdxy.cn
target: 'http://localhost:8088',// `http://zhxg.gxsdxy.cn`,`https://wap.wzzyhp.com`, http://localhost:8085 http://zhxgjava.gxsdxy.cn
target: 'http://localhost:8085',// `http://zhxg.gxsdxy.cn`,`https://wap.wzzyhp.com`, http://localhost:8085 http://zhxgjava.gxsdxy.cn
//target:`http://zhxg.gxsdxy.cn`,
changeOrigin: true,
pathRewrite: {