This commit is contained in:
2025-12-10 09:59:43 +08:00
60 changed files with 7637 additions and 4410 deletions

View File

@@ -0,0 +1,295 @@
<template>
<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="stuNo">
<el-input v-model="queryParams.stuNo" placeholder="请输入学号" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="姓名" prop="stuName">
<el-input v-model="queryParams.stuName" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="班级" prop="className">
<el-input v-model="queryParams.className" placeholder="请输入班级" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="学院" prop="deptName">
<el-input v-model="queryParams.deptName" placeholder="请输入学院" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="专业" prop="majorName">
<el-input v-model="queryParams.majorName" placeholder="请输入专业" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="年级" prop="gradeName">
<el-input v-model="queryParams.gradeName" placeholder="请输入年级" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="房间号" prop="roomNo">
<el-input v-model="queryParams.roomNo" 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-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="applyVClick">申请</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-dialog title="申请" :visible.sync="applyV" :fullscreen="true" :destroy-on-close="true" @close="getList">
<el-form ref="formData" :model="formData" :rules="rules">
<adApply style="margin: 0 auto;" :selectedId="selectId" v-if="applyV" />
</el-form>
</el-dialog>
<el-table v-loading="loading" :data="accommodationsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="#" align="center" prop="id" />
<el-table-column label="学院" align="center" prop="deptName" />
<el-table-column label="专业" align="center" prop="majorName" />
<el-table-column label="年级" align="center" prop="gradeName" />
<el-table-column label="班级" align="center" prop="className" />
<el-table-column label="学号" align="center" prop="stuNo" />
<el-table-column label="姓名" align="center" prop="stuName" />
<el-table-column label="性别" align="center" prop="gender" />
<el-table-column label="学年" align="center" prop="stuYearName" />
<el-table-column label="审核状态" align="center" prop="reviewerStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.acc_reviewer_status" :value="scope.row.reviewerStatus" />
</template>
</el-table-column>
<!-- <el-table-column label="出生日期" align="center" prop="birday" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.birday, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="联系电话" align="center" prop="stuPhone" />
<el-table-column label="身份证号" align="center" prop="sfzh" />
<el-table-column label="房间号" align="center" prop="roomNo" />
<el-table-column label="宿舍缴费情况" align="center" prop="isCharge" />
<el-table-column label="外宿原因" align="center" prop="sleepOutRemark" />
<el-table-column label="外宿地址" align="center" prop="address" />
<el-table-column label="紧急联系人" align="center" prop="emergencyContact" />
<el-table-column label="家长意见" align="center" prop="parentComment" />
<el-table-column label="家长联系电话" align="center" prop="parentTel" />
<el-table-column label="家长联系地址" align="center" prop="parentAddress" />
<el-table-column label="申请人签名" align="center" prop="applySign" />
<el-table-column label="申请日期" align="center" prop="applyDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.applyDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="辅导员意见" align="center" prop="fdyCmt" />
<el-table-column label="辅导员签名" align="center" prop="fdySign" />
<el-table-column label="辅导员审核日期" align="center" prop="fdyDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.fdyDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="辅导员工号" align="center" prop="fdyNo" />
<el-table-column label="二级学院审核意见" align="center" prop="deptCmt" />
<el-table-column label="二级学院签名" align="center" prop="deptSign" />
<el-table-column label="二级学院审核日期" align="center" prop="deptDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.deptDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="二级学院审核工号" align="center" prop="deptNo" />
<el-table-column label="学工意见" align="center" prop="xgCmt" />
<el-table-column label="学工签名" align="center" prop="xgSign" />
<el-table-column label="学工审核日期" align="center" prop="xgDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.xgDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="学工审核工号" align="center" prop="xgNo" />
<el-table-column label="校领导意见" align="center" prop="leaderCmt" />
<el-table-column label="校领导" align="center" prop="leaderSign" />
<el-table-column label="校领导审核日期" align="center" prop="leaderDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.leaderDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="校领导审核工号" align="center" prop="leaderNo" /> -->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button v-if="scope.row.reviewerStatus==0" size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
</div>
</template>
<script>
import adApply from '@/views/dormitory/accommodation/wsnt/adApply.vue'
import { listAccommodations, getAccommodations, delAccommodations, addAccommodations, updateAccommodations } from "@/api/dormitory/accommodations"
export default {
name: 'adApplystu',
dicts: ['acc_reviewer_status'],
components: {
adApply
},
data() {
return {
applyV: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
selectId: null,
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 外宿申请表格数据
accommodationsList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
stuNo: null,
stuName: null,
className: null,
deptName: null,
majorName: null,
gradeName: null,
roomNo: null,
},
// 表单参数
formData: {},
// 表单校验
rules: {
}
};
},
created() {
this.getList();
},
methods: {
applyVClick() {
this.reset();
this.applyV = true;
this.selectId=null;
},
/** 查询外宿申请列表 */
getList() {
this.loading = true;
listAccommodations(this.queryParams).then(response => {
this.accommodationsList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
// cancel() {
// this.applyV = false;
// this.reset();
// },
// 表单重置
reset() {
this.formData = {
id: null,
stuNo: null,
stuName: null,
birday: null,
gender: null,
className: null,
stuPhone: null,
sfzh: null,
deptName: null,
majorName: null,
gradeName: null,
roomNo: null,
isCharge: null,
sleepOutRemark:null,
address: null,
emergencyContact: null,
parentComment: null,
parentTel: null,
parentAddress: null,
reviewerStatus: null,
applySign: null,
applyDate: null,
fdyCmt: null,
fdySign: null,
fdyDate: null,
fdyNo: null,
deptCmt: null,
deptSign: null,
deptDate: null,
deptNo: null,
xgCmt: null,
xgSign: null,
xgDate: null,
xgNo: null,
leaderCmt: null,
leaderSign: null,
leaderDate: null,
leaderNo: null,
stuYearId: null,
createTime: null,
createBy: null,
updateTime: null,
updateBy: null
};
this.resetForm("formData");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
this.selectId = row.id;
//getAccommodations(id).then(response => {
// this.formData = response.data;
this.applyV = true;
//});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除外宿申请编号为"' + ids + '"的数据项?').then(function () {
return delAccommodations(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
}
}
}
</script>
<style scoped lang="scss">
.lookForm {
.el-form-item {
margin-bottom: 5px;
}
}
</style>

View File

@@ -0,0 +1,660 @@
<template>
<div>
<p style="margin:0pt; text-align:center"><span
style="font-family:黑体; font-size:18pt; font-style:normal; font-weight:normal; text-transform:none">广西水利电力职业技术学院</span><span
style="font-family:黑体; font-size:18pt; font-style:normal; font-weight:normal; text-transform:none">外宿</span><span
style="font-family:黑体; font-size:18pt; font-style:normal; font-weight:normal; text-transform:none">申请表</span>
</p>
<table cellspacing="0" cellpadding="0" style="border-collapse:collapse; margin:0 auto; width:577.75pt">
<tr style="height:24pt">
<td
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:24pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">原宿舍号</span>
</p>
</td>
<td
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle;">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
{{ formData.name }}</span>
<span style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
{{ formData.roomNo }}号房</span>
</p>
</td>
<td
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:59.95pt">
<p style="margin:0pt; text-align:center">
<span style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
姓名</span>
</p>
</td>
<td
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:25.2pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">{{
formData.stuName }}</span>
</p>
</td>
<td
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:25.2pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
性别</span>
</p>
</td>
<td
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:52.2pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">{{
formData.gender }}</span>
</p>
</td>
<td
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:52.2pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
出生年月
</span>
</p>
</td>
<td
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:52.2pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">{{
formData.birthday
}}</span>
</p>
</td>
</tr>
<tr>
<td
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:66.65pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">专业</span>
</p>
</td>
<td
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:131.95pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
{{ formData.majorName }}
</span>
</p>
</td>
<td
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:52.2pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">班级</span>
</p>
</td>
<td
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:160.2pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
{{ formData.className }}
</span>
</p>
</td>
<td
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:66.65pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">学号</span>
</p>
</td>
<td colspan="5"
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:365.95pt">
<p style="margin:0pt; text-align:justify; text-indent:18pt"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
{{ formData.stuNo }}
</span>
</p>
</td>
</tr>
<tr>
<td colspan="4"
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:288pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">宿费交纳情况只填写当年度交费情况</span>
</p>
</td>
<td colspan="4"
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:365.95pt">
<p style="margin:0pt; text-align:justify; text-indent:18pt"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
已交
</span>
<span style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
{{ formData.stuYearName }}
</span>年度
住宿费<span style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
{{ formData.needMoney }}
</span>人民币
</p>
</td>
</tr>
<tr>
<td colspan="3"
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:12pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">身份证号码</span>
</p>
</td>
<td colspan="2"
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:66.65pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">{{
formData.sfzh }}</span>
</p>
</td>
<td colspan="2"
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:12pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">学生联系电话</span>
</p>
</td>
<td
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:66.65pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">{{
formData.stuPhone }}</span>
</p>
</td>
</tr>
<tr>
<td
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:12pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">申请外宿原因</span>
</p>
</td>
<td colspan="7"
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:200pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
<el-input placeholder="请输入" type="textarea" v-model="formData.sleepOutRemark" />
</span>
</p>
<p style="margin-left: 280pt;">
<span style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
签名
</span>
<img :src="baseurl + formData.signature" width="100pt" height="50pt" v-model="formData.applySign" />
<!-- <span>
<el-date-picker clearable type="date" value-format="yyyy-MM-dd" placeholder="请选择日期"
style="border: 1pt solid;width: 100pt;margin-left: 20pt;" v-model="formData.applyDate">
</el-date-picker>
</span> -->
<span style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none"
v-if="formData.applyDate == null">
{{ dayjs().format("YYYY年M月D日") }}</span>
<span style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none"
v-if="formData.applyDate != null">{{ dayjs(formData.applyDate).format("YYYY年M月D日") }}</span>
</p>
</td>
</tr>
<tr>
<td colspan="2"
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:12pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">外宿详细地址
</span>
</p>
<p style="margin:0pt; text-align:center">
<span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none;color: red;">具体到门牌号</span>
</p>
</td>
<td colspan="3"
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:12pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
<el-input placeholder="请输入" type="textarea" v-model="formData.address" />
</span>
</p>
</td>
<td
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:12pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">外宿居所紧急联系人电话</span>
</p>
</td>
<td colspan="3"
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:12pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
<el-input placeholder="请输入" type="textarea" v-model="formData.emergencyContact" />
</span>
</p>
</td>
</tr>
<tr>
<td colspan="2"
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:12pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">家长意见</span>
</p>
</td>
<td colspan="6"
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:12pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
<el-input placeholder="请输入" type="textarea" v-model="formData.parentComment" />
</span>
</p>
</td>
</tr>
<tr>
<td rowspan="2"
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:12pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">家长联系方式</span>
</p>
</td>
<td
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:12pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
通讯地址
</span>
</p>
</td>
<td colspan="6"
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:12pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
<el-input placeholder="请输入" type="textarea" v-model="formData.parentAddress" />
</span>
</p>
</td>
</tr>
<tr>
<td
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:12pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">联系电话</span>
</p>
</td>
<td colspan="6"
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:12pt">
<p style="margin:0pt; text-align:center"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
<el-input placeholder="请输入" type="textarea" v-model="formData.parentTel" />
</span>
</p>
</td>
</tr>
<tr>
<td
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle;width: 12pt;">
<p style="margin:0pt;"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">本人承诺</span>
</p>
</td>
<td colspan="7"
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle;">
<p style="margin:0pt;"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
1.自觉遵守国家法律法规
</span>
</p>
<p style="margin:0pt"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
2.自觉遵守学生行为规范和学校的规章制度遵守社会公德
</span>
</p>
<p style="margin:0pt"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
3.自觉遵守外宿住址所在社区的有关管理规定
</span>
</p>
<p style="margin:0pt"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
4.本人申请外宿属个人自愿行为外宿期间发生的一切事故造成本人他人或集体的人身财产损害的学校不负责任
</span>
</p>
<p style="margin-left:300pt"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
签名
</span>
<img :src="baseurl + formData.signature" width="100pt" height="50pt" v-model="formData.applySign2" />
<!--<el-date-picker clearable type="date" value-format="yyyy-MM-dd" placeholder="请选择日期"
v-model="formData.applyDate2" style="border: 1pt solid;width: 100pt;margin-left: 20pt;">
</el-date-picker> -->
<span style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none"
v-if="formData.applyDate2 == null">
{{ dayjs().format("YYYY年M月D日") }}</span>
<span style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none"
v-if="formData.applyDate2 != null">{{dayjs(formData.applyDate2).format("YYYY年M月D日")}}</span>
</p>
</td>
</tr>
<tr>
<td
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle;width: 12pt;">
<p style="margin:0pt;"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">辅导员意见</span>
</p>
</td>
<td colspan="7"
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle;width: 12pt;">
<p>
<el-select v-model="selectedValue" placeholder="请选择" style="border: 1pt solid;width: 100pt;">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
<span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none;margin-left: 145pt;">
签名
</span>
<el-input style="border: 1pt solid;width: 100pt;" v-model="formData.fdySign" />
<el-date-picker clearable type="date" value-format="yyyy-MM-dd" placeholder="请选择日期"
v-model="formData.fdyDate" style="border: 1pt solid;width: 100pt;margin-left: 20pt;">
</el-date-picker>
</p>
</td>
</tr>
<tr>
<td
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle;width: 12pt;">
<p style="margin:0pt;"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">学院意见</span>
</p>
</td>
<td colspan="7"
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle;width: 12pt;">
<p style="margin:0pt;"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">拟准许外宿时间
</span>
<el-date-picker clearable type="date" value-format="yyyy-MM-dd" placeholder="请选择日期"
style="border: 1pt solid;width: 100pt;margin-left: 0pt;">
</el-date-picker> 次年 <el-date-picker clearable type="date" value-format="yyyy-MM-dd"
placeholder="请选择日期" style="border: 1pt solid;width: 100pt;margin-left: 0pt;">
</el-date-picker>
</p>
<p style="margin-left:250pt"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none;">
签名
</span>
<el-input style="border: 1px solid;width: 100pt;" v-model="formData.deptSign" />
<el-date-picker clearable type="date" value-format="yyyy-MM-dd" placeholder="请选择日期"
style="border: 1px solid;width: 100pt;margin-left: 20pt;" v-model="formData.deptDate">
</el-date-picker>
</p>
</td>
</tr>
<tr>
<td
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle;width: 12pt;">
<p style="margin:0pt;"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">学工处意见</span>
</p>
</td>
<td colspan="7"
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle;width: 12pt;">
<p style="margin:0pt;"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none;">拟准许外宿时间
</span>
<el-date-picker clearable type="date" value-format="yyyy-MM-dd" placeholder="请选择日期"
style="border: 1px solid;width: 100pt;margin-left: 0pt;">
</el-date-picker> 次年
<el-date-picker clearable type="date" value-format="yyyy-MM-dd" placeholder="请选择日期"
style="border: 1px solid;width: 100pt;margin-left: 0pt;">
</el-date-picker>
</p>
<p style="margin-left:250pt"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">
签名
</span>
<el-input style="border: 1px solid;width: 100pt;" v-model="formData.xgSign" />
<el-date-picker clearable type="date" value-format="yyyy-MM-dd" placeholder="请选择日期"
style="border: 1px solid;width: 100pt;margin-left: 20pt;" v-model="formData.xgDate">
</el-date-picker>
</p>
</td>
</tr>
<tr>
<td
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle;width: 12pt;">
<p style="margin:0pt;"><span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none">学校领导意见</span>
</p>
</td>
<td colspan="7"
style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle;width: 12pt;">
<p>
<el-select v-model="selectedValue" placeholder="请选择" style="border: 1pt solid;width: 100pt;">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
<span
style="font-family:宋体; font-size:12pt; font-style:normal; font-weight:normal; text-transform:none;margin-left: 145pt;">
签名
</span>
<el-input style="border: 1px solid;width: 100pt;" v-model="formData.leaderSign" />
<el-date-picker clearable type="date" value-format="yyyy-MM-dd" placeholder="请选择日期"
style="border: 1px solid;width: 100pt;margin-left: 20pt;" v-model="formData.leaderDate">
</el-date-picker>
</p>
</td>
</tr>
</table>
<div style="margin: 0 auto;width: fit-content;">
<el-button type="success" plain @click="doApply(0)" v-if="showButtons">保存</el-button>
<el-button type="success" plain @click="doApply(1)" v-if="showButtons">提交申请</el-button>
</div>
</div>
</template>
<script>
import { boolImg, CheckImgExists, isEmpty, fullLoading } from '@/api/helpFunc'
import { getStuDormitory, addAccommodations, getAccommodations, updateAccommodations } from '@/api/dormitory/accommodations'
import { getLoginStudent, getOwnClass } from '@/api/stuCQS/basedata/student'
import { getOwnMajorName } from '@/api/stuCQS/basedata/class'
import { ref } from 'vue';
import dayjs from 'dayjs'
export default {
name: 'adApply',
props: {
selectedId: {
type: [Number, String],
default: null
}
},
data() {
return {
dayjs,
showButtons: true,
baseurl: process.env.VUE_APP_BASE_API + '/',
options: [
{ value: 'option1', label: '同意' },
{ value: 'option2', label: '不同意' },
// 更多选项
],
selectedValue: 'option1', // 预设的默认值
formData: {
name: null,
roomNo: null,
deptName: null,
gradeName: null,
stuName: null,
gender: null,
birthday: null,
majorName: null,
className: null,
stuNo: null,
sfzh: null,
stuPhone: null,
signature: null,
sleepOutRemark: null,
address: null,
emergencyContact: null,
parentComment: null,
parentTel: null,
parentAddress: null,
reviewerStatus: null,
applySign: null,
applyDate: null,
applySign2: null,
applyDate2: null,
isCharge: null,//宿舍缴纳情况
stuYearName: null,
needMoney: null
}
}
},
created() {
this.getLoginStudent();
this.getOwnMajorName();
this.getClass();
this.getStuDormitory();
this.getLoadData();
},
methods: {
async getLoadData() {
if (this.selectedId != null) {
let loading = fullLoading(this);
let res = await getAccommodations(this.selectedId);
loading.close();
if (res.code == 200) {
let data = { ...res.data };
this.formData.sleepOutRemark = data.sleepOutRemark;
this.formData.address = data.address;
this.formData.emergencyContact = data.emergencyContact;
this.formData.parentComment = data.parentComment;
this.formData.parentTel = data.parentTel;
this.formData.parentAddress = data.parentAddress;
this.formData.applySign = data.applySign;
this.formData.applyDate = data.applyDate;
this.formData.applySign2 = data.applySign2;
this.formData.applyDate2 = data.applyDate2;
this.formData.reviewerStatus = data.reviewerStatus;
if (this.formData.reviewerStatus == 1) {
this.showButtons = false;
} else {
this.showButtons = true;
}
}
} else {
this.formData.sleepOutRemark = "";
}
},
async getLoginStudent() {
let loading = fullLoading(this);
let res = await getLoginStudent();
loading.close();
if (res.code == 200) {
let data = { ...res.data };
this.formData.stuName = data.name;
this.formData.gender = data.gender;
this.formData.birthday = data.birthday;
this.formData.stuNo = data.stuNo;
this.formData.sfzh = data.idCard;
this.formData.stuPhone = data.phone;
this.formData.deptName = data.deptName;
this.formData.gradeName = data.gradeName;
this.formData.stuYearName = data.stuYearName;
this.formData.needMoney = data.needMoney;
}
},
async getClass() {
let loading = fullLoading(this);
let res = await getOwnClass();
loading.close();
if (res.code == 200) {
let data = { ...res.data };
this.formData.className = data.className;
}
},
async getOwnMajorName() {
let loading = fullLoading(this);
let res = await getOwnMajorName();
loading.close();
if (res.code == 200) {
let data = { ...res.data };
this.formData.majorName = data.majorName;
}
},
async getStuDormitory() {
let loading = fullLoading(this);
let res = await getStuDormitory();
loading.close();
if (res.code == 200) {
let data = { ...res.data };
this.formData.name = data.name;
this.formData.roomNo = data.roomNo;
this.formData.signature = data.signature;
this.formData.isCharge = data.isCharge;
}
},
async doApply(par) {
// let sdata = { ...this.formData }
// console.log(sdata)
// if (isEmpty(sdata.helpHis)) {
// this.$message.info('请填写曾获资助/奖励,没有写无')
// return
// }
// if (isEmpty(sdata.yearMoney)) {
// this.$message.info('请填写年收入')
// return
// }
// let loading = fullLoading(this)
// let res = await doApply(sdata)
// loading.close()
// if (res.code == 200) {
// this.$message.success('提交成功,请关闭页面查看')
// }
var sel = this.selectedId;
if (sel == null) {
if (par == 0) {
let loading = fullLoading(this)
this.formData.reviewerStatus = 0;
addAccommodations(this.formData).then(response => {
loading.close()
this.$modal.msgSuccess("保存成功");
});
} else {
let loading = fullLoading(this)
this.formData.reviewerStatus = 1;
addAccommodations(this.formData).then(response => {
loading.close()
this.$modal.msgSuccess("提交成功");
this.showButtons = false;
});
}
} else {
this.formData.id = sel;
if (par == 0) {
let loading = fullLoading(this)
this.formData.reviewerStatus = 0;
updateAccommodations(this.formData).then(response => {
loading.close()
this.$modal.msgSuccess("保存成功");
});
} else {
let loading = fullLoading(this)
this.formData.reviewerStatus = 1;
updateAccommodations(this.formData).then(response => {
loading.close()
this.$modal.msgSuccess("提交成功");
this.showButtons = false;
});
}
}
}
}
}
</script>
<style scoped>
/* 取消 textarea 的边框 */
::v-deep .el-textarea__inner {
border: none;
}
/* 取消 el-input 的边框 */
::v-deep .el-input__inner {
border: none;
}
</style>

View File

@@ -64,7 +64,7 @@
<el-form-item label="姓名" prop="stuName">
<el-input v-model="queryParams.stuName" placeholder="请输入学生姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="辅导员姓名" prop="teacherName">
<el-form-item label="辅导员姓名" prop="teacherName" v-if="!roleGroup.includes('辅导员')">
<el-input v-model="queryParams.teacherName" placeholder="请输入辅导员姓名" clearable
@keyup.enter.native="handleQuery"
/>
@@ -260,6 +260,7 @@ import { listMajors } from '@/api/stuCQS/basedata/majors'
import { listGrade } from '@/api/stuCQS/basedata/grade'
import { listInSchoolClass as listClass } from '@/api/stuCQS/basedata/class'
import { getTokenKeySessionStorage } from '@/utils/auth'
import { getUserProfile } from '@/api/system/user' // 获取当前登录用户
let id, campusId, buildingId, parkId, floorId
@@ -363,7 +364,8 @@ export default {
sendForm: {
gradeId: null,
endDate: null
}
},
roleGroup: ""
}
},
created() {
@@ -639,11 +641,25 @@ export default {
/** 查询宿舍学生关联列表 */
getList() {
this.loading = true
listStudent(this.queryParams).then(response => {
this.studentList = response.rows
this.total = response.total
this.loading = false
})
getUserProfile().then((response) => {
this.roleGroup = response.roleGroup
if (response.roleGroup.includes('辅导员')) {
this.queryParams.teacherName = response.data.nickName
} else if (response.roleGroup.includes('学务')) {
// this.queryParams.deptId = response.data.deptId
this.deptList.forEach(element => {
if (element.label == response.data.dept.deptName) {
this.queryParams.deptId = element.value
}
});
this.changeDept()
}
listStudent(this.queryParams).then(response => {
this.studentList = response.rows
this.total = response.total
this.loading = false
})
})
},
// 取消按钮
cancel() {

View File

@@ -0,0 +1,215 @@
<!-- 详细外宿申请表 -->
<template>
<div v-loading="loading">
<!-- 详细入伍保留学籍表单 -->
<el-descriptions class="margin-top" title="" :column="4" size="medium" border style="width: 100%">
<el-descriptions-item>
<template slot="label"> 原宿舍号 </template>
{{ renderData.originalDormitory }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 姓名 </template>
{{ renderData.studentName }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 性别 </template>
<span v-if="renderData.gender == 1"></span>
<span v-else></span>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 出生年月 </template>
{{ renderData.birthDate }}
</el-descriptions-item>
<el-descriptions-item span="2">
<template slot="label"> 专业系 </template>
{{ renderData.majorName }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 班级 </template>
{{ renderData.className }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 学号 </template>
{{ renderData.studentNo }}
</el-descriptions-item>
<el-descriptions-item span="4">
<template slot="label"> 宿费交纳情况只填写当年度交费情况 </template>
<!-- {{ renderData.familyAddress }} -->
已交 绑定当前学年年度住宿费 人民币
</el-descriptions-item>
<el-descriptions-item span="2">
<template slot="label"> 身份证号码 </template>
{{ renderData.idCard }}
</el-descriptions-item>
<el-descriptions-item span="2">
<template slot="label"> 学生联系电话 </template>
{{ renderData.studentPhone }}
</el-descriptions-item>
<el-descriptions-item span="4">
<template slot="label"> 附件材料 </template>
<Affix v-model="renderData.affixId" :disabled="true" />
</el-descriptions-item>
<el-descriptions-item span="4">
<template slot="label"> 申请原因 </template>
<div style="padding-top: 10px;">
{{ renderData.applyReason }}
</div>
<div style="padding: 20px;">
<div style="display: flex;justify-content: flex-end;align-items: center;">
<div style="padding: 0 10px;display: flex;justify-content: flex-end;align-items: center;">
<div>申请人 </div>
<div>
<el-image style="width: 100px; height: 50px; margin-left: 10px; border: 1px solid #eee"
:src="baseUrl + renderData.studentSignature" :preview-src-list="[baseUrl + renderData.studentSignature]">
</el-image>
</div>
</div>
<div style="padding: 0 10px;">日期 {{ renderData.createTime }}</div>
</div>
</div>
</el-descriptions-item>
<!-- <el-descriptions-item span="4" v-for="item in formData.enlistmentReserveApprovalList">
<template slot="label"> {{ item.opinionType }} </template>
<div style="padding-top: 10px;">
{{ item.approvalOpinion || "暂无意见" }}
</div>
<div style="padding: 20px;">
<div style="display: flex;justify-content: flex-end;align-items: center;">
<div style="padding: 0 10px;">
审批结果
<el-tag v-if="item.approvalResult == 1" type="success">通过</el-tag>
<el-tag v-else type="danger">驳回</el-tag>
</div>
<div style="padding: 0 10px;">签名 {{ item.approverName }}</div>
<div style="padding: 0 10px;">日期 {{ item.approvalTime }}</div>
</div>
</div>
</el-descriptions-item> -->
<el-descriptions-item span="2">
<template slot="label"> 外宿详细地址具体到门牌号 </template>
{{ renderData.address + renderData.outsideAddress }}
</el-descriptions-item>
<el-descriptions-item span="2">
<template slot="label"> 外宿居所紧急联系人电话 </template>
{{ renderData.emergencyPhone }}
</el-descriptions-item>
<el-descriptions-item span="4">
<template slot="label"> 家长意见 </template>
<div style="padding-top: 10px;">
<el-image style="width: 200px; height: 150px; margin-left: 10px; border: 1px solid #eee"
:src="baseUrl + renderData.parentSignAttachment" :preview-src-list="[baseUrl + renderData.parentSignAttachment]">
</el-image>
</div>
<div style="padding: 20px;">
<div style="display: flex;justify-content: flex-end;align-items: center;">
<div style="padding: 0 10px;display: flex;justify-content: flex-end;align-items: center;">
<div>申请人 </div>
<div>
<el-image style="width: 100px; height: 50px; margin-left: 10px; border: 1px solid #eee"
:src="baseUrl + renderData.parentSignAttachment" :preview-src-list="[baseUrl + renderData.parentSignAttachment]">
</el-image>
</div>
</div>
<div style="padding: 0 10px;">日期 {{ renderData.createTime }}</div>
</div>
</div>
</el-descriptions-item>
<el-descriptions-item span="4">
<template slot="label"> 家长联系方式 </template>
<div>
<div style="display: flex;align-items: center;">
<div>通讯地址</div>
<div>{{ renderData.parentAddress + renderData.parentDetailAddress }}</div>
</div>
<div style="display: flex;align-items: center;">
<div>联系电话</div>
<div>{{ renderData.parentPhone }}</div>
</div>
</div>
</el-descriptions-item>
<el-descriptions-item span="4">
<template slot="label"> 保留学籍时间和编号 </template>
{{ renderData.reserveNo }}
</el-descriptions-item>
</el-descriptions>
</div>
</template>
<script>
import {
getOutsideAccommodationApply,
} from '@/api/dormitory/outsideAccommodation/outsideAccommodationApply'
export default {
props: {
// props类型定义Object类型+默认空对象)
formData: {
type: Object, // 正确的对象类型声明
default: () => ({}) // 函数返回空对象(避免所有实例共享同一个对象)
}
},
data() {
return {
loading: false,
currentId: null,
// formData: {} // 注释/删除这一行
detailData: {}, // 用独立变量存储接口返回的详情数据
baseUrl: process.env.VUE_APP_BASE_API,
}
},
// 计算属性判断优先级
computed: {
renderData() {
// 规则有接口数据detailData有内容则用detailData否则用props的formData
// Object.keys(this.detailData).length > 0 表示detailData非空
return Object.keys(this.detailData).length > 0
? this.detailData
: this.formData;
}
},
watch: {
// 监听路由参数变化,只要有新的 id 就更新
"$route.query.id": {
immediate: true, // 初始化时立即执行一次
handler(newId, oldId) {
if (newId) {
this.loading = true;
this.currentId = newId;
// 调用接口加载数据
getOutsideAccommodationApply(this.currentId)
.then(res => {
// 修正Promise语法逗号改分号/换行)
this.detailData = { ...res.data }; // 接口数据存入独立变量
this.loading = false;
console.log(this.detailData);
})
// 添加异常捕获避免接口报错导致loading一直显示
.catch(err => {
this.loading = false;
this.$message.error('加载详情失败:' + err.message);
console.error(err);
});
} else {
// 若 id 为空,清空数据
this.currentId = null;
this.detailData = {};
}
}
}
},
methods: {},
created() { },
mounted() { },
destroyed() { }
}
</script>
<style scoped>
/* @import url(); 引入css类 */
</style>

View File

@@ -0,0 +1,635 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" :label-position="`left`">
<el-form-item label="学号" prop="studentNo">
<el-input v-model="queryParams.studentNo" placeholder="请输入学号" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="学生姓名" prop="studentName">
<el-input v-model="queryParams.studentName" placeholder="请输入学生姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="性别" prop="gender">
<el-input v-model="queryParams.gender" placeholder="请输入性别" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<!-- <el-form-item label="出生年月" prop="birthDate">
<el-date-picker clearable v-model="queryParams.birthDate" type="date" value-format="yyyy-MM-dd"
placeholder="请选择出生年月">
</el-date-picker>
</el-form-item> -->
<!-- <el-form-item label="学院名称" prop="deptName">
<el-input v-model="queryParams.deptName" placeholder="请输入学院名称" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="专业名称" prop="majorName">
<el-input v-model="queryParams.majorName" placeholder="请输入专业名称" clearable @keyup.enter.native="handleQuery" />
</el-form-item> -->
<el-form-item label="班级名称" prop="className">
<el-input v-model="queryParams.className" placeholder="请输入班级名称" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<!-- <el-form-item label="外宿开始时间" prop="startDate">
<el-date-picker clearable v-model="queryParams.startDate" type="date" value-format="yyyy-MM-dd"
placeholder="请选择外宿开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="外宿结束时间" prop="endDate">
<el-date-picker clearable v-model="queryParams.endDate" type="date" value-format="yyyy-MM-dd"
placeholder="请选择外宿结束时间">
</el-date-picker>
</el-form-item> -->
<!-- <el-form-item label="是否有效" prop="isValid">
<el-input v-model="queryParams.isValid" placeholder="请输入是否有效" clearable @keyup.enter.native="handleQuery" />
</el-form-item> -->
<el-form-item label="辅导员姓名" prop="teacherName" label-width="88px">
<el-input v-model="queryParams.teacherName" 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-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['dormitory:outsideAccommodationApply:add']">新增</el-button>
</el-col> -->
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="openForm"
v-hasPermi="['dormitory:outsideAccommodationApply:add']">外宿申请</el-button>
</el-col>
<!-- <el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['dormitory:outsideAccommodationApply:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['dormitory:outsideAccommodationApply:remove']">删除</el-button>
</el-col> -->
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['dormitory:outsideAccommodationApply:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="outsideAccommodationApplyList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="申请编号" align="center" prop="applyNo" />
<el-table-column label="学号" align="center" prop="studentNo" />
<el-table-column label="学生姓名" align="center" prop="studentName" />
<el-table-column label="辅导员姓名" align="center" prop="teacherName" />
<el-table-column label="性别" align="center" prop="gender">
<template slot-scope="scope">
<span v-if="scope.row.gender == 1"></span>
<span v-else></span>
</template>
</el-table-column>
<el-table-column label="出生年月" align="center" prop="birthDate">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.birthDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="学院名称" align="center" prop="deptName" />
<el-table-column label="专业名称" align="center" prop="majorName" />
<el-table-column label="班级名称" align="center" prop="className" />
<el-table-column label="原宿舍号" align="center" prop="originalDormitory" />
<el-table-column label="住宿费缴纳状态" align="center" prop="accommodationFeeStatus">
<template slot-scope="scope">
<el-tag v-if="scope.row.accommodationFeeStatus == 0" type="info">未交</el-tag>
<el-tag v-if="scope.row.accommodationFeeStatus == 1" type="success">已交</el-tag>
</template>
</el-table-column>
<el-table-column label="外宿原因" align="center" prop="applyReason">
<template slot-scope="scope">
<el-tooltip class="item" effect="dark" :content="scope.row.applyReason" placement="top">
<div class="text-ellipsis">{{ scope.row.applyReason }}</div>
</el-tooltip>
</template>
</el-table-column>
<el-table-column label="外宿详细地址" align="center" prop="outsideAddress">
<template slot-scope="scope">
<el-tooltip class="item" effect="dark" :content="scope.row.address + ' ' + scope.row.outsideAddress" placement="top">
<div class="text-ellipsis">{{ scope.row.address + " " + scope.row.outsideAddress }}</div>
</el-tooltip>
</template>
</el-table-column>
<el-table-column label="外宿开始时间" align="center" prop="startDate" width="100px">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.startDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="外宿结束时间" align="center" prop="endDate" width="100px">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.endDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="申请状态" align="center" prop="status" width="110px">
<template slot-scope="scope">
<el-tag v-if="scope.row.status == 0 && scope.row.status == ''" type="info">待提交</el-tag>
<el-tag v-if="scope.row.status == 6" type="info">审批驳回</el-tag>
<el-tag v-if="scope.row.status == 1">待辅导员审批</el-tag>
<el-tag v-if="scope.row.status == 2">待学院书记审批</el-tag>
<el-tag v-if="scope.row.status == 3">待学工处审批</el-tag>
<el-tag v-if="scope.row.status == 4">待学校领导审批</el-tag>
<el-tag v-if="scope.row.status == 5" type="success">审核通过</el-tag>
</template>
</el-table-column>
<el-table-column label="是否有效" align="center" prop="isValid">
<template slot-scope="scope">
<el-tag v-if="scope.row.isValid == 0" type="info">到期</el-tag>
<el-tag v-if="scope.row.isValid == 1" type="success">有效</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['dormitory:outsideAccommodationApply:edit']" v-if="scope.row.status == 0 || scope.row.status == 6">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['dormitory:outsideAccommodationApply:remove']" v-if="scope.row.status == 0">删除</el-button>
<el-button v-if="scope.row.applyStatus != 0" size="mini" type="text" icon="el-icon-info"
@click="detail(scope.row)">详情</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改外宿申请对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="申请编号" prop="applyNo">
<el-input v-model="form.applyNo" placeholder="请输入申请编号" />
</el-form-item>
<el-form-item label="学生ID" prop="studentId">
<el-input v-model="form.studentId" placeholder="请输入学生ID" />
</el-form-item>
<el-form-item label="学号" prop="studentNo">
<el-input v-model="form.studentNo" placeholder="请输入学号" />
</el-form-item>
<el-form-item label="学生姓名" prop="studentName">
<el-input v-model="form.studentName" placeholder="请输入学生姓名" />
</el-form-item>
<el-form-item label="性别" prop="gender">
<el-input v-model="form.gender" placeholder="请输入性别" />
</el-form-item>
<el-form-item label="出生年月" prop="birthDate">
<el-date-picker clearable v-model="form.birthDate" type="date" value-format="yyyy-MM-dd"
placeholder="请选择出生年月">
</el-date-picker>
</el-form-item>
<el-form-item label="学院ID" prop="deptId">
<el-input v-model="form.deptId" placeholder="请输入学院ID" />
</el-form-item>
<el-form-item label="学院名称" prop="deptName">
<el-input v-model="form.deptName" placeholder="请输入学院名称" />
</el-form-item>
<el-form-item label="专业ID" prop="majorId">
<el-input v-model="form.majorId" placeholder="请输入专业ID" />
</el-form-item>
<el-form-item label="专业名称" prop="majorName">
<el-input v-model="form.majorName" placeholder="请输入专业名称" />
</el-form-item>
<el-form-item label="班级ID" prop="classId">
<el-input v-model="form.classId" placeholder="请输入班级ID" />
</el-form-item>
<el-form-item label="班级名称" prop="className">
<el-input v-model="form.className" placeholder="请输入班级名称" />
</el-form-item>
<el-form-item label="原宿舍号" prop="originalDormitory">
<el-input v-model="form.originalDormitory" placeholder="请输入原宿舍号" />
</el-form-item>
<el-form-item label="外宿原因" prop="applyReason">
<el-input v-model="form.applyReason" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="外宿详细地址" prop="outsideAddress">
<el-input v-model="form.outsideAddress" placeholder="请输入外宿详细地址" />
</el-form-item>
<el-form-item label="外宿地址-省" prop="province">
<el-input v-model="form.province" placeholder="请输入外宿地址-省" />
</el-form-item>
<el-form-item label="外宿地址-市" prop="city">
<el-input v-model="form.city" placeholder="请输入外宿地址-市" />
</el-form-item>
<el-form-item label="外宿地址-区/县" prop="district">
<el-input v-model="form.district" placeholder="请输入外宿地址-区/县" />
</el-form-item>
<el-form-item label="外宿紧急联系人" prop="emergencyContact">
<el-input v-model="form.emergencyContact" placeholder="请输入外宿紧急联系人" />
</el-form-item>
<el-form-item label="紧急联系人电话" prop="emergencyPhone">
<el-input v-model="form.emergencyPhone" placeholder="请输入紧急联系人电话" />
</el-form-item>
<el-form-item label="家长意见" prop="parentOpinion">
<el-input v-model="form.parentOpinion" placeholder="请输入家长意见" />
</el-form-item>
<el-form-item label="家长签字附件URL" prop="parentSignAttachment">
<el-input v-model="form.parentSignAttachment" placeholder="请输入家长签字附件URL" />
</el-form-item>
<el-form-item label="家长联系电话" prop="parentPhone">
<el-input v-model="form.parentPhone" placeholder="请输入家长联系电话" />
</el-form-item>
<el-form-item label="家长通讯地址-省" prop="parentProvince">
<el-input v-model="form.parentProvince" placeholder="请输入家长通讯地址-省" />
</el-form-item>
<el-form-item label="家长通讯地址-市" prop="parentCity">
<el-input v-model="form.parentCity" placeholder="请输入家长通讯地址-市" />
</el-form-item>
<el-form-item label="家长通讯地址-区/县" prop="parentDistrict">
<el-input v-model="form.parentDistrict" placeholder="请输入家长通讯地址-区/县" />
</el-form-item>
<el-form-item label="家长通讯地址-详细地址" prop="parentDetailAddress">
<el-input v-model="form.parentDetailAddress" placeholder="请输入家长通讯地址-详细地址" />
</el-form-item>
<el-form-item label="学生承诺电子签URL" prop="studentPromiseSign">
<el-input v-model="form.studentPromiseSign" placeholder="请输入学生承诺电子签URL" />
</el-form-item>
<el-form-item label="承诺签署日期" prop="promiseDate">
<el-date-picker clearable v-model="form.promiseDate" type="date" value-format="yyyy-MM-dd"
placeholder="请选择承诺签署日期">
</el-date-picker>
</el-form-item>
<el-form-item label="外宿开始时间" prop="startDate">
<el-date-picker clearable v-model="form.startDate" type="date" value-format="yyyy-MM-dd"
placeholder="请选择外宿开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="外宿结束时间" prop="endDate">
<el-date-picker clearable v-model="form.endDate" type="date" value-format="yyyy-MM-dd"
placeholder="请选择外宿结束时间">
</el-date-picker>
</el-form-item>
<el-form-item label="驳回原因" prop="rejectReason">
<el-input v-model="form.rejectReason" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="是否有效" prop="isValid">
<el-input v-model="form.isValid" placeholder="请输入是否有效" />
</el-form-item>
<el-form-item label="辅导员姓名" prop="teacherName">
<el-input v-model="form.teacherName" placeholder="请输入辅导员姓名" />
</el-form-item>
<el-form-item label="附件id" prop="affixId">
<el-input v-model="form.affixId" placeholder="请输入附件id" />
</el-form-item>
<el-form-item label="流程部署编号" prop="deployId">
<el-input v-model="form.deployId" placeholder="请输入流程部署编号" />
</el-form-item>
<el-form-item label="Flowable流程实例ID" prop="processInstanceId">
<el-input v-model="form.processInstanceId" placeholder="请输入Flowable流程实例ID" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listOutsideAccommodationApply, getOutsideAccommodationApply, delOutsideAccommodationApply, addOutsideAccommodationApply, updateOutsideAccommodationApply } from "@/api/dormitory/outsideAccommodation/outsideAccommodationApply";
export default {
name: "OutsideAccommodationApply",
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 外宿申请表格数据
outsideAccommodationApplyList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
applyNo: null,
studentId: null,
studentNo: null,
studentName: null,
gender: null,
birthDate: null,
deptId: null,
deptName: null,
majorId: null,
majorName: null,
classId: null,
className: null,
originalDormitory: null,
accommodationFeeStatus: null,
applyReason: null,
outsideAddress: null,
province: null,
city: null,
district: null,
emergencyContact: null,
emergencyPhone: null,
parentOpinion: null,
parentSignAttachment: null,
parentPhone: null,
parentProvince: null,
parentCity: null,
parentDistrict: null,
parentDetailAddress: null,
studentPromiseSign: null,
promiseDate: null,
startDate: null,
endDate: null,
status: null,
rejectReason: null,
isValid: null,
teacherName: null,
affixId: null,
deployId: null,
processInstanceId: null
},
// 表单参数
form: {},
// 表单校验
rules: {
applyNo: [
{ required: true, message: "申请编号不能为空", trigger: "blur" }
],
studentId: [
{ required: true, message: "学生ID不能为空", trigger: "blur" }
],
studentNo: [
{ required: true, message: "学号不能为空", trigger: "blur" }
],
studentName: [
{ required: true, message: "学生姓名不能为空", trigger: "blur" }
],
deptId: [
{ required: true, message: "学院ID不能为空", trigger: "blur" }
],
deptName: [
{ required: true, message: "学院名称不能为空", trigger: "blur" }
],
majorId: [
{ required: true, message: "专业ID不能为空", trigger: "blur" }
],
majorName: [
{ required: true, message: "专业名称不能为空", trigger: "blur" }
],
classId: [
{ required: true, message: "班级ID不能为空", trigger: "blur" }
],
className: [
{ required: true, message: "班级名称不能为空", trigger: "blur" }
],
originalDormitory: [
{ required: true, message: "原宿舍号不能为空", trigger: "blur" }
],
accommodationFeeStatus: [
{ required: true, message: "住宿费缴纳状态不能为空", trigger: "change" }
],
applyReason: [
{ required: true, message: "外宿原因不能为空", trigger: "blur" }
],
outsideAddress: [
{ required: true, message: "外宿详细地址不能为空", trigger: "blur" }
],
province: [
{ required: true, message: "外宿地址-省不能为空", trigger: "blur" }
],
city: [
{ required: true, message: "外宿地址-市不能为空", trigger: "blur" }
],
district: [
{ required: true, message: "外宿地址-区/县不能为空", trigger: "blur" }
],
emergencyContact: [
{ required: true, message: "外宿紧急联系人不能为空", trigger: "blur" }
],
emergencyPhone: [
{ required: true, message: "紧急联系人电话不能为空", trigger: "blur" }
],
parentOpinion: [
{ required: true, message: "家长意见不能为空", trigger: "blur" }
],
parentSignAttachment: [
{ required: true, message: "家长签字附件URL不能为空", trigger: "blur" }
],
parentPhone: [
{ required: true, message: "家长联系电话不能为空", trigger: "blur" }
],
parentProvince: [
{ required: true, message: "家长通讯地址-省不能为空", trigger: "blur" }
],
parentCity: [
{ required: true, message: "家长通讯地址-市不能为空", trigger: "blur" }
],
parentDistrict: [
{ required: true, message: "家长通讯地址-区/县不能为空", trigger: "blur" }
],
parentDetailAddress: [
{ required: true, message: "家长通讯地址-详细地址不能为空", trigger: "blur" }
],
studentPromiseSign: [
{ required: true, message: "学生承诺电子签URL不能为空", trigger: "blur" }
],
promiseDate: [
{ required: true, message: "承诺签署日期不能为空", trigger: "blur" }
],
startDate: [
{ required: true, message: "外宿开始时间不能为空", trigger: "blur" }
],
endDate: [
{ required: true, message: "外宿结束时间不能为空", trigger: "blur" }
],
status: [
{ required: true, message: "申请状态不能为空", trigger: "change" }
],
createTime: [
{ required: true, message: "创建时间不能为空", trigger: "blur" }
],
createBy: [
{ required: true, message: "创建人不能为空", trigger: "blur" }
],
updateTime: [
{ required: true, message: "更新时间不能为空", trigger: "blur" }
],
isValid: [
{ required: true, message: "是否有效不能为空", trigger: "blur" }
],
teacherName: [
{ required: true, message: "辅导员姓名不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询外宿申请列表 */
getList() {
this.loading = true;
listOutsideAccommodationApply(this.queryParams).then(response => {
this.outsideAccommodationApplyList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
applyNo: null,
studentId: null,
studentNo: null,
studentName: null,
gender: null,
birthDate: null,
deptId: null,
deptName: null,
majorId: null,
majorName: null,
classId: null,
className: null,
originalDormitory: null,
accommodationFeeStatus: null,
applyReason: null,
outsideAddress: null,
province: null,
city: null,
district: null,
emergencyContact: null,
emergencyPhone: null,
parentOpinion: null,
parentSignAttachment: null,
parentPhone: null,
parentProvince: null,
parentCity: null,
parentDistrict: null,
parentDetailAddress: null,
studentPromiseSign: null,
promiseDate: null,
startDate: null,
endDate: null,
status: null,
rejectReason: null,
createTime: null,
createBy: null,
updateTime: null,
updateBy: null,
isValid: null,
teacherName: null,
affixId: null,
deployId: null,
processInstanceId: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加外宿申请";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
// const id = row.id || this.ids
// getOutsideAccommodationApply(id).then(response => {
// this.form = response.data;
// this.open = true;
// this.title = "修改外宿申请";
// });
this.$router.push({
path: "/dormitory/outsideAccommodation/applicationForm",
query: { id: row.id } // 将 row.id 放在 query 中
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateOutsideAccommodationApply(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addOutsideAccommodationApply(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除外宿申请编号为"' + ids + '"的数据项?').then(function () {
return delOutsideAccommodationApply(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
this.download('dormitory/outsideAccommodationApply/export', {
...this.queryParams
}, `outsideAccommodationApply_${new Date().getTime()}.xlsx`)
},
// 跳转申请表
openForm() {
this.$router.push("/dormitory/outsideAccommodation/applicationForm");
},
detail(row) {
this.$router.push({
path: "/dormitory/outsideAccommodation/detailApply",
query: { id: row.id } // 将 row.id 放在 query 中
});
}
}
};
</script>
<style scoped>
.text-ellipsis {
white-space: nowrap;
/* 防止文本换行 */
overflow: hidden;
/* 隐藏溢出的内容 */
text-overflow: ellipsis;
/* 显示省略号 */
}
</style>

View File

@@ -0,0 +1,325 @@
<template>
<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="applyNo">
<el-input v-model="queryParams.applyNo" placeholder="请输入申请编号" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<!-- <el-form-item label="审批节点" prop="approvalNode">
<el-input v-model="queryParams.approvalNode" placeholder="请输入审批节点" clearable
@keyup.enter.native="handleQuery" />
</el-form-item> -->
<el-form-item label="审批人" prop="approverName">
<el-input v-model="queryParams.approverName" placeholder="请输入审批人姓名" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="审批时间" prop="approvalTime">
<el-date-picker clearable v-model="queryParams.approvalTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择审批时间">
</el-date-picker>
</el-form-item>
<el-form-item label="学生姓名" prop="studentName">
<el-input v-model="queryParams.studentName" placeholder="请输入学生姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="学生学号" prop="studentNo">
<el-input v-model="queryParams.studentNo" 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-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['dormitory:outsideAccommodationApproval:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['dormitory:outsideAccommodationApproval:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['dormitory:outsideAccommodationApproval:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['dormitory:outsideAccommodationApproval:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="outsideAccommodationApprovalList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="主键ID" align="center" prop="id" /> -->
<!-- <el-table-column label="外宿申请ID" align="center" prop="applyId" /> -->
<el-table-column label="学生姓名" align="center" prop="studentName" />
<el-table-column label="学生学号" align="center" prop="studentNo" />
<el-table-column label="申请编号" align="center" prop="applyNo" />
<el-table-column label="审批节点" align="center" prop="approvalNode" />
<!-- <el-table-column label="审批人ID" align="center" prop="approverId" /> -->
<el-table-column label="审批人姓名" align="center" prop="approverName" />
<!-- <el-table-column label="审批人角色" align="center" prop="approverRole" /> -->
<el-table-column label="审批意见" align="center" prop="approvalOpinion" />
<el-table-column label="审批结果" align="center" prop="approvalResult">
<template slot-scope="scope">
<el-tag v-if="scope.row.approvalResult == 1" type="success">通过</el-tag>
<el-tag v-else type="danger">驳回</el-tag>
</template>
</el-table-column>
<el-table-column label="审批时间" align="center" prop="approvalTime">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.approvalTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="流程实例ID" align="center" prop="processInstanceId" /> -->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['dormitory:outsideAccommodationApproval:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['dormitory:outsideAccommodationApproval:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改外宿申请审批记录对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="外宿申请ID" prop="applyId">
<el-input v-model="form.applyId" placeholder="请输入外宿申请ID" />
</el-form-item>
<el-form-item label="申请编号" prop="applyNo">
<el-input v-model="form.applyNo" placeholder="请输入申请编号" />
</el-form-item>
<el-form-item label="审批节点" prop="approvalNode">
<el-input v-model="form.approvalNode" placeholder="请输入审批节点" />
</el-form-item>
<el-form-item label="审批人ID" prop="approverId">
<el-input v-model="form.approverId" placeholder="请输入审批人ID" />
</el-form-item>
<el-form-item label="审批人姓名" prop="approverName">
<el-input v-model="form.approverName" placeholder="请输入审批人姓名" />
</el-form-item>
<el-form-item label="审批人角色" prop="approverRole">
<el-input v-model="form.approverRole" placeholder="请输入审批人角色" />
</el-form-item>
<el-form-item label="审批意见" prop="approvalOpinion">
<el-input v-model="form.approvalOpinion" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="审批结果" prop="approvalResult">
<el-input v-model="form.approvalResult" placeholder="请输入审批结果" />
</el-form-item>
<el-form-item label="审批时间" prop="approvalTime">
<el-date-picker clearable v-model="form.approvalTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择审批时间">
</el-date-picker>
</el-form-item>
<el-form-item label="流程实例ID" prop="processInstanceId">
<el-input v-model="form.processInstanceId" placeholder="请输入流程实例ID" />
</el-form-item>
<el-form-item label="学生姓名" prop="studentName">
<el-input v-model="form.studentName" placeholder="请输入学生姓名" />
</el-form-item>
<el-form-item label="学生学号" prop="studentNo">
<el-input v-model="form.studentNo" placeholder="请输入学生学号" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listOutsideAccommodationApproval, getOutsideAccommodationApproval, delOutsideAccommodationApproval, addOutsideAccommodationApproval, updateOutsideAccommodationApproval } from "@/api/dormitory/outsideAccommodation/outsideAccommodationApproval";
export default {
name: "OutsideAccommodationApproval",
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 外宿申请审批记录表格数据
outsideAccommodationApprovalList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
applyId: null,
applyNo: null,
approvalNode: null,
approverId: null,
approverName: null,
approverRole: null,
approvalOpinion: null,
approvalResult: null,
approvalTime: null,
processInstanceId: null,
studentName: null,
studentNo: null
},
// 表单参数
form: {},
// 表单校验
rules: {
applyId: [
{ required: true, message: "外宿申请ID不能为空", trigger: "blur" }
],
applyNo: [
{ required: true, message: "申请编号不能为空", trigger: "blur" }
],
approvalNode: [
{ required: true, message: "审批节点不能为空", trigger: "blur" }
],
approverId: [
{ required: true, message: "审批人ID不能为空", trigger: "blur" }
],
approverName: [
{ required: true, message: "审批人姓名不能为空", trigger: "blur" }
],
approverRole: [
{ required: true, message: "审批人角色不能为空", trigger: "blur" }
],
approvalResult: [
{ required: true, message: "审批结果不能为空", trigger: "blur" }
],
approvalTime: [
{ required: true, message: "审批时间不能为空", trigger: "blur" }
],
studentName: [
{ required: true, message: "学生姓名不能为空", trigger: "blur" }
],
studentNo: [
{ required: true, message: "学生学号不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询外宿申请审批记录列表 */
getList() {
this.loading = true;
listOutsideAccommodationApproval(this.queryParams).then(response => {
this.outsideAccommodationApprovalList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
applyId: null,
applyNo: null,
approvalNode: null,
approverId: null,
approverName: null,
approverRole: null,
approvalOpinion: null,
approvalResult: null,
approvalTime: null,
processInstanceId: null,
studentName: null,
studentNo: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加外宿申请审批记录";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getOutsideAccommodationApproval(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改外宿申请审批记录";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateOutsideAccommodationApproval(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addOutsideAccommodationApproval(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除外宿申请审批记录编号为"' + ids + '"的数据项?').then(function () {
return delOutsideAccommodationApproval(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
this.download('dormitory/outsideAccommodationApproval/export', {
...this.queryParams
}, `outsideAccommodationApproval_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@@ -0,0 +1,270 @@
<template>
<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="attachmentName">
<el-input v-model="queryParams.attachmentName" placeholder="请输入附件名称" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="学生姓名" prop="studentName">
<el-input v-model="queryParams.studentName" placeholder="请输入学生姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="学生学号" prop="studentNo">
<el-input v-model="queryParams.studentNo" 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-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['dormitory:outsideAccommodationAttachment:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['dormitory:outsideAccommodationAttachment:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['dormitory:outsideAccommodationAttachment:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['dormitory:outsideAccommodationAttachment:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="outsideAccommodationAttachmentList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="主键ID" align="center" prop="id" /> -->
<!-- <el-table-column label="外宿申请ID" align="center" prop="applyId" /> -->
<el-table-column label="学生姓名" align="center" prop="studentName" />
<el-table-column label="学生学号" align="center" prop="studentNo" />
<el-table-column label="附件名称" align="center" prop="attachmentName" />
<el-table-column label="附件存储URL" align="center" prop="attachmentUrl" />
<el-table-column label="附件类型" align="center" prop="attachmentType" />
<el-table-column label="附件大小" align="center" prop="fileSize" />
<el-table-column label="附件后缀" align="center" prop="fileSuffix" />
<el-table-column label="流程实例ID" align="center" prop="processInstanceId" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['dormitory:outsideAccommodationAttachment:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['dormitory:outsideAccommodationAttachment:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改外宿申请附件对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="外宿申请ID" prop="applyId">
<el-input v-model="form.applyId" placeholder="请输入外宿申请ID" />
</el-form-item>
<el-form-item label="附件名称" prop="attachmentName">
<el-input v-model="form.attachmentName" placeholder="请输入附件名称" />
</el-form-item>
<el-form-item label="附件存储URL" prop="attachmentUrl">
<el-input v-model="form.attachmentUrl" placeholder="请输入附件存储URL" />
</el-form-item>
<el-form-item label="附件大小" prop="fileSize">
<el-input v-model="form.fileSize" placeholder="请输入附件大小" />
</el-form-item>
<el-form-item label="附件后缀" prop="fileSuffix">
<el-input v-model="form.fileSuffix" placeholder="请输入附件后缀" />
</el-form-item>
<el-form-item label="流程实例ID" prop="processInstanceId">
<el-input v-model="form.processInstanceId" placeholder="请输入流程实例ID" />
</el-form-item>
<el-form-item label="学生姓名" prop="studentName">
<el-input v-model="form.studentName" placeholder="请输入学生姓名" />
</el-form-item>
<el-form-item label="学生学号" prop="studentNo">
<el-input v-model="form.studentNo" placeholder="请输入学生学号" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listOutsideAccommodationAttachment, getOutsideAccommodationAttachment, delOutsideAccommodationAttachment, addOutsideAccommodationAttachment, updateOutsideAccommodationAttachment } from "@/api/dormitory/outsideAccommodation/outsideAccommodationAttachment";
export default {
name: "OutsideAccommodationAttachment",
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 外宿申请附件表格数据
outsideAccommodationAttachmentList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
applyId: null,
attachmentName: null,
attachmentUrl: null,
attachmentType: null,
fileSize: null,
fileSuffix: null,
processInstanceId: null,
studentName: null,
studentNo: null
},
// 表单参数
form: {},
// 表单校验
rules: {
applyId: [
{ required: true, message: "外宿申请ID不能为空", trigger: "blur" }
],
attachmentName: [
{ required: true, message: "附件名称不能为空", trigger: "blur" }
],
attachmentUrl: [
{ required: true, message: "附件存储URL不能为空", trigger: "blur" }
],
fileSuffix: [
{ required: true, message: "附件后缀不能为空", trigger: "blur" }
],
studentName: [
{ required: true, message: "学生姓名不能为空", trigger: "blur" }
],
studentNo: [
{ required: true, message: "学生学号不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询外宿申请附件列表 */
getList() {
this.loading = true;
listOutsideAccommodationAttachment(this.queryParams).then(response => {
this.outsideAccommodationAttachmentList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
applyId: null,
attachmentName: null,
attachmentUrl: null,
attachmentType: null,
fileSize: null,
fileSuffix: null,
createTime: null,
processInstanceId: null,
studentName: null,
studentNo: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加外宿申请附件";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getOutsideAccommodationAttachment(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改外宿申请附件";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateOutsideAccommodationAttachment(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addOutsideAccommodationAttachment(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除外宿申请附件编号为"' + ids + '"的数据项?').then(function () {
return delOutsideAccommodationAttachment(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
this.download('dormitory/outsideAccommodationAttachment/export', {
...this.queryParams
}, `outsideAccommodationAttachment_${new Date().getTime()}.xlsx`)
}
}
};
</script>