Files
UNION_HUTB/target/classes/views/platform/jf/yjgh/jfsy.html
T
2026-09-09 09:14:28 +08:00

593 lines
27 KiB
HTML

<!--#
layout("/layouts/platform.html"){
#-->
<style>
input::-webkit-outer-spin-button, input::-webkit-inner-spin-button {
-webkit-appearance: none !important;
}
input[type="number"] {
-moz-appearance: textfield;
}
</style>
<div id="app" v-cloak>
<el-row class="transition-row">
<transition name="el-zoom-in-center">
<div v-show="!showYsTz" class="transition-item">
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<el-date-picker
@change="doSearch"
style="width: 100%"
v-model="pageForm.year"
type="year"
value-format="yyyy"
format="yyyy年"
placeholder="选择年度">
</el-date-picker>
</div>
<div class="btn-group tool-button mt5">
<el-button icon="el-icon-search" type="primary" @click="doSearch"></el-button>
</div>
<div class="pull-right offscreen-right mt5">
<el-button slot="append" icon="el-icon-download" @click="exportExcel">
导出
</el-button>
</div>
</el-row>
<el-row class="el-table-container">
<el-table :data="tableData" @sort-change="pageOrder" v-loading="tab_loading">
<el-table-column label="序号" type="index" header-align="center" align="center">
<template scope="scope"><span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
</template>
</el-table-column>
<el-table-column label="年度" header-align="center" align="center">
<template scope="scope"><span>{{scope.row.year}}</span>
</template>
</el-table-column>
<el-table-column label="院级工会名称" prop="unionname" show-overflow-tooltip header-align="center"
align="center">
<template slot-scope="scope">
{{scope.row.unionname}}
</template>
</el-table-column>
<el-table-column label="分配总额度" sortable="custom" prop="totalquota" show-overflow-tooltip
header-align="center"
align="center"
align="center">
<template slot-scope="scope">
<span v-if="!scope.row.totalquota">暂未分配</span>
<span v-else><i>{{scope.row.totalquota}}</i></span>
</template>
</el-table-column>
<el-table-column label="已使用额度" sortable="custom" prop="usedquota" show-overflow-tooltip
align="center"
header-align="center" align="center">
<template slot-scope="scope">
<span v-if="!scope.row.usedquota">暂未使用</span>
<span v-else><i>{{scope.row.usedquota}}</i></span>
</template>
</el-table-column>
<el-table-column label="剩余额度" sortable="custom" prop="usedquota" show-overflow-tooltip
align="center"
header-align="center" align="center">
<template slot-scope="scope">
<span v-if="!scope.row.usedquota">{{scope.row.totalquota}}元</span>
<span v-else><i>{{scope.row.totalquota-parseIntNum(scope.row.usedquota)}}</i></span>
</template>
</el-table-column>
<el-table-column label="操作" header-align="center" width="180px" align="center">
<template slot-scope="scope">
<el-button size="mini" @click="use(scope.row)" plain type="primary">使用详情</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<el-row class="el-pagination-container">
<el-pagination
@current-change="pageNumberChange"
:current-page="pageForm.pageNumber"
layout="total, prev, pager, next, jumper"
:total="pageForm.totalCount">
</el-pagination>
</el-row>
</div>
</transition>
<transition name="el-zoom-in-center">
<div v-show="showYsTz" class="transition-item">
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5 mr10">
<el-button icon="el-icon-back" type="text" @click="pre" style="font-size: 18px">返回</el-button>
</div>
<div class="btn-group tool-button mt5">
<el-date-picker
@change="doUseSearch"
style="width: 100%"
v-model="usePageForm.year"
type="year"
value-format="yyyy"
format="yyyy年"
placeholder="选择年度">
</el-date-picker>
</div>
<div class="btn-group tool-button mt5">
<el-button icon="el-icon-search" type="primary" @click="doUseSearch"></el-button>
</div>
<div class="pull-right offscreen-right mt5">
<el-button slot="append" @click="openView">
<i class="ti-plus"></i>新增使用记录
</el-button>
</div>
</el-row>
<el-row class="el-table-container">
<el-table :data="useTableData" @sort-change="pageOrder" v-loading="tab_loading">
<el-table-column label="序号" type="index" header-align="center" align="center">
<template scope="scope"><span>{{scope.$index+(usePageForm.pageNumber - 1) * usePageForm.pageSize + 1}} </span>
</template>
</el-table-column>
<el-table-column label="年度" prop="year" header-align="center"
align="center">
<template scope="scope"><span>{{unionInfo.year}} </span></template>
</el-table-column>
<el-table-column label="活动名称" prop="project" header-align="center"
align="center"></el-table-column>
<el-table-column label="所属工会" prop="name" header-align="center" align="center">
<template scope="scope"><span>{{unionInfo.name}} </span></template>
</el-table-column>
<el-table-column label="录入时间" prop="adjust_time" header-align="center"
align="center"></el-table-column>
<!-- <el-table-column label="活动人数" prop="activitie_number" header-align="center"
align="center"></el-table-column>-->
<el-table-column label="活动费用" prop="adjust_money" header-align="center"
align="center"></el-table-column>
<el-table-column label="调整人" prop="username" header-align="center"
align="center"></el-table-column>
<el-table-column label="事由" prop="adjust_reason" header-align="center" show-overflow-tooltip
align="center"></el-table-column>
<!-- <el-table-column label="操作" header-align="center" width="180px" align="center">
&lt;!&ndash; <template slot-scope="scope">&ndash;&gt;
&lt;!&ndash; <el-button size="mini" type="primary" @click="openEdit(scope.row)">编辑</el-button>&ndash;&gt;
&lt;!&ndash; <el-button size="mini" type="danger" @click="delUse(scope.row)">删除</el-button>&ndash;&gt;
&lt;!&ndash; </template>&ndash;&gt;
<template slot-scope="{row}">
<el-dropdown @command="dropdownCommand">
<el-button plain size="mini">
<i class="ti-settings"></i>
<span class="ti-angle-down"></span>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-if="[1010].includes(row.state_id)"
:command="{type:'edit',data:row}">
编辑
</el-dropdown-item>
<el-dropdown-item v-if="[1010,1000].includes(row.state_id)"
:command="{type:'delete',data:row}">
删除
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
-->
<el-table-column align="center" header-align="center" label="操作" fixed="right"
width="120px">
<template slot-scope="{row}">
<el-dropdown @command="dropdownCommand">
<el-button plain size="mini">
<i class="ti-settings"></i>
<span class="ti-angle-down"></span>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item
:command="{type:'edit',data:row}">
编辑
</el-dropdown-item>
<el-dropdown-item
:command="{type:'delete',data:row}">
删除
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
</el-row>
<el-row class="el-pagination-container">
<el-pagination
@current-change="usePageNumberChange"
:current-page="usePageForm.pageNumber"
layout="total, prev, pager, next, jumper"
:total="usePageForm.totalCount">
</el-pagination>
</el-row>
</div>
</transition>
</el-row>
<!-- 弹出层 -->
<el-dialog :visible.sync="DialogVisible" :title="title">
<el-form :model="useFormData" :rules="rules" label-width="80px" ref="JfForm">
<el-row>
<el-col span="12">
<el-form-item prop="project" label="活动名称">
<el-input type="text" maxlength="200" v-model.trim="useFormData.project"></el-input>
</el-form-item>
</el-col>
<el-col span="12">
<el-form-item prop="activitie_time">
<div class="block">
<span class="demonstration">活动时间&nbsp;&nbsp;</span>
<el-date-picker
v-model="useFormData.activitie_time"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</div>
</el-form-item>
</el-col>
</el-row>
<el-form-item prop="adjust_money" label="活动费用">
<el-input onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
v-model.trim="useFormData.adjust_money"></el-input>
</el-form-item>
<el-form-item prop="activitie_number" label="活动人数">
<el-input onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
v-model.trim="useFormData.activitie_number"></el-input>
</el-form-item>
<!-- <el-form-item prop="by_union" label="所属工会">-->
<!--&lt;!&ndash; <el-input onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"&ndash;&gt;-->
<!--&lt;!&ndash; v-model.trim="useFormData.by_union">&ndash;&gt;-->
<!--&lt;!&ndash; </el-input>&ndash;&gt;-->
<!-- <div class="btn-group tool-button mt5">-->
<!-- <el-select v-model="useFormData.union_id" filterable placeholder="请选择基层工会" clearable>-->
<!-- <el-option-->
<!-- v-for="item in unionOptions"-->
<!-- :key="item.id"-->
<!-- :label="item.unionname"-->
<!-- :value="item.id">-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </div>-->
<!-- </el-form-item>-->
<el-form-item prop="adjust_reason" label="事由">
<el-input maxlength="500" type="textarea" v-model.trim="useFormData.adjust_reason" rows="4"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="DialogVisible = false">取 消</el-button>
<el-button type="primary" @click="addUse">确 定</el-button>
</span>
</el-dialog>
<el-dialog :visible.sync="editDialogVisible" title="编辑">
<el-form :model="editFormData" :rules="rules" label-width="80px" ref="form">
<el-row>
<el-col span="12">
<el-form-item prop="project" label="活动名称">
<el-input type="text" maxlength="200" v-model.trim="editFormData.project"></el-input>
</el-form-item>
</el-col>
<el-col span="12">
<el-form-item prop="activitie_time">
<div class="block">
<span class="demonstration">活动时间&nbsp;&nbsp;</span>
<el-date-picker
v-model="editFormData.activitie_time"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</div>
</el-form-item>
</el-col>
</el-row>
<el-form-item prop="adjust_money" label="活动费用">
<el-input onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
v-model.trim="editFormData.adjust_money"></el-input>
</el-form-item>
<el-form-item prop="activitie_number" label="活动人数">
<el-input onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
v-model.trim="editFormData.activitie_number"></el-input>
</el-form-item>
<el-form-item prop="adjust_reason" label="事由">
<el-input maxlength="500" type="textarea" v-model.trim="editFormData.adjust_reason" rows="4"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="editDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="editDo">确 定</el-button>
</span>
</el-dialog>
</div>
<script>
const rules = {
adjust_money: [{required: true, message: '请输入活动费用', trigger: ['change', 'blur']}],
adjust_reason: [{required: true, message: '请输入调整事由', trigger: ['change', 'blur']}],
project: [{required: true, message: '请输入活动名称', trigger: ['change', 'blur']}],
activity_time: [{required: true, message: '请输入活动时间', trigger: ['change', 'blur']}],
activity_number: [{required: true, message: '请输入活动人数', trigger: ['change', 'blur']}],
// by_union: [{required: true, message: '请输入所属工会', trigger: ['change', 'blur']}],
}
const vue = new Vue({
el: "#app",
data: function () {
return {
unionOptions: [],
showYsTz: false,
tab_loading: false,
pageForm: {
pageNumber: 1,
pageSize: 10,
pageOrderName: '',
pageOrderBy: '',
totalCount: 0,
year: moment().format("YYYY")
},
usePageForm: {
adjust_id: '',
pageNumber: 1,
pageSize: 10,
pageOrderName: '',
pageOrderBy: '',
totalCount: 0,
year: moment().format("YYYY")
},
tableData: [],
useTableData: [],
formData: {
id: '',
lbfcost: '',
totalquota: '',
unid: '',
unionactivitycost: '',
unionid: '',
unionname: '',
usedquota: '',
year: '',
},
useFormData: {
adjust_id: '',
adjust_money: '',
adjust_reason: '',
activity_time: '',
activity_number: '',
by_union: '',
},
DialogVisible: false,
title: "新增使用记录",
parseIntNum(val) {
return !val ? 0 : parseInt(val)
},
rules: rules,
editFormData: {},
editDialogVisible: false,
unionInfo: {}
}
},
methods: {
dropdownCommand(command) {
const {type, data} = command
if (type == 'view') {
this.openView(data)
} else if (type == 'edit') {
this.openEdit(data)
} else if (type == 'delete') {
this.delUse(data)
} else if (type == 'exportWwj') {
this.exportWwj(data.id)
}
},
openEdit(row) {
this.editFormData = {...row}
this.editDialogVisible = true
},
editDo() {
this.$refs["form"].validate(async (valid) => {
if (valid) {
const loading = this.$loading({
lock: true,
text: '正在提交...',
spinner: 'el-icon-loading',
background: COVER_LAYER_COLOR
});
this.editFormData.isClub = false
const resp = await $.post("/platform/jf/tz/doEdit", this.editFormData)
closeLoadingFunc(loading, resp, async () => {
this.editDialogVisible = false
this.use({id: this.formData.id})
}, (data, msg) => {
this.$message.error(msg);
})
}
});
},
use(scope) {
console.log(scope)
let that = this
this.formData.id = scope.id
this.usePageForm.adjust_id = scope.id
that.showYsTz = true
this.unionInfo.year = scope.year
console.log(this.unionInfo.year)
this.unionInfo.name = scope.unionname
$.post(base + "/platform/jf/tz/data", this.usePageForm, function (res) {
if (res.code === 0) {
console.log(res)
that.useTableData = res.data.list
that.usePageForm.totalCount = res.data.totalCount
}
});
},
pre() {
this.showYsTz = false
this.pageData()
},
openView(u) {
this.DialogVisible = true
this.useFormData = {}
},
addUse() {
let that = this
$.post(base + "/platform/jf/tz/addUse", {
adjust_id: this.formData.id,
adjust_money: this.useFormData.adjust_money,
adjust_reason: this.useFormData.adjust_reason,
project: this.useFormData.project,
activitie_time: this.useFormData.activitie_time,
activitie_number: this.useFormData.activitie_number,
by_union: this.useFormData.by_union,
}, function (res) {
if (res.code === 0) {
that.use({id: that.formData.id, year: that.unionInfo.year, unionname: that.unionInfo.name})
that.$message({
message: res.msg,
type: 'success'
});
// window.location.reload();
} else {
that.$message({
message: res.msg,
type: 'error'
});
}
that.DialogVisible = false
});
},
doUseSearch() {
this.usePageForm.pageNumber = 1;
this.use({id: this.formData.id});
},
delUse(scope) {
let that = this
that.$confirm('此操作将删除 ' + scope.adjust_reason, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: function (a, b) {
if ("confirm" == a) {
$.post(base + "/platform/jf/tz/delUse", {id: scope.id, isClub: false}, function (res) {
if (res.code === 0) {
that.$message({
message: '删除成功',
type: 'success'
});
that.use({id: that.formData.id})
}
});
}
}
})
},
pageData: function () {
let that = this
this.tab_loading = true
$.post(base + "/platform/jf/yjgh/jfsy/data", this.pageForm, function (res) {
if (res.code === 0) {
that.tableData = res.data.list;
that.pageForm.totalCount = res.data.totalCount;
}
that.tab_loading = false
});
},
doEdit() {
this.$refs["JfForm"].validate(result => {
if (result) {
$.post(base + "/platform/jf/yjgh/jfsy/modifyJf", {
id: this.formData.id,
usedQuota: this.formData.usedquota,
reason: this.formData.reason,
}).then(res => {
if (res.code == 0) {
vue.$message.success(res.msg);
this.pageData()
this.DialogVisible = false
}
})
}
})
},
doSearch: function () {
this.pageForm.pageNumber = 1;
this.pageData();
},
exportExcel: function () {
window.location.href = base + "/platform/jf/yjgh/jfsy/exportExcel?year=" + this.pageForm.year;
},
pageNumberChange: function (val) {
this.pageForm.pageNumber = val;
this.pageData();
},
usePageNumberChange: function (val) {
this.usePageForm.pageNumber = val;
this.use({id: this.formData.id})
},
pageOrder(column) {//按字段排序
this.pageForm.pageOrderName = column.prop;
this.pageForm.pageOrderBy = column.order;
this.pageData();
},
},
async created() {
$(".gallery-loader").fadeOut();
this.pageData();
this.unionOptions = await getUnions();
},
});
</script>
<!--#
}
#-->