女职工卫生费

This commit is contained in:
=
2025-11-03 15:45:21 +08:00
parent f290949019
commit 2f9a27d2a0
13 changed files with 336 additions and 80 deletions
@@ -7,6 +7,7 @@ const formEdit = {
<el-form-item label="事项名称" prop="projectName">
<el-input v-model="formData.projectName" placeholder="请输入事项名称" maxlength="50"
show-word-limit></el-input>
</el-form-item>
</el-col>
</el-form-item>
<el-col :span="12">
@@ -28,14 +28,14 @@
},
methods: {
// 打开
onOpen(projectId) {
this.projectId = projectId
onOpen(row) {
this.row = row
this.visible = true
this.getInfo()
},
// 获取申请信息
getInfo() {
this.$axios.post('/platform/womanSanitary/project/findOne', {id: this.projectId}).then((res) => {
this.$axios.post('/platform/womanSanitary/project/findOne', {id: this.row.id}).then((res) => {
if (res.code === 0) {
this.viewData = res.data
}
@@ -9,14 +9,25 @@ layout("/layouts/platform.html"){
<el-date-picker v-model="pageForm.year" type="year" value-format="yyyy" placeholder="请选择"
style="width: 100%"></el-date-picker>
</search-item>
<search-item label="事项名称">
<el-select v-model="pageForm.projectId" @change="onProjectChange" style="width: 100%"
placeholder="请选择事项名称" filterable clearable>
<el-option v-for="item in projectIdOptions"
:value="item.id"
:key="item.id"
:label="item.projectName"
></el-option>
</el-select>
</search-item>
<search-item label="姓名/工号">
<el-input placeholder="请输入姓名或工号" clearable v-model="pageForm.searchKeyword"></el-input>
</search-item>
<search-item label="性别">
<el-select v-model="pageForm.sex" placeholder="请选择性别" clearable style="width: 100%">
<el-option label="男" value="男"></el-option>
<el-option label="" value=""></el-option>
<search-item label="是否发放">
<el-select v-model="pageForm.issue" @change="doSearch" style="width: 100%"
placeholder="请选择是否发放" filterable clearable>
<el-option :value="null" label="全部"></el-option>
<el-option :value="false" label="未发放"></el-option>
<el-option :value="true" label="已发放"></el-option>
</el-select>
</search-item>
<search-item label="所属工会">
@@ -51,6 +62,7 @@ layout("/layouts/platform.html"){
<el-table-column prop="loginName" label="工号"></el-table-column>
<el-table-column prop="userName" label="姓名"></el-table-column>
<el-table-column prop="sex" label="性别"></el-table-column>
<el-table-column prop="projectName" label="所属事项"></el-table-column>
<el-table-column prop="unionName" label="所属工会"></el-table-column>
<el-table-column prop="unitName" label="所属单位"></el-table-column>
<el-table-column prop="mobile" label="联系方式"></el-table-column>
@@ -61,7 +73,7 @@ layout("/layouts/platform.html"){
</template>
</el-table-column>
<el-table-column prop="applyTime" label="录入时间"></el-table-column>
<el-table-column label="操作" fixed="right" width="300px">
<el-table-column label="操作" fixed="right" width="200px">
<template slot-scope="{row}">
<el-button
@click="setIssue(row.id)"
@@ -80,6 +92,7 @@ layout("/layouts/platform.html"){
temp_url="/platform/womanSanitary/manage/downloadTemplate"
post_url="/platform/womanSanitary/manage/importData"
@flush="successImport"
:business_id="pageForm.projectId"
></file-import>
</el-dialog>
</guava>
@@ -98,15 +111,42 @@ layout("/layouts/platform.html"){
unitOptions: [],
userOptions: [],
importDialog: false,
checkedFields: []
checkedFields: [],
projectIdOptions: [],
}
},
components: {
"file-import": httpVueLoader("/components/plugins/sysImport/index.vue?v=" + new Date().getTime())
},
methods: {
onProjectChange(selectedId) {
if (selectedId) {
const selectedItem = this.projectIdOptions.find(item => item.id === selectedId);
if (selectedItem) {
this.$set(this.pageForm, 'projectName', selectedItem.projectName);
}
}
// 触发搜索
this.doSearch();
},
openImport() {
this.importDialog = true
// 先检查是否选择了事项
if (!this.pageForm.projectId) {
this.$message.warning("请先选择事项名称");
return;
}
// 弹出确认提示框
this.$confirm('您确定将人员导入至' + this.pageForm.projectName + '中吗?', "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
// 用户点击确定后打开导入对话框
this.importDialog = true;
}).catch(() => {
// 用户点击取消,不执行任何操作
});
},
successImport() {
this.importDialog = false
@@ -117,9 +157,7 @@ layout("/layouts/platform.html"){
const row = this.tableData.find(item => item.id === id);
if (!row) return;
// 切换发放状态
const newIssueStatus = !row.issue;
// 修复:确保actionText变量正确定义
const actionText = newIssueStatus ? '发放' : '取消发放';
this.$axios.post("/platform/womanSanitary/manage/setIssue", {
@@ -130,16 +168,11 @@ layout("/layouts/platform.html"){
this.$message.success(`成功`);
// 更新表格数据中的状态
row.issue = newIssueStatus;
} else {
this.$message.error(res.msg || `失败`);
}
}).catch(() => {
this.$message.error(`请求失败`);
});
})
},
isIssue() {
// 确认发放所有列表数据
this.$confirm("您确定要发放所有显示的数据吗?", "提示", {
this.$confirm('您确定将' + this.pageForm.projectName + '中的人员都设置已发放吗?', "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
@@ -147,13 +180,9 @@ layout("/layouts/platform.html"){
this.$axios.post("/platform/womanSanitary/manage/batchIssue").then((res) => {
if (res.code === 0) {
this.$message.success("发放成功");
this.pageData(); // 重新加载数据
} else {
this.$message.error(res.msg || "发放失败");
this.pageData();
}
}).catch(() => {
this.$message.error("发放请求失败");
});
})
}).catch(() => {
// 用户取消操作
});
@@ -172,9 +201,21 @@ layout("/layouts/platform.html"){
})
})
},
selectList() {
return this.$axios.post("/platform/womanSanitary/manage/selectList").then((res) => {
if (res.code === 0) {
this.projectIdOptions = res.data
if(this.projectIdOptions.length > 0) {
this.$set(this.pageForm, 'projectId', this.projectIdOptions[0].id)
this.$set(this.pageForm, 'projectName', this.projectIdOptions[0].projectName)
}
}
})
}
},
created() {
async created() {
await this.selectList()
this.pageData()
//工会查询
this.$businessTool.listUnion().then((res) => (this.unionOptions = res))
@@ -3,6 +3,7 @@ layout("/layouts/platform.html"){
#-->
<div id="app" v-cloak>
<guava ref="guava">
<el-card shadow="never">
<search @search="doSearch">
<search-item label="年度">
@@ -31,8 +32,9 @@ layout("/layouts/platform.html"){
<!-- v-model="row.isOpen"></el-switch>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="操作" width="200px" fixed="right">
<el-table-column label="操作" width="300px" fixed="right">
<template slot-scope="{row}">
<el-button @click="onView(row)" size="mini" type="primary">查看</el-button>
<el-button size="mini" type="primary" @click="openEdit(row)">编辑</el-button>
<el-button size="mini" type="danger" @click="onDelete(row.id)">删除</el-button>
</template>
@@ -40,18 +42,23 @@ layout("/layouts/platform.html"){
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
<template #view>
<project-info ref="projectInfoRef"></project-info>
</template>
<form-edit ref="formEditRef" @refresh="doSearch"></form-edit>
</guava>
</div>
<script>
<!--#include('../common/formEdit.js'){}#-->
<!--#include('../common/projectInfo.js'){}#-->
new Vue({
el: "#app",
mixins: [initTableMixins],
components: {
"form-edit": formEdit
"form-edit": formEdit,
"project-info": projectInfo
},
data() {
return {
@@ -75,6 +82,11 @@ layout("/layouts/platform.html"){
this.tableLoading = false
})
},
onView(row) {
this.$refs.guava.view(()=>{
this.$refs.projectInfoRef.onOpen(row)
})
},
openAdd() {
this.$refs.formEditRef.onOpen()
},
@@ -9,14 +9,26 @@ layout("/layouts/platform.html"){
<el-date-picker v-model="pageForm.year" type="year" value-format="yyyy" placeholder="请选择"
style="width: 100%"></el-date-picker>
</search-item>
<search-item label="事项名称">
<el-select v-model="pageForm.projectId" @change="doSearch" style="width: 100%"
placeholder="请选择事项名称" filterable clearable>
<el-option v-for="item in projectIdOptions"
:value="item.id"
:key="item.id"
:label="item.projectName"
@change="doSearch"
></el-option>
</el-select>
</search-item>
<search-item label="姓名/工号">
<el-input placeholder="请输入姓名或工号" clearable v-model="pageForm.searchKeyword"></el-input>
</search-item>
<search-item label="性别">
<el-select v-model="pageForm.sex" placeholder="请选择性别" clearable style="width: 100%">
<el-option label="男" value="男"></el-option>
<el-option label="" value=""></el-option>
<search-item label="是否发放">
<el-select v-model="pageForm.issue" @change="doSearch" style="width: 100%"
placeholder="请选择是否发放" filterable clearable>
<el-option :value="null" label="全部"></el-option>
<el-option :value="false" label="未发放"></el-option>
<el-option :value="true" label="已发放"></el-option>
</el-select>
</search-item>
<search-item label="所属工会">
@@ -43,20 +55,25 @@ layout("/layouts/platform.html"){
</el-card>
<el-card shadow="never">
<table-tool>
<el-button type="primary" size="small" @click="">导出</el-button>
<el-button type="primary" size="small" @click="onExport" icon="el-icon-download">导出</el-button>
</table-tool>
<el-table :data="tableData" @sort-change="pageOrder" style="width: 100%">
<el-table-column type="index" width="50px" label="序号" :index="indexMethod"></el-table-column>
<el-table-column prop="loginName" label="工号"></el-table-column>
<el-table-column prop="userName" label="姓名"></el-table-column>
<el-table-column prop="sex" label="性别"></el-table-column>
<el-table-column prop="projectName" label="所属事项"></el-table-column>
<el-table-column prop="unionName" label="所属工会"></el-table-column>
<el-table-column prop="unitName" label="所属单位"></el-table-column>
<el-table-column prop="mobile" label="联系方式"></el-table-column>
<el-table-column prop="money" label="发放金额"></el-table-column>
<el-table-column prop="issue" label="是否发放"></el-table-column>
<el-table-column prop="issue" label="是否发放">
<template slot-scope="{row}">
<span :style="{color: row.issue ? '#67C23A' : ''}">{{ row.issue ? '已发放' : '未发放' }}</span>
</template>
</el-table-column>
<el-table-column prop="applyTime" label="录入时间"></el-table-column>
<el-table-column label="操作" fixed="right" width="300px">
<el-table-column label="操作" fixed="right" width="200px">
<template slot-scope="{row}">
<el-button v-if="$auth.hasRole('SYSADMIN')" @click="onDelete(row.id)" size="mini" type="danger">删除</el-button>
</template>
@@ -84,16 +101,16 @@ layout("/layouts/platform.html"){
}
},
methods: {
// isIssue() {
// },
onExport() {
this.$downLoad('/platform/womanSanitary/query/onExport', this.pageForm)
},
onDelete(id) {
this.$confirm("您确定要删除吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
this.$axios.post("/platform/exerciseCard/query/delete", {id}).then((res) => {
this.$axios.post("/platform/womanSanitary/query/delete", {id}).then((res) => {
if (res.code === 0) {
this.$message.success(res.msg)
this.pageData()
@@ -101,9 +118,19 @@ layout("/layouts/platform.html"){
})
})
},
selectList() {
this.$axios.post("/platform/womanSanitary/manage/selectList").then((res) => {
if (res.code === 0) {
this.projectIdOptions = res.data
if(this.projectIdOptions.length > 0) {
}
}
})
}
},
created() {
this.selectList()
this.pageData()
//工会查询
this.$businessTool.listUnion().then((res) => (this.unionOptions = res))