学生资助、学生奖惩等内容提交

This commit is contained in:
2025-12-03 09:55:58 +08:00
parent a5c6980bdd
commit aa83bf8b94
26 changed files with 2288 additions and 1411 deletions

View File

@@ -287,8 +287,9 @@
<tr>
<td colspan="6" style="padding:0px;">
<!-- 动态表格打印时隐藏 -->
<el-table style="width:100%" :data="formData.jtcyObj" width="100%" :border="true"
align="center" element-loading-text="数据加载中..."
align="center" element-loading-text="数据加载中..." class="family-table-dynamic"
>
<el-table-column label="姓名" header-align="center">
<template slot-scope="{ row, $index }">
@@ -394,9 +395,47 @@
</template>
</el-table-column>
</el-table>
<div style="padding:10px;">
<el-button v-if="!xsEditDisable" type="text" @click="handleAddRow">新增一行</el-button>
</div>
<!-- 静态表格打印时显示 -->
<table class="family-table-static" style="width:100%; border-collapse: collapse; display:none;">
<colgroup>
<col style="width: 120px">
<col style="width: 50px">
<col style="width: 80px">
<col style="width: 340px">
<col style="width: 150px">
<col style="width: 120px">
<col style="width: 120px">
<col style="width: 100px">
</colgroup>
<thead>
<tr style="background-color: #f5f5f5;">
<th style="border: 1px solid #000; padding: 8px; text-align: center; font-weight: bold;">姓名</th>
<th style="border: 1px solid #000; padding: 8px; text-align: center; font-weight: bold;">年龄</th>
<th style="border: 1px solid #000; padding: 8px; text-align: center; font-weight: bold;">与本人关系</th>
<th style="border: 1px solid #000; padding: 8px; text-align: center; font-weight: bold;">学习或工作单位</th>
<th style="border: 1px solid #000; padding: 8px; text-align: center; font-weight: bold;">联系电话</th>
<th style="border: 1px solid #000; padding: 8px; text-align: center; font-weight: bold;">职业</th>
<th style="border: 1px solid #000; padding: 8px; text-align: center; font-weight: bold;">年收入</th>
<th style="border: 1px solid #000; padding: 8px; text-align: center; font-weight: bold;">健康状况</th>
</tr>
</thead>
<tbody>
<tr v-for="(row, index) in formData.jtcyObj" :key="index">
<td style="border: 1px solid #000; padding: 8px; text-align: center;">{{ row.xm }}</td>
<td style="border: 1px solid #000; padding: 8px; text-align: center;">{{ row.nl }}</td>
<td style="border: 1px solid #000; padding: 8px; text-align: center;">{{ row.gx }}</td>
<td style="border: 1px solid #000; padding: 8px; text-align: center;">{{ row.dw }}</td>
<td style="border: 1px solid #000; padding: 8px; text-align: center;">{{ row.lxdh }}</td>
<td style="border: 1px solid #000; padding: 8px; text-align: center;">{{ row.zy }}</td>
<td style="border: 1px solid #000; padding: 8px; text-align: center;">{{ row.nsr }}</td>
<td style="border: 1px solid #000; padding: 8px; text-align: center;">{{ row.jkzk }}</td>
</tr>
<tr v-if="!formData.jtcyObj || formData.jtcyObj.length === 0">
<td colspan="8" style="border: 1px solid #000; padding: 8px; text-align: center;">暂无家庭成员信息</td>
</tr>
</tbody>
</table>
<el-button v-if="!xsEditDisable" style="margin: 10px;" type="text" @click="handleAddRow">新增一行</el-button>
</td>
</tr>
<!-- 申请理由 -->
@@ -715,7 +754,7 @@
<div id="print">
<table v-loading="tableLoading" class="full-width">
<table v-loading="tableLoading" class="full-width" style="margin-left:30px;">
<tr>
<td colspan="6" style="border:0px">
<h1>广西水利电力职业技术学院</h1>
@@ -904,61 +943,69 @@
<el-table style="width:100%" :data="formData.jtcyObj" width="100%" :border="true"
align="center" element-loading-text="数据加载中..."
>
<el-table-column label="姓名" header-align="center" min-width="120">
<el-table-column label="姓名" header-align="center" min-width="100">
<template slot-scope="{ row, $index }">
<el-form-item label-width="0px" :prop="'jtcyObj[' + $index +'].xm'" :rules="rules">
<el-input v-model="row.xm" :disabled="xsEditDisable" placeholder="请输入姓名" />
{{row.xm}}
<!-- <el-input v-model="row.xm" :disabled="xsEditDisable" placeholder="请输入姓名" /> -->
</el-form-item>
</template>
</el-table-column>
<el-table-column label="年龄" header-align="center" min-width="60">
<template slot-scope="{ row, $index }">
<el-form-item label-width="0px" :prop="'jtcyObj[' + $index +'].nl'" :rules="rules">
<el-input v-model="row.nl" :disabled="xsEditDisable" placeholder="年龄" />
{{row.nl}}
<!-- <el-input v-model="row.nl" :disabled="xsEditDisable" placeholder="年龄" /> -->
</el-form-item>
</template>
</el-table-column>
<el-table-column label="与本人关系" header-align="center" min-width="120">
<el-table-column label="与本人关系" header-align="center" min-width="80">
<template slot-scope="{ row, $index }">
<el-form-item label-width="0px" :prop="'jtcyObj[' + $index +'].gx'" :rules="rules">
<el-input v-model="row.gx" :disabled="xsEditDisable" placeholder="与本人关系" />
{{row.gx}}
<!-- <el-input v-model="row.gx" :disabled="xsEditDisable" placeholder="与本人关系" /> -->
</el-form-item>
</template>
</el-table-column>
<el-table-column label="学习或工作单位" header-align="center" min-width="210">
<el-table-column label="学习或工作单位" header-align="center" min-width="300">
<template slot-scope="{ row, $index }">
<el-form-item label-width="0px" :prop="'jtcyObj[' + $index +'].dw'" :rules="rules">
<el-input v-model="row.dw" :disabled="xsEditDisable" placeholder="学习或工作单位" />
{{row.dw}}
<!-- <el-input v-model="row.dw" :disabled="xsEditDisable" placeholder="学习或工作单位" /> -->
</el-form-item>
</template>
</el-table-column>
<el-table-column label="联系电话" header-align="center" min-width="150">
<el-table-column label="联系电话" header-align="center" min-width="120">
<template slot-scope="{ row, $index }">
<el-form-item label-width="0px" :prop="'jtcyObj[' + $index +'].lxdh'" :rules="rules">
<el-input v-model="row.lxdh" :disabled="xsEditDisable" placeholder="联系电话" />
{{row.lxdh}}
<!-- <el-input v-model="row.lxdh" :disabled="xsEditDisable" placeholder="联系电话" /> -->
</el-form-item>
</template>
</el-table-column>
<el-table-column label="职业" header-align="center" min-width="120">
<el-table-column label="职业" header-align="center" min-width="100">
<template slot-scope="{ row, $index }">
<el-form-item label-width="0px" :prop="'jtcyObj[' + $index +'].zy'" :rules="rules">
<el-input v-model="row.zy" :disabled="xsEditDisable" placeholder="职业" />
{{row.zy}}
<!-- <el-input v-model="row.zy" :disabled="xsEditDisable" placeholder="职业" /> -->
</el-form-item>
</template>
</el-table-column>
<el-table-column label="年收入" header-align="center" min-width="120">
<el-table-column label="年收入" header-align="center" min-width="100">
<template slot-scope="{ row, $index }">
<el-form-item label-width="0px" :prop="'jtcyObj[' + $index +'].nsr'" :rules="rules">
<el-input v-model="row.nsr" :disabled="xsEditDisable" placeholder="年收入" />
{{row.nsr}}
<!-- <el-input v-model="row.nsr" :disabled="xsEditDisable" placeholder="年收入" /> -->
</el-form-item>
</template>
</el-table-column>
<el-table-column label="健康状况" header-align="center" min-width="100">
<el-table-column label="健康状况" header-align="center" min-width="90">
<template slot-scope="{ row, $index }">
<el-form-item label-width="0px" :prop="'jtcyObj[' + $index +'].jkzk'" :rules="rules">
<el-input v-model="row.jkzk" :disabled="xsEditDisable" placeholder="健康状况" />
{{row.jkzk}}
<!-- <el-input v-model="row.jkzk" :disabled="xsEditDisable" placeholder="健康状况" /> -->
</el-form-item>
</template>
</el-table-column>
@@ -969,9 +1016,7 @@
</el-table-column>
</el-table>
<div style="padding:10px;">
<el-button v-if="!xsEditDisable" type="text" @click="handleAddRow">新增一行</el-button>
</div>
<el-button v-if="!xsEditDisable" style="margin: 10px;" type="text" @click="handleAddRow">新增一行</el-button>
</td>
</tr>
@@ -1090,10 +1135,10 @@
</div>
<div class="newsign">
<span>
<img v-if="formData.xxqm" :src="baseurl + formData.xxqm" class="signature-img">
<!-- <img v-if="formData.xxqm" :src="baseurl + formData.xxqm" class="signature-img"> -->
</span>
<span style="width:150px;">
<span> {{ formData.xxmc }}</span>
<!-- <span> {{ formData.xxmc }}</span> -->
<!-- <span> {{ formData.xxgh }}</span><br> -->
<span>{{ this.formData.deptTime }}</span>
</span>
@@ -2362,8 +2407,9 @@ td {
}
:deep(.el-input.is-disabled .el-input__inner ){
background-color: #fff;
color: #000;
background-color: #fff !important;
color: #000 !important;
cursor: text !important;
}
.list .item span {
@@ -2521,4 +2567,61 @@ body {
}
/*去除页眉页脚*/
/* 打印时的样式控制 */
@media print {
/* 隐藏动态表格 */
.family-table-dynamic {
display: none !important;
}
/* 显示静态表格 */
.family-table-static {
display: table !important;
}
/* 确保静态表格边框清晰 */
.family-table-static td,
.family-table-static th {
border: 1px solid #000 !important;
-webkit-print-color-adjust: exact;
print-color-adjust: exact;
}
}
/* 屏幕显示时隐藏静态表格 */
@media screen {
.family-table-static {
display: none !important;
}
}
/* 家庭成员表格样式调整 - 更具体的选择器 */
:deep(.el-table .el-input.is-disabled .el-input__inner),
:deep(.el-table .el-form-item.is-disabled .el-input__inner) {
background-color: #fff !important;
color: #000 !important;
cursor: text !important;
border-color: #dcdfe6 !important;
}
/* 确保表格中的文本是黑色 */
:deep(.el-table .cell),
:deep(.el-table .el-form-item__content),
:deep(.el-table .el-input__inner) {
color: #000 !important;
}
/* 表格输入框样式 */
:deep(.el-table input.el-input__inner) {
color: #000 !important;
background-color: #fff !important;
}
/* 覆盖所有禁用状态的样式 */
:deep(.el-table .is-disabled .el-input__inner) {
background-color: #fff !important;
color: #000 !important;
border-color: #dcdfe6 !important;
}
</style>

View File

@@ -239,7 +239,7 @@
<tr>
<td colspan="6" style="padding:0px;">
<el-table
<el-table class="family-table"
style="width:100%"
:data="formData.jtcyObj"
width="100%"
@@ -273,7 +273,7 @@
<template slot-scope="{ row, $index }">
<el-form-item label-width="0px" :prop="'jtcyObj[' + $index +'].dw'" :rules="rules">
<el-input v-model="row.dw" :disabled="xsEditDisable" placeholder="学习或工作单位" />
<div class="print-only">{{ row.dw }}</div>
</el-form-item>
</template>
</el-table-column>
@@ -372,7 +372,7 @@
<!-- 班级意见 -->
<tr>
<td class="table-label">班级意见</td>
<td class="table-input" style="text-align:left;" colspan="5">
<td class="table-input school-opinion" style="text-align:left;" colspan="5">
<div tyle="display: flex; justify-content: space-between;">
<div>
@@ -690,19 +690,27 @@ export default {
//打印
printobj:{
id: 'apply',
popTitle: '打印', // 打印配置页上方标题
extraHead: '', //最上方的头部文字附加在head标签上的额外标签,使用逗号分隔
preview: '', // 是否启动预览模式默认是false开启预览模式可以先预览后打印
previewTitle: '', // 打印预览的标题(开启预览模式后出现),
previewPrintBtnLabel: '', // 打印预览的标题的下方按钮文本,点击可进入打印(开启预览模式后出现)
zIndex: '', // 预览的窗口的z-index默认是 20002此值要高一些这涉及到预览模式是否显示在最上面
previewBeforeOpenCallback() {}, //预览窗口打开之前的callback开启预览模式调用
previewOpenCallback() {}, // 预览窗口打开之后的callback开启预览模式调用
popTitle: '打印',
extraHead: '<style>@media print{ #apply .newSign img.signature-img{display:inline!important;} #apply .newSign .signature-tip{display:inline!important;} #apply .newSign > div:first-child span{display:inline!important;} #apply .school-opinion img.signature-img{display:none!important;} #apply .school-opinion .signature-tip{display:none!important;} #apply .school-opinion .newSign > div:first-child{display:none!important;} }</style>',
preview: '',
previewTitle: '',
previewPrintBtnLabel: '',
zIndex: '',
previewBeforeOpenCallback() {},
previewOpenCallback() {},
beforeOpenCallback() {
}, // 开启打印前的回调事件
openCallback() {}, // 调用打印之后的回调事件
closeCallback() {}, //关闭打印的回调事件(无法确定点击的是确认还是取消)
const op = document.querySelector('#apply .school-opinion');
if(op){
const img = op.querySelector('img.signature-img');
if(img){ img.style.display = 'none'; }
const tip = op.querySelector('.signature-tip');
if(tip){ tip.style.display = 'none'; }
const nameDiv = op.querySelector('.newSign > div:first-child');
if(nameDiv){ nameDiv.style.display = 'none'; }
}
},
openCallback() {},
closeCallback() {},
url: '',
standard: '',
extraCss: '',
@@ -1271,6 +1279,7 @@ export default {
width: 240px;
padding: 8px 4px;
}
.print-only{ display:none; }
.table-input>>>.el-input__inner{
padding-right: 0;
}
@@ -1321,6 +1330,36 @@ export default {
border-width: 0px;
}
/* 打印专用:家庭成员情况与困难认定一致 */
@media print {
#apply /deep/ .family-table{ width:100% !important; box-sizing:border-box; }
#apply>>>.family-table{ width:100% !important; box-sizing:border-box; }
#apply /deep/ .family-table .el-table__cell{ background:#fff !important; color:#000 !important; font-size:16px; overflow:visible !important; text-overflow:clip !important; }
#apply>>>.family-table .el-table__cell{ background:#fff !important; color:#000 !important; font-size:16px; overflow:visible !important; text-overflow:clip !important; }
#apply /deep/ .family-table th.el-table__cell{ background:#fff !important; color:#000 !important; }
#apply>>>.family-table th.el-table__cell{ background:#fff !important; color:#000 !important; }
#apply /deep/ .family-table .el-input__inner{ width:100% !important; padding:0 6px !important; border:0 !important; box-shadow:none !important; background:#fff !important; color:#000 !important; white-space:nowrap !important; }
#apply>>>.family-table .el-input__inner{ width:100% !important; padding:0 6px !important; border:0 !important; box-shadow:none !important; background:#fff !important; color:#000 !important; white-space:nowrap !important; }
/* 学习或工作单位:打印纯文本自动换行 */
#apply /deep/ .family-table td:nth-child(4) .el-input{ display:none !important; }
#apply /deep/ .family-table td:nth-child(4) .print-only{ display:block !important; white-space:normal !important; word-break:break-word !important; line-height:1.6; }
#apply>>>.family-table td:nth-child(4) .el-input{ display:none !important; }
#apply>>>.family-table td:nth-child(4) .print-only{ display:block !important; white-space:normal !important; word-break:break-word !important; line-height:1.6; }
/* 列宽分配与右侧边框修复 */
#apply /deep/ .family-table colgroup col:nth-child(1){ width:100px !important; min-width:100px !important; }
#apply /deep/ .family-table colgroup col:nth-child(2){ width:60px !important; min-width:60px !important; }
#apply /deep/ .family-table colgroup col:nth-child(3){ width:110px !important; min-width:110px !important; }
#apply /deep/ .family-table colgroup col:nth-child(4){ width:280px !important; min-width:280px !important; }
#apply /deep/ .family-table colgroup col:nth-child(5){ width:180px !important; min-width:180px !important; }
#apply /deep/ .family-table colgroup col:nth-child(6){ width:90px !important; min-width:90px !important; }
#apply /deep/ .family-table colgroup col:nth-child(7){ width:100px !important; min-width:100px !important; }
#apply /deep/ .family-table colgroup col:nth-child(8){ width:90px !important; min-width:90px !important; }
#apply>>>.family-table .el-table__header-wrapper th:last-child{ border-right:1px solid #000 !important; }
#apply>>>.family-table .el-table__body-wrapper td:last-child{ border-right:1px solid #000 !important; }
}
/* 表单样式统一 */
/deep/ .el-form-item{
margin-bottom: 0;
@@ -1451,4 +1490,4 @@ export default {
line-height: 17px;
color: red;
}
</style>
</style>

View File

@@ -94,24 +94,46 @@
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<!-- <template slot-scope="scope">
<el-button type="primary" icon="el-icon-edit" plain @click="handleUpdate(scope.row)"
size="small">编辑</el-button>
<el-button type="primary" icon="el-icon-edit" plain @click="handleUpdate(scope.row)"
size="small">编辑</el-button>
</template> -->
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">详情</el-button>
<el-button v-if="scope.row.step >= 3 " size="mini" type="text" icon="el-icon-delete" @click="handleRevoke(scope.row)">撤回</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="openEditSqly(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
class="edit-reason-dialog"
title="修改申请信息"
:visible.sync="editReasonVisible"
width="700px"
:close-on-click-modal="false"
append-to-body
>
<el-form :model="editReasonForm" label-width="160px">
<el-form-item label="具体时间、内容及涉及金额等情况">
<el-input class="with-border" v-model="editReasonForm.tfsj" type="textarea" :rows="4" placeholder="请输入具体时间、内容及涉及金额等情况" />
</el-form-item>
<el-form-item label="申请理由">
<el-input class="with-border" v-model="editReasonForm.sqly" type="textarea" :rows="6" placeholder="请输入申请理由" />
</el-form-item>
</el-form>
<div slot="footer">
<el-button @click="editReasonVisible=false">取消</el-button>
<el-button type="primary" :loading="editReasonLoading" @click="submitEditSqly">确定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {list} from '@/api/stuYear/index'
import { fdyRevoke } from '@/api/zxj/poverty/apply'
import { addApply, delApply, listFdy as listApply, updateApply } from '@/api/zxj/poverty/applyjl'
import { fdyRevoke, fdySave } from '@/api/zxj/poverty/apply'
import { addApply, delApply, listFdy as listApply, getApply } from '@/api/zxj/poverty/applyjl'
export default {
name: 'Apply',
data() {
@@ -153,6 +175,9 @@ export default {
title: '',
// 是否显示弹出层
open: false,
editReasonVisible: false,
editReasonLoading: false,
editReasonForm: { id: null, sqly: '', tfsj: '' },
// 查询参数
queryParams: {
pageNum: 1,
@@ -363,6 +388,49 @@ export default {
})
.catch(() => {})
},
openEditSqly(row) {
// 先使用列表行数据进行预填充,确保立即可见
this.editReasonForm = {
id: row.id,
sqly: (row.sqly || ''),
tfsj: (row.tfsj2 || row.tfsj || '')
}
this.editReasonVisible = true
// 再异步获取详细数据进行刷新
this.editReasonLoading = true
getApply(row.id).then(res => {
const data = res && res.data ? res.data : {}
this._fullApplyData = data
this.editReasonForm = {
id: data.id || row.id,
sqly: (data.sqly || this.editReasonForm.sqly || ''),
tfsj: (data.tfsj2 || data.tfsj || this.editReasonForm.tfsj || '')
}
this.editReasonLoading = false
}).catch(() => { this.editReasonLoading = false })
},
submitEditSqly() {
const payload = { id: this.editReasonForm.id, sqly: this.editReasonForm.sqly, tfsj2: this.editReasonForm.tfsj }
this.editReasonLoading = true
fdySave(payload)
.then((res) => {
this.editReasonLoading = false
const ok = !res || (res.code !== 500)
if (ok) {
this.editReasonVisible = false
this.$message.success('已更新申请理由')
this.getList()
} else {
const msg = res.msg || '操作失败'
this.$message.error(msg)
}
})
.catch((err) => {
this.editReasonLoading = false
const msg = (err && err.message) || '操作失败'
this.$message.error(msg)
})
},
/** 导出按钮操作 */
handleExport() {
this.download(
@@ -376,3 +444,8 @@ export default {
},
}
</script>
<style scoped>
.edit-reason-dialog >>> .el-textarea__inner { border: 1px solid #dcdfe6 !important; box-shadow: none !important; border-radius: 4px; }
.edit-reason-dialog >>> .with-border .el-textarea__inner { border: 1px solid #606266 !important; }
.edit-reason-dialog >>> .el-input__inner { border: 1px solid #dcdfe6 !important; }
</style>

View File

@@ -335,7 +335,7 @@
<div style="display: flex;align-items: center;">
<el-form-item prop="jtnsr">
<el-input v-model="income" type="number" placeholder="自动计算家庭年收入" disabled />
<el-input v-model="income" type="number" placeholder="自动计算家庭年收入" />
</el-form-item>
</div>
@@ -344,7 +344,7 @@
<td colspan="3">
<div style="display: flex;align-items: center;">
<el-form-item prop="rjnsr">
<el-input v-model="capita" type="number" placeholder="自动计算人均年收入" disabled />
<el-input v-model="capita" type="number" placeholder="自动计算人均年收入" />
</el-form-item>
</div>
@@ -782,7 +782,7 @@
</tr>
<tr>
<td style="padding:0px;" colspan="6">
<el-table :data="formData.jtcyObj" border style="width:100%" :row-class-name="handelIndex">
<el-table class="family-table" :data="formData.jtcyObj" border style="width:100%" :row-class-name="handelIndex">
<el-table-column prop="xm" label="姓名" align="center">
<template slot-scope="{ row, $index }">
<el-form-item label-width="0px" :prop="'jtcyObj[' + $index +'].xm'" :rules="rules">
@@ -808,6 +808,7 @@
<template slot-scope="{ row, $index }">
<el-form-item label-width="0px" :prop="'jtcyObj[' + $index +'].dw'">
<el-input v-model="row.dw" placeholder="工作(学习)单位" :disabled="formData.step > 2" />
<div class="print-only">{{ row.dw }}</div>
</el-form-item>
</template>
</el-table-column>
@@ -1048,7 +1049,7 @@
<!-- 学校认定意见 -->
<tr style="height:250px">
<td class="table-label">学校认定意见</td>
<td class="table-input" style="text-align:left;" colspan="5">
<td class="table-input school-opinion" style="text-align:left;" colspan="5">
<div tyle="display: flex; justify-content: space-between;">
<div>
经审查,本学年该同学
@@ -1061,7 +1062,6 @@
</div>
<div style="display: flex; justify-content: flex-end;margin-right: 10px;gap:10px;margin-top:66px;">
<span>
<img v-if="formData.xsqm" :src="baseurl+formData.xsqm" class="signature-img">
<span v-else class="signature-tip">签名</span>
@@ -1323,17 +1323,81 @@ import {mz_list} from '@/api/helpFunc'
printobj:{
id: 'print',
popTitle: '打印', // 打印配置页上方标题
extraHead: '', //最上方的头部文字,附加在head标签上的额外标签,使用逗号分隔
extraHead: '<style>@media print{ #print .school-opinion img.signature-img{display:none!important;} #print .school-opinion .signature-tip{display:none!important;} #print .school-opinion .newSign > div:first-child{display:none!important;} #print .school-opinion span > img.signature-img{display:none!important;} }</style>', //最上方的头部文字,附加在head标签上的额外标签,使用逗号分隔
preview: '', // 是否启动预览模式,默认是false(开启预览模式,可以先预览后打印)
previewTitle: '', // 打印预览的标题(开启预览模式出现),
previewTitle: '', // 打印预览的标题(开启预览模式出现),
previewPrintBtnLabel: '', // 打印预览的标题的下方按钮文本,点击可进入打印(开启预览模式后出现)
zIndex: '', // 预览的窗口的z-index,默认是 20002(此值要高一些,这涉及到预览模式是否显示在最上面)
previewBeforeOpenCallback() {}, //预览窗口打开之前的callback(开启预览模式调用)
previewOpenCallback() {}, // 预览窗口打开之后的callback(开启预览模式调用)
beforeOpenCallback() {
// 在打印前隐藏学校认定意见的签名和审核人信息,但保留日期
setTimeout(() => {
// 找到学校认定意见的区域
const schoolOpinion = document.querySelector('#print .school-opinion');
if (schoolOpinion) {
// 隐藏签名图片
const signatureImg = schoolOpinion.querySelector('img.signature-img');
if (signatureImg) {
signatureImg.style.display = 'none';
}
// 隐藏签名提示文字
const signatureTip = schoolOpinion.querySelector('.signature-tip');
if (signatureTip) {
signatureTip.style.display = 'none';
}
// 找到.newSign区域但只隐藏第一个div姓名保留第二个div日期
const newSignDiv = schoolOpinion.querySelector('.newSign');
if (newSignDiv) {
// 隐藏第一个div包含姓名
const nameDiv = newSignDiv.querySelector('div:first-child');
if (nameDiv) {
nameDiv.style.display = 'none';
}
// 保留第二个div包含日期不隐藏
// const dateDiv = newSignDiv.querySelector('div:last-child');
// dateDiv 保持显示
}
// 隐藏包含签名图片的span
const signatureSpan = schoolOpinion.querySelector('span > img.signature-img');
if (signatureSpan && signatureSpan.parentElement) {
signatureSpan.parentElement.style.display = 'none';
}
}
}, 100);
}, // 开启打印前的回调事件
openCallback() {}, // 调用打印之后的回调事件
openCallback() {
// 打印完成后恢复显示(只恢复我们隐藏的元素,不恢复日期)
setTimeout(() => {
const schoolOpinion = document.querySelector('#print .school-opinion');
if (schoolOpinion) {
// 只恢复签名图片
const signatureImg = schoolOpinion.querySelector('img.signature-img');
if (signatureImg) {
signatureImg.style.display = '';
}
// 只恢复签名提示文字
const signatureTip = schoolOpinion.querySelector('.signature-tip');
if (signatureTip) {
signatureTip.style.display = '';
}
// 只恢复姓名divnewSign中的第一个div
const nameDiv = schoolOpinion.querySelector('.newSign > div:first-child');
if (nameDiv) {
nameDiv.style.display = '';
}
// 注意:不恢复.newSign的display因为日期还在里面
// 只恢复我们具体隐藏的元素
}
}, 1000);
}, // 调用打印之后的回调事件
closeCallback() {}, //关闭打印的回调事件(无法确定点击的是确认还是取消)
url: '',
standard: '',
@@ -2723,6 +2787,7 @@ overflow: hidden;
justify-content: center;
align-content: center;
}
.print-only{ display: none; }
.reject /deep/ .el-input__inner{
border-width: 1px;
padding-left: 15px;
@@ -2734,7 +2799,7 @@ overflow: hidden;
}
#print{
text-align: left;
padding: 30px 60px 0px 40px ;
padding: 30px 30px 0px 30px ;
}
#print th{
padding: 2px;
@@ -2805,6 +2870,52 @@ overflow: hidden;
#print /deep/ .el-table td.el-table__cell{
border-bottom: 1px solid #000!important;
}
#print /deep/ .family-table .el-table__cell{
background-color: #fff !important;
color: #000 !important;
font-size: 16px;
}
#print /deep/ .family-table th.el-table__cell{
background-color: #fff !important;
color: #000 !important;
}
#print /deep/ .family-table .el-input.is-disabled .el-input__inner{
background-color: #fff !important;
color: #000 !important;
font-size: 16px;
}
@media print {
#print{ padding: 20px 20px 0 20px; }
#print /deep/ .family-table{ width: 100% !important; box-sizing: border-box; }
#print /deep/ .family-table .el-table__cell{
overflow: visible !important;
text-overflow: clip !important;
}
#print /deep/ .family-table .el-input__inner{
width: 100% !important;
padding: 0 6px !important;
border: 0 !important;
box-shadow: none !important;
background: #fff !important;
color: #000 !important;
white-space: nowrap !important;
overflow: visible !important;
text-overflow: clip !important;
}
#print /deep/ .family-table td:nth-child(4) .el-input{ display: none !important; }
#print /deep/ .family-table td:nth-child(4) .print-only{ display: block !important; white-space: normal !important; word-break: break-word !important; line-height: 1.6; }
#print /deep/ .family-table colgroup col:nth-child(1){ width: 100px !important; min-width: 100px !important; }
#print /deep/ .family-table colgroup col:nth-child(2){ width: 60px !important; min-width: 60px !important; }
#print /deep/ .family-table colgroup col:nth-child(3){ width: 90px !important; min-width: 90px !important; }
#print /deep/ .family-table colgroup col:nth-child(4){ width: 280px !important; min-width: 280px !important; }
#print /deep/ .family-table colgroup col:nth-child(5){ width: 180px !important; min-width: 180px !important; }
#print /deep/ .family-table colgroup col:nth-child(6){ width: 80px !important; min-width: 80px !important; }
#print /deep/ .family-table colgroup col:nth-child(7){ width: 90px !important; min-width: 90px !important; }
#print /deep/ .family-table colgroup col:nth-child(8){ width: 80px !important; min-width: 80px !important; }
#print /deep/ .family-table .el-table__header-wrapper th:last-child{ border-right: 1px solid #000 !important; }
#print /deep/ .family-table .el-table__body-wrapper td:last-child{ border-right: 1px solid #000 !important; }
#print /deep/ .family-table .el-table__body td:nth-child(4) .el-input__inner{ white-space: normal !important; }
}
.split{
height: 50px;
color: #fff;

View File

@@ -341,7 +341,7 @@
<tr>
<td class="table-label">家庭成员情况</td>
<td colspan="7" style="padding:0px;">
<el-table
<el-table class="family-table"
style="width:100%"
:data="formData.jtcyObj"
width="100%"
@@ -375,6 +375,7 @@
<template slot-scope="{ row, $index }">
<el-form-item label-width="0px" :prop="'jtcyObj[' + $index +'].dw'" :rules="rules">
<el-input v-model="row.dw" placeholder="学习或工作单位" />
<div class="print-only">{{ row.dw }}</div>
</el-form-item>
</template>
@@ -962,14 +963,46 @@ export default {
flex-direction: row;
justify-content: space-between;
}
.class-info div span{
.class-info div span{
line-height: 25px;
}
.print-only{ display:none; }
/* 输入样式统一 */
/deep/ .el-input__inner{
border-width: 0px;
}
/* 打印专用:家庭成员情况与困难认定一致 */
@media print {
#apply /deep/ .family-table{ width:100% !important; box-sizing:border-box; }
#apply>>>.family-table{ width:100% !important; box-sizing:border-box; }
#apply /deep/ .family-table .el-table__cell{ background:#fff !important; color:#000 !important; font-size:16px; overflow:visible !important; text-overflow:clip !important; }
#apply>>>.family-table .el-table__cell{ background:#fff !important; color:#000 !important; font-size:16px; overflow:visible !important; text-overflow:clip !important; }
#apply /deep/ .family-table th.el-table__cell{ background:#fff !important; color:#000 !important; }
#apply>>>.family-table th.el-table__cell{ background:#fff !important; color:#000 !important; }
#apply /deep/ .family-table .el-input__inner{ width:100% !important; padding:0 6px !important; border:0 !important; box-shadow:none !important; background:#fff !important; color:#000 !important; white-space:nowrap !important; }
#apply>>>.family-table .el-input__inner{ width:100% !important; padding:0 6px !important; border:0 !important; box-shadow:none !important; background:#fff !important; color:#000 !important; white-space:nowrap !important; }
/* 学习或工作单位:打印纯文本自动换行 */
#apply /deep/ .family-table td:nth-child(4) .el-input{ display:none !important; }
#apply /deep/ .family-table td:nth-child(4) .print-only{ display:block !important; white-space:normal !important; word-break:break-word !important; line-height:1.6; }
#apply>>>.family-table td:nth-child(4) .el-input{ display:none !important; }
#apply>>>.family-table td:nth-child(4) .print-only{ display:block !important; white-space:normal !important; word-break:break-word !important; line-height:1.6; }
/* 列宽分配与右侧边框修复 */
#apply /deep/ .family-table colgroup col:nth-child(1){ width:100px !important; min-width:100px !important; }
#apply /deep/ .family-table colgroup col:nth-child(2){ width:60px !important; min-width:60px !important; }
#apply /deep/ .family-table colgroup col:nth-child(3){ width:110px !important; min-width:110px !important; }
#apply /deep/ .family-table colgroup col:nth-child(4){ width:280px !important; min-width:280px !important; }
#apply /deep/ .family-table colgroup col:nth-child(5){ width:180px !important; min-width:180px !important; }
#apply /deep/ .family-table colgroup col:nth-child(6){ width:90px !important; min-width:90px !important; }
#apply /deep/ .family-table colgroup col:nth-child(7){ width:100px !important; min-width:100px !important; }
#apply /deep/ .family-table colgroup col:nth-child(8){ width:90px !important; min-width:90px !important; }
#apply>>>.family-table .el-table__header-wrapper th:last-child{ border-right:1px solid #000 !important; }
#apply>>>.family-table .el-table__body-wrapper td:last-child{ border-right:1px solid #000 !important; }
}
/* 表单样式统一 */
/deep/ .el-form-item{
margin-bottom: 0;
@@ -1080,4 +1113,4 @@ export default {
padding: 10px;
}
</style>
</style>

View File

@@ -621,7 +621,7 @@
<tr>
<td class="table-label">家庭成员情况</td>
<td colspan="7" style="padding: 0px">
<el-table
<el-table class="family-table"
style="width: 100%"
:data="formData.jtcyObj"
width="100%"
@@ -698,6 +698,7 @@
v-model="row.dw"
placeholder="学习或工作单位"
/>
<div class="print-only">{{ row.dw }}</div>
</el-form-item>
</template>
</el-table-column>
@@ -1166,6 +1167,7 @@ export default {
border-radius: 3px;
transition: 0.2s;
}
.print-only{ display:none; }
.source {
text-align: center;
}
@@ -1241,6 +1243,37 @@ td {
/deep/ .el-input__inner {
border-width: 0px;
}
/* 打印专用样式:统一为困难认定效果 */
@media print {
#apply /deep/ .family-table{ width:100% !important; box-sizing:border-box; }
#apply>>>.family-table{ width:100% !important; box-sizing:border-box; }
#apply /deep/ .family-table .el-table__cell{ background:#fff !important; color:#000 !important; font-size:16px; overflow:visible !important; text-overflow:clip !important; }
#apply>>>.family-table .el-table__cell{ background:#fff !important; color:#000 !important; font-size:16px; overflow:visible !important; text-overflow:clip !important; }
#apply /deep/ .family-table th.el-table__cell{ background:#fff !important; color:#000 !important; }
#apply>>>.family-table th.el-table__cell{ background:#fff !important; color:#000 !important; }
#apply /deep/ .family-table .el-input__inner{ width:100% !important; padding:0 6px !important; border:0 !important; box-shadow:none !important; background:#fff !important; color:#000 !important; white-space:nowrap !important; }
#apply>>>.family-table .el-input__inner{ width:100% !important; padding:0 6px !important; border:0 !important; box-shadow:none !important; background:#fff !important; color:#000 !important; white-space:nowrap !important; }
/* 学习或工作单位:打印纯文本自动换行 */
#apply /deep/ .family-table td:nth-child(4) .el-input{ display:none !important; }
#apply /deep/ .family-table td:nth-child(4) .print-only{ display:block !important; white-space:normal !important; word-break:break-word !important; line-height:1.6; }
#apply>>>.family-table td:nth-child(4) .el-input{ display:none !important; }
#apply>>>.family-table td:nth-child(4) .print-only{ display:block !important; white-space:normal !important; word-break:break-word !important; line-height:1.6; }
/* 列宽分配与右侧边框修复 */
#apply /deep/ .family-table colgroup col:nth-child(1){ width:100px !important; min-width:100px !important; }
#apply /deep/ .family-table colgroup col:nth-child(2){ width:60px !important; min-width:60px !important; }
#apply /deep/ .family-table colgroup col:nth-child(3){ width:110px !important; min-width:110px !important; }
#apply /deep/ .family-table colgroup col:nth-child(4){ width:280px !important; min-width:280px !important; }
#apply /deep/ .family-table colgroup col:nth-child(5){ width:180px !important; min-width:180px !important; }
#apply /deep/ .family-table colgroup col:nth-child(6){ width:90px !important; min-width:90px !important; }
#apply /deep/ .family-table colgroup col:nth-child(7){ width:100px !important; min-width:100px !important; }
#apply /deep/ .family-table colgroup col:nth-child(8){ width:90px !important; min-width:90px !important; }
#apply>>>.family-table .el-table__header-wrapper th:last-child{ border-right:1px solid #000 !important; }
#apply>>>.family-table .el-table__body-wrapper td:last-child{ border-right:1px solid #000 !important; }
}
/* 表单样式统一 */
/deep/ .el-form-item {
margin-bottom: 0;

View File

@@ -210,6 +210,13 @@
@click="handleDelete(scope.row)"
v-hasPermi="['system:record:remove']"
>删除</el-button> -->
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="openEditSqly(scope.row)"
>修改申请理由</el-button>
</template>
</el-table-column>
</el-table>
@@ -920,13 +927,32 @@
<el-button @click="cancel">关闭</el-button>
</div>
</el-dialog>
<el-dialog
class="edit-reason-dialog"
title="修改申请理由"
:visible.sync="editReasonVisible"
width="600px"
:close-on-click-modal="false"
append-to-body
>
<el-form :model="editReasonForm" label-width="90px">
<el-form-item label="申请理由">
<el-input class="with-border" v-model="editReasonForm.sqly" type="textarea" :rows="6" placeholder="请输入申请理由" />
</el-form-item>
</el-form>
<div slot="footer">
<el-button @click="editReasonVisible=false">取消</el-button>
<el-button type="primary" :loading="editReasonLoading" @click="submitEditSqly">确定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {list} from '@/api/stuYear/index'
import { listFdyView } from '@/api/zxj/record'
import { revoke } from '@/api/zxj/apply'
import { revoke, updateApply, getApply, updateSqly } from '@/api/zxj/apply'
import { listRecord } from '@/api/zxj/record'
export default {
name: 'Record',
@@ -968,6 +994,9 @@ export default {
title: '',
// 是否显示弹出层
open: false,
editReasonVisible: false,
editReasonLoading: false,
editReasonForm: { id: null, sqly: '' },
// 查询参数
queryParams: {
pageNum: 1,
@@ -983,7 +1012,7 @@ export default {
printobj: {
id: 'apply',
popTitle: '打印', // 打印配置页上方标题
extraHead: '', //最上方的头部文字附加在head标签上的额外标签,使用逗号分隔
extraHead: '<style>@media print{ #apply .signature{display:none!important;} #apply .signature img{display:none!important;} }</style>', //最上方的头部文字附加在head标签上的额外标签,使用逗号分隔
preview: '', // 是否启动预览模式默认是false开启预览模式可以先预览后打印
previewTitle: '', // 打印预览的标题(开启预览模式后出现),
previewPrintBtnLabel: '', // 打印预览的标题的下方按钮文本,点击可进入打印(开启预览模式后出现)
@@ -1144,6 +1173,42 @@ export default {
})
.catch(() => {})
},
openEditSqly(row) {
this.editReasonLoading = true
getApply(row.id).then(res => {
const data = res.data || {}
this.editReasonForm = {
id: data.id,
sqly: data.sqly || ''
}
// 备份完整对象用于提交
this._fullApplyData = data
this.editReasonVisible = true
this.editReasonLoading = false
}).catch(() => { this.editReasonLoading = false })
},
submitEditSqly() {
const payload = { id: this.editReasonForm.id, sqly: this.editReasonForm.sqly }
this.editReasonLoading = true
updateSqly(payload)
.then((res) => {
this.editReasonLoading = false
const ok = res && res.code !== 500
if (ok) {
this.editReasonVisible = false
this.$modal && this.$modal.msgSuccess ? this.$modal.msgSuccess('已更新申请理由') : this.$message.success('已更新申请理由')
this.getList()
} else {
const msg = (res && res.msg) || '操作失败'
this.$message.error(msg)
}
})
.catch((err) => {
this.editReasonLoading = false
const msg = (err && err.message) || '操作失败'
this.$message.error(msg)
})
},
/** 修改按钮操作 */
handleDetail(row) {
const nid = row.id || this.ids
@@ -1249,6 +1314,10 @@ td {
.bj >>> .el-input .el-input__inner {
width: 255px;
}
@media print {
#apply .signature { display: none !important; }
#apply .signature img { display: none !important; }
}
.class-info >>> .el-input__inner {
padding: 0px 10px;
text-align: right;
@@ -1406,3 +1475,16 @@ td {
border-width: 1px;
}
</style>
.edit-reason-dialog >>> .el-textarea__inner {
border: 1px solid #dcdfe6 !important;
box-shadow: none !important;
border-radius: 4px;
}
.edit-reason-dialog >>> .el-input__inner {
border: 1px solid #dcdfe6 !important;
box-shadow: none !important;
border-radius: 4px;
}
.edit-reason-dialog >>> .with-border .el-textarea__inner {
border: 1px solid #606266 !important;
}