first commit

This commit is contained in:
2026-09-09 09:14:28 +08:00
commit 5343198112
5199 changed files with 1052895 additions and 0 deletions
@@ -0,0 +1,237 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
.el-input-number input {
text-align: left !important;
}
</style>
<div id="app" v-cloak>
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
@keyup.enter.native="doSearch">
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
style="width: 120px;">
<el-option label="名称" value="name"></el-option>
<el-option label="编码" value="code"></el-option>
</el-select>
</el-input>
</div>
<div class="btn-group tool-button mt5">
<el-button type="primary" icon="el-icon-search" @click="doSearch"></el-button>
</div>
<div class="pull-right offscreen-right mt5">
<el-button icon="el-icon-plus" @click="openAdd">新增类型</el-button>
</div>
</el-row>
<el-row class="el-table-container">
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder" v-loading="tabLoading">
<el-table-column align="center" header-align="center" label="序号" type="index">
<template scope="scope">
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="名称" show-overflow-tooltip
prop="name"></el-table-column>
<el-table-column align="center" header-align="center" label="编码" show-overflow-tooltip
prop="code"></el-table-column>
<el-table-column label="金额" prop="money" header-align="center"
align="center">
<template scope="{row}">
{{row.money}} 元
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="慰问方式" show-overflow-tooltip
prop="way"></el-table-column>
<el-table-column prop="userOnline" align="center" header-align="center" label="操作"
width="180px">
<template scope="{row}">
<el-button size="mini" type="primary" :loading="row.editLoading"
@click="openEdit(row)">
编辑
</el-button>
<el-button size="mini" type="danger" :loading="row.delLoading"
@click="doDelete(row)">
删除
</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<el-row class="el-pagination-container">
<el-pagination
@size-change="pageSizeChange"
@current-change="pageNumberChange"
:current-page="pageForm.pageNumber"
:page-sizes="[10, 20, 30, 50]"
:page-size="pageForm.pageSize"
layout="total, sizes, prev, pager, next"
:total="pageForm.totalCount">
</el-pagination>
</el-row>
<el-dialog :visible.sync="dialogVisible" :title="formData.id?'修改':'新增'" width="40%" :close-on-click-modal="false">
<el-form :model="formData" ref="form" :rules="formRules" label-width="100px" size="medium">
<el-form-item label="类型编码" prop="code">
<el-input maxlength="20" placeholder="类型编码"
v-model="formData.code" type="text"></el-input>
</el-form-item>
<el-form-item label="类型名称" prop="name">
<el-input maxlength="50" placeholder="类型名称"
v-model="formData.name" type="text"></el-input>
</el-form-item>
<el-form-item prop="money" label="慰问费用">
<el-input-number style="width: 100%" v-model="formData.money"
placeholder="请填写慰问费用" controls-position="right" :controls="false" precision="2"
:min="0"
:max="1000000000"></el-input-number>
</el-form-item>
<el-form-item label="慰问方式" prop="way">
<el-radio v-model="formData.way" label="慰问金 (A)" border>慰问金 (A)</el-radio>
<el-radio v-model="formData.way" label="提货券 (B)" border>提货券 (B)</el-radio>
<el-radio v-model="formData.way" label="慰问品 (C)" border>慰问品 (C)</el-radio>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="formData.id?doEdit():doAdd()" :loading="editLoading">确 定</el-button>
</span>
</el-dialog>
</div>
<script>
const vue = new Vue({
el: '#app',
mixins: [initTableMixins],
data() {
return {
tabKey: '',
multipleSelection: [],
clubOptions: [],
tabLoading: false,
dialogVisible: false,
editLoading: false,
formData: {},
tableData: [],
pageForm: {
searchName: "name",
},
formRules: {
name: [{required: true, message: '必填', trigger: ['blur', 'change']}],
money: [{required: true, message: '必填', trigger: ['blur', 'change']}],
way: [{required: true, message: '必填', trigger: ['blur', 'change']}],
code: [{required: true, message: '必填', trigger: ['blur', 'change']}],
},
sortDialogVisible: false,
sortMenuData: [],
defaultProps: {
children: 'children',
label: 'name'
},
}
},
methods: {
doDelete(row) {
const {id} = row
this.$confirm('确定要删除吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: async (a, b) => {
if ("confirm" == a) {//确认后再执行
this.$set(row, "delLoading", true)
const {code, msg} = await $.post("/platform/condolence/type/doDelete", {id: id});
if (code == 0) {
this.$notify({
title: '成功',
message: msg,
type: 'success'
});
this.pageData()
} else {
this.$notify.error({
title: '错误',
message: msg
});
}
}
}
});
},
openAdd() {
this.formData = {}
this.dialogVisible = true
if (this.$refs['form']) {
this.$refs['form'].resetFields()
}
},
async doAdd() {
await this.submit(true)
},
async submit(add) {
this.$refs["form"].validate(async (valid) => {
if (valid) {
this.editLoading = true
const {code, msg} = await $.post("/platform/condolence/type/" + (add ? "doAdd" : "doEdit"), this.formData)
this.editLoading = false
if (code == 0) {
this.$notify({
title: '成功',
message: msg,
type: 'success'
});
this.dialogVisible = false
this.pageData()
} else {
this.$notify.error({
title: '错误',
message: msg
});
}
}
})
},
async doEdit() {
await this.submit(false)
},
async openEdit(row) {
const {id} = row
this.$set(row, "editLoading", true)
const {data, code, msg} = await $.get("/platform/condolence/type/findOne", {id})
this.$set(row, "editLoading", false)
if (code == 0) {
this.formData = data
this.dialogVisible = true
if (this.$refs['form']) {
this.$refs['form'].resetFields()
}
}
},
},
async created() {
this.pageData();
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,421 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
input[type="file"] {
display: none
}
.el-input-number input {
text-align: left !important;
}
</style>
<div id="app" v-cloak style="padding: 20px 40px">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span style="color: #409EFF;font-size: 18px">慰问申请</span>
</div>
<div>
<el-form label-width="100px">
<el-form-item label="填写申请信息&emsp;" label-width="135px" class="view-header">
</el-form-item>
</el-form>
<el-form :model="formData" ref="form" :rules="formRules" label-width="120px" label-position="right"
label-suffix="">
<el-row gutter="60">
<el-col :span="12">
<el-form-item prop="manager_name" label="经办人">
<el-input disabled v-model="formData.manager_name" type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="apply_time" label="申请时间">
<el-input disabled v-model="formData.apply_time" type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="be_user" label="被慰问人">
<el-select
style="width: 100%"
v-model="formData.be_user"
filterable
clearable
remote
reserve-keyword
placeholder="请输入姓名或工号查找"
:remote-method="userRemoteMethod"
:loading="userLoading"
@change="userChange">
<el-option
v-for="item in userOptions"
:key="item.id"
:label="item.username+''+item.loginname+''"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="sex" label="慰问人性别">
<el-input disabled placeholder="输入慰问人查询" v-model="formData.sex" maxlength="30"
type="text"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row gutter="60">
<el-col :span="12">
<el-form-item prop="birthday" label="生&emsp;&emsp;日">
<el-input disabled placeholder="输入慰问人查询" v-model="formData.birthday" maxlength="30"
type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="mobile" label="联系方式">
<el-input placeholder="请输入联系方式" v-model="formData.mobile" maxlength="30"
type="text"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row gutter="60">
<el-col :span="12">
<el-form-item prop="idcard" label="身份证">
<el-input disabled placeholder="输入慰问人查询" v-model="formData.idcard" maxlength="30"
type="text"></el-input>
</el-form-item>
</el-col>
<!--<el-col :span="12">
<el-form-item prop="bank_card" label="银行卡号">
<el-input placeholder="请填写银行卡号" v-model="formData.bank_card" maxlength="30"
type="text"></el-input>
</el-form-item>
</el-col>-->
</el-row>
<el-row gutter="60">
<el-col :span="12">
<el-form-item prop="payee" label="收款人">
<el-select
style="width: 100%"
v-model="formData.payee"
filterable
clearable
remote
reserve-keyword
placeholder="请输入姓名或工号查找"
:remote-method="userPayee"
:loading="userLoading"
@change="payeeChange">
<el-option
v-for="item in userPayees"
:key="item.id"
:label="item.username+''+item.loginname+''"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="payee_bank_number" label="收款人银行卡">
<el-input placeholder="请填写银行卡号" v-model="formData.payee_bank_number" maxlength="30"
type="text"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row gutter="60">
<el-col :span="12">
<el-form-item label="慰问类型" prop="type">
<el-select v-model="formData.type" @change="typeChange" style="width: 100%">
<el-option v-for="item in typeOptions" :value="item.id"
:label="item.name+' ('+item.code+')'"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="money" label="慰问金额">
<el-input-number style="width: 100%" v-model="formData.money"
placeholder="请填写慰问金额" controls-position="right" :controls="false"
precision="2"
:min="0"
:max="1000000000"></el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row gutter="60">
<el-col :span="12">
<el-form-item prop="way" label="慰问方式">
<el-select v-model="formData.way" placeholder="请选择慰问方式" style="width: 100%" clearable>
<el-option
v-for="(v,k) in condolence.way"
:key="k"
:label="v"
:value="v">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="occur_time" label="发生时间">
<el-date-picker value-format="yyyy-MM-dd" v-model="formData.occur_time" style="width: 100%">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item prop="personnel" label="参加慰问人员">
<el-input maxlength="100" v-model="formData.personnel" placeholder="请填写参加慰问人员"
type="text"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form label-width="100px" v-if="['慰问品 (C)'].includes(formData.way)">
<el-form-item label="购置物品及价格&emsp;" label-width="135px" class="view-header">
</el-form-item>
</el-form>
<el-row gutter="60">
<el-col :span="24" v-if="['慰问品 (C)'].includes(formData.way)">
<el-form-item label-width="0">
<el-button style="float: right;margin-bottom: 10px" icon="el-icon-plus" size="mini"
@click="formData.goods.push({name:'',price:''})">
添加
</el-button>
<el-table :data="formData.goods" border size="mini" style="width: 100%">
<el-table-column sortable type="index" width="100" label="序号"
align="center" header-align="center">
</el-table-column>
<el-table-column prop="name" label="物品名称" align="center"
header-align="center">
<template slot-scope="{row}">
<el-input maxlength="50" placeholder="物品名称" v-model="row.name"
type="text"></el-input>
</template>
</el-table-column>
<el-table-column prop="price" label="物品价格" align="center"
header-align="center">
<template slot-scope="{row}">
<el-input maxlength="50" placeholder="物品价格" v-model="row.price"
type="text" @input="blur"></el-input>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" align="center" header-align="center"
width="80px"
fixed="right">
<template slot-scope="scope">
<el-button type="danger" icon="el-icon-delete" circle
:disabled="formData.goods.length==0"
@click="delNotesItem(scope)"></el-button>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-col>
</el-row>
<el-row gutter="60">
<el-col :span="24">
<el-form-item prop="remark" label="备&emsp;&emsp;注">
<el-input maxlength="500" v-model="formData.remark" placeholder="请填写备注"
type="textarea" :autosize="{ minRows: 4, maxRows: 8}"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-col :span="24">
<el-form-item prop="files" label="附&emsp;&emsp;件">
<file-upload :files.sync="formData.files"></file-upload>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item prop="sign" label="签&emsp;&emsp;字">
<sign prefix="condolence" :qz.sync="formData.sign"></sign>
</el-form-item>
</el-col>
</el-form>
<div style="float: right;margin: 20px 0">
<el-button type="primary" @click="doAdd()">确 定</el-button>
</div>
</div>
</el-card>
</div>
<script>
const vue = new Vue({
el: '#app',
data() {
return {
delNotesList: [],
formData: {},
formRules: {
be_user: [{required: true, message: '必填', trigger: ['blur', 'change']}],
type: [{required: true, message: '必填', trigger: ['blur', 'change']}],
disease_type: [{required: true, message: '必填', trigger: ['blur', 'change']}],
way: [{required: true, message: '必填', trigger: ['blur', 'change']}],
money: [{required: true, message: '必填', trigger: ['blur', 'change']}],
bank_card: [{required: true, message: '必填', trigger: ['blur', 'change']}],
personnel: [{required: true, message: '必填', trigger: ['blur', 'change']}],
},
userLoading: false,
userOptions: [],
userPayees: [],
typeOptions: [],
}
},
components: {
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.0'),
},
methods: {
async typeChange(id) {
const {data, code, msg} = await $.get("/platform/condolence/type/findOne", {id})
if (data) {
this.$set(this.formData, "money", data.money)
this.$set(this.formData, "way", data.way)
}
},
async getUserData(userId) {
const {data} = await $.get(loc() + "/getUserData", {userId})
return data
},
async userChange() {
const userData = await this.getUserData(this.formData.be_user);
this.$set(this.formData, 'sex', userData.sex)
this.$set(this.formData, 'birthday', userData.birthday)
this.$set(this.formData, 'idcard', userData.idcard)
this.$set(this.formData, 'mobile', userData.mobile)
},
async payeeChange() {
const payeeData = await this.getUserData(this.formData.payee);
this.$set(this.formData, 'payee_bank_number', payeeData.bank_number)
},
blur() {
let num = 0
this.formData.goods.forEach(v => {
num += parseFloat(v.price)
})
this.$set(this.formData, "money", num)
},
delNotesItem(scope) {
this.delNotesList.push(scope.row.id)
this.formData.goods.splice(scope.$index, 1)
},
/* typeChange(type) {
if (type == 1) {
this.$set(this.formData, 'way', '2')
this.$set(this.formData, 'money', 200)
} else if (['2', '3', '4'].includes(type)) {
this.$set(this.formData, 'way', '2')
if (['2', '3'].includes(type)) {
this.$set(this.formData, 'money', 500)
} else if (['4'].includes(type)) {
this.$set(this.formData, 'money', 1000)
}
} else if (['5'].includes(type)) {
this.$set(this.formData, 'money', 2000)
} else if (['6'].includes(type)) {
this.$set(this.formData, 'money', 200)
}
},*/
async userPayee(query) {
if (query) {
this.userLoading = true
const arr = await this.queryUser(query)
this.userPayees = arr
this.userLoading = false
}
},
async userRemoteMethod(query) {
if (query) {
this.userLoading = true
const arr = await this.queryUser(query)
this.userOptions = arr
this.userLoading = false
}
},
async queryUser(query) {
const {data} = await $.get(loc() + "/queryUser", {query})
return data
},
flush() {
this.delNotesList = []
this.formData = {
goods: [],
manager_name: "${@shiro.getPrincipalProperty('username')}",
/* bank_card: "${@shiro.getPrincipalProperty('bank_number')}",*/
apply_time: moment().format('YYYY-MM-DD'),
}
if (this.$refs['form']) {
this.$refs['form'].resetFields()
}
},
async doAdd() {
this.$refs["form"].validate(async (valid) => {
if (valid) {
const formData = JSON.parse(JSON.stringify(this.formData))
formData.files = JSON.stringify(formData.files)
formData.sign = ''
const loading = this.$loading({
lock: true,
text: '正在提交...',
spinner: 'el-icon-loading',
background: COVER_LAYER_COLOR
});
const resp = await $.post(loc() + "/doAdd", {
data: JSON.stringify(formData),
sign: this.formData.sign
})
closeLoadingFunc(loading, resp, async (data, msg) => {
this.$notify({
title: '成功',
message: msg,
type: 'success'
});
this.flush()
location.href = '/platform/fw/condolence'
}, (data, msg) => {
this.$notify.error({
title: '错误',
message: msg
});
})
}
})
},
async getTypeOptions() {
const {code, data} = await $.get("/platform/condolence/type/getAll")
if (code == 0) {
this.typeOptions = data
}
},
},
async created() {
this.flush()
this.getTypeOptions()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,344 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
input[type="file"] {
display: none
}
.el-input-number input {
text-align: left !important;
}
.el-input-number__decrease, .el-input-number__increase {
display: none;
}
</style>
<div id="app" class="platform" v-cloak>
<guava ref="guava" padding="0% 5%">
<template>
<el-card shadow="never">
<div class="search">
<div class="search-item">
<div class="search-item-label">选择年:</div>
<div class="search-item-option">
<el-date-picker
v-model="pageForm.year"
type="year"
value-format="yyyy" style="width: 100%"
placeholder="选择年">
</el-date-picker>
</div>
</div>
<div class="search-item">
<div class="search-item-label">被慰问人:</div>
<div class="search-item-option">
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
@keyup.enter.native="doSearch">
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
style="width: 140px;">
<el-option label="被慰问人姓名" value="be.username"></el-option>
<el-option label="被慰问人工号" value="be.loginname"></el-option>
</el-select>
</el-input>
</div>
</div>
<template v-if="searchMore">
<div class="search-item">
<div class="search-item-label">所属工会:</div>
<div class="search-item-option">
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
clearable="true"
@change="flushUnits" @clear="flushUnits"
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}"
filterable="true">
<el-option v-for="item in unions" :label="item.unionname"
:value="item.id"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">所属单位:</div>
<div class="search-item-option">
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
clearable="true"
filterable="true">
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">慰问类型:</div>
<div class="search-item-option">
<el-select v-model="pageForm.type" placeholder="请选择慰问类型" clearable style="width: 100%;">
<el-option v-for="item in typeOptions" :value="item.id"
:label="item.name+' ('+item.code+')'"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">慰问方式:</div>
<div class="search-item-option">
<el-select v-model="pageForm.way" placeholder="请选择慰问方式" clearable style="width: 100%;">
<el-option
v-for="(v,k) in condolence.way"
:key="k"
:label="v"
:value="v">
</el-option>
</el-select>
</div>
</div>
</template>
<div class="search-query">
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
<more v-model="searchMore"></more>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt10">
<table-tool label="慰问列表" :app="this">
<template #func>
<el-radio-group v-model="pageForm.isAudit" @change="doSearch" size="small"
style="margin-bottom: -7.5px">
<el-radio-button :label="true">已审核</el-radio-button>
<el-radio-button :label="false">未审核</el-radio-button>
</el-radio-group>
</template>
</table-tool>
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
v-loading="tableLoading" :size="tableSize" class="vi-table">
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
show-overflow-tooltip
:label="column.label"
:prop="column.prop"
:sortable="column.sortable"
>
<template v-if="column.prop=='state_id'" scope="{row}">
<span :style="'color:'+row.state_color">{{row.state_name}}</span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="操作" fixed="right" width="150px">
<template 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:'view',data:row}">
查看
</el-dropdown-item>
<el-dropdown-item :disabled="row.state_id > 2060" :command="{type:'Review',data:row}">
审核
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
</el-card>
<!--#include("/layouts/pagination.html"){}#-->
</template>
<template #edit>
<info ref="info2" handle label="工会常务副主席审核">
<template #handle>
<el-form :model="formData" ref="form" :rules="formRules" label-position="right"
style="padding: 20px 0"
label-width="120px">
<el-form-item label="审核信息&emsp;" label-width="135px" class="view-header">
</el-form-item>
<el-row gutter="20">
<el-col :span="12">
<el-form-item prop="username" label="审核人员">
<el-input v-model="formData.username"
disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="time" label="审核时间">
<el-input v-model="formData.time" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item prop="opinion" label="审核意见">
<el-input type="textarea" v-model="formData.opinion" rows="4" maxlength="500"
placeholder="请填写您的审核意见"></el-input>
</el-form-item>
<el-form-item prop="sign" label="签&emsp;&emsp;字">
<sign prefix="condolence" :qz.sync="formData.sign"></sign>
</el-form-item>
</el-form>
<div style="float: right;margin: 20px 0">
<el-button @click="doReview(false)" :disabled="subDis" :loading="subLoading1">
</el-button>
<el-button type="primary" @click="doReview(true)" :disabled="subDis" :loading="subLoading2">
</el-button>
</div>
</template>
</info>
</template>
<template #view>
<info ref="info"></info>
</template>
</guava>
</div>
<script>
const vue = new Vue({
el: '#app',
mixins: [initTableMixins],
data() {
return {
tabLoading: false,
userOptions: [],
formData: {},
tableData: [],
pageForm: {
searchName: "be.username",
isAudit: false,
year: new Date().getFullYear() + ""
},
formRules: {
opinion: [{required: true, message: '必填', trigger: ['blur', 'change']}],
},
subDis: false,
subLoading1: false,
subLoading2: false,
unions: [],
units: [],
tableColumns: [
{prop: 'be_username', label: '被慰问人'},
{prop: 'be_loginname', label: '被慰问人工号'},
{prop: 'sqr_username', label: '申请人'},
{prop: 'be_unionname', label: '所在工会'},
{prop: 'be_unitname', label: '所在单位', },
{prop: 'type_name', label: '慰问类型', sortable: true},
{prop: 'way', label: '慰问方式', sortable: true},
{prop: 'personnel', label: '随从人员', sortable: true},
{prop: 'apply_time', label: '申请时间', sortable: true},
{prop: 'state_id', label: '申请状态', sortable: true},
],
}
},
components: {
'guava': httpVueLoader('/components/plugins/Guava.vue'),
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.0'),
'info': httpVueLoader('/components/condolence/Info.vue'),
},
methods: {
dropdownCommand(command) {
const {type, data} = command
if (type == 'view') {
this.openView(data)
} else if (type == 'Review') {
this.openReview(data)
}
},
async openReview(row) {
const {id} = row
this.formData = {
id,
username: "${@shiro.getPrincipalProperty('username')}",
time: moment().format('YYYY-MM-DD'),
}
this.$refs.info2.getInfo(id)
this.$refs.guava.edit()
if (this.$refs['form']) {
this.$refs['form'].resetFields()
}
},
async doReview(flag) {
this.$refs["form"].validate(async (valid) => {
if (valid) {
this.formData.pass = flag
this.subDis = true
flag ? this.subLoading2 = true : this.subLoading1 = true
const resp = await $.post(loc() + "/doReview", this.formData)
requestLaterMsgFun(vue, resp, () => {
this.pageData()
this.$refs.guava.index()
}, null, (v) => {
this.subDis = false
this.subLoading1 = false
this.subLoading2 = false
})
}
})
},
openView(row) {
const {id} = row
this.$refs.info.getInfo(id)
this.$refs.guava.view()
},
async getTypeOptions() {
const {code, data} = await $.get("/platform/condolence/type/getAll")
if (code == 0) {
this.typeOptions = data
}
},
async flushUnits() {
this.$set(this.pageForm, "unitId", "")
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
this.units = await getUnits(this.pageForm.unionId)
} else {
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
}
},
},
async created() {
this.pageData();
this.getTypeOptions()
this.unions = await getUnions()
this.flushUnits()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,350 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
input[type="file"] {
display: none
}
.el-input-number input {
text-align: left !important;
}
.el-input-number__decrease, .el-input-number__increase {
display: none;
}
</style>
<div id="app" class="platform" v-cloak>
<guava ref="guava" padding="0% 5%">
<template>
<el-card shadow="never">
<div class="search">
<div class="search-item">
<div class="search-item-label">选择年:</div>
<div class="search-item-option">
<el-date-picker
v-model="pageForm.year"
type="year"
value-format="yyyy" style="width: 100%"
placeholder="选择年">
</el-date-picker>
</div>
</div>
<div class="search-item">
<div class="search-item-label">被慰问人:</div>
<div class="search-item-option">
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
@keyup.enter.native="doSearch">
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
style="width: 140px;">
<el-option label="被慰问人姓名" value="be.username"></el-option>
<el-option label="被慰问人工号" value="be.loginname"></el-option>
</el-select>
</el-input>
</div>
</div>
<template v-if="searchMore">
<div class="search-item">
<div class="search-item-label">所属工会:</div>
<div class="search-item-option">
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
clearable="true"
@change="flushUnits" @clear="flushUnits"
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}"
filterable="true">
<el-option v-for="item in unions" :label="item.unionname"
:value="item.id"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">所属单位:</div>
<div class="search-item-option">
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
clearable="true"
filterable="true">
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">慰问类型:</div>
<div class="search-item-option">
<el-select v-model="pageForm.type" placeholder="请选择慰问类型" clearable style="width: 100%;">
<el-option v-for="item in typeOptions" :value="item.id"
:label="item.name+' ('+item.code+')'"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">慰问方式:</div>
<div class="search-item-option">
<el-select v-model="pageForm.way" placeholder="请选择慰问方式" clearable style="width: 100%;">
<el-option
v-for="(v,k) in condolence.way"
:key="k"
:label="v"
:value="v">
</el-option>
</el-select>
</div>
</div>
</template>
<div class="search-query">
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
<more v-model="searchMore"></more>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt10">
<table-tool label="慰问列表" :app="this">
<template #func>
<el-radio-group v-model="pageForm.isAudit" @change="doSearch" size="small"
style="margin-bottom: -7.5px">
<el-radio-button :label="true">已审核</el-radio-button>
<el-radio-button :label="false">未审核</el-radio-button>
</el-radio-group>
</template>
</table-tool>
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
v-loading="tableLoading" :size="tableSize" class="vi-table">
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
show-overflow-tooltip
:label="column.label"
:prop="column.prop"
:sortable="column.sortable"
>
<template v-if="column.prop=='state_id'" scope="{row}">
<span :style="'color:'+row.state_color">{{row.state_name}}</span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="操作" fixed="right" width="150px">
<template 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:'view',data:row}">
查看
</el-dropdown-item>
<el-dropdown-item :disabled="row.state_id > 2020" :command="{type:'Review',data:row}">
审核
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
</el-card>
<!--#include("/layouts/pagination.html"){}#-->
</template>
<template #edit>
<info ref="info2" handle label="财务审核">
<template #handle>
<el-form :model="formData" ref="form" :rules="formRules" label-position="right"
style="padding: 20px 0"
label-width="120px">
<el-form-item label="审核信息&emsp;" label-width="135px" class="view-header">
</el-form-item>
<el-row gutter="20">
<el-col :span="12">
<el-form-item prop="username" label="审核人员">
<el-input v-model="formData.username"
disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="money" label="慰问金额">
<el-input v-model="formData.money"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="time" label="审核时间">
<el-input v-model="formData.time" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item prop="opinion" label="审核意见">
<el-input type="textarea" v-model="formData.opinion" rows="4" maxlength="500"
placeholder="请填写您的审核意见"></el-input>
</el-form-item>
<el-form-item prop="sign" label="签&emsp;&emsp;字">
<sign prefix="condolence" :qz.sync="formData.sign"></sign>
</el-form-item>
</el-form>
<div style="float: right;margin: 20px 0">
<el-button @click="doReview(false)" :disabled="subDis" :loading="subLoading1">
</el-button>
<el-button type="primary" @click="doReview(true)" :disabled="subDis" :loading="subLoading2">
</el-button>
</div>
</template>
</info>
</template>
<template #view>
<info ref="info"></info>
</template>
</guava>
</div>
<script>
const vue = new Vue({
el: '#app',
mixins: [initTableMixins],
data() {
return {
unions: [],
units: [],
tabLoading: false,
userOptions: [],
formData: {},
tableData: [],
pageForm: {
searchName: "be.username",
isAudit: false,
year: new Date().getFullYear() + ""
},
formRules: {
opinion: [{required: true, message: '必填', trigger: ['blur', 'change']}],
},
subDis: false,
subLoading1: false,
subLoading2: false,
tableColumns: [
{prop: 'be_username', label: '被慰问人'},
{prop: 'be_loginname', label: '被慰问人工号'},
{prop: 'sqr_username', label: '申请人'},
{prop: 'be_unionname', label: '所在工会'},
{prop: 'be_unitname', label: '所在单位', },
{prop: 'type_name', label: '慰问类型', sortable: true},
{prop: 'way', label: '慰问方式', sortable: true},
{prop: 'personnel', label: '随从人员', sortable: true},
{prop: 'apply_time', label: '申请时间', sortable: true},
{prop: 'state_id', label: '申请状态', sortable: true},
],
}
},
components: {
'guava': httpVueLoader('/components/plugins/Guava.vue'),
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.0'),
'info': httpVueLoader('/components/condolence/Info.vue'),
},
methods: {
dropdownCommand(command) {
const {type, data} = command
if (type == 'view') {
this.openView(data)
} else if (type == 'Review') {
this.openReview(data)
}
},
async openReview(row) {
const {id} = row
const resp = await $.get("/platform/fw/condolence/findOne", {id})
this.formData = {
id,
username: "${@shiro.getPrincipalProperty('username')}",
time: moment().format('YYYY-MM-DD'),
money: resp.data.money
}
this.$refs.info2.getInfo(id)
this.$refs.guava.edit()
if (this.$refs['form']) {
this.$refs['form'].resetFields()
}
},
async doReview(flag) {
this.$refs["form"].validate(async (valid) => {
if (valid) {
this.formData.pass = flag
this.subDis = true
flag ? this.subLoading2 = true : this.subLoading1 = true
const resp = await $.post(loc() + "/doReview", this.formData)
requestLaterMsgFun(vue, resp, () => {
this.pageData()
this.$refs.guava.index()
}, null, (v) => {
this.subDis = false
this.subLoading1 = false
this.subLoading2 = false
})
}
})
},
async openView(row) {
const {id} = row
await this.$refs.info.getInfo(id)
this.$refs.guava.view()
},
async getTypeOptions() {
const {code, data} = await $.get("/platform/condolence/type/getAll")
if (code == 0) {
this.typeOptions = data
}
},
async flushUnits() {
this.$set(this.pageForm, "unitId", "")
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
this.units = await getUnits(this.pageForm.unionId)
} else {
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
}
},
},
async created() {
this.pageData();
this.getTypeOptions()
this.unions = await getUnions()
this.flushUnits()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,619 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
input[type="file"] {
display: none
}
.el-input-number input {
text-align: left !important;
}
.el-input-number__decrease, .el-input-number__increase {
display: none;
}
</style>
<div id="app" class="platform" v-cloak>
<guava ref="guava" padding="0% 5%">
<template>
<el-card shadow="never">
<div class="search">
<div class="search-item">
<div class="search-item-label">选择年:</div>
<div class="search-item-option">
<el-date-picker
v-model="pageForm.year"
type="year"
value-format="yyyy" style="width: 100%"
placeholder="选择年">
</el-date-picker>
</div>
</div>
<div class="search-item">
<div class="search-item-label">被慰问人:</div>
<div class="search-item-option">
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
@keyup.enter.native="doSearch">
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
style="width: 140px;">
<el-option label="被慰问人姓名" value="be.username"></el-option>
<el-option label="被慰问人工号" value="be.loginname"></el-option>
</el-select>
</el-input>
</div>
</div>
<template v-if="searchMore">
<div class="search-item">
<div class="search-item-label">所属工会:</div>
<div class="search-item-option">
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
clearable="true"
@change="flushUnits" @clear="flushUnits"
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}"
filterable="true">
<el-option v-for="item in unions" :label="item.unionname"
:value="item.id"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">所属单位:</div>
<div class="search-item-option">
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
clearable="true"
filterable="true">
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">慰问类型:</div>
<div class="search-item-option">
<el-select v-model="pageForm.type" placeholder="请选择慰问类型" clearable style="width: 100%;">
<el-option v-for="item in typeOptions" :value="item.id"
:label="item.name+' ('+item.code+')'"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">慰问方式:</div>
<div class="search-item-option">
<el-select v-model="pageForm.way" placeholder="请选择慰问方式" clearable style="width: 100%;">
<el-option
v-for="(v,k) in condolence.way"
:key="k"
:label="v"
:value="v">
</el-option>
</el-select>
</div>
</div>
</template>
<div class="search-query">
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
<more v-model="searchMore"></more>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt10">
<table-tool label="申请列表" :app="this">
</table-tool>
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
v-loading="tableLoading" :size="tableSize" class="vi-table">
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
show-overflow-tooltip
:label="column.label"
:prop="column.prop"
:sortable="column.sortable"
>
<template v-if="column.prop=='state_id'" scope="{row}">
<span :style="'color:'+row.state_color">{{row.state_name}}</span>
</template>
<template v-else-if="column.prop=='shrname'" scope="{row:{shrname}}">
<span>{{shrname?shrname:'暂无'}}</span>
</template>
</el-table-column>
<el-table-column prop="userOnline" align="center" header-align="center" label="操作"
min-width="100px">
<template 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:'view',data:row}">
查看
</el-dropdown-item>
<el-dropdown-item :command="{type:'Print',data:row}">
阅览
</el-dropdown-item>
<el-dropdown-item :disabled="row.state_id!=2000" :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-card>
<!--#include("/layouts/pagination.html"){}#-->
</template>
<template #edit>
<el-form label-width="100px">
<el-form-item label="填写申请信息&emsp;" label-width="135px" class="view-header">
</el-form-item>
</el-form>
<el-form :model="formData" ref="form" :rules="formRules" label-width="120px" label-position="right"
label-suffix="">
<el-row gutter="60">
<el-col :span="12">
<el-form-item prop="manager_name" label="经办人">
<el-input disabled v-model="formData.manager_name" type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="apply_time" label="申请时间">
<el-input disabled v-model="formData.apply_time" type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="be_user" label="被慰问人">
<el-input disabled v-model="formData.be_username" type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="sex" label="慰问人性别">
<el-input disabled placeholder="输入慰问人查询" v-model="formData.sex" maxlength="30"
type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="birthday" label="生&emsp;&emsp;日">
<el-input disabled placeholder="输入慰问人查询" v-model="formData.birthday" maxlength="30"
type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="mobile" label="联系方式">
<el-input placeholder="请输入联系方式" v-model="formData.mobile" maxlength="30"
type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="idcard" label="身份证">
<el-input disabled placeholder="输入慰问人查询" v-model="formData.idcard" maxlength="30"
type="text"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row gutter="60">
<el-col :span="12">
<el-form-item prop="payee" label="收款人">
<el-input maxlength="100" disabled
v-model="formData.payee_username"
type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="payee_bank_number" label="收款人银行卡">
<el-input placeholder="请填写银行卡号" v-model="formData.payee_bank_number" maxlength="30"
type="text"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row gutter="60">
<el-col :span="12">
<el-form-item prop="type" label="慰问类型">
<el-select v-model="formData.type" @change="typeChange" placeholder="请选择慰问类型"
style="width: 100%">
<el-option v-for="item in typeOptions" :value="item.id"
:label="item.name+' ('+item.code+')'"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="occur_time" label="发生时间">
<el-date-picker value-format="yyyy-MM-dd" v-model="formData.occur_time" style="width: 100%">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row gutter="60">
<el-col :span="12">
<el-form-item prop="type" label="慰问方式">
<el-select v-model="formData.way" placeholder="请选择慰问方式" style="width: 100%">
<el-option
v-for="(v,k) in condolence.way"
:key="k"
:label="v"
:value="k">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="money" label="慰问金额">
<el-input-number style="width: 100%" v-model="formData.money"
placeholder="请填写慰问金额" controls-position="right" :controls="false"
precision="2"
:min="0"
:max="1000000000"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item prop="personnel" label="参加慰问人员">
<el-input maxlength="100" v-model="formData.personnel" placeholder="请填写参加慰问人员"
type="text"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form label-width="100px" v-if="['慰问品 (C)'].includes(formData.way)">
<el-form-item label="购置物品及价格&emsp;" label-width="135px" class="view-header">
</el-form-item>
</el-form>
<el-row gutter="60">
<el-col :span="24" v-if="['慰问品 (C)'].includes(formData.way)">
<el-form-item label-width="0">
<el-button style="float: right;margin-bottom: 10px" icon="el-icon-plus" size="mini"
@click="formData.goods.push({name:'',price:''})">
添加
</el-button>
<el-table :data="formData.goods" border size="mini" style="width: 100%">
<el-table-column sortable type="index" width="100" label="序号"
align="center" header-align="center">
</el-table-column>
<el-table-column prop="name" label="物品名称" align="center"
header-align="center">
<template slot-scope="{row}">
<el-input maxlength="50" placeholder="物品名称" v-model="row.name"
type="text"></el-input>
</template>
</el-table-column>
<el-table-column prop="price" label="物品价格" align="center"
header-align="center">
<template slot-scope="{row}">
<el-input maxlength="50" placeholder="物品价格" v-model="row.price"
type="text"></el-input>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" align="center" header-align="center"
width="80px"
fixed="right">
<template slot-scope="scope">
<el-button type="danger" icon="el-icon-delete" circle
:disabled="formData.goods.length==0"
@click="delNotesItem(scope)"></el-button>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-col>
</el-row>
<el-row gutter="60">
<el-col :span="24">
<el-form-item prop="remark" label="备&emsp;&emsp;注">
<el-input maxlength="500" v-model="formData.remark" placeholder="请填写备注"
type="textarea" :autosize="{ minRows: 4, maxRows: 8}"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item prop="files" label="附&emsp;&emsp;件">
<file-upload :files.sync="formData.files"></file-upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div style="float: right;margin: 20px 0">
<el-button type="primary" @click="doEdit()">确 定</el-button>
</div>
</template>
<template #view>
<info ref="info"></info>
</template>
</guava>
</div>
<script>
const vue = new Vue({
el: '#app',
mixins: [initTableMixins],
data() {
return {
unions: [],
units: [],
delNotesList: [],
tabLoading: false,
userLoading: false,
userOptions: [],
formData: {
goods: []
},
tableData: [],
typeOptions: [],
pageForm: {
searchName: "be.username",
year: new Date().getFullYear() + ""
},
formRules: {
be_user: [{required: true, message: '必填', trigger: ['blur', 'change']}],
type: [{required: true, message: '必填', trigger: ['blur', 'change']}],
disease_type: [{required: true, message: '必填', trigger: ['blur', 'change']}],
way: [{required: true, message: '必填', trigger: ['blur', 'change']}],
money: [{required: true, message: '必填', trigger: ['blur', 'change']}],
},
subDis: false,
tableColumns: [
{prop: 'be_username', label: '被慰问人'},
{prop: 'be_loginname', label: '被慰问人工号'},
{prop: 'sqr_username', label: '申请人'},
{prop: 'be_unionname', label: '所在工会',sortable: true},
{prop: 'be_unitname', label: '所在单位', sortable: true},
{prop: 'type_name', label: '慰问类型', sortable: true},
{prop: 'way', label: '慰问方式', sortable: true},
{prop: 'personnel', label: '随从人员'},
{prop: 'apply_time', label: '申请时间', sortable: true},
{prop: 'shrname', label: '审核人', sortable: true},
{prop: 'state_id', label: '申请状态', sortable: true},
],
}
},
components: {
'guava': httpVueLoader('/components/plugins/Guava.vue'),
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.0'),
'info': httpVueLoader('/components/condolence/Info.vue'),
},
methods: {
async typeChange(id) {
const {data, code, msg} = await $.get("/platform/condolence/type/findOne", {id})
if (data) {
this.$set(this.formData, "money", data.money)
this.$set(this.formData, "way", data.way)
}
},
delNotesItem(scope) {
this.delNotesList.push(scope.row.id)
this.formData.goods.splice(scope.$index, 1)
},
dropdownCommand(command) {
const {type, data} = command
if (type == 'view') {
this.openView(data)
} else if (type == 'edit') {
this.openEdit(data)
} else if (type == 'delete') {
this.doDelete(data)
} else if (type == 'export') {
condolence.doExport(data.id)
} else if (type == 'Print') {
condolence.doPrint(data.id)
}
},
doExport(row) {
location.href = "/platform/fw/medicalAid/common/exportDoc?id=" + row.id
},
openView(row) {
const {id} = row
this.$refs.info.getInfo(id)
this.$refs.guava.view()
},
async doEdit() {
this.$refs["form"].validate(async (valid) => {
if (valid) {
const formData = JSON.parse(JSON.stringify(this.formData))
formData.files = JSON.stringify(formData.files)
const loading = this.$loading({
lock: true,
text: '正在提交...',
spinner: 'el-icon-loading',
background: COVER_LAYER_COLOR
});
const resp = await $.post(loc() + "/doEdit", {
data: JSON.stringify(formData),
sign: this.formData.manager_sign,
delNotesList: JSON.stringify(this.delNotesList)
})
closeLoadingFunc(loading, resp, async () => {
this.pageData()
this.$refs.guava.index()
}, (data, msg) => {
this.$message.error(msg);
})
}
});
},
async getUserData(userId) {
const {data} = await $.get("/platform/fw/condolence/apply/getUserData", {userId})
return data
},
async userChange(be_user) {
const userData = await this.getUserData(be_user);
this.$set(this.formData, 'sex', userData.sex)
this.$set(this.formData, 'birthday', userData.birthday)
this.$set(this.formData, 'idcard', userData.idcard)
},
async openEdit(row) {
const {id} = row
this.formData = {}
this.$set(row, "editLoading", true)
const resp = await $.get(loc() + "/findOne", {id})
requestLaterFun(resp, async (v) => {
condolence.toFormData(v)
this.formData = v
await this.userChange(v.be_user)
this.$refs.guava.edit()
}, () => {
this.$notify.error({
title: '错误',
message: '获取信息失败'
});
}, () => {
this.$set(row, "editLoading", false)
})
},
doDelete(row) {
const {id} = row
this.$confirm('确定要删除吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: async (a, b) => {
if ("confirm" == a) {//确认后再执行
this.$set(row, "delLoading", true)
const resp = await $.post(loc() + "/doDelete", {id: id});
requestLaterMsgFun(vue, resp, async () => {
this.pageData()
}, () => {
}, () => {
this.$set(row, "delLoading", false)
})
}
}
});
},
async doAdd() {
this.$refs["form"].validate(async (valid) => {
if (valid) {
const formData = JSON.parse(JSON.stringify(this.formData))
formData.sign = null
formData.hospital_time = formData.hospital_time.toString()
const loading = this.$loading({
lock: true,
text: '正在提交...',
spinner: 'el-icon-loading',
background: COVER_LAYER_COLOR
});
const resp = await $.post(location.href + "/doAdd", {
data: JSON.stringify(formData),
sign: this.formData.sign
})
closeLoadingFunc(loading, resp, async () => {
this.pageData()
this.$refs.guava.index()
}, (data, msg) => {
this.$message.error(msg);
})
}
});
},
openAdd() {
this.formData = {
files: [],
hospital_time: [],
user_name: '${@shiro.getPrincipalProperty("username")}',
sex: '${@shiro.getPrincipalProperty("sex")}',
user_age: moment().diff(moment('${@shiro.getPrincipalProperty("birthday")}'), 'years'),
unit_name: '${@shiro.getPrincipalProperty("unit").getName()}',
mobile: '${@shiro.getPrincipalProperty("mobile")}',
}
const zzzt = '${@shiro.getPrincipalProperty("zzzt")}'
if (zzzt == '在职') {
this.$set(this.formData, "on_job", true)
} else if (zzzt == '退休') {
this.$set(this.formData, "on_job", false)
}
this.$refs.guava.edit()
if (this.$refs['form']) {
this.$refs['form'].resetFields()
}
},
async getTypeOptions() {
const {code, data} = await $.get("/platform/condolence/type/getAll")
if (code == 0) {
this.typeOptions = data
}
},
async flushUnits() {
this.$set(this.pageForm, "unitId", "")
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
this.units = await getUnits(this.pageForm.unionId)
} else {
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
}
},
},
async created() {
this.pageData();
this.getTypeOptions()
this.unions = await getUnions()
this.flushUnits()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,265 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
input[type="file"] {
display: none
}
.el-input-number input {
text-align: left !important;
}
.el-input-number__decrease, .el-input-number__increase {
display: none;
}
</style>
<div id="app" class="platform" v-cloak>
<guava ref="guava" padding="0% 5%">
<template>
<el-card shadow="never">
<div class="search">
<div class="search-item">
<div class="search-item-label">选择年:</div>
<div class="search-item-option">
<el-date-picker
v-model="pageForm.year"
type="year"
value-format="yyyy" style="width: 100%"
placeholder="选择年">
</el-date-picker>
</div>
</div>
<div class="search-item">
<div class="search-item-label">被慰问人:</div>
<div class="search-item-option">
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
@keyup.enter.native="doSearch">
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
style="width: 140px;">
<el-option label="被慰问人姓名" value="be.username"></el-option>
<el-option label="被慰问人工号" value="be.loginname"></el-option>
</el-select>
</el-input>
</div>
</div>
<div class="search-item">
<div class="search-item-label">慰问类型:</div>
<div class="search-item-option">
<el-select v-model="pageForm.type" placeholder="请选择慰问类型" clearable style="width: 100%;">
<el-option v-for="item in typeOptions" :value="item.id"
:label="item.name+' ('+item.code+')'"></el-option>
</el-select>
</div>
</div>
<template v-if="searchMore">
<div class="search-item">
<div class="search-item-label">所属工会:</div>
<div class="search-item-option">
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
clearable="true"
@change="flushUnits" @clear="flushUnits"
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}"
filterable="true">
<el-option v-for="item in unions" :label="item.unionname"
:value="item.id"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">所属单位:</div>
<div class="search-item-option">
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
clearable="true"
filterable="true">
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">慰问方式:</div>
<div class="search-item-option">
<el-select v-model="pageForm.way" placeholder="请选择慰问方式" clearable style="width: 100%;">
<el-option
v-for="(v,k) in condolence.way"
:key="k"
:label="v"
:value="v">
</el-option>
</el-select>
</div>
</div>
</template>
<div class="search-query">
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
<more v-model="searchMore"></more>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt10">
<table-tool label="慰问列表" :app="this"></table-tool>
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
v-loading="tableLoading" :size="tableSize" class="vi-table">
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
show-overflow-tooltip
:label="column.label"
:prop="column.prop"
:sortable="column.sortable"
>
<template v-if="column.prop=='state_id'" scope="{row}">
<span :style="'color:'+row.state_color">{{row.state_name}}</span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="操作" fixed="right" width="150px">
<template 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:'view',data:row}">
查看
</el-dropdown-item>
<el-dropdown-item
:command="{type:'doExport',data:row}">
导出报销表
</el-dropdown-item>
<el-dropdown-item :disabled="row.state_id!=2080"
:command="{type:'export',data:row}">
导出备案表
</el-dropdown-item>
<el-dropdown-item :disabled="row.state_id!=2080"
:command="{type:'Print',data:row}">
打印
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
</el-card>
<!--#include("/layouts/pagination.html"){}#-->
</template>
<template #edit>
</template>
<template #view>
<info ref="info"></info>
</template>
</guava>
</div>
<script>
const vue = new Vue({
el: '#app',
mixins: [initTableMixins],
data() {
return {
tabLoading: false,
tableData: [],
pageForm: {
year: new Date().getFullYear() + ""
},
unions: [],
units: [],
typeOptions: [],
tableColumns: [
{prop: 'be_username', label: '被慰问人'},
{prop: 'be_loginname', label: '被慰问人工号'},
{prop: 'sqr_username', label: '申请人'},
{prop: 'be_unionname', label: '所在工会'},
{prop: 'be_unitname', label: '所在单位',},
{prop: 'type_name', label: '慰问类型', sortable: true},
{prop: 'way', label: '慰问方式', sortable: true},
{prop: 'personnel', label: '随从人员', sortable: true},
{prop: 'apply_time', label: '申请时间', sortable: true},
{prop: 'state_id', label: '申请状态', sortable: true},
],
}
},
components: {
'guava': httpVueLoader('/components/plugins/Guava.vue'),
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.0'),
'info': httpVueLoader('/components/condolence/Info.vue'),
},
methods: {
dropdownCommand(command) {
const {type, data} = command
if (type == 'view') {
this.openView(data)
} else if (type == 'doExport') {
condolence.doExport(data.id)
} else if (type == 'export') {
condolence.export(data.id)
} else if (type == 'Print') {
condolence.doPrint(data.id)
}
},
openView(row) {
const {id} = row
this.$refs.info.getInfo(id)
this.$refs.guava.view()
},
async getTypeOptions() {
const {code, data} = await $.get("/platform/condolence/type/getAll")
if (code == 0) {
this.typeOptions = data
}
},
async flushUnits() {
this.$set(this.pageForm, "unitId", "")
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
this.units = await getUnits(this.pageForm.unionId)
} else {
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
}
},
},
async created() {
this.pageData();
this.getTypeOptions()
this.unions = await getUnions()
this.flushUnits()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,172 @@
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app" v-cloak>
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<el-date-picker
v-model="pageForm.year"
type="year"
style="width: 100%"
value-format="yyyy"
:clearable="false"
placeholder="选择年"
clearable
@change="yearChange">
</el-date-picker>
</div>
<div class="btn-group tool-button mt5">
<el-select v-model="pageForm.unionid" filterable placeholder="请选择工会" clearable @change="yearChange">
<el-option
v-for="item in union"
:key="item.id"
:label="item.unionname"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-select v-model="pageForm.type" placeholder="请选择慰问类型" clearable @change="yearChange">
<el-option v-for="item in typeOptions" :value="item.id"
:label="item.name+' ('+item.code+')'"></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-select v-model="pageForm.way" placeholder="请选择慰问方式" clearable @change="yearChange">
<el-option
v-for="(v,k) in condolence.way"
:key="k"
:label="v"
:value="v">
</el-option>
</el-select>
</div>
</el-row>
<el-col class="center-col">
<div style="width: 100%;height:calc(50% - 35px);box-sizing: border-box;padding: 30px 10px"
v-loading="loading.condolencesType"
id="condolencesTypeId"></div>
</el-col>
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
v-loading="tabLoading">
<el-table-column align="center" header-align="center" label="序号" width="120px">
<template scope="scope">
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
</template>
</el-table-column>
<el-table-column label="被慰问人" prop="be_username" header-align="center"
align="center"></el-table-column>
<el-table-column label="所属工会" prop="unionname" header-align="center"
align="center"></el-table-column>
<el-table-column label="申请时间" prop="apply_time" header-align="center" sortable
align="center"></el-table-column>
<el-table-column label="慰问类型" prop="type_name" header-align="center" sortable
align="center">
</el-table-column>
<el-table-column label="慰问方式" prop="way" header-align="center"
align="center">
</el-table-column>
<el-table-column align="center" prop="state_id" header-align="center" label="申请状态" sortable>
<template scope="scope">
<span :style="'color:'+scope.row.state_color">{{scope.row.state_name}}</span>
</template>
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</div>
<script>
const chart = {
condolencesTypeId: undefined
}
const vue = new Vue({
el: '#app',
mixins: [initTableMixins],
data() {
return {
tabLoading: false,
union: [],
typeOptions: [],
loading: {
condolencesType: false,
},
pageForm: {
year: new Date().getFullYear() + ""
},
}
},
methods: {
yearChange() {
this.pageData()
this.getCondolencesType()
},
async getCondolencesType() {
this.loading.condolencesType = true
const resp = await $.get(loc() + '/condolencesType', this.pageForm)
requestLaterFun(resp, (data) => {
this.loading.condolencesType = false
if (chart.condolencesTypeId) {
chart.condolencesTypeId.changeData(data)
return
}
chart.condolencesTypeId = new G2Plot.Column('condolencesTypeId', {
data,
autoFit: true,
xField: 'name',
yField: 'value',
label: {
// 可手动配置 label 数据标签位置
position: 'middle', // 'top', 'bottom', 'middle',
// 配置样式
style: {
fill: '#FFFFFF',
opacity: 0.6,
},
},
xAxis: {
label: {
autoHide: true,
autoRotate: false,
},
},
meta: {
label: {
alias: '类型',
},
value: {
alias: '慰问数',
},
},
});
chart.condolencesTypeId.render();
})
},
async getTypeOptions() {
const {code, data} = await $.get("/platform/condolence/type/getAll")
if (code == 0) {
this.typeOptions = data
}
},
},
async created() {
this.pageData()
this.getCondolencesType()
this.getTypeOptions()
this.union = await getUnions()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,344 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
input[type="file"] {
display: none
}
.el-input-number input {
text-align: left !important;
}
.el-input-number__decrease, .el-input-number__increase {
display: none;
}
</style>
<div id="app" class="platform" v-cloak>
<guava ref="guava" padding="0% 5%">
<template>
<el-card shadow="never">
<div class="search">
<div class="search-item">
<div class="search-item-label">选择年:</div>
<div class="search-item-option">
<el-date-picker
v-model="pageForm.year"
type="year"
value-format="yyyy" style="width: 100%"
placeholder="选择年">
</el-date-picker>
</div>
</div>
<div class="search-item">
<div class="search-item-label">被慰问人:</div>
<div class="search-item-option">
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
@keyup.enter.native="doSearch">
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
style="width: 140px;">
<el-option label="被慰问人姓名" value="be.username"></el-option>
<el-option label="被慰问人工号" value="be.loginname"></el-option>
</el-select>
</el-input>
</div>
</div>
<template v-if="searchMore">
<div class="search-item">
<div class="search-item-label">所属工会:</div>
<div class="search-item-option">
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
clearable="true"
@change="flushUnits" @clear="flushUnits"
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}"
filterable="true">
<el-option v-for="item in unions" :label="item.unionname"
:value="item.id"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">所属单位:</div>
<div class="search-item-option">
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
clearable="true"
filterable="true">
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">慰问类型:</div>
<div class="search-item-option">
<el-select v-model="pageForm.type" placeholder="请选择慰问类型" clearable style="width: 100%;">
<el-option v-for="item in typeOptions" :value="item.id"
:label="item.name+' ('+item.code+')'"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">慰问方式:</div>
<div class="search-item-option">
<el-select v-model="pageForm.way" placeholder="请选择慰问方式" clearable style="width: 100%;">
<el-option
v-for="(v,k) in condolence.way"
:key="k"
:label="v"
:value="v">
</el-option>
</el-select>
</div>
</div>
</template>
<div class="search-query">
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
<more v-model="searchMore"></more>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt10">
<table-tool label="慰问列表" :app="this">
<template #func>
<el-radio-group v-model="pageForm.isAudit" @change="doSearch" size="small"
style="margin-bottom: -7.5px">
<el-radio-button :label="true">已审核</el-radio-button>
<el-radio-button :label="false">未审核</el-radio-button>
</el-radio-group>
</template>
</table-tool>
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
v-loading="tableLoading" :size="tableSize" class="vi-table">
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
show-overflow-tooltip
:label="column.label"
:prop="column.prop"
:sortable="column.sortable"
>
<template v-if="column.prop=='state_id'" scope="{row}">
<span :style="'color:'+row.state_color">{{row.state_name}}</span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="操作" fixed="right" width="150px">
<template 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:'view',data:row}">
查看
</el-dropdown-item>
<el-dropdown-item :disabled="row.state_id > 2000" :command="{type:'Review',data:row}">
审核
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
</el-card>
<!--#include("/layouts/pagination.html"){}#-->
</template>
<template #edit>
<info ref="info2" handle label="基层工会主席审核">
<template #handle>
<el-form :model="formData" ref="form" :rules="formRules" label-position="right"
style="padding: 20px 0"
label-width="120px">
<el-form-item label="审核信息&emsp;" label-width="135px" class="view-header">
</el-form-item>
<el-row gutter="20">
<el-col :span="12">
<el-form-item prop="username" label="审核人员">
<el-input v-model="formData.username"
disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="time" label="审核时间">
<el-input v-model="formData.time" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item prop="opinion" label="审核意见">
<el-input type="textarea" v-model="formData.opinion" rows="4" maxlength="500"
placeholder="请填写您的审核意见"></el-input>
</el-form-item>
<el-form-item prop="sign" label="签&emsp;&emsp;字">
<sign prefix="condolence" :qz.sync="formData.sign"></sign>
</el-form-item>
</el-form>
<div style="float: right;margin: 20px 0">
<el-button @click="doReview(false)" :disabled="subDis" :loading="subLoading1">
</el-button>
<el-button type="primary" @click="doReview(true)" :disabled="subDis" :loading="subLoading2">
</el-button>
</div>
</template>
</info>
</template>
<template #view>
<info ref="info"></info>
</template>
</guava>
</div>
<script>
const vue = new Vue({
el: '#app',
mixins: [initTableMixins],
data() {
return {
unions: [],
units: [],
tabLoading: false,
userOptions: [],
formData: {},
tableData: [],
typeOptions: [],
pageForm: {
searchName: "be.username",
isAudit: false,
year: new Date().getFullYear() + ""
},
formRules: {
opinion: [{required: true, message: '必填', trigger: ['blur', 'change']}],
},
subDis: false,
subLoading1: false,
subLoading2: false,
tableColumns: [
{prop: 'be_username', label: '被慰问人'},
{prop: 'be_loginname', label: '被慰问人工号'},
{prop: 'sqr_username', label: '申请人'},
{prop: 'be_unionname', label: '所在工会'},
{prop: 'be_unitname', label: '所在单位', },
{prop: 'type_name', label: '慰问类型', sortable: true},
{prop: 'way', label: '慰问方式', sortable: true},
{prop: 'personnel', label: '随从人员', sortable: true},
{prop: 'apply_time', label: '申请时间', sortable: true},
{prop: 'state_id', label: '申请状态', sortable: true},
],
}
},
components: {
'guava': httpVueLoader('/components/plugins/Guava.vue'),
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.0'),
'info': httpVueLoader('/components/condolence/Info.vue'),
},
methods: {
dropdownCommand(command) {
const {type, data} = command
if (type == 'view') {
this.openView(data)
} else if (type == 'Review') {
this.openReview(data)
}
},
async openReview(row) {
const {id} = row
this.formData = {
id,
username: "${@shiro.getPrincipalProperty('username')}",
time: moment().format('YYYY-MM-DD'),
}
this.$refs.info2.getInfo(id)
this.$refs.guava.edit()
if (this.$refs['form']) {
this.$refs['form'].resetFields()
}
},
async doReview(flag) {
this.$refs["form"].validate(async (valid) => {
if (valid) {
this.formData.pass = flag
this.subDis = true
flag ? this.subLoading2 = true : this.subLoading1 = true
const resp = await $.post(loc() + "/doReview", this.formData)
requestLaterMsgFun(vue, resp, () => {
this.pageData()
this.$refs.guava.index()
}, null, (v) => {
this.subDis = false
this.subLoading1 = false
this.subLoading2 = false
})
}
})
},
openView(row) {
const {id} = row
this.$refs.info.getInfo(id)
this.$refs.guava.view()
},
async getTypeOptions() {
const {code, data} = await $.get("/platform/condolence/type/getAll")
if (code == 0) {
this.typeOptions = data
}
},
async flushUnits() {
this.$set(this.pageForm, "unitId", "")
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
this.units = await getUnits(this.pageForm.unionId)
} else {
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
}
},
},
async created() {
this.pageData();
this.getTypeOptions()
this.unions = await getUnions()
this.flushUnits()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,343 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
input[type="file"] {
display: none
}
.el-input-number input {
text-align: left !important;
}
.el-input-number__decrease, .el-input-number__increase {
display: none;
}
</style>
<div id="app" class="platform" v-cloak>
<guava ref="guava" padding="0% 5%">
<template>
<el-card shadow="never">
<div class="search">
<div class="search-item">
<div class="search-item-label">选择年:</div>
<div class="search-item-option">
<el-date-picker
v-model="pageForm.year"
type="year"
value-format="yyyy" style="width: 100%"
placeholder="选择年">
</el-date-picker>
</div>
</div>
<div class="search-item">
<div class="search-item-label">被慰问人:</div>
<div class="search-item-option">
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
@keyup.enter.native="doSearch">
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
style="width: 140px;">
<el-option label="被慰问人姓名" value="be.username"></el-option>
<el-option label="被慰问人工号" value="be.loginname"></el-option>
</el-select>
</el-input>
</div>
</div>
<template v-if="searchMore">
<div class="search-item">
<div class="search-item-label">所属工会:</div>
<div class="search-item-option">
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
clearable="true"
@change="flushUnits" @clear="flushUnits"
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}"
filterable="true">
<el-option v-for="item in unions" :label="item.unionname"
:value="item.id"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">所属单位:</div>
<div class="search-item-option">
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
clearable="true"
filterable="true">
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">慰问类型:</div>
<div class="search-item-option">
<el-select v-model="pageForm.type" placeholder="请选择慰问类型" clearable style="width: 100%;">
<el-option v-for="item in typeOptions" :value="item.id"
:label="item.name+' ('+item.code+')'"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">慰问方式:</div>
<div class="search-item-option">
<el-select v-model="pageForm.way" placeholder="请选择慰问方式" clearable style="width: 100%;">
<el-option
v-for="(v,k) in condolence.way"
:key="k"
:label="v"
:value="v">
</el-option>
</el-select>
</div>
</div>
</template>
<div class="search-query">
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
<more v-model="searchMore"></more>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt10">
<table-tool label="慰问列表" :app="this">
<template #func>
<el-radio-group v-model="pageForm.isAudit" @change="doSearch" size="small"
style="margin-bottom: -7.5px">
<el-radio-button :label="true">已审核</el-radio-button>
<el-radio-button :label="false">未审核</el-radio-button>
</el-radio-group>
</template>
</table-tool>
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
v-loading="tableLoading" :size="tableSize" class="vi-table">
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
show-overflow-tooltip
:label="column.label"
:prop="column.prop"
:sortable="column.sortable"
>
<template v-if="column.prop=='state_id'" scope="{row}">
<span :style="'color:'+row.state_color">{{row.state_name}}</span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="操作" fixed="right" width="150px">
<template 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:'view',data:row}">
查看
</el-dropdown-item>
<el-dropdown-item :disabled="row.state_id > 2040" :command="{type:'Review',data:row}">
审核
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
</el-card>
<!--#include("/layouts/pagination.html"){}#-->
</template>
<template #edit>
<info ref="info2" handle label="工会副主席审核">
<template #handle>
<el-form :model="formData" ref="form" :rules="formRules" label-position="right"
style="padding: 20px 0"
label-width="120px">
<el-form-item label="审核信息&emsp;" label-width="135px" class="view-header">
</el-form-item>
<el-row gutter="20">
<el-col :span="12">
<el-form-item prop="username" label="审核人员">
<el-input v-model="formData.username"
disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="time" label="审核时间">
<el-input v-model="formData.time" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item prop="opinion" label="审核意见">
<el-input type="textarea" v-model="formData.opinion" rows="4" maxlength="500"
placeholder="请填写您的审核意见"></el-input>
</el-form-item>
<el-form-item prop="sign" label="签&emsp;&emsp;字">
<sign prefix="condolence" :qz.sync="formData.sign"></sign>
</el-form-item>
</el-form>
<div style="float: right;margin: 20px 0">
<el-button @click="doReview(false)" :disabled="subDis" :loading="subLoading1">
</el-button>
<el-button type="primary" @click="doReview(true)" :disabled="subDis" :loading="subLoading2">
</el-button>
</div>
</template>
</info>
</template>
<template #view>
<info ref="info"></info>
</template>
</guava>
</div>
<script>
const vue = new Vue({
el: '#app',
mixins: [initTableMixins],
data() {
return {
tabLoading: false,
userOptions: [],
formData: {},
tableData: [],
pageForm: {
searchName: "be.username",
isAudit: false,
year: new Date().getFullYear() + ""
},
formRules: {
opinion: [{required: true, message: '必填', trigger: ['blur', 'change']}],
},
subDis: false,
subLoading1: false,
subLoading2: false,
unions: [],
units: [],
tableColumns: [
{prop: 'be_username', label: '被慰问人'},
{prop: 'be_loginname', label: '被慰问人工号'},
{prop: 'sqr_username', label: '申请人'},
{prop: 'be_unionname', label: '所在工会'},
{prop: 'be_unitname', label: '所在单位', },
{prop: 'type_name', label: '慰问类型', sortable: true},
{prop: 'way', label: '慰问方式', sortable: true},
{prop: 'personnel', label: '随从人员', sortable: true},
{prop: 'apply_time', label: '申请时间', sortable: true},
{prop: 'state_id', label: '申请状态', sortable: true},
],
}
},
components: {
'guava': httpVueLoader('/components/plugins/Guava.vue'),
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.0'),
'info': httpVueLoader('/components/condolence/Info.vue'),
},
methods: {
dropdownCommand(command) {
const {type, data} = command
if (type == 'view') {
this.openView(data)
} else if (type == 'Review') {
this.openReview(data)
}
},
async openReview(row) {
const {id} = row
this.formData = {
id,
username: "${@shiro.getPrincipalProperty('username')}",
time: moment().format('YYYY-MM-DD'),
}
this.$refs.info2.getInfo(id)
this.$refs.guava.edit()
if (this.$refs['form']) {
this.$refs['form'].resetFields()
}
},
async doReview(flag) {
this.$refs["form"].validate(async (valid) => {
if (valid) {
this.formData.pass = flag
this.subDis = true
flag ? this.subLoading2 = true : this.subLoading1 = true
const resp = await $.post(loc() + "/doReview", this.formData)
requestLaterMsgFun(vue, resp, () => {
this.pageData()
this.$refs.guava.index()
}, null, (v) => {
this.subDis = false
this.subLoading1 = false
this.subLoading2 = false
})
}
})
},
openView(row) {
const {id} = row
this.$refs.info.getInfo(id)
this.$refs.guava.view()
},
async getTypeOptions() {
const {code, data} = await $.get("/platform/condolence/type/getAll")
if (code == 0) {
this.typeOptions = data
}
},
async flushUnits() {
this.$set(this.pageForm, "unitId", "")
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
this.units = await getUnits(this.pageForm.unionId)
} else {
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
}
},
},
async created() {
this.pageData();
this.getTypeOptions()
this.unions = await getUnions()
this.flushUnits()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,846 @@
<!--#
layout("/layouts/platform.html"){
#-->
<!--
大病互助基金会员变更管理
廖怡爽
-->
<style>
.dia .el-dialog__body {
padding: 5px 20px;
}
.note {
width: 100%;
height: 200px;
}
.el-radio.is-bordered.is-disabled.is-checked {
/* cursor: not-allowed; */
border-color: #409EFF;
}
.el-radio__input.is-disabled .is-checked .el-radio__inner, .el-radio__input.is-disabled.is-checked .el-radio__inner {
background-color: #409EFF;
/*border-color: #E4E7ED; */
}
.tpa {
padding: 10px;
text-align: center;
width: 12%;
color: #777;
background-color: rgb(250, 250, 250);
border: 1px solid rgb(220, 220, 220);
}
.tpb {
padding: 10px;
text-align: center;
color: #333;
width: 15%;
border: 1px solid rgb(220, 220, 220);
}
.tpc {
padding: 10px;
color: #a0a9b4;
width: 15%;
border: 1px solid rgb(220, 220, 220);
}
.el-card__body {
padding: 0;
}
.myT .has-gutter tr th {
background-color: #F5F7FA;
}
input[type=file] {
display: none;
}
</style>
<div id="app" v-cloak>
<div hidden id="username">${@shiro.getPrincipalProperty('username')}</div>
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<el-date-picker
v-model="pageForm.jfnf"
type="year"
placeholder="选择年"
format="yyyy"
value-format="yyyy"
style="width: 130px;"
>
</el-date-picker>
</div>
<div class="btn-group tool-button mt5">
<el-select placeholder="请选择基层工会" @change="unionChange" @clear="unionChange" v-model="pageForm.fghid"
clearable="true" filterable="true"
style="width:200px;">
<el-option v-for="item in ghOptions" :label="item.unionname" :value="item.id"></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-select v-model="pageForm.unitid" filterable="true" clearable placeholder="请选择单位">
<el-option
v-for="item in unitOptions"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-input placeholder="请输入内容" v-model="pageForm.searchKeyword">
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询" style="width: 100px;">
<el-option label="工号" value="loginname"></el-option>
<el-option label="姓名" value="username"></el-option>
</el-select>
</el-input>
</div>
<div class="btn-group tool-button mt5">
<el-select placeholder="请选择人员类型" v-model="pageForm.rylx" clearable="true" filterable="true"
style="width:160px;">
<el-option
v-for="item in optionsrylx"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-select placeholder="请选择变更类型" v-model="pageForm.bglx" clearable="true" filterable="true"
style="width:160px;">
<el-option
v-for="item in optionsbglx"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-button icon="el-icon-search" @click="doSearch"
style="background-color:#409eff;color: white;"></el-button>
</div>
<!-- <div class="btn-group tool-button mt5" style="margin-bottom: 10px;">
<span style="color: grey;font-weight: bold;">基金会员退休去世变更处理: </span>
<el-button size="small" type="warning" @click="downloadmodel" >下载会员退休去世变更模板</el-button>
<el-button size="small" type="success" @click="openAdd" >上传会员退休去世记录</el-button>
</div>-->
</el-row>
<el-row class="el-table-container">
<el-table
@sort-change='pageOrder'
:data="tableData"
size="medium"
header-align="center"
style="width: 100%"
>
<el-table-column label="序号" width="90px" 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
prop="loginname"
label="工号"
header-align="center"
align="center">
</el-table-column>
<el-table-column
prop="username"
label="姓名"
header-align="center"
align="center">
</el-table-column>
<el-table-column
sortable
prop="sex"
label="性别"
header-align="center"
align="center">
</el-table-column>
<el-table-column
sortable
prop="rxsj"
label="入校日期"
header-align="center"
align="center">
</el-table-column>
<el-table-column
prop="mobile"
label="电话"
header-align="center"
align="center">
</el-table-column>
<el-table-column
sortable
prop="depname"
label="所属单位"
header-align="center"
align="center">
</el-table-column>
<el-table-column
sortable
prop="unionname"
label="所属基层工会"
header-align="center"
align="center">
</el-table-column>
<el-table-column
prop="zzzt"
label="在职状态"
header-align="center"
align="center">
</el-table-column>
<el-table-column
sortable
prop="rylx"
label="人员类型"
header-align="center"
align="center">
<template scope="scope">
<el-tag type="primary">{{scope.row.rylx}}</el-tag>
</template>
</el-table-column>
<el-table-column
label="变更类型"
header-align="center"
align="center">
<template scope="scope">
<el-tag v-if="scope.row.jllx==1">加入基金</el-tag>
<el-tag type="warning" v-if="scope.row.jllx==2">退出基金</el-tag>
</template>
</el-table-column>
<el-table-column
prop="zssj"
label="变更日期"
header-align="center"
align="center">
</el-table-column>
<!-- <el-table-column
label="操作"
header-align="center"
align="center"
width="200px"
>
<template slot-scope="scope">
<el-button type="success" size="mini" @click="openDetail(scope.row.id)">查看</el-button>
<el-button v-if="sfgl==2" type="danger" size="mini" @click="tcjj(scope.row.id)">退出大病基金</el-button>
</template>
</el-table-column>-->
</el-table>
</el-row>
<el-row class="el-pagination-container">
<el-pagination
@size-change="pageSizeChange"
@current-change="pageNumberChange"
:current-page="pageForm.pageNumber"
:page-sizes="[10, 20, 30, 50]"
:page-size="pageForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="pageForm.totalCount">
</el-pagination>
</el-row>
<el-dialog
class="ViewDialogClass"
title="查看详情"
:visible.sync="roleDialogVisible"
width="55%"
>
<el-collapse v-model="activeName">
<el-collapse-item title="用户信息" name="1">
<el-card>
<div>
<table style="width: 100%">
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">&emsp;&emsp;</td>
<td class="tpb">{{roleData.user.username}}</td>
<td class="tpa">&emsp;&emsp;</td>
<td class="tpb">{{roleData.user.sex}}</td>
<td class="tpa">出生日期</td>
<td class="tpb">{{roleData.user.birthday}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">出生地点</td>
<td class="tpb">{{roleData.user.csdd}}</td>
<td class="tpa">&emsp;&emsp;</td>
<td class="tpb">{{roleData.user.mz}}</td>
<td class="tpa">政治面貌</td>
<td class="tpb">{{roleData.user.zzmc}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">&emsp;&emsp;</td>
<td class="tpb">{{roleData.user.gz}}</td>
<td class="tpa">&emsp;&emsp;</td>
<td class="tpb">{{roleData.user.zc}}</td>
<td class="tpa">联系电话</td>
<td class="tpb">{{roleData.user.mobile}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa" colspan="1">所在部门</td>
<td class="tpb" colspan="1">{{roleData.user.depname}}</td>
<td class="tpa" colspan="1">所属基层工会</td>
<td class="tpb" colspan="1">{{roleData.user.unionname}}</td>
<td class="tpa" colspan="1">现任职务</td>
<td class="tpb" colspan="2">{{roleData.user.zw}}</td>
</tr>
</table>
</div>
</el-card>
</el-collapse-item>
<el-collapse-item title="申请记录" name="2">
<el-table
:data="roleData.sqjls"
size="small"
header-align="center"
style="width: 100%"
>
<!-- <el-table-column label="序号" type="index" header-align="center" align="center"></el-table-column>-->
<el-table-column
prop="sqsj"
label="申请时间"
header-align="center"
align="center"
width="100px">
</el-table-column>
<el-table-column
label="申请类型"
header-align="center"
align="center">
<template scope="scope">
<el-tag v-if="scope.row.jllx==1">加入基金</el-tag>
<el-tag type="warning" v-if="scope.row.jllx==2">退出基金</el-tag>
</template>
</el-table-column>
<el-table-column
prop="jjzt"
label="申请状态"
header-align="center"
align="center"
width="120px"
>
<template scope="scope">
<el-tag type="warning" v-if="scope.row.jjzt==1">待基层工会审核</el-tag>
<el-tag type="warning" v-if="scope.row.jjzt==2">待离退休干部处审核</el-tag>
<el-tag type="warning" v-if="scope.row.jjzt==3">待互管会审核</el-tag>
<el-tag type="danger" v-if="scope.row.jjzt==4">审核不通过</el-tag>
<el-tag type="danger" v-if="scope.row.jjzt==5">分会/离退休审核不通过</el-tag>
<el-tag type="success" v-if="scope.row.jjzt==6">互管会审核通过</el-tag>
</template>
</el-table-column>
<!-- <el-table-column
prop="jjshr"
label="分会审核人"
header-align="center"
align="center">
<template scope="scope">
<span style="color: #a0a9b4" v-if="scope.row.jjshr==''||scope.row.jjshr==null">暂无审核</span>
<span v-else>{{scope.row.jjshr}}</span>
</template>
</el-table-column>-->
<el-table-column
prop="jjshyj"
label="分会审核意见"
header-align="center"
align="center"
width="120px">
<template scope="scope">
<span style="color: #a0a9b4" v-if="scope.row.jjshyj==''||scope.row.jjshyj==null">暂无</span>
<span v-else>{{scope.row.jjshyj}}</span>
</template>
</el-table-column>
<el-table-column
prop="jjshsj"
label="分会审核时间"
header-align="center"
align="center"
width="100px">
<template scope="scope">
<span style="color: #a0a9b4" v-if="scope.row.jjshsj==''||scope.row.jjshsj==null">暂无</span>
<span v-else>{{scope.row.jjshsj}}</span>
</template>
</el-table-column>
<el-table-column
prop="hghshyj"
label="互管会审核意见"
header-align="center"
align="center"
width="120px">
<template scope="scope">
<span style="color: #a0a9b4" v-if="scope.row.hghshyj==''||scope.row.hghshyj==null">暂无</span>
<span v-else>{{scope.row.hghshyj}}</span>
</template>
</el-table-column>
<el-table-column
prop="hghshsj"
label="互管会审核时间"
header-align="center"
align="center"
width="120px">
<template scope="scope">
<span style="color: #a0a9b4" v-if="scope.row.hghshsj==''||scope.row.hghshsj==null">暂无</span>
<span v-else>{{scope.row.hghshsj}}</span>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
<el-collapse-item title="缴费记录" name="3">
<el-table
:data="roleData.listjf"
size="small"
header-align="center"
style="width: 100%"
>
<!-- <el-table-column label="序号" type="index" header-align="center" align="center"></el-table-column>-->
<el-table-column
prop="jfyear"
label="缴费年份"
header-align="center"
align="center"
width="100px">
</el-table-column>
<el-table-column
label="缴费金额"
header-align="center"
align="center">
<template scope="scope">
<el-tag type="danger">{{scope.row.jfje}}</el-tag>
</template>
</el-table-column>
<el-table-column
prop="sfjf"
label="是否扣款"
header-align="center"
align="center"
width="120px"
>
<template scope="scope">
<el-tag type="info" v-if="scope.row.sfjf==0">未扣款</el-tag>
<el-tag type="success" v-if="scope.row.sfjf==1">已扣款</el-tag>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
</el-collapse>
</el-collaps>
<span slot="footer" class="dialog-footer">
<el-button type="danger" @click="roleDialogVisible = false">关 闭</el-button>
</span>
</el-dialog>
<el-dialog
class="ViewDialogClass"
title="上传会员退休去世变更记录"
@close="fileList = [];delFiles = [];uploadForm:{}"
:close-on-click-modal="false"
:visible.sync="addDialogVisible"
width="60%">
<el-form :model="formData" ref="addForm" size="small" label-width="140px">
<el-row>
<div class="btn-group tool-button mt5">
<el-form-item prop="fj" label="退休/去世变更记录">
<el-upload
name="file"
ref="upload"
multiple="false"
:auto-upload="false"
class="upload-demo"
action="/platform/zgfw/dbhzjjbg/getFiles"
:data="uploadForm"
:on-success="handleSuccess"
:on-error="handleError"
:on-change="handleChange"
:on-remove="handleRemove"
:file-list="fileList">
<el-button size="small" type="primary">选取文件</el-button>
<div class="el-upload__tip" slot="tip" style="color:#F56C6C;">只能上传1个
xls/xlsx文件;必须上传模板文件!
</div>
</el-upload>
</el-form-item>
</div>
<div class="pull-right offscreen-right mt5" style="margin-right: 10px;">
<el-button type="warning" size="small" type="primary" @click="doAdd">获取文件内容</el-button>
</div>
</el-row>
<el-row class="el-table-container">
<el-table
:data="fileData"
size="medium"
header-align="center"
style="width: 100%"
>
<el-table-column label="序号" width="90px" type="index" header-align="center" align="center">
</el-table-column>
<el-table-column
prop="loginname"
label="工号"
header-align="center"
align="center">
</el-table-column>
<el-table-column
prop="name"
label="姓名"
header-align="center"
align="center">
</el-table-column>
<el-table-column
sortable
prop="depname"
label="所属单位"
header-align="center"
align="center">
</el-table-column>
<el-table-column
prop="rylx"
label="人员类型"
header-align="center"
align="center">
</el-table-column>
<el-table-column
sortable
prop="bgsj"
label="变更时间"
header-align="center"
align="center">
</el-table-column>
<el-table-column
prop="bglx"
label="变更类型"
header-align="center"
align="center">
</el-table-column>
<el-table-column
sortable
prop="sfcz"
label="是否存在"
header-align="center"
align="center">
<template scope="scope">
<el-tag type="success" v-if="scope.row.sfcz=='1'">找到数据</el-tag>
<el-tag type="danger" v-if="scope.row.rylx=='0'">数据不存在</el-tag>
</template>
</el-table-column>
<el-table-column
label="是否加入基金"
header-align="center"
align="center">
<template scope="scope">
<el-tag v-if="scope.row.sfjrjj==1">已加入</el-tag>
<el-tag type="warning" v-if="scope.row.sfjrjj==0">未加入</el-tag>
</template>
</el-table-column>
</el-table>
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="addDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="doplbg">确 定</el-button>
</span>
</el-dialog>
</div>
<script>
const vue = new Vue({
el: '#app',
data: function () {
var self = this
return {
ghOptions: [],
sfgl: 0,
identity: '',
activeName: ['1', '2', '3'],
roleData: {user: {}, sqjl: [], listjf: []},
unitOptions: [],
tableData: [],
fileData: [],
jrTime: [],
pageForm: {
searchName: "username",
searchKeyword: "",
pageNumber: 1,
pageSize: 10,
totalCount: 0,
pageOrderName: "",
pageOrderBy: "",
fghid: "",
unitid: "",
jrTime: "",
rylx: "",
bglx: "",
jfnf: moment().format('YYYY')
},
optionsrylx: [
{
value: '1',
label: '在编'
}, {
value: '2',
label: '离退休人员'
},
// {
// value: '3',
// label: '劳动服务公司'
// }, {
// value: '5',
// label: '去世人员'
// }
],
optionsbglx: [{
value: '1',
label: '加入基金'
}, {
value: '2',
label: '退出基金'
}],
roleDialogVisible: false,
addDialogVisible: false,
uploadForm: [],
fileList: [],
delFiles: [],
formData: {fileurl: ''},
}
},
methods: {
openDetail: function (id) {
var self = this;
$.get(base + "/platform/zgfw/dbhzjjyl/queryDetail", {"userid": id}, function (data) {
if (data.code == 0) {
self.roleData = data.data;//加载后台表单数据
self.roleDialogVisible = true
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json")
},
/**************************************时间格式化处理************************************/
dateFtt: function (fmt, date) { //author: meizz
var o = {
"M+": date.getMonth() + 1, //月份
"d+": date.getDate(), //日
"h+": date.getHours(), //小时
"m+": date.getMinutes(), //分
"s+": date.getSeconds(), //秒
"q+": Math.floor((date.getMonth() + 3) / 3), //季度
"S": date.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
},
doSearch: function () {
this.pageForm.pageNumber = 1;
this.pageData();
},
pageOrder: function (column) {//按字段排序
switch (column.order) {
case 'descending':
column.order = 'desc'
break
case "ascending":
column.order = 'asc'
break
}
this.pageForm.pageOrderName = column.prop;
this.pageForm.pageOrderBy = column.order;
this.pageData();
},
pageNumberChange: function (val) {//页码更新操作
this.pageForm.pageNumber = val;
this.pageData();
},
pageSizeChange: function (val) {//分页大小更新操作
this.pageForm.pageSize = val;
this.pageData();
},
pageData: function () {//加载分页数据
var self = this;
sublime.showLoadingbar();//显示loading
if (self.jrTime) {
self.pageForm.jrTime = self.jrTime.toString();
} else {
self.pageForm.jrTime = "";
}
$.post(base + "/platform/zgfw/dbhzjjbg/data", self.pageForm, function (data) {
sublime.closeLoadingbar();//关闭loading
if (data.code == 0) {
self.tableData = data.data.jj.list;
self.pageForm.totalCount = data.data.jj.totalCount;
self.sfgl = data.data.sfgl;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
},
openAdd: function () {
var self = this;
self.addDialogVisible = true;
self.fileData = [];
self.fileList = [];
if (this.$refs["addForm"])
this.$refs["addForm"].resetFields();
},
doAdd: function () {
var self = this;
self.$refs["addForm"].validate(function (valid) {
if (valid) {
var flag = true;
for (var i in self.fileList) {
var name = self.fileList[i].name;
var testmsg = name.substring(name.lastIndexOf('.') + 1);
testmsg = testmsg.toLowerCase();
var e = testmsg === 'xls';
var f = testmsg === 'xlsx';
if (!e && !f) {
self.$message.error("您选择的文件格式不正确!请重新选择!");
flag = false
} else if (self.fileList.length > 1) {
self.$message.error("最多只能上传1个附件!");
flag = false
}
}
if (flag) {
if (self.fileList.length > 0) {
loading = true;
self.fileData = [];
self.$refs.upload.submit();
} else {
self.$message.error("请选择一个附件!");
}
}
}
});
},
//提交变更数据
doplbg: function () {//加载分页数据
var self = this;
$.post(base + "/platform/zgfw/dbhzjjbg/plbg", {"userlist": JSON.stringify(self.fileData)}, function (data) {
sublime.closeLoadingbar();//关闭loading
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
self.addDialogVisible = false;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
},
handleSuccess: function (response, file, fileList) {
this.$refs.upload.clearFiles();//清除已上传的列表
loading = false;
if (response.code == 1) {
this.$message({
message: response.msg,
type: "error"
});
} else {
this.fileData = response.data;
}
},
handleError: function (err, file, fileList) {
loading = false;
this.$message({
message: err.msg,
type: "error"
});
},
handleChange: function (file, filelist) {
var self = this;
self.fileList = filelist;
},
handleRemove: function (file, filelist) {
var self = this;
self.fileList = filelist;
if (typeof (file.url) === "undefined") {
} else {
console.log("增加要删除的文件:" + file.name)
self.delFiles.push({uid: file.uid, url: file.url})
}
},
//下载模板
downloadmodel: function () {
var self = this;
var url = "src/main/resources/excelTemplate/txqsmodel1.xlsx";
var name = "大病会员退休去世变更模板.xlsx";
window.location.href = base + "/platform/zgfw/dbhzjjjf/downLoad?path=" + url + "&filename=" + name;
},
async unionChange() {
if (!this.pageForm.fghid) {
this.pageForm.unitid = ''
this.unitOptions = []
}
this.unitOptions = await getUnits(this.pageForm.fghid)
},
},
created: async function () {
this.pageData();
this.ghOptions = await getUnions()
this.unitOptions = await getUnits()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,498 @@
<!--#
layout("/layouts/platform.html"){
#-->
<!--
大病互助基金个人申请页面
2019 6 25
-->
<style>
.dia .el-dialog__body {
padding: 5px 20px;
}
.note {
width: 100%;
height: 200px;
}
.el-radio.is-bordered.is-disabled.is-checked {
/* cursor: not-allowed; */
border-color: #409EFF;
}
.el-radio__input.is-disabled .is-checked .el-radio__inner, .el-radio__input.is-disabled.is-checked .el-radio__inner {
background-color: #409EFF;
/*border-color: #E4E7ED; */
}
.tpa {
padding: 10px;
text-align: center;
width: 12%;
color: #777;
background-color: rgb(250, 250, 250);
border: 1px solid rgb(220, 220, 220);
}
.tpb {
padding: 10px;
text-align: center;
color: #333;
width: 15%;
border: 1px solid rgb(220, 220, 220);
}
.tpc {
padding: 10px;
color: #a0a9b4;
width: 15%;
border: 1px solid rgb(220, 220, 220);
}
.el-card__body {
padding: 0;
}
.zw {
color: rgb(200, 200, 200);
}
.el-checkbox__label {
padding-left: 20px;
padding-right: 5px;
white-space: normal;
font-size: 12px;
}
.el-checkbox__input {
position: absolute;
top: 1px;
}
</style>
<div id="app" v-cloak>
<el-row>
<el-table
:default-expand-all="true"
:data="tableData"
size="medium"
header-align="center"
style="width: 100%"
>
<el-table-column type="expand">
<template slot-scope="scope">
<el-tabs v-model="activeName" >
<el-tab-pane label="申请记录" name="first">
<el-table
:data="sqjls"
size="small"
header-align="center"
style="width: 100%"
>
<!-- <el-table-column label="序号" type="index" header-align="center" align="center"></el-table-column>-->
<el-table-column
prop="sqsj"
label="申请时间"
header-align="center"
align="center">
</el-table-column>
<el-table-column
label="申请类型"
header-align="center"
align="center">
<template scope="scope">
<el-tag v-if="scope.row.jllx==1">加入基金</el-tag>
<el-tag type="warning" v-if="scope.row.jllx==2">退出基金</el-tag>
</template>
</el-table-column>
<el-table-column
prop="jjzt"
label="申请状态"
header-align="center"
align="center">
<template scope="scope">
<el-tag type="warning" v-if="scope.row.jjzt==1">待基层工会审核</el-tag>
<el-tag type="warning" v-if="scope.row.jjzt==2">待离退休干部处审核</el-tag>
<el-tag type="warning" v-if="scope.row.jjzt==3">待互管会审核</el-tag>
<el-tag type="danger" v-if="scope.row.jjzt==4">审核不通过</el-tag>
<el-tag type="danger" v-if="scope.row.jjzt==5">分会/离退休审核不通过</el-tag>
<el-tag type="success" v-if="scope.row.jjzt==6">互管会审核通过</el-tag>
</template>
</el-table-column>
<el-table-column
prop="jjshr"
label="分会审核人"
header-align="center"
align="center">
<template scope="scope">
<span style="color: #a0a9b4" v-if="scope.row.jjshr==''||scope.row.jjshr==null">暂无审核</span>
<span v-else>{{scope.row.jjshr}}</span>
</template>
</el-table-column>
<el-table-column
prop="jjshyj"
label="分会审核意见"
header-align="center"
align="center">
<template scope="scope">
<span style="color: #a0a9b4" v-if="scope.row.jjshyj==''||scope.row.jjshyj==null">暂无</span>
<span v-else>{{scope.row.jjshyj}}</span>
</template>
</el-table-column>
<el-table-column
prop="jjshsj"
label="分会审核时间"
header-align="center"
align="center">
<template scope="scope">
<span style="color: #a0a9b4" v-if="scope.row.jjshsj==''||scope.row.jjshsj==null">暂无</span>
<span v-else>{{scope.row.jjshsj}}</span>
</template>
</el-table-column>
<el-table-column
prop="hghshyj"
label="互管会审核意见"
header-align="center"
align="center">
<template scope="scope">
<span style="color: #a0a9b4" v-if="scope.row.hghshyj==''||scope.row.hghshyj==null">暂无</span>
<span v-else>{{scope.row.hghshyj}}</span>
</template>
</el-table-column>
<el-table-column
prop="hghshsj"
label="互管会审核时间"
header-align="center"
align="center">
<template scope="scope">
<span style="color: #a0a9b4" v-if="scope.row.hghshsj==''||scope.row.hghshsj==null">暂无</span>
<span v-else>{{scope.row.hghshsj}}</span>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
</el-tabs>
</template>
</el-table-column>
<el-table-column
prop="loginname"
label="工号"
header-align="center"
align="center">
</el-table-column>
<el-table-column
prop="username"
label="姓名"
header-align="center"
align="center">
</el-table-column>
<el-table-column
prop="mobile"
label="电话"
header-align="center"
align="center">
</el-table-column>
<el-table-column
prop="name"
label="所属单位"
header-align="center"
align="center">
</el-table-column>
<el-table-column
prop="fghname"
label="所属基层工会"
header-align="center"
align="center">
</el-table-column>
<el-table-column
prop="sfjrdbjj"
label="基金申请状态"
header-align="center"
align="center">
<template scope="scope">
<el-tag type="info" v-if="typeof(scope.row.sfjrdbjj)==='undefined'">未加入</el-tag>
<el-tag type="info" v-if="scope.row.sfjrdbjj==0">未加入</el-tag>
<el-tag type="success" v-if="scope.row.sfjrdbjj==1">已加入</el-tag>
<el-tag type="warning" v-if="scope.row.sfjrdbjj==2">待审核</el-tag>
</template>
</el-table-column>
<el-table-column
prop="userOnline"
label="操作"
width="260"
header-align="center"
align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini"
@click="openSqjr(scope.row.id)"
v-if="scope.row.sfjrdbjj==0||scope.row.sfjrdbjj==''||scope.row.sfjrdbjj==undefined">
申请加入基金会
</el-button>
<el-button type="info" size="mini" v-if="scope.row.sfjrdbjj==1" @click="thsq">
退出基金会
</el-button>
<el-button type="warning" size="mini" v-if="scope.row.sfjrdbjj==2" >
申请正在审核中
</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<el-dialog
class="ViewDialogClass"
title="申请加入基金会"
:visible.sync="sqjrDialogVisible"
width="30%">
<el-divider content-position="left" class="dia"><span style="color: #3ea1ec;">申请时间为每年11-12月!</span></el-divider>
<el-form :model="formData" ref="addForm" :rules="formRules" size="small"
label-width="80px">
<el-form-item prop="fbr" class="is-required" label="姓&emsp;&emsp;名">
<el-row>
<el-col :span="24">
<el-input disabled v-model="tableData[0].username"></el-input>
</el-col>
</el-row>
</el-form-item>
<el-form-item prop="loginname" class="is-required" label="教职工号">
<el-row>
<el-col :span="24">
<el-input disabled v-model="tableData[0].loginname"></el-input>
</el-col>
</el-row>
</el-form-item>
<el-form-item prop="sqsj" class="is-required" label="申请时间">
<el-row>
<el-col :span="24">
<el-input disabled v-model="nowyymmdd"></el-input>
</el-col>
</el-row>
</el-form-item>
<el-form-item prop="idcard" class="is-required" label="身份证号">
<el-row>
<el-col :span="24">
<el-input v-model="tableData[0].idcard"></el-input>
</el-col>
</el-row>
</el-form-item>
<el-form-item prop="rxsj" class="is-required" label="入校时间">
<el-row>
<el-col :span="24">
<el-date-picker
v-model="tableData[0].rxsj"
type="month"
format="yyyy-MM"
value-format="yyyy-MM"
placeholder="入校年月">
</el-date-picker>
<!-- <el-input disabled v-model="tableData[0].rxsj"></el-input>-->
</el-col>
</el-row>
</el-form-item>
<el-form-item prop="ifty" class="is-required" label="" style="margin-top: 20px">
<el-row>
<el-col :span="24">
<el-checkbox v-model="isChecked" style="font-size: 10px;color: #F56C6C"><span>本人已仔细阅读了《中国地质大学(武汉)教职工重大疾病互助基金管理办法》,自愿加入互助基金,并同意学校从本人工资中代扣全年120元互助费。</span>
</el-checkbox>
</el-col>
</el-row>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="sqjrDialogVisible = false">取 消</el-button>
<el-button type="primary" v-if="isChecked==true" @click="doSubmit">提 交</el-button>
<el-button type="primary" v-if="isChecked==false" disabled>提 交</el-button>
</span>
</el-dialog>
</div>
<script>
const vue = new Vue({
el: '#app',
data: function () {
var self = this
var validateLx_wtsl = function (rule, value, callback) {
if (typeof (value) === "undefined") {
callback(new Error(''));
} else {
callback()
}
}
return {
isChecked: false,
nowyymmdd: '',
userid: '',
sqjls: [],
tableData: [],
pageForm: {
searchName: "",
searchKeyword: "",
pageNumber: 1,
pageSize: 10,
totalCount: 0,
pageOrderName: "",
pageOrderBy: ""
},
formData: {},
sqjrDialogVisible: false,
formRules: {
lx_name: [{required: true, message: '', trigger: ['blur', 'change']}],
lx_wtsl: [{validator: validateLx_wtsl, trigger: ['blur', 'change']}],
lx_bz: [{required: false, message: '', trigger: ['blur', 'change']}],
},
activeName:"first"
}
},
methods: {
thsq: function () {
var self = this
// if (new Date().getMonth() != 11) {
// self.$message({
// message: '提交退会申请时间为每年12月!',
// });
// return false
// }
this.$confirm('确定要退出大病互助基金会吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: function (a, b) {
if ("confirm" == a) {//确认后再执行
$.post(base + "/platform/zgfw/dbhzjjsq/thsq", function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
}
})
},
doSubmit: function () {
var self = this;
// if (new Date().getMonth() != 11) {
// self.$message({
// message: '提交入会申请时间为每年12月!',
// });
// return false
// }
if(self.tableData[0].idcard==""||self.tableData[0].idcard==null){
self.$message({
message: '请填写身份证号!',
type: 'warning'
});
return false;
}else {
if(self.tableData[0].idcard.length!=18){
self.$message({
message: '请填写正确格式的身份证号!',
type: 'warning'
});
return false;
}
}
if(self.tableData[0].rxsj==""||self.tableData[0].rxsj==null){
self.$message({
message: '请填写入校时间!',
type: 'warning'
});
return false;
}
$.post("/platform/zgfw/dbhzjjsq/rhsq",{idcard:self.tableData[0].idcard,rxsj:self.tableData[0].rxsj}, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.sqjrDialogVisible = false
self.pageData()
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
})
},
/**************************************时间格式化处理************************************/
dateFtt: function (fmt, date) { //author: meizz
var o = {
"M+": date.getMonth() + 1, //月份
"d+": date.getDate(), //日
"h+": date.getHours(), //小时
"m+": date.getMinutes(), //分
"s+": date.getSeconds(), //秒
"q+": Math.floor((date.getMonth() + 3) / 3), //季度
"S": date.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
},
openSqjr: function (userid) {
var self = this;
self.nowyymmdd = self.dateFtt('yyyy-MM-dd', new Date())
self.userid = userid;
self.isChecked = false
self.sqjrDialogVisible = true
if (this.$refs["addForm"])
this.$refs["addForm"].resetFields();
},
pageData: function () {//加载数据
var self = this;
sublime.showLoadingbar();//显示loading
$.post(base + "/platform/zgfw/dbhzjjsq/data", function (data) {
sublime.closeLoadingbar();//关闭loading
if (data.code == 0) {
self.tableData = data.data.user;
self.sqjls = data.data.sqjls
console.log(self.tableData);
// console.log(self.sqjls);
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
},
},
created: function () {
this.pageData();
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,943 @@
<!--#
layout("/layouts/platform.html"){
#-->
<!--
大病互助基金会员经费管理
廖怡爽
-->
<style>
.dia .el-dialog__body {
padding: 5px 20px;
}
.note {
width: 100%;
height: 200px;
}
.el-radio.is-bordered.is-disabled.is-checked {
/* cursor: not-allowed; */
border-color: #409EFF;
}
.el-radio__input.is-disabled .is-checked .el-radio__inner, .el-radio__input.is-disabled.is-checked .el-radio__inner {
background-color: #409EFF;
/*border-color: #E4E7ED; */
}
.tpa {
padding: 10px;
text-align: center;
width: 12%;
color: #777;
background-color: rgb(250, 250, 250);
border: 1px solid rgb(220, 220, 220);
}
.tpb {
padding: 10px;
text-align: center;
color: #333;
width: 15%;
border: 1px solid rgb(220, 220, 220);
}
.tpc {
padding: 10px;
color: #a0a9b4;
width: 15%;
border: 1px solid rgb(220, 220, 220);
}
.el-card__body {
padding: 0;
}
.myT .has-gutter tr th {
background-color: #F5F7FA;
}
input[type=file] {
display: none;
}
</style>
<div id="app" v-cloak
v-loading="loading"
element-loading-text="数据正在加载中....."
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)">
<el-row class="header navbar bg-white shadow">
<el-row>
<div class="btn-group tool-button mt5">
<el-date-picker
v-model="pageForm.jfnf"
type="year"
placeholder="选择年"
format="yyyy"
:picker-options="pickerOptions"
value-format="yyyy"
style="width: 130px;"
>
</el-date-picker>
</div>
<div class="btn-group tool-button mt5">
<el-select placeholder="请选择基层工会" @change="unionChange" @clear="unionChange" v-model="pageForm.fghid"
clearable="true" filterable="true"
style="width:180px;">
<el-option v-for="item in ghOptions" :label="item.unionname" :value="item.id"></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-select v-model="pageForm.unitid" clearable filterable="true" clearable placeholder="请选择单位">
<el-option
v-for="item in unitOptions"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<div>
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword">
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询" style="width: 100px;">
<el-option label="工号" value="loginname"></el-option>
<el-option label="姓名" value="username"></el-option>
</el-select>
</el-input>
</div>
</div>
<div class="btn-group tool-button mt5">
<el-select placeholder="请选择人员类型" v-model="pageForm.rylx" clearable="true" filterable="true"
style="width:160px;">
<el-option
v-for="item in optionsrylx"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-button icon="el-icon-search" @click="doSearch"
style="background-color:#409eff;color: white;"></el-button>
</div>
<div class="btn-group tool-button mt5" style="margin-left: 20px;">
<el-button type="primary" :disabled="!(user==null||user==undefined)" @click="exportxls(1)">导出在职缴费名单
</el-button>
<el-button type="primary" :disabled="!(user==null||user==undefined)" @click="exportxls(2)">导出退休缴费名单
</el-button>
<!-- <el-button type="primary" :disabled="!(user==null||user==undefined)" @click="exportxls(3)">导出劳服缴费名单-->
<!-- </el-button>-->
</div>
<!--# if(@shiro.hasAnyRoles('sysadmin')){ #-->
<!-- <div class="pull-right offscreen-right mt5" style="margin-right: 10px;">
<el-button type="warning" size="medium" :disabled="yeard==moment().format('YYYY')?false:true" @click="initJfmd">生成{{yeard}}年缴费名单</el-button>
</div>-->
<!--#}#-->
</el-row>
<el-row>
<div class="btn-group tool-button mt5" style="margin-bottom: 10px;">
其他操作:
<el-button type="info" :disabled="!(user==null||user==undefined)" @click="downloadmodel" size="small">
下载记录模板
</el-button>
<el-button type="success" :disabled="!(user==null||user==undefined)" @click="openAdd" size="small">
上传扣款记录
</el-button>
<el-button type="success" :disabled="!(user==null||user==undefined)" @click="cxkk(1)" size="small">已扣款
</el-button>
<el-button type="danger" :disabled="!(user==null||user==undefined)" @click="cxkk(0)" size="small">未扣款
</el-button>
</div>
<div class="btn-group tool-button mt5" style="margin-bottom: 10px;">
<el-button :disabled="!(user==null||user==undefined)" @click="clearjfmd" size="small">
清空{{pageForm.jfnf}}年缴费名单
</el-button>
</div>
</el-row>
<!--<div class="btn-group tool-button mt5" style="margin-bottom: 10px;">
<span>一键查询:</span>
<el-button type="primary" @click="" size="small">在职教职工</el-button>
<el-button type="danger" @click="" size="small">离退休人员</el-button>
<el-button type="warning" @click="" size="small">劳动服务公司</el-button>
</div>-->
</el-row>
<el-row class="el-table-container" style="padding-top: 100px">
<el-table
@sort-change='pageOrder'
:data="tableData"
size="medium"
header-align="center"
style="width: 100%"
>
<el-table-column label="序号" width="90px" 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
prop="loginname"
label="工号"
header-align="center"
align="center">
</el-table-column>
<el-table-column
prop="username"
label="姓名"
header-align="center"
align="center">
</el-table-column>
<el-table-column
sortable
prop="sex"
label="性别"
header-align="center"
align="center">
</el-table-column>
<el-table-column
sortable
prop="depname"
label="所属单位"
header-align="center"
align="center">
</el-table-column>
<el-table-column
sortable
prop="unionname"
label="所属基层工会"
header-align="center"
align="center">
</el-table-column>
<el-table-column
sortable
prop="rylx"
label="人员类型"
header-align="center"
align="center">
</el-table-column>
<el-table-column
prop="rxsj"
label="入校时间"
header-align="center"
align="center">
</el-table-column>
<!-- <el-table-column-->
<!-- prop="jfyear"-->
<!-- label="加入基金年份"-->
<!-- header-align="center"-->
<!-- align="center">-->
<!-- </el-table-column>-->
<el-table-column
label="缴费金额"
header-align="center"
align="center">
<template scope="scope">
<el-tag type="danger">{{scope.row.jfje}}</el-tag>
</template>
</el-table-column>
<el-table-column
label="是否扣款"
header-align="center"
align="center">
<template scope="scope">
<el-tag type="info" v-if="scope.row.sfjf==0">未扣款</el-tag>
<el-tag type="success" v-if="scope.row.sfjf==1">已扣款</el-tag>
</template>
</el-table-column>
<el-table-column
label="操作"
header-align="center"
align="center"
width="200px"
>
<template slot-scope="scope">
<el-button size="mini" @click="openDetail(scope.row.userid)">查看</el-button>
<el-button type="primary" :disabled="scope.row.sfjf!=0" size="mini" @click="openEdit(scope.row)">
编辑
</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<el-row class="el-pagination-container">
<el-pagination
@size-change="pageSizeChange"
@current-change="pageNumberChange"
:current-page="pageForm.pageNumber"
:page-sizes="[10, 20, 30, 50]"
:page-size="pageForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="pageForm.totalCount">
</el-pagination>
</el-row>
<el-dialog
class="ViewDialogClass"
title="上传基金扣款记录"
@close="fileList = [];delFiles = [];uploadForm:{}"
:close-on-click-modal="false"
:visible.sync="addDialogVisible"
width="30%">
<el-form :model="formData" ref="addForm" size="small" label-width="80px">
<el-form-item prop="fj" label="扣款记录">
<el-upload
name="file"
ref="upload"
multiple="false"
:auto-upload="false"
class="upload-demo"
action="/platform/zgfw/dbhzjjjf/getFiles"
:data="uploadForm"
:on-success="handleSuccess"
:on-error="handleError"
:on-change="handleChange"
:on-remove="handleRemove"
:file-list="fileList">
<el-button size="small" type="primary">选取文件</el-button>
<div class="el-upload__tip" slot="tip" style="color:#F56C6C;">只能上传1个
xls/xlsx文件;必须上传模板文件!
</div>
</el-upload>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="addDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="doAdd">确 定</el-button>
</span>
</el-dialog>
<el-dialog
class="ViewDialogClass"
title="查看详情"
:visible.sync="roleDialogVisible"
width="55%"
>
<el-collapse v-model="activeName">
<el-collapse-item title="用户信息" name="1">
<el-card>
<div>
<table style="width: 100%">
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">&emsp;&emsp;</td>
<td class="tpb">{{roleData.user.username}}</td>
<td class="tpa">&emsp;&emsp;</td>
<td class="tpb">{{roleData.user.sex}}</td>
<td class="tpa">出生日期</td>
<td class="tpb">{{roleData.user.birthday}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">出生地点</td>
<td class="tpb">{{roleData.user.csdd}}</td>
<td class="tpa">&emsp;&emsp;</td>
<td class="tpb">{{roleData.user.mz}}</td>
<td class="tpa">政治面貌</td>
<td class="tpb">{{roleData.user.zzmc}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">&emsp;&emsp;</td>
<td class="tpb">{{roleData.user.gz}}</td>
<td class="tpa">&emsp;&emsp;</td>
<td class="tpb">{{roleData.user.zc}}</td>
<td class="tpa">联系电话</td>
<td class="tpb">{{roleData.user.mobile}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa" colspan="1">所在部门</td>
<td class="tpb" colspan="1">{{roleData.user.depname}}</td>
<td class="tpa" colspan="1">所属基层工会</td>
<td class="tpb" colspan="1">{{roleData.user.unionname}}</td>
<td class="tpa" colspan="1">现任职务</td>
<td class="tpb" colspan="2">{{roleData.user.zw}}</td>
</tr>
</table>
</div>
</el-card>
</el-collapse-item>
<el-collapse-item title="申请记录" name="2">
<el-table
:data="roleData.sqjls"
size="small"
header-align="center"
style="width: 100%"
>
<!-- <el-table-column label="序号" type="index" header-align="center" align="center"></el-table-column>-->
<el-table-column
prop="sqsj"
label="申请时间"
header-align="center"
align="center"
width="100px">
</el-table-column>
<el-table-column
label="申请类型"
header-align="center"
align="center">
<template scope="scope">
<el-tag v-if="scope.row.jllx==1">加入基金</el-tag>
<el-tag type="warning" v-if="scope.row.jllx==2">退出基金</el-tag>
</template>
</el-table-column>
<el-table-column
prop="jjzt"
label="申请状态"
header-align="center"
align="center"
width="120px"
>
<template scope="scope">
<el-tag type="warning" v-if="scope.row.jjzt==1">待基层工会审核</el-tag>
<el-tag type="warning" v-if="scope.row.jjzt==2">待离退休干部处审核</el-tag>
<el-tag type="warning" v-if="scope.row.jjzt==3">待互管会审核</el-tag>
<el-tag type="danger" v-if="scope.row.jjzt==4">审核不通过</el-tag>
<el-tag type="danger" v-if="scope.row.jjzt==5">分会/离退休审核不通过</el-tag>
<el-tag type="success" v-if="scope.row.jjzt==6">互管会审核通过</el-tag>
</template>
</el-table-column>
<!-- <el-table-column
prop="jjshr"
label="分会审核人"
header-align="center"
align="center">
<template scope="scope">
<span style="color: #a0a9b4" v-if="scope.row.jjshr==''||scope.row.jjshr==null">暂无审核</span>
<span v-else>{{scope.row.jjshr}}</span>
</template>
</el-table-column>-->
<el-table-column
prop="jjshyj"
label="分会审核意见"
header-align="center"
align="center"
width="120px">
<template scope="scope">
<span style="color: #a0a9b4" v-if="scope.row.jjshyj==''||scope.row.jjshyj==null">暂无</span>
<span v-else>{{scope.row.jjshyj}}</span>
</template>
</el-table-column>
<el-table-column
prop="jjshsj"
label="分会审核时间"
header-align="center"
align="center"
width="100px">
<template scope="scope">
<span style="color: #a0a9b4" v-if="scope.row.jjshsj==''||scope.row.jjshsj==null">暂无</span>
<span v-else>{{scope.row.jjshsj}}</span>
</template>
</el-table-column>
<el-table-column
prop="hghshyj"
label="互管会审核意见"
header-align="center"
align="center"
width="120px">
<template scope="scope">
<span style="color: #a0a9b4" v-if="scope.row.hghshyj==''||scope.row.hghshyj==null">暂无</span>
<span v-else>{{scope.row.hghshyj}}</span>
</template>
</el-table-column>
<el-table-column
prop="hghshsj"
label="互管会审核时间"
header-align="center"
align="center"
width="120px">
<template scope="scope">
<span style="color: #a0a9b4" v-if="scope.row.hghshsj==''||scope.row.hghshsj==null">暂无</span>
<span v-else>{{scope.row.hghshsj}}</span>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
<el-collapse-item title="缴费记录" name="3">
<el-table
:data="roleData.listjf"
size="small"
header-align="center"
style="width: 100%"
>
<!-- <el-table-column label="序号" type="index" header-align="center" align="center"></el-table-column>-->
<el-table-column
prop="jfyear"
label="缴费年份"
header-align="center"
align="center"
width="100px">
</el-table-column>
<el-table-column
label="缴费金额"
header-align="center"
align="center">
<template scope="scope">
<el-tag type="danger">{{scope.row.jfje}}</el-tag>
</template>
</el-table-column>
<el-table-column
prop="sfjf"
label="是否扣款"
header-align="center"
align="center"
width="120px"
>
<template scope="scope">
<el-tag type="info" v-if="scope.row.sfjf==0">未扣款</el-tag>
<el-tag type="success" v-if="scope.row.sfjf==1">已扣款</el-tag>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
</el-collapse>
</el-collaps>
<span slot="footer" class="dialog-footer">
<el-button type="danger" @click="roleDialogVisible = false">关 闭</el-button>
</span>
</el-dialog>
<el-dialog
class="ViewDialogClass"
title="编辑"
:visible.sync="editDialogVisible"
width="35%"
>
<el-form :model="editform" ref="editForm" size="small"
label-width="100px">
<el-form-item prop="fbr" class="is-required" label="是否扣款">
<el-row>
<el-col :span="24">
<el-radio v-model="editform.sfjf" label="0">未缴费</el-radio>
<el-radio v-model="editform.sfjf" label="1">已缴费</el-radio>
</el-col>
</el-row>
</el-form-item>
<el-form-item prop="loginname" class="is-required" label="人员变更为">
<el-row>
<el-col :span="24">
<el-select placeholder="请选择" v-model="editform.rylx" clearable="true" filterable="true"
style="width: 100%">
<el-option
v-for="item in optionsrylx"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-col>
</el-row>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button type="danger" @click="editDialogVisible = false">关 闭</el-button>
<el-button @click="doEdit">确 定</el-button>
</span>
</el-dialog>
</div>
<script>
const vue = new Vue({
el: '#app',
data: function () {
var self = this
var validateHys = function (rule, value, callback) {
if (typeof (self.hys) === "undefined" || self.hys.length == 0) {
callback(new Error(''));
} else {
callback()
}
}
return {
loading: false,
fileurl: '',
yeard: '',
ghOptions: [],
identity: '',
activeName: ['1', '2', '3'],
unitOptions: [],
tableData: [],
roleData: {user: {}, sqjl: [], listjf: []},
pageForm: {
searchName: "username",
searchKeyword: "",
pageNumber: 1,
pageSize: 10,
totalCount: 0,
pageOrderName: "",
pageOrderBy: "",
fghid: "",
unitid: "",
jfnf: "",
rylx: "",
sfkk: "",
},
roleDialogVisible: false,
addDialogVisible: false,
uploadForm: [],
fileList: [],
delFiles: [],
formData: {fileurl: ''},
optionsrylx: [
// {
// value: '离职',
// label: '离职'
// },
{
value: '在编',
label: '在编'
},
{
value: '离退休人员',
label: '离退休人员'
},
// {
// value: '劳动服务公司',
// label: '劳动服务公司'
// }
],
user: {},
pickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now() + (24 * 3600 * 1000 * 365); //如果没有后面的-8.64e6就是可以选择今天的
}
},
editform: {},
editDialogVisible: false,
fileloading: {}
}
},
methods: {
async unionChange() {
if (!this.pageForm.fghid) {
this.pageForm.unitid = ''
this.unitOptions = []
}
this.unitOptions = await getUnits(this.pageForm.fghid)
},
openEdit(obj) {
this.editform = JSON.parse(JSON.stringify(obj));
this.editDialogVisible = true;
},
doEdit() {
$.post(base + "/platform/zgfw/dbhzjjjf/doEdit", this.editform, data => {
if (data.code == 0) {
this.editDialogVisible = false
this.pageData();
this.$message({
message: data.msg,
type: 'success'
});
} else {
this.$message({
message: data.msg,
type: 'error'
});
}
})
},
/*导出缴费名单xls*/
exportxls: function (lx) {
var self = this;
var jfnfs = "";
if (self.pageForm.jfnf == "" || self.pageForm.jfnf == null) {
jfnfs = (new Date().getFullYear()).toString();
} else {
jfnfs = self.pageForm.jfnf;
}
this.$confirm('是否需要导出' + jfnfs + '年的名单?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: function (a, b) {
if ("confirm" == a) {//确认后再执行
window.open(base + "/platform/zgfw/dbhzjjjf/export?jfnf=" + jfnfs + "&lx=" + lx);
}
}
})
},
openDetail: function (id) {
var self = this;
$.post(base + "/platform/zgfw/dbhzjjyl/queryDetail", {"userid": id}, function (data) {
if (data.code == 0) {
self.roleData = data.data;//加载后台表单数据
self.roleDialogVisible = true
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
},
doSearch: function () {
this.pageForm.pageNumber = 1;
this.pageForm.sfkk = "";
this.pageData();
},
cxkk: function (kkid) {
this.pageForm.pageNumber = 1;
this.pageForm.sfkk = kkid;
this.pageData();
},
pageOrder: function (column) {//按字段排序
switch (column.order) {
case 'descending':
column.order = 'desc'
break
case "ascending":
column.order = 'asc'
break
}
this.pageForm.pageOrderName = column.prop;
this.pageForm.pageOrderBy = column.order;
this.pageData();
},
pageNumberChange: function (val) {//页码更新操作
this.pageForm.pageNumber = val;
this.pageData();
},
pageSizeChange: function (val) {//分页大小更新操作
this.pageForm.pageSize = val;
this.pageData();
},
pageData: function () {//加载分页数据
var self = this;
sublime.showLoadingbar();//显示loading
if (self.pageForm.jfnf == "" || self.pageForm.jfnf == null) {
self.pageForm.jfnf = (new Date().getFullYear()).toString();
}
$.post(base + "/platform/zgfw/dbhzjjjf/data", self.pageForm, function (data) {
sublime.closeLoadingbar();//关闭loading
if (data.code == 0) {
self.tableData = data.data.jj.list;
self.pageForm.totalCount = data.data.jj.totalCount;
;
self.user = data.data.user;
if (self.user != null && self.user != undefined) {
self.pageForm.rylx = self.user.rylx;
self.pageForm.fghid = self.user.unionid;
self.pageForm.unitid = self.user.unitid;
}
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
},
openAdd: function () {
var self = this;
self.addDialogVisible = true;
if (this.$refs["addForm"])
this.$refs["addForm"].resetFields();
},
doAdd: function () {
var self = this;
self.$refs["addForm"].validate(function (valid) {
if (valid) {
var flag = true;
for (var i in self.fileList) {
var name = self.fileList[i].name;
var testmsg = name.substring(name.lastIndexOf('.') + 1);
testmsg = testmsg.toLowerCase();
var e = testmsg === 'xls';
var f = testmsg === 'xlsx';
if (!e && !f) {
self.$message.error("您选择的文件格式不正确!请重新选择!");
flag = false
} else if (self.fileList.length > 1) {
self.$message.error("最多只能上传1个附件!");
flag = false
}
}
if (flag) {
if (self.fileList.length > 0) {
self.fileloading = self.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
self.$refs.upload.submit();
}
}
}
});
},
handleSuccess: function (response, file, fileList) {
this.$refs.upload.clearFiles();//清除已上传的列表
if (this.addDialogVisible) {
this.addDialogVisible = false;
}
this.fileloading.close();
this.pageData();
loading = false;
if (response.code == 1) {
this.$message({
message: response.msg,
type: "error"
});
} else {
this.$message({
duration: 8000,
showClose: true,
message: response.msg,
type: "success"
});
}
},
handleError: function (err, file, fileList) {
loading = false;
this.$message({
message: err.msg,
type: "error"
});
},
handleChange: function (file, filelist) {
var self = this;
self.fileList = filelist;
},
handleRemove: function (file, filelist) {
var self = this;
self.fileList = filelist;
if (typeof (file.url) === "undefined") {
} else {
console.log("增加要删除的文件:" + file.name)
self.delFiles.push({uid: file.uid, url: file.url})
}
},
//下载模板
downloadmodel: function () {
var self = this;
var url = "src/main/resources/excelTemplate/kkmodel1.xlsx";
var name = "扣款记录模板.xlsx";
window.location.href = base + "/platform/zgfw/dbhzjjjf/downLoad?path=" + url + "&filename=" + name;
}, //生成缴费名单
initJfmd: function () {
var self = this
self.loading = true;
$.post(base + "/platform/zgfw/dbhzjjjf/initjfmd", function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.loading = false;
this.pageForm.pageNumber = 1;
this.pageForm.sfkk = "";
this.pageData();
} else {
self.$message({
message: data.msg,
type: 'error'
});
self.loading = false;
}
}, 'json');
},
clearjfmd() {
var self = this;
if (self.pageForm.jfnf < (new Date().getFullYear()).toString()) {
self.$message({
message: "历史数据不能删除!",
type: "warning"
})
return;
}
self.$confirm('请确认,是否删除' + self.pageForm.jfnf + '的缴费记录', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: function (a, b) {
if ("confirm" == a) {//确认后再执行
const loading = self.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
$.post(base + "/platform/zgfw/dbhzjjjf/clearjfmd", {year: self.pageForm.jfnf}, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
loading.close();
})
}
}
})
}
},
created: async function () {
this.yeard = (new Date().getFullYear() + 1).toString();
this.pageData();
this.ghOptions = await getUnions()
this.unitOptions = await getUnits()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,845 @@
<!--#
layout("/layouts/platform.html"){
#-->
<!--
大病互助基金会员审核
廖怡爽
-->
<style>
.dia .el-dialog__body {
padding: 5px 20px;
}
.note {
width: 100%;
height: 200px;
}
.el-radio.is-bordered.is-disabled.is-checked {
/* cursor: not-allowed; */
border-color: #409EFF;
}
.el-radio__input.is-disabled .is-checked .el-radio__inner, .el-radio__input.is-disabled.is-checked .el-radio__inner {
background-color: #409EFF;
/*border-color: #E4E7ED; */
}
.tpa {
padding: 10px;
text-align: center;
width: 12%;
color: #777;
background-color: rgb(250, 250, 250);
border: 1px solid rgb(220, 220, 220);
}
.tpb {
padding: 10px;
text-align: center;
color: #333;
width: 15%;
border: 1px solid rgb(220, 220, 220);
}
.tpc {
padding: 10px;
color: #a0a9b4;
width: 15%;
border: 1px solid rgb(220, 220, 220);
}
.el-card__body {
padding: 0;
}
.myT .has-gutter tr th {
background-color: #F5F7FA;
}
</style>
<div id="app" v-cloak
v-loading="loading"
element-loading-text="正在生成缴费名单,数据较多....."
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)">
<!-- 头部 -->
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<el-date-picker
v-model="pageForm.jfnf"
type="year"
placeholder="选择年"
format="yyyy"
value-format="yyyy"
style="width: 130px;"
>
</el-date-picker>
</div>
<div class="btn-group tool-button mt5">
<el-select placeholder="请选择基层工会" @change="unionChange" @clear="unionChange" v-model="pageForm.fghid"
clearable="true" filterable="true"
style="width:180px;">
<el-option v-for="item in ghOptions" :label="item.unionname" :value="item.id"></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-select v-model="pageForm.unitid" filterable="true" clearable placeholder="请选择单位">
<el-option
v-for="item in unitOptions"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<div>
<el-input placeholder="请输入内容" v-model="pageForm.searchKeyword">
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询" style="width: 100px;">
<el-option label="工号" value="loginname"></el-option>
<el-option label="姓名" value="username"></el-option>
</el-select>
</el-input>
</div>
</div>
<div class="btn-group tool-button mt5">
<el-select placeholder="请选择人员类型" v-model="pageForm.rylx" clearable="true" filterable="true"
style="width:160px;">
<el-option
v-for="item in optionsrylx"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-select placeholder="请选择变更类型" v-model="pageForm.jllx" clearable="true" filterable="true"
style="width:160px;">
<el-option
label="加入基金" value="1">
</el-option>
<el-option
label="退出基金" value="2">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-button type="primary" @click="doSearch" icon="el-icon-search"></el-button>
</div>
<div class="pull-right offscreen-right mt5">
<el-button size="medium" @click="plsh"><i class="el-icon-edit"></i>批量审核</el-button>
</div>
</el-row>
<!-- 数据表格 -->
<el-row class="el-table-container">
<el-table
:data="tableData"
size="small"
header-align="center"
style="width: 100%"
@sort-change='pageOrder'
@selection-change="handleSelectionChange"
ref="multipleTable"
>
<el-table-column
type="selection"
width="55">
</el-table-column>
<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
prop="loginname"
label="工号"
header-align="center"
align="center"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
prop="username"
label="姓名"
header-align="center"
align="center"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
sortable
prop="depname"
label="所属单位"
header-align="center"
align="center"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
sortable
prop="unionname"
label="所属基层工会"
header-align="center"
align="center"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
prop="mobile"
label="电话"
header-align="center"
align="center"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
prop="sqsj"
label="申请时间"
header-align="center"
align="center">
</el-table-column>
<el-table-column
prop="rylx"
label="人员类型"
header-align="center"
align="center">
</el-table-column>
<el-table-column
label="申请类型"
header-align="center"
align="center">
<template scope="scope">
<el-tag v-if="scope.row.jllx==1">加入基金</el-tag>
<el-tag type="danger" v-if="scope.row.jllx==2">退出基金</el-tag>
</template>
</el-table-column>
<!-- <el-table-column
label="退出原因"
prop="tclx"
header-align="center"
align="center">
</el-table-column>-->
<el-table-column
prop="jjzt"
label="状态"
header-align="center"
align="center">
<template scope="scope">
<el-tag type="warning" v-if="scope.row.jjzt==1">待基层工会审核</el-tag>
<el-tag type="warning" v-if="scope.row.jjzt==2">待离退休干部处审核</el-tag>
<el-tag type="warning" v-if="scope.row.jjzt==3">待互管会审核</el-tag>
<el-tag type="warning" v-if="scope.row.sqzt==4">审核不通过</el-tag>
<el-tag type="warning" v-if="scope.row.sqzt==5">分会/离退休审核不通过</el-tag>
<el-tag type="warning" v-if="scope.row.sqzt==6">互管会审核通过</el-tag>
</template>
</el-table-column>
<el-table-column
label="操作"
header-align="center"
align="center">
<template slot-scope="scope">
<el-row>
<el-button size="mini" v-if="scope.row.jjzt==1"
type="primary"
@click="openjjsh(1,scope)">基层工会审核
</el-button>
<el-button size="mini" v-if="scope.row.jjzt==2"
type="primary"
@click="openjjsh(2,scope)">离退休干部处审核
</el-button>
<el-button size="mini" v-if="scope.row.jjzt==3"
type="primary"
@click="openjjsh(3,scope)">互管会审核
</el-button>
</el-row>
</template>
</el-table-column>
</el-table>
</el-row>
<el-row class="el-pagination-container">
<el-pagination
@size-change="pageSizeChange"
@current-change="pageNumberChange"
:current-page="pageForm.pageNumber"
:page-sizes="[10, 20, 30, 50]"
:page-size="pageForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="pageForm.totalCount">
</el-pagination>
</el-row>
<el-dialog
:close-on-click-modal="false"
@close="rhsqActiveNames='';hy_id='',rhsqFormData={shyj:''}"
class="ViewDialogClass"
title="大病基金审核"
:visible.sync="rhsqDialogVisible"
width="45%">
<el-collapse v-model="rhsqActiveNames">
<el-collapse-item title="基本信息" name="1">
<el-card>
<div>
<table style="width: 100%">
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">&emsp;&emsp;</td>
<td class="tpb">{{rhsqData.username}}</td>
<td class="tpa">&emsp;&emsp;</td>
<td class="tpb">{{rhsqData.sex}}</td>
<td class="tpa">出生日期</td>
<td class="tpb">{{rhsqData.birthday}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">出生地点</td>
<td class="tpb">{{rhsqData.csdd}}</td>
<td class="tpa">&emsp;&emsp;</td>
<td class="tpb">{{rhsqData.mz}}</td>
<td class="tpa">政治面貌</td>
<td class="tpb">{{rhsqData.zzmc}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">入校时间</td>
<td class="tpb">{{rhsqData.rxsj}}</td>
<td class="tpa">&emsp;&emsp;</td>
<td class="tpb">{{rhsqData.zc}}</td>
<td class="tpa">联系电话</td>
<td class="tpb">{{rhsqData.mobile}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa" colspan="1">所在部门</td>
<td class="tpb" colspan="1">{{rhsqData.depname}}</td>
<td class="tpa" colspan="1">所属基层工会</td>
<td class="tpb" colspan="1">{{rhsqData.unionname}}</td>
<td class="tpa" colspan="1">现任职务</td>
<td class="tpb" colspan="2">{{rhsqData.zw}}</td>
</tr>
</table>
</div>
</el-card>
</el-collapse-item>
<el-collapse-item v-if="!(typeof(rhsqData.jjshyj)==='undefined')" title="基层工会/离退休干部处审核意见" name="2">
<el-card>
<div>
<table style="width: 100%">
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">审核人</td>
<td class="tpb">{{rhsqData.jjshr}}</td>
<td class="tpa">审核时间</td>
<td class="tpb">{{rhsqData.jjshsj}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">审核意见</td>
<td class="tpb" colspan="3">{{rhsqData.jjshyj}}</td>
</tr>
</table>
</div>
</el-card>
</el-collapse-item>
<el-collapse-item :title="shtitle" name="4">
<el-form :model="rhsqFormData" ref="rhshForm" style="margin-top: 15px"
size="medium"
label-width="90px">
<el-form-item prop="sfjf" label="是否缴费" v-if="rhsqData.jjzt==3&&rhsqData.jllx==1">
<el-radio v-model="rhsqFormData.sfjf" label="0">未缴费</el-radio>
<el-radio disabled="true" v-model="rhsqFormData.sfjf" label="1">已缴费</el-radio>
<el-tag type="danger" v-if="rhsqFormData.jfje!=0&&rhsqFormData.jfje!=''">
应交{{rhsqFormData.jfje}}
</el-tag>
</el-form-item>
<el-form-item prop="shyj" label="审核意见">
<el-input
maxlength="300"
type="textarea"
:autosize="{ minRows: 4, maxRows: 10}"
placeholder="请输入您的审核意见"
v-model="rhsqFormData.shyj">
</el-input>
</el-form-item>
</el-form>
</el-collapse-item>
</el-collapse>
<span slot="footer" class="dialog-footer">
<el-button @click="rhsqDialogVisible = false">取 消</el-button>
<el-button type="danger" @click="rhsh(1)">不通过</el-button>
<el-button type="success" @click="rhsh(2)">通过</el-button>
</span>
</el-dialog>
<el-dialog
:close-on-click-modal="false"
@close="rhsqActiveNames='';hy_id='',rhsqFormData={shyj:''},multipleSelection=[]"
class="ViewDialogClass"
title="批量审核"
:visible.sync="plshDialogVisible"
width="60%">
<el-collapse v-model="rhsqActiveNames">
<el-collapse-item title="审核列表" name="1">
<el-table
:data="multipleSelection"
size="small"
header-align="center"
style="width: 100%"
>
<el-table-column
prop="loginname"
label="工号"
header-align="center"
align="center"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
prop="username"
label="姓名"
header-align="center"
align="center"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
prop="rylx"
label="人员类型"
header-align="center"
align="center">
</el-table-column>
<el-table-column
label="申请类型"
header-align="center"
align="center">
<template scope="scope">
<el-tag v-if="scope.row.jllx==1">加入基金</el-tag>
<el-tag type="danger" v-if="scope.row.jllx==2">退出基金</el-tag>
</template>
</el-table-column>
<el-table-column
label="操作"
header-align="center"
width="300px"
align="center">
<template slot-scope="scope">
<el-radio :disabled="scope.row.jjzt!=3" v-model="scope.row.sfjf" label="0">未缴费</el-radio>
<!--<el-radio disabled="true" v-model="scope.row.sfjf" label="1">已缴费</el-radio>-->
<el-tag style="width: 70px" type="danger" v-if="scope.row.jfje!=0&&scope.row.jfje!=''">
应交{{scope.row.jfje}}
</el-tag>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
<el-collapse-item title="审核意见" name="2">
<el-form :model="rhsqFormData" ref="rhshForm" style="margin-top: 15px"
size="medium"
label-width="90px">
<el-form-item prop="shyj" label="审核意见">
<el-input
maxlength="300"
type="textarea"
:autosize="{ minRows: 4, maxRows: 10}"
placeholder="请输入您的审核意见"
v-model="rhsqFormData.shyj">
</el-input>
</el-form-item>
</el-form>
</el-collapse-item>
</el-collapse>
<span slot="footer" class="dialog-footer">
<el-button @click="plshDialogVisible = false">取 消</el-button>
<el-button type="danger" @click="plrhsh(1)">不通过</el-button>
<el-button type="success" @click="plrhsh(2)">通过</el-button>
</span>
</el-dialog>
</div>
<script>
var ue1;
var ue2;
const vue = new Vue({
el: "#app",
data: function () {
var self = this
return {
loading: false,
year: "",
shtitle: '',
identity: 0,
fghshFormData: {},
rhsqFormData: {
shyj: "",
shlx: "",
jlid: "",
sfjf: "",
jfje: 0,
},
thsqFormData: {},
rhsqActiveNames: '',
thsqActiveNames: '',
identity: 0,
gxOptions: [],
ghOptions: [],
fzhDialogVisible: false,
rhsqDialogVisible: false,
tableData: [],
pageForm: {
searchName: "username",
searchKeyword: "",
pageNumber: 1,
pageSize: 10,
totalCount: 0,
pageOrderName: "",
pageOrderBy: "",
rylx: "",
jfnf: moment().format('YYYY'),
jllx: "",
fghid: ""
},
fghscData: {unit: {}},
rhsqData: {user: {}, hy: {}},
thsqData: {user: {}, hy: {}},
fghshFormRules: {
wwsq_fghshyj: [{required: true, message: '请填写您的审核意见', trigger: ['blur', 'change']}],
},
formRules: {
shyj: [{required: true, message: '请填写您的审核意见', trigger: ['blur', 'change']}],
},
unitOptions: [],
unitid: "",
optionsrylx: [{
value: '1',
label: '在编'
}, {
value: '2',
label: '离退休人员'
},
// {
// value: '3',
// label: '劳动服务公司'
// }
],
multipleTable: [],
multipleSelection: [],
plshDialogVisible: false
}
},
methods: {
unionChange() {
let self = this
if (!self.pageForm.fghid) {
self.pageForm.unitid = ''
self.unitOptions = []
}
self.getUn()
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
//打开基金审核
openjjsh: function (shlx, scopes) {
//shlx 1基层工会 2离退休 3互管会
//jjlx 1加入 2退出
var self = this
if (this.$refs["rhshForm"])
this.$refs["rhshForm"].resetFields();
self.rhsqData = {};
self.rhsqFormData = {
shyj: "",
shlx: "",
jlid: "",
sfjf: "",
jfje: 0,
};
self.rhsqFormData.shlx = shlx;
self.rhsqFormData.jlid = scopes.row.jlid;
self.rhsqData = scopes.row;
if (shlx == 1) {
self.shtitle = "填写基层工会审核意见"
} else if (shlx == 2) {
self.shtitle = "填写离退休干部处审核意见"
} else if (shlx == 3) {
self.shtitle = "填写互管会审核意见"
if (scopes.row.jllx == 1) {
if (self.rhsqData.rxsj.substring(0, 4) == self.year) {
self.rhsqFormData.jfje = 120;
} else if (self.rhsqData.rxsj.substring(0, 4) <= self.year && self.rhsqData.rxsj.substring(0, 4) >= 2015) {
self.rhsqFormData.jfje = (self.year + 1 - self.rhsqData.rxsj.substring(0, 4)) * 120 + (self.year - self.rhsqData.rxsj.substring(0, 4)) * 120 * 0.1;
} else if (self.rhsqData.rxsj.substring(0, 4) < 2015) {
self.rhsqFormData.jfje = (self.year + 2 - 2015) * 120 + (self.year + 1 - 2015) * 120 * 0.1;
}
}
}
self.rhsqActiveNames = ['1', '2', '3', '4'];
self.rhsqDialogVisible = true;
}
,
rhsh: function (flag) {
var self = this;
var notSubmit = true;
if (flag == 1) {
if (typeof (self.rhsqFormData.shyj) === "undefined" || self.rhsqFormData.shyj == '') {
notSubmit = false;
self.$message({
message: "请填写您的审核意见",
type: 'warning'
});
}
}
if (flag == 2) {
if (typeof (self.rhsqFormData.shyj) === "undefined" || self.rhsqFormData.shyj == '') {
self.rhsqFormData.shyj = '同意'
}
}
if (notSubmit) {
$.post(base + "/platform/zgfw/dbhzjjsh/jjsh", {
shlx: self.rhsqFormData.shlx,
jlid: self.rhsqFormData.jlid,
shyj: self.rhsqFormData.shyj,
sftg: flag,
sfjf: self.rhsqFormData.sfjf,
jfje: self.rhsqFormData.jfje,
}, function (data) {
if (data.code == 0) {
self.pageData();
self.$message({
message: data.msg,
type: 'success'
});
self.rhsqDialogVisible = false
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
});
}
},
plrhsh(flag) {
var self = this;
var notSubmit = true;
if (flag == 1) {
if (typeof (self.rhsqFormData.shyj) === "undefined" || self.rhsqFormData.shyj == '') {
notSubmit = false;
self.$message({
message: "请填写您的审核意见",
type: 'warning'
});
}
}
if (flag == 2) {
if (typeof (self.rhsqFormData.shyj) === "undefined" || self.rhsqFormData.shyj == '') {
self.rhsqFormData.shyj = '同意'
}
}
if (notSubmit) {
$.post(base + "/platform/zgfw/dbhzjjsh/plsh", {
sftg: flag,
data: JSON.stringify(self.multipleSelection),
shyj: self.rhsqFormData.shyj
}, function (data) {
if (data.code == 0) {
self.pageData();
self.$message({
message: data.msg,
type: 'success'
});
self.plshDialogVisible = false
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
});
}
},
doSearch: function () {
this.pageForm.pageNumber = 1;
this.pageForm.year = "";
this.pageData();
},
pageOrder: function (column) {//按字段排序
switch (column.order) {
case 'descending':
column.order = 'desc'
break
case "ascending":
column.order = 'asc'
break
}
this.pageForm.pageOrderName = column.prop;
this.pageForm.pageOrderBy = column.order;
this.pageData();
},
pageNumberChange: function (val) {//页码更新操作
this.pageForm.pageNumber = val;
this.pageData();
},
pageSizeChange: function (val) {//分页大小更新操作
this.pageForm.pageSize = val;
this.pageData();
},
pageData: function () {//加载分页数据
var self = this;
sublime.showLoadingbar();//显示loading
$.post(base + "/platform/zgfw/dbhzjjsh/data", self.pageForm, function (data) {
sublime.closeLoadingbar();//关闭loading
if (data.code == 0) {
self.tableData = data.data.list;
self.pageForm.totalCount = data.data.totalCount;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
},
queryAllGX: function () {
var self = this
$.get(base + "/platform/jdh/cbldxz/queryAllGX", function (data) {
if (data.code == 0) {
self.gxOptions = data.data;
}
}, 'json')
},
getUn: async function () {
var self = this
self.unitOptions = await getUnit(self.pageForm.fghid)
// $.get(base + "/platform/zgfw/dbhzjjsh/getUn", function (data) {
// if (data.code == 0) {
// self.unitOptions = data.data;
// }
// }, 'json')
},
//生成缴费名单
initJfmd: function () {
var self = this
self.loading = true;
$.post(base + "/platform/zgfw/dbhzjjjf/initjfmd", function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.loading = false;
} else {
self.$message({
message: data.msg,
type: 'error'
});
self.loading = false;
}
}, 'json');
},
/**
* @param strBirthday:指的是出生日期,格式为"1990-01-01"
*/
getAge: function (strBirthday) {
try {
var returnAge,
strBirthdayArr = strBirthday.split("-"),
birthYear = strBirthdayArr[0],
birthMonth = strBirthdayArr[1],
birthDay = strBirthdayArr[2],
d = new Date(),
nowYear = d.getFullYear(),
nowMonth = d.getMonth() + 1,
nowDay = d.getDate();
if (nowYear == birthYear) {
returnAge = 0;//同年 则为0周岁
} else {
var ageDiff = nowYear - birthYear; //年之差
if (ageDiff > 0) {
if (nowMonth == birthMonth) {
var dayDiff = nowDay - birthDay;//日之差
if (dayDiff < 0) {
returnAge = ageDiff - 1;
} else {
returnAge = ageDiff;
}
} else {
var monthDiff = nowMonth - birthMonth;//月之差
if (monthDiff < 0) {
returnAge = ageDiff - 1;
} else {
returnAge = ageDiff;
}
}
} else {
returnAge = -1;//返回-1 表示出生日期输入错误 晚于今天
}
}
return returnAge;//返回周岁年龄
} catch (e) {
return ''
}
},
queryAllFgh: async function () {
var self = this
self.ghOptions = await getUnions()
// $.get(base + "/platform/zgfw/zgwwsh/queryAllFgh", function (data) {
// self.ghOptions = data.data;
// }, 'json')
},
plsh() {
var self = this;
if (self.multipleSelection.length == 0) {
self.$message({
message: "请选择要审核的数据!",
type: 'warning'
});
return;
}
self.multipleSelection.forEach(function (val) {
if (val.rxsj != undefined && val.rxsj != null) {
if (val.rxsj.substring(0, 4) == self.year) {
val.jfje = 120;
} else if (val.rxsj.substring(0, 4) <= self.year && val.rxsj.substring(0, 4) >= 2015) {
val.jfje = (self.year + 1 - val.rxsj.substring(0, 4)) * 120 + (self.year - val.rxsj.substring(0, 4)) * 120 * 0.1;
} else if (val.rxsj.substring(0, 4) < 2015) {
val.jfje = (self.year + 2 - 2015) * 120 + (self.year + 1 - 2015) * 120 * 0.1;
}
}
val.sfjf = '0';
})
self.rhsqActiveNames = ['1', '2'];
self.plshDialogVisible = true;
}
},
created:
function () {
this.year = new Date().getFullYear();
this.pageData();
this.queryAllFgh();
this.getUn()
}
,
})
</script>
<!--#
}
#-->
@@ -0,0 +1,423 @@
<!--#
layout("/layouts/platform.html"){
#-->
<!--
大病互助基金会员阅览
廖怡爽
-->
<style>
.dia .el-dialog__body {
padding: 5px 20px;
}
.note {
width: 100%;
height: 200px;
}
.el-radio.is-bordered.is-disabled.is-checked {
/* cursor: not-allowed; */
border-color: #409EFF;
}
.el-radio__input.is-disabled .is-checked .el-radio__inner, .el-radio__input.is-disabled.is-checked .el-radio__inner {
background-color: #409EFF;
/*border-color: #E4E7ED; */
}
.tpa {
padding: 10px;
text-align: center;
width: 12%;
color: #777;
background-color: rgb(250, 250, 250);
border: 1px solid rgb(220, 220, 220);
}
.tpb {
padding: 10px;
text-align: center;
color: #333;
width: 15%;
border: 1px solid rgb(220, 220, 220);
}
.tpc {
padding: 10px;
color: #a0a9b4;
width: 15%;
border: 1px solid rgb(220, 220, 220);
}
.el-card__body {
padding: 0;
}
.myT .has-gutter tr th {
background-color: #F5F7FA;
}
</style>
<div id="app" v-cloak>
<div hidden id="username">${@shiro.getPrincipalProperty('username')}</div>
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<el-date-picker
v-model="pageForm.jfnf"
type="year"
placeholder="选择年度"
format="yyyy"
value-format="yyyy"
style="width: 130px;"
>
</el-date-picker>
</div>
<div class="btn-group tool-button mt5">
<el-select placeholder="请选择基层工会" @clear="getFghBydw" @change="getFghBydw(pageForm.fghid)"
v-model="pageForm.fghid" clearable="true" filterable="true"
style="width:200px;">
<el-option v-for="item in ghOptions" :label="item.unionname" :value="item.id"></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-select v-model="pageForm.unitid" filterable="true" clearable placeholder="请选择单位">
<el-option
v-for="item in unitOptions"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-select placeholder="请选择人员类型" v-model="pageForm.rylx" clearable="true" filterable="true"
style="width:160px;">
<el-option
v-for="item in optionsrylx"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-select placeholder="请选择变更类型" v-model="pageForm.jllx" clearable="true" filterable="true"
style="width:160px;">
<el-option
label="新增" value="1">
</el-option>
<el-option
label="退出" value="2">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-input placeholder="请输入内容" v-model="pageForm.searchKeyword">
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询" style="width: 100px;">
<el-option label="工号" value="loginname"></el-option>
<el-option label="姓名" value="username"></el-option>
</el-select>
</el-input>
</div>
<div class="btn-group tool-button mt5">
<el-button icon="el-icon-search" @click="doSearch"
style="background-color:#409eff;color: white;"></el-button>
</div>
<div class="pull-right offscreen-right mt5">
<el-button size="medium" @click="hybf">备份{{moment().format('YYYY')}}年度数据</el-button>
</div>
</el-row>
<el-row class="el-table-container">
<el-table
@sort-change='pageOrder'
:data="tableData"
size="medium"
header-align="center"
style="width: 100%"
>
<el-table-column label="序号" width="90px" 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
prop="loginname"
label="工号"
header-align="center"
align="center">
</el-table-column>
<el-table-column
prop="username"
label="姓名"
header-align="center"
align="center">
</el-table-column>
<el-table-column
sortable
prop="sex"
label="性别"
header-align="center"
align="center">
</el-table-column>
<el-table-column
prop="mobile"
label="电话"
header-align="center"
align="center">
</el-table-column>
<el-table-column
sortable
prop="depname"
label="所属单位"
header-align="center"
align="center">
</el-table-column>
<el-table-column
sortable
prop="unionname"
label="所属基层工会"
header-align="center"
align="center">
</el-table-column>
<el-table-column
sortable
prop="rylx"
label="人员类型"
header-align="center"
align="center">
</el-table-column>
<el-table-column
prop="zssj"
label="加入日期"
header-align="center"
align="center">
</el-table-column>
<el-table-column
label="年度"
header-align="center"
align="center">
<template>
{{pageForm.jfnf}}
</template>
</el-table-column>
</el-table>
</el-row>
<el-row class="el-pagination-container">
<el-pagination
@size-change="pageSizeChange"
@current-change="pageNumberChange"
:current-page="pageForm.pageNumber"
:page-sizes="[10, 20, 30, 50]"
:page-size="pageForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="pageForm.totalCount">
</el-pagination>
</el-row>
</div>
<script>
const vue = new Vue({
el: '#app',
data: function () {
var self = this
var validateHys = function (rule, value, callback) {
if (typeof (self.hys) === "undefined" || self.hys.length == 0) {
callback(new Error(''));
} else {
callback()
}
}
return {
yeard: "",
ghOptions: [],
sfgl: 0,
identity: '',
activeName: ['1', '2', '3'],
roleData: {user: {}, sqjl: [], listjf: []},
unitOptions: [],
tableData: [],
jrTime: [],
pageForm: {
searchName: "username",
searchKeyword: "",
pageNumber: 1,
pageSize: 10,
totalCount: 0,
pageOrderName: "",
pageOrderBy: "",
fghid: "",
unitid: "",
jrTime: "",
rylx: "",
jfnf: moment().add(-1, 'year').format('YYYY'),
year: "",
sfjr: "1"
},
roleDialogVisible: false,
optionsrylx: [{
value: '1',
label: '在编'
}, {
value: '2',
label: '离退休人员'
},
// {
// value: '3',
// label: '劳动服务公司'
// }
],
rmDialogVisible: false,
userid: "",
tclx: "",
addDialogVisible: false,
fileList: [],
delFiles: [],
uploadForm: {},
formData: {},
fileData: [],
user: {},
loading: false,
useroptions: []
}
},
methods: {
getFghBydw: async function (dwid) {
var self = this;
self.unitOptions = await getUnits(dwid);
self.pageForm.unitid = "";
},
getUnionid(unitid) {
var self = this;
$.post(base + "/platform/zgfw/dbhzjjtz/getUnionid", {id: unitid}, function (data) {
self.formData.fghid = data.data.id;
})
},
/**************************************时间格式化处理************************************/
dateFtt: function (fmt, date) { //author: meizz
var o = {
"M+": date.getMonth() + 1, //月份
"d+": date.getDate(), //日
"h+": date.getHours(), //小时
"m+": date.getMinutes(), //分
"s+": date.getSeconds(), //秒
"q+": Math.floor((date.getMonth() + 3) / 3), //季度
"S": date.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
},
doSearch: function () {
if (this.pageForm.jllx == "1") {
this.pageForm.sfjr = "1"
} else if (this.pageForm.jllx == "2") {
this.pageForm.sfjr = "0"
} else {
this.pageForm.sfjr = "1"
}
this.pageForm.pageNumber = 1;
this.pageData();
},
pageOrder: function (column) {//按字段排序
switch (column.order) {
case 'descending':
column.order = 'desc'
break
case "ascending":
column.order = 'asc'
break
}
this.pageForm.pageOrderName = column.prop;
this.pageForm.pageOrderBy = column.order;
this.pageData();
},
pageNumberChange: function (val) {//页码更新操作
this.pageForm.pageNumber = val;
this.pageData();
},
pageSizeChange: function (val) {//分页大小更新操作
this.pageForm.pageSize = val;
this.pageData();
},
pageData: function () {//加载分页数据
var self = this;
sublime.showLoadingbar();//显示loading
if (self.jrTime) {
self.pageForm.jrTime = self.jrTime.toString();
} else {
self.pageForm.jrTime = "";
}
$.post(base + "/platform/zgfw/dbhzjjtz/data", self.pageForm, function (data) {
sublime.closeLoadingbar();//关闭loading
if (data.code == 0) {
self.tableData = data.data.jj.list;
self.pageForm.totalCount = data.data.jj.totalCount;
self.sfgl = data.data.sfgl;
self.ghOptions = data.data.listunion;
self.unitOptions = data.data.listun;
self.user = data.data.user;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
},
hybf() {
var self = this;
self.$confirm('请确认是否备份' + moment().format('YYYY') + '年度的数据', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: function (a, b) {
if ("confirm" == a) {//确认后再执行
const loading = self.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
$.post(base + "/platform/zgfw/dbhzjjtz/hybf", function (data) {
sublime.closeLoadingbar();//关闭loading
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
loading.close();
}, "json");
}
}
})
}
},
created: function () {
this.yeard = new Date().getFullYear() + 1;
this.pageData();
}
})
</script>
<!--#
}
#-->
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,267 @@
<!--基金批量设置-->
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app" v-cloak="">
<el-row class="header navbar bg-white shadow">
<!-- <div class="btn-group tool-button mt5">
<el-input placeholder="可按工号、姓名查询" v-model="plszpageForm.searchKeyword" clearable></el-input>
</div>-->
<div class="btn-group tool-button mt5">
<el-select v-model="plszpageForm.unionid" @change="unionChange" @clear="unionChange" filterable clearable
placeholder="请选择工会">
<el-option
v-for="item in unions"
:label="item.unionname"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-select v-model="plszpageForm.unitid" filterable clearable placeholder="请选择单位">
<el-option
v-for="item in units"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<div>
<el-input placeholder="请输入内容" v-model="plszpageForm.searchKeyword">
<el-select v-model="plszpageForm.searchName" slot="prepend" placeholder="查询" style="width: 100px;">
<el-option label="工号" value="loginname"></el-option>
<el-option label="姓名" value="username"></el-option>
</el-select>
</el-input>
</div>
</div>
<div class="btn-group tool-button mt5">
<el-button type="primary" icon="el-icon-search" @click="dosearch"></el-button>
</div>
<div class="pull-right offscreen-right mt5">
<el-button size="medium" type="warning" @click="sz"><i class="ti-plus"></i>批量设置基金会员</el-button>
</div>
</el-row>
<el-row class="el-table-container">
<el-table :data="plsztableData" ref="multipleTable" size="small" @selection-change="handleSelectionChange"
:row-key="getRowKeys">
<el-table-column type="selection" :reserve-selection="true"></el-table-column>
<el-table-column align="center" header-align="center" label="序号" type="index">
<template scope="scope">
<span>{{scope.$index+(plszpageForm.pageNumber - 1) * plszpageForm.pageSize + 1}} </span></template>
</el-table-column>
<el-table-column align="center" header-align="center" label="工号" prop="loginname"></el-table-column>
<el-table-column align="center" header-align="center" label="姓名" prop="username"></el-table-column>
<el-table-column align="center" header-align="center" label="性别" prop="sex"></el-table-column>
<el-table-column align="center" header-align="center" label="电话" prop="mobile"></el-table-column>
<!-- <el-table-column align="center" header-align="center" label="入校时间" prop="rxsj"></el-table-column>-->
<el-table-column align="center" header-align="center" :show-overflow-tooltip="true" label="单位"
prop="depname"></el-table-column>
<el-table-column align="center" header-align="center" label="所属工会" :show-overflow-tooltip="true"
prop="unionname"></el-table-column>
<el-table-column
prop="rylx"
label="人员类型"
header-align="center"
align="center">
</el-table-column>
</el-table>
</el-row>
<el-row class="el-pagination-container">
<el-pagination
@size-change="plszpageSizeChange"
@current-change="plszpageNumberChange"
:current-page="plszpageForm.pageNumber"
:page-sizes="[10, 20, 30, 50]"
:page-size="plszpageForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="plszpageForm.totalCount">
</el-pagination>
</el-row>
<el-dialog
title="批量加入大病基金"
:visible.sync="addhyDialog"
custom-class="ViewDialogClass"
width="50%">
<el-table :data="hylist" size="small">
<el-table-column align="center" header-align="center" label="序号" type="index"
min-width="60px"></el-table-column>
<el-table-column align="center" header-align="center" label="工号" prop="loginname"
min-width="80px"></el-table-column>
<el-table-column align="center" header-align="center" label="姓名" prop="username"
min-width="60px"></el-table-column>
<el-table-column align="center" header-align="center" label="性别" prop="sex"
min-width="60px"></el-table-column>
<el-table-column align="center" header-align="center" label="电话" prop="mobile"
min-width="100px"></el-table-column>
<el-table-column align="center" header-align="center" :show-overflow-tooltip="true" label="单位"
min-width="120px" prop="depname"></el-table-column>
<el-table-column align="center" header-align="center" label="入校时间" prop="unionname" min-width="130px">
<template scope="scope">
<el-date-picker
size="small"
v-model="scope.row.rxsj"
type="month"
placeholder="选择年月"
format="yyyy-MM"
value-format="yyyy-MM"
style="width: 130px;"
>
</el-date-picker>
</el-date-picker>
</template>
</el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button @click="addhyDialog=false">取消</el-button>
<el-button type="primary" @click="doSz">确定</el-button>
</div>
</el-dialog>
</div>
<script>
const vm = new Vue({
el: "#app",
data: function () {
return {
plszpageForm: {
pageNumber: 1,
pageSize: 10,
totalCount: 0,
flag: "",
unionid: "",
unitid: "",
searchKeyword: "",
searchName: "username"
},
plsztableData: [],
units: [],
unions: [],
flag: "",
pageForm: {
pageNumber: 1,
pageSize: 10,
totalCount: 0,
searchKeyword: "",
rxTime: "",
txTime: "",
unionid: "",
userstate: "",
},
hylist: [],
oldlist: [],
con: false,
addhyDialog: false,
multipleTable: [],
ids: [],
}
},
methods: {
unionChange() {
let self = this
if (!self.plszpageForm.unionid) {
self.plszpageForm.unitid = ''
self.units = []
}
self.getUnitOptions()
},
async getUnitOptions() {
this.units = await getUnits(this.plszpageForm.unionid)
},
plszpageSizeChange: function (val) {
this.plszpageForm.pageSize = val;
this.plszPageData();
},
plszpageNumberChange: function (val) {
this.plszpageForm.pageNumber = val;
this.plszPageData();
},
plszPageData: function () {
var self = this;
$.post(base + "/platform/zgfw/dbhzjjpl/data", self.plszpageForm, function (data) {
if (data.code == 0) {
self.plsztableData = data.data.user.list;
self.plszpageForm.totalCount = data.data.user.totalCount;
console.log(self.plszpageForm.totalCount);
}
}, "json");
},
handleSelectionChange: function (val) {
this.hylist = val;
},
getRowKeys: function (row) {
return row.id;
},
dosearch: function () {
var self = this;
self.plszpageForm.pageNumber = 1;
self.plszPageData();
},
sz: function () {
this.con = false;
if (this.hylist == "") {
this.addhyDialog = false;
this.$message({
message: "请先选择批量设置的用户!",
type: 'warning'
});
return
}
this.addhyDialog = true
},
doSz: function () {
var self = this;
self.ids = [];
var count = 0;
for (var i = 0; i < self.hylist.length; i++) {
self.ids[i] = self.hylist[i].id;
if (self.hylist[i].rxsj == "" || self.hylist[i].rxsj == null) {
count++;
}
}
if (count > 0) {
this.$message({
message: "请先填写会员入校时间!",
type: 'warning'
});
return;
}
$.post(base + "/platform/zgfw/dbhzjjpl/plSz", {
"ids": self.ids.toString(),
"userlist": JSON.stringify(self.hylist),
}, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.plszPageData();
self.$refs.multipleTable.clearSelection();
self.addhyDialog = false;
}
}, "json");
}
},
created: async function () {
this.plszPageData();
this.unions = await getUnions()
await this.getUnitOptions()
}
});
</script>
<!--#
}
#-->
@@ -0,0 +1,144 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
.el-divider--horizontal {
margin-top: 50px;
margin-bottom: 40px;
}
</style>
<div id="app" v-cloak style="padding: 20px 40px">
<template>
<apply :form="formData" @radio="radioButton">
</apply>
<div style="float: right;margin: 20px 0">
<el-button type="primary" @click="operation">确 定</el-button>
</div>
</template>
</div>
<script>
function getQueryVariable(variable) {
let query = window.location.search.substring(1);
let vars = query.split("&");
for (let i = 0; i < vars.length; i++) {
let pair = vars[i].split("=");
if (pair[0] == variable) {
return pair[1];
}
}
return '';
}
const vue = new Vue({
el: '#app',
mixins: [initTableMixins],
components: {
'apply': httpVueLoader('/components/difficulty/apply.vue'),
},
data() {
return {
formData: {
sqsj: moment().format('YYYY-MM-DD'),
apply_mode: '1',
zyzkyy: [],
jtcys: [],
jtfc: [],
jtcc: [],
},
userData: {},
}
},
methods: {
radioButton() {
this.$set(this.formData, 'idcard', '${@shiro.getPrincipalProperty("idcard")}')
this.$set(this.formData, 'sqr', '${@shiro.getPrincipalProperty("username")}')
this.$set(this.formData, 'bbzrusername', this.formData.apply_mode == 1 ? "${@shiro.getPrincipalProperty('username')}" : null)
this.$set(this.formData, 'sqrloginname', "${@shiro.getPrincipalProperty('loginname')}")
this.$set(this.formData, 'sex', this.formData.apply_mode == 1 ? "${@shiro.getPrincipalProperty('sex')}" : null)
this.$set(this.formData, 'idcard', this.formData.apply_mode == 1 ? "${@shiro.getPrincipalProperty('idcard')}" : null)
this.$set(this.formData, 'birthday', this.formData.apply_mode == 1 ? "${@shiro.getPrincipalProperty('birthday')}" : null)
this.$set(this.formData, 'lxfs', this.formData.apply_mode == 1 ? "${@shiro.getPrincipalProperty('mobile')}" : null)
this.$set(this.formData, 'yhkh', this.formData.apply_mode == 1 ? "${@shiro.getPrincipalProperty('bank_number')}" : null)
this.$set(this.formData, 'yhmc', this.formData.apply_mode == 1 ? "${@shiro.getPrincipalProperty('yhmc')}" : null)
this.$set(this.formData, 'unitname', this.formData.apply_mode == 1 ? this.userData.unitname : null)
this.$set(this.formData, 'zw', this.formData.apply_mode == 1 ? this.userData.zw : null)
this.$set(this.formData, 'zzmm', this.formData.apply_mode == 1 ? this.userData.zzmm : null)
this.$set(this.formData, 'mz', this.formData.apply_mode == 1 ? this.userData.mz : null)
},
async getUserData() {
const resp = await $.post("/platform/knbf/sq/getUserData")
requestLaterFun(resp, () => {
this.userData = resp.data;
}, () => {
this.$notify.error({title: '失败', message: resp.msg});
})
},
async operation() {
let method = this.formData.id ? "/doEdit" : "/doAdd"
/* this.$refs["addform"].validate(async (valid) => {
if (valid) {*/
const loading = this.$loading({
lock: true,
text: '正在提交...',
spinner: 'el-icon-loading',
background: COVER_LAYER_COLOR
});
const formData = Object.assign({}, this.formData);
formData.zyzkyy = JSON.stringify(formData.zyzkyy)
formData.jtcys = JSON.stringify(formData.jtcys)
formData.jtfc = JSON.stringify(formData.jtfc)
formData.jtcc = JSON.stringify(formData.jtcc)
formData.files = JSON.stringify(formData.files)
formData.applicantsign = formData.sqsign
if (formData.apply_mode == 1) {
formData.bbzrusername = "${@shiro.getPrincipalProperty('id')}"
}
const resp = await $.post(loc() + method, formData)
requestLaterFun(resp, () => {
window.location.href = '/platform/fw/difficulty/applylist'
}, () => {
this.$notify.error({title: '失败', message: resp.msg});
}, () => {
loading.close()
})
/* }
}
);*/
},
async openEdit(id) {
const resp = await $.get("/platform/fw/difficulty/applylist/findOne", {id})
requestLaterFun(resp, (data) => {
console.log(data)
data.zyzkyy = JSON.parse(data.zyzkyy)
data.jtfc = JSON.parse(data.jtfc)
data.jtcc = JSON.parse(data.jtcc)
if (data.files) {
data.files = JSON.parse(data.files)
}
this.formData = data
})
}
},
async created() {
await this.getUserData()
let id = getQueryVariable("id")
id ? this.openEdit(id) : this.radioButton()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,256 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
.el-tabs__content {
padding-top: 20px;
}
</style>
<div id="app" class="platform" v-cloak>
<guava ref="guava" padding="0 5%">
<template>
<el-card shadow="never">
<div class="search">
<div class="search-item">
<div class="search-item-label">选择年:</div>
<div class="search-item-option">
<el-date-picker
v-model="pageForm.year"
type="year"
value-format="yyyy" style="width: 100%"
placeholder="选择年">
</el-date-picker>
</div>
</div>
<div class="search-item">
<div class="search-item-label">被慰问人:</div>
<div class="search-item-option">
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
@keyup.enter.native="doSearch">
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
style="width: 140px;">
<el-option label="受助人工号" value="sbzr.loginname"></el-option>
<el-option label="受助人姓名" value="sbzr.username"></el-option>
</el-select>
</el-input>
</div>
</div>
<template v-if="searchMore">
<div class="search-item">
<div class="search-item-label">所属工会:</div>
<div class="search-item-option">
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
clearable="true"
@change="flushUnits" @clear="flushUnits"
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}"
filterable="true">
<el-option v-for="item in unions" :label="item.unionname"
:value="item.id"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">所属单位:</div>
<div class="search-item-option">
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
clearable="true"
filterable="true">
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
</el-select>
</div>
</div>
</template>
<div class="search-query">
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
<more v-model="searchMore"></more>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt10">
<table-tool label="申请列表" :app="this"></table-tool>
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
v-loading="tableLoading" :size="tableSize" class="vi-table">
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
show-overflow-tooltip
:label="column.label"
:prop="column.prop"
:sortable="column.sortable"
>
<template v-if="column.prop=='sbzrname'" scope="{row}">
{{row.sbzrname?row.sbzrname:row.sqrname}}
</template>
<template v-else-if="column.prop=='unitname'" scope="{row}">
{{row.unitname?row.unitname:row.sbzrunitname}}
</template>
<template v-else-if="column.prop=='sq_knlx'" scope="{row}">
<span> {{ difficulty.sq_knlx[row.sq_knlx] }}</span>
</template>
<template v-else-if="column.prop=='shrname'" scope="{row:{shrname}}">
<span>{{shrname?shrname:'暂无'}}</span>
</template>
<template v-else-if="column.prop=='state_id'" scope="{row}">
<span :style="'color:'+row.statecolor">{{row.state_name}}</span>
</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:'view',data:row}">
查看
</el-dropdown-item>
<el-dropdown-item :disabled="row.zt!=100"
:command="{type:'edit',data:row}">
编辑
</el-dropdown-item>
<el-dropdown-item :command="{type:'delete',data:row}" :loading="row.delLoading">
删除
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
</template>
<template #view>
<info ref="info"></info>
</template>
</guava>
</div>
<script>
const vue = new Vue({
el: '#app',
mixins: [initTableMixins],
components: {
'guava': httpVueLoader('/components/plugins/Guava.vue'),
'info': httpVueLoader('/components/difficulty/info.vue'),
},
data() {
return {
pageForm: {
unit: "",
year: new Date().getFullYear() + "",
searchName: "sbzr.username"
},
unions: [],
units: [],
tableColumns: [
{prop: 'sbzrname', label: '受补助人姓名'},
{prop: 'sbzrloginname', label: '受补助人工号'},
{prop: 'sqrname', label: '申请人'},
{prop: 'sqrunionname', label: '所在工会'},
{prop: 'unitname', label: '所在单位',},
{prop: 'lxfs', label: '联系方式'},
{prop: 'sq_knlx', label: '困难类型', sortable: true},
{prop: 'sqsj', label: '申请时间', sortable: true},
{prop: 'shrname', label: '审核人'},
{prop: 'state_id', label: '申请状态', sortable: true},
],
}
},
methods: {
dropdownCommand(command) {
const {type, data} = command
if (type == 'view') {
this.openView(data)
} else if (type == 'delete') {
this.doDelete(data)
} else if (type == 'edit') {
this.openEdit(data)
} else if (type == 'downloadAnnex') {
this.dodownloadAnnex(data.id)
} else if (type == 'doExport') {
window.location.href = "/platform/fw/difficulty/applylist/doExport?id=" + data.id
}
},
dodownloadAnnex(id) {
window.location.href = "/platform/fw/difficulty/applylist/downloadAnnex?id=" + id
},
openView(row) {
const {id} = row
this.$refs.info.getInfo(id)
this.$refs.guava.view()
},
openEdit(row) {
const {id} = row
window.location.href = '/platform/fw/difficulty/apply?id=' + id
},
doDelete(row) {
const {id} = row
this.$confirm('确定要删除吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: async (a, b) => {
if ("confirm" == a) {//确认后再执行
this.$set(row, "delLoading", true)
const resp = await GET(loc() + '/doDelete', {id: id})
requestLaterMsgFun(vue, resp, async () => {
this.pageData()
}, () => {
}, () => {
this.$set(row, "delLoading", false)
})
}
}
});
},
async flushUnits() {
this.$set(this.pageForm, "unitId", "")
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
this.units = await getUnits(this.pageForm.unionId)
} else {
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
}
},
},
async created() {
this.pageData()
this.unions = await getUnions()
this.flushUnits()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,235 @@
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app" class="platform" v-cloak>
<guava ref="guava">
<template>
<el-card shadow="never">
<div class="search">
<div class="search-item">
<div class="search-item-label">选择年:</div>
<div class="search-item-option">
<el-date-picker clearable value-format="yyyy-MM-dd"
v-model="pageForm._dateRange"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</div>
</div>
<div class="search-item">
<div class="search-item-label">被慰问人:</div>
<div class="search-item-option">
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
@keyup.enter.native="doSearch">
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
style="width: 140px;">
<el-option label="受助人工号" value="sbzr.loginname"></el-option>
<el-option label="受助人姓名" value="sbzr.username"></el-option>
</el-select>
</el-input>
</div>
</div>
<template v-if="searchMore">
<div class="search-item">
<div class="search-item-label">所属工会:</div>
<div class="search-item-option">
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
clearable="true"
@change="flushUnits" @clear="flushUnits"
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}"
filterable="true">
<el-option v-for="item in unions" :label="item.unionname"
:value="item.id"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">所属单位:</div>
<div class="search-item-option">
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
clearable="true"
filterable="true">
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
</el-select>
</div>
</div>
</template>
<div class="search-query">
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
<more v-model="searchMore"></more>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt10">
<table-tool label="帮扶列表" :app="this"></table-tool>
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
v-loading="tableLoading" :size="tableSize" class="vi-table">
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
show-overflow-tooltip
:label="column.label"
:prop="column.prop"
:sortable="column.sortable"
>
<template v-if="column.prop=='sbzrname'" scope="{row}">
{{row.sbzrname?row.sbzrname:row.sqrname}}
</template>
<template v-else-if="column.prop=='unitname'" scope="{row}">
{{row.unitname?row.unitname:row.sbzrunitname}}
</template>
<template v-else-if="column.prop=='sq_knlx'" scope="{row}">
<span> {{ difficulty.sq_knlx[row.sq_knlx] }}</span>
</template>
<template v-else-if="column.prop=='state_id'" scope="{row}">
<span :style="'color:'+row.statecolor">{{row.state_name}}</span>
</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:'view',data:row}">
查看
</el-dropdown-item>
<el-dropdown-item :command="{type:'openReview',data:row}">
审核
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
</template>
<template #view>
<info ref="info"></info>
</template>
</guava>
</div>
<script>
const vue = new Vue({
el: '#app',
mixins: [initTableMixins],
components: {
'guava': httpVueLoader('/components/plugins/Guava.vue'),
'info': httpVueLoader('/components/difficulty/info.vue'),
},
data() {
return {
pageForm: {
year: new Date().getFullYear() + "",
isAudit: false,
searchName: "sbzr.loginname"
},
unions: [],
units: [],
tableColumns: [
{prop: 'sbzrname', label: '受补助人姓名'},
{prop: 'sbzrloginname', label: '受补助人工号'},
{prop: 'sqrname', label: '申请人'},
{prop: 'sqrunionname', label: '所在工会', sortable: true},
{prop: 'unitname', label: '所在单位', sortable: true},
{prop: 'lxfs', label: '联系方式'},
{prop: 'sq_knlx', label: '困难类型', sortable: true},
{prop: 'sqsj', label: '申请时间', sortable: true},
{prop: 'state_id', label: '申请状态', sortable: true},
],
}
},
methods: {
doSearch() {
this.tabKey = new Date().getTime()
this.pageForm.pageNumber = 1
if (this.pageForm._dateRange && this.pageForm._dateRange.length) {
this.pageForm.dateRange = JSON.stringify(this.pageForm._dateRange)
} else {
this.pageForm.dateRange = ""
}
this.pageData()
},
dropdownCommand(command) {
const {type, data} = command
if (type == 'view') {
this.openView(data)
} else if (type == 'downloadAnnex') {
window.location.href = "/platform/fw/difficulty/reading/downloadAnnex?id=" + data.id
} else if (type == 'doExport') {
window.location.href = "/platform/fw/difficulty/reading/doExport?id=" + data.id
} else if (type == 'export') {
window.location.href = "/platform/fw/difficulty/reading/export?id=" + data.id
}
},
openView(row) {
const {id} = row
this.$refs.info.getInfo(id)
this.$refs.guava.view()
},
doExcel() {
if (!(this.pageForm._dateRange && this.pageForm._dateRange.length)) {
this.$message.error("请选择日期");
return
}
window.location.href = "/platform/fw/difficulty/reading/doExcel?dateRange=" + JSON.stringify(this.pageForm._dateRange)
},
async flushUnits() {
this.$set(this.pageForm, "unitId", "")
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
this.units = await getUnits(this.pageForm.unionId)
} else {
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
}
},
},
async created() {
this.pageData()
this.unions = await getUnions()
this.flushUnits()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,306 @@
<!--#
layout("/layouts/platform.html"){
#-->
<!--校工会经办人-->
<div id="app" class="platform" v-cloak>
<guava ref="guava">
<template>
<el-card shadow="never">
<div class="search">
<div class="search-item">
<div class="search-item-label">选择年:</div>
<div class="search-item-option">
<el-date-picker
v-model="pageForm.year"
type="year"
value-format="yyyy" style="width: 100%"
placeholder="选择年">
</el-date-picker>
</div>
</div>
<div class="search-item">
<div class="search-item-label">被慰问人:</div>
<div class="search-item-option">
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
@keyup.enter.native="doSearch">
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
style="width: 140px;">
<el-option label="受助人工号" value="sbzr.loginname"></el-option>
<el-option label="受助人姓名" value="sbzr.username"></el-option>
</el-select>
</el-input>
</div>
</div>
<template v-if="searchMore">
<div class="search-item">
<div class="search-item-label">所属工会:</div>
<div class="search-item-option">
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
clearable="true"
@change="flushUnits" @clear="flushUnits"
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}"
filterable="true">
<el-option v-for="item in unions" :label="item.unionname"
:value="item.id"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">所属单位:</div>
<div class="search-item-option">
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
clearable="true"
filterable="true">
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
</el-select>
</div>
</div>
</template>
<div class="search-query">
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
<more v-model="searchMore"></more>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt10">
<table-tool label="帮扶列表" :app="this">
<template #func>
<el-radio-group v-model="pageForm.isAudit" @change="doSearch" size="small"
style="margin-bottom: -7.5px">
<el-radio-button :label="true">已审核</el-radio-button>
<el-radio-button :label="false">未审核</el-radio-button>
</el-radio-group>
</template>
</table-tool>
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
v-loading="tableLoading" :size="tableSize" class="vi-table">
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
show-overflow-tooltip
:label="column.label"
:prop="column.prop"
:sortable="column.sortable"
>
<template v-if="column.prop=='sbzrname'" scope="{row}">
{{row.sbzrname?row.sbzrname:row.sqrname}}
</template>
<template v-else-if="column.prop=='unitname'" scope="{row}">
{{row.unitname?row.unitname:row.sbzrunitname}}
</template>
<template v-else-if="column.prop=='sq_knlx'" scope="{row}">
<span> {{ difficulty.sq_knlx[row.sq_knlx] }}</span>
</template>
<template v-else-if="column.prop=='state_id'" scope="{row}">
<span :style="'color:'+row.statecolor">{{row.state_name}}</span>
</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:'view',data:row}">
查看
</el-dropdown-item>
<el-dropdown-item :command="{type:'openReview',data:row}">
审核
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
</template>
<template #edit>
<info ref="info2" :handle="true" label="校工会经办人审核" :panes="[2]">
<template #handle>
<el-form :model="formData" ref="form" :rules="formRules" label-position="right"
style="padding: 20px 0"
label-width="120px">
<el-form-item label="审核信息&emsp;" label-width="135px" class="view-header">
</el-form-item>
<el-row gutter="20">
<el-col :span="12">
<el-form-item prop="username" label="审核人员">
<el-input v-model="formData.username"
disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="time" label="审核时间">
<el-input v-model="formData.auditTime" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item prop="opinion" label="审核意见">
<el-input type="textarea" v-model="formData.auditOpinion" rows="4" maxlength="500"
placeholder="请填写您的审核意见"></el-input>
</el-form-item>
<el-form-item prop="sign" label="签&emsp;&emsp;字">
<sign :qz.sync="formData.auditSign"></sign>
</el-form-item>
</el-form>
<div style="float: right;margin: 20px 0">
<el-button @click="doReview(false)" :disabled="subDis" :loading="subLoading1">
</el-button>
<el-button type="primary" @click="doReview(true)" :disabled="subDis" :loading="subLoading2">
</el-button>
</div>
</template>
</info>
</template>
<template #view>
<info ref="info"></info>
</template>
</guava>
</div>
<script>
const vue = new Vue({
el: '#app',
mixins: [initTableMixins],
components: {
'guava': httpVueLoader('/components/plugins/Guava.vue'),
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.0'),
'info': httpVueLoader('/components/difficulty/info.vue'),
},
data() {
return {
subDis: false,
subLoading1: false,
subLoading2: false,
pageForm: {
year: new Date().getFullYear() + "",
isAudit: false,
searchName: "sbzr.loginname"
},
unitOptions: [],
formRules: {
auditOpinion: [{required: true, message: '必填', trigger: ['blur', 'change']}],
},
unions: [],
units: [],
tableColumns: [
{prop: 'sbzrname', label: '受补助人姓名'},
{prop: 'sbzrloginname', label: '受补助人工号'},
{prop: 'sqrname', label: '申请人'},
{prop: 'sqrunionname', label: '所在工会', sortable: true},
{prop: 'unitname', label: '所在单位', sortable: true},
{prop: 'lxfs', label: '联系方式'},
{prop: 'sq_knlx', label: '困难类型', sortable: true},
{prop: 'sqsj', label: '申请时间', sortable: true},
{prop: 'state_id', label: '申请状态', sortable: true},
],
}
},
methods: {
dropdownCommand(command) {
const {type, data} = command
if (type == 'view') {
this.openView(data)
} else if (type == 'openReview') {
this.openReview(data)
}
},
openView(row) {
const {id} = row
this.$refs.info.getInfo(id)
this.$refs.guava.view()
},
async openReview(row) {
const {id} = row
this.formData = {
id,
username: "${@shiro.getPrincipalProperty('username')}",
auditTime: moment().format('YYYY-MM-DD'),
}
this.$refs.info2.getInfo(id)
this.$refs.guava.edit()
if (this.$refs['form']) {
this.$refs['form'].resetFields()
}
},
async doReview(flag) {
this.$refs["form"].validate(async (valid) => {
if (valid) {
this.formData.pass = flag
this.subDis = true
flag ? this.subLoading2 = true : this.subLoading1 = true
const resp = await $.post(loc() + "/doReview", this.formData)
requestLaterMsgFun(vue, resp, () => {
this.pageData()
this.$refs.guava.index()
}, null, (v) => {
this.subDis = false
this.subLoading1 = false
this.subLoading2 = false
})
}
})
},
async flushUnits() {
this.$set(this.pageForm, "unitId", "")
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
this.units = await getUnits(this.pageForm.unionId)
} else {
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
}
},
},
async created() {
this.pageData()
this.unions = await getUnions()
this.flushUnits()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,338 @@
<!--#
layout("/layouts/platform.html"){
#-->
<!--校工会常务副主席审核-->
<div id="app" class="platform" v-cloak>
<guava ref="guava">
<template>
<el-card shadow="never">
<div class="search">
<div class="search-item">
<div class="search-item-label">选择年:</div>
<div class="search-item-option">
<el-date-picker
v-model="pageForm.year"
type="year"
value-format="yyyy" style="width: 100%"
placeholder="选择年">
</el-date-picker>
</div>
</div>
<div class="search-item">
<div class="search-item-label">被慰问人:</div>
<div class="search-item-option">
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
@keyup.enter.native="doSearch">
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
style="width: 140px;">
<el-option label="受助人工号" value="sbzr.loginname"></el-option>
<el-option label="受助人姓名" value="sbzr.username"></el-option>
</el-select>
</el-input>
</div>
</div>
<template v-if="searchMore">
<div class="search-item">
<div class="search-item-label">所属工会:</div>
<div class="search-item-option">
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
clearable="true"
@change="flushUnits" @clear="flushUnits"
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}"
filterable="true">
<el-option v-for="item in unions" :label="item.unionname"
:value="item.id"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">所属单位:</div>
<div class="search-item-option">
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
clearable="true"
filterable="true">
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
</el-select>
</div>
</div>
</template>
<div class="search-query">
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
<more v-model="searchMore"></more>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt10">
<table-tool label="帮扶列表" :app="this">
<template #func>
<el-radio-group v-model="pageForm.isAudit" @change="doSearch" size="small"
style="margin-bottom: -7.5px">
<el-radio-button :label="true">已审核</el-radio-button>
<el-radio-button :label="false">未审核</el-radio-button>
</el-radio-group>
</template>
</table-tool>
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
v-loading="tableLoading" :size="tableSize" class="vi-table">
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
show-overflow-tooltip
:label="column.label"
:prop="column.prop"
:sortable="column.sortable"
>
<template v-if="column.prop=='sbzrname'" scope="{row}">
{{row.sbzrname?row.sbzrname:row.sqrname}}
</template>
<template v-else-if="column.prop=='unitname'" scope="{row}">
{{row.unitname?row.unitname:row.sbzrunitname}}
</template>
<template v-else-if="column.prop=='sq_knlx'" scope="{row}">
<span> {{ difficulty.sq_knlx[row.sq_knlx] }}</span>
</template>
<template v-else-if="column.prop=='state_id'" scope="{row}">
<span :style="'color:'+row.statecolor">{{row.state_name}}</span>
</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:'view',data:row}">
查看
</el-dropdown-item>
<el-dropdown-item :command="{type:'openReview',data:row}">
审核
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
</template>
<template #edit>
<info ref="info2" :handle="true" label="校工会常务副主席审核" :panes="[2]">
<template #handle>
<el-form :model="formData" ref="form" :rules="formRules" label-position="right"
style="padding: 20px 0"
label-width="120px">
<el-form-item label="审核信息&emsp;" label-width="135px" class="view-header">
</el-form-item>
<el-row gutter="20">
<el-col :span="12">
<el-form-item prop="username" label="审核人员">
<el-input v-model="formData.username"
disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="time" label="审核时间">
<el-input v-model="formData.auditTime" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row gutter="20">
<el-col :span="12">
<el-form-item prop="jb" label="级&emsp;&emsp;别">
<el-select v-model="formData.jb" placeholder="请选择级别"
clearable style="width: 100%">
<el-option
v-for="item in jbOptions"
:key="item"
:label="item"
:value="item">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="xghbzje" label="补助金额">
<el-input v-model="formData.xghbzje"
onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
placeholder="请输入补助金额" type="number">
<template style="border: none;background-color: white;" slot="append">
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item prop="opinion" label="审核意见">
<el-input type="textarea" v-model="formData.auditOpinion" rows="4" maxlength="500"
placeholder="请填写您的审核意见"></el-input>
</el-form-item>
<el-form-item prop="sign" label="签&emsp;&emsp;字">
<sign :qz.sync="formData.auditSign"></sign>
</el-form-item>
</el-form>
<div style="float: right;margin: 20px 0">
<el-button @click="doReview(false)" :disabled="subDis" :loading="subLoading1">
</el-button>
<el-button type="primary" @click="doReview(true)" :disabled="subDis" :loading="subLoading2">
</el-button>
</div>
</template>
</info>
</template>
<template #view>
<info ref="info"></info>
</template>
</guava>
</div>
<script>
const vue = new Vue({
el: '#app',
mixins: [initTableMixins],
components: {
'guava': httpVueLoader('/components/plugins/Guava.vue'),
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.0'),
'info': httpVueLoader('/components/difficulty/info.vue'),
},
data() {
return {
jbOptions: ['甲级', '乙级', '丙级'],
subDis: false,
subLoading1: false,
subLoading2: false,
pageForm: {
year: new Date().getFullYear() + "",
isAudit: false,
searchName: "sbzr.loginname"
},
unitOptions: [],
formRules: {
auditOpinion: [{required: true, message: '必填', trigger: ['blur', 'change']}],
},
unions: [],
units: [],
tableColumns: [
{prop: 'sbzrname', label: '受补助人姓名'},
{prop: 'sbzrloginname', label: '受补助人工号'},
{prop: 'sqrname', label: '申请人'},
{prop: 'sqrunionname', label: '所在工会',sortable: true},
{prop: 'unitname', label: '所在单位',sortable: true},
{prop: 'lxfs', label: '联系方式'},
{prop: 'sq_knlx', label: '困难类型', sortable: true},
{prop: 'sqsj', label: '申请时间', sortable: true},
{prop: 'state_id', label: '申请状态', sortable: true},
],
}
},
methods: {
dropdownCommand(command) {
const {type, data} = command
if (type == 'view') {
this.openView(data)
} else if (type == 'openReview') {
this.openReview(data)
}
},
openView(row) {
const {id} = row
this.$refs.info.getInfo(id)
this.$refs.guava.view()
},
openReview(row) {
const {id} = row
this.formData = {
id,
username: "${@shiro.getPrincipalProperty('username')}",
auditTime: moment().format('YYYY-MM-DD'),
}
this.$refs.info2.getInfo(id)
this.$refs.guava.edit()
if (this.$refs['form']) {
this.$refs['form'].resetFields()
}
},
async doReview(flag) {
this.$refs["form"].validate(async (valid) => {
if (valid) {
this.formData.pass = flag
this.subDis = true
flag ? this.subLoading2 = true : this.subLoading1 = true
const resp = await $.post(loc() + "/doReview", this.formData)
requestLaterMsgFun(vue, resp, () => {
this.pageData()
this.$refs.guava.index()
}, null, (v) => {
this.subDis = false
this.subLoading1 = false
this.subLoading2 = false
})
}
})
},
async flushUnits() {
this.$set(this.pageForm, "unitId", "")
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
this.units = await getUnits(this.pageForm.unionId)
} else {
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
}
},
},
async created() {
this.pageData()
this.unions = await getUnions()
this.flushUnits()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,310 @@
<!--#
layout("/layouts/platform.html"){
#-->
<!--校工会副主席审核-->
<div id="app" class="platform" v-cloak>
<guava ref="guava">
<template>
<el-card shadow="never">
<div class="search">
<div class="search-item">
<div class="search-item-label">选择年:</div>
<div class="search-item-option">
<el-date-picker
v-model="pageForm.year"
type="year"
value-format="yyyy" style="width: 100%"
placeholder="选择年">
</el-date-picker>
</div>
</div>
<div class="search-item">
<div class="search-item-label">被慰问人:</div>
<div class="search-item-option">
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
@keyup.enter.native="doSearch">
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
style="width: 140px;">
<el-option label="受助人工号" value="sbzr.loginname"></el-option>
<el-option label="受助人姓名" value="sbzr.username"></el-option>
</el-select>
</el-input>
</div>
</div>
<template v-if="searchMore">
<div class="search-item">
<div class="search-item-label">所属工会:</div>
<div class="search-item-option">
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
clearable="true"
@change="flushUnits" @clear="flushUnits"
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}"
filterable="true">
<el-option v-for="item in unions" :label="item.unionname"
:value="item.id"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">所属单位:</div>
<div class="search-item-option">
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
clearable="true"
filterable="true">
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
</el-select>
</div>
</div>
</template>
<div class="search-query">
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
<more v-model="searchMore"></more>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt10">
<table-tool label="帮扶列表" :app="this">
<template #func>
<el-radio-group v-model="pageForm.isAudit" @change="doSearch" size="small"
style="margin-bottom: -7.5px">
<el-radio-button :label="true">已审核</el-radio-button>
<el-radio-button :label="false">未审核</el-radio-button>
</el-radio-group>
</template>
</table-tool>
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
v-loading="tableLoading" :size="tableSize" class="vi-table">
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
show-overflow-tooltip
:label="column.label"
:prop="column.prop"
:sortable="column.sortable"
>
<template v-if="column.prop=='sbzrname'" scope="{row}">
{{row.sbzrname?row.sbzrname:row.sqrname}}
</template>
<template v-else-if="column.prop=='unitname'" scope="{row}">
{{row.unitname?row.unitname:row.sbzrunitname}}
</template>
<template v-else-if="column.prop=='sq_knlx'" scope="{row}">
<span> {{ difficulty.sq_knlx[row.sq_knlx] }}</span>
</template>
<template v-else-if="column.prop=='state_id'" scope="{row}">
<span :style="'color:'+row.statecolor">{{row.state_name}}</span>
</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:'view',data:row}">
查看
</el-dropdown-item>
<el-dropdown-item :command="{type:'openReview',data:row}">
审核
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
</template>
<template #edit>
<info ref="info2" :handle="true" label="校工会副主席审核" :panes="[2]">
<template #handle>
<el-form :model="formData" ref="form" :rules="formRules" label-position="right"
style="padding: 20px 0"
label-width="120px">
<el-form-item label="审核信息&emsp;" label-width="135px" class="view-header">
</el-form-item>
<el-row gutter="20">
<el-col :span="12">
<el-form-item prop="username" label="审核人员">
<el-input v-model="formData.username"
disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="time" label="审核时间">
<el-input v-model="formData.auditTime" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item prop="opinion" label="审核意见">
<el-input type="textarea" v-model="formData.auditOpinion" rows="4" maxlength="500"
placeholder="请填写您的审核意见"></el-input>
</el-form-item>
<el-form-item prop="sign" label="签&emsp;&emsp;字">
<sign :qz.sync="formData.auditSign"></sign>
</el-form-item>
</el-form>
<div style="float: right;margin: 20px 0">
<el-button @click="doReview(false)" :disabled="subDis" :loading="subLoading1">
</el-button>
<el-button type="primary" @click="doReview(true)" :disabled="subDis" :loading="subLoading2">
</el-button>
</div>
</template>
</info>
</template>
<template #view>
<info ref="info"></info>
</template>
</guava>
</div>
<script>
const vue = new Vue({
el: '#app',
mixins: [initTableMixins],
components: {
'guava': httpVueLoader('/components/plugins/Guava.vue'),
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.0'),
'info': httpVueLoader('/components/difficulty/info.vue'),
},
data() {
return {
subDis: false,
subLoading1: false,
subLoading2: false,
pageForm: {
year: new Date().getFullYear() + "",
isAudit: false,
searchName: "sbzr.loginname"
},
unitOptions: [],
formRules: {
auditOpinion: [{required: true, message: '必填', trigger: ['blur', 'change']}],
},
unions: [],
units: [],
tableColumns: [
{prop: 'sbzrname', label: '受补助人姓名'},
{prop: 'sbzrloginname', label: '受补助人工号'},
{prop: 'sqrname', label: '申请人'},
{prop: 'sqrunionname', label: '所在工会',sortable: true},
{prop: 'unitname', label: '所在单位',sortable: true},
{prop: 'lxfs', label: '联系方式'},
{prop: 'sq_knlx', label: '困难类型', sortable: true},
{prop: 'sqsj', label: '申请时间', sortable: true},
{prop: 'state_id', label: '申请状态', sortable: true},
],
}
},
methods: {
dropdownCommand(command) {
const {type, data} = command
if (type == 'view') {
this.openView(data)
} else if (type == 'openReview') {
this.openReview(data)
}
},
openView(row) {
const {id} = row
this.$refs.info.getInfo(id)
this.$refs.guava.view()
},
openReview(row) {
const {id} = row
this.formData = {
id,
username: "${@shiro.getPrincipalProperty('username')}",
auditTime: moment().format('YYYY-MM-DD'),
}
this.$refs.info2.getInfo(id)
this.$refs.guava.edit()
if (this.$refs['form']) {
this.$refs['form'].resetFields()
}
},
async doReview(flag) {
this.$refs["form"].validate(async (valid) => {
if (valid) {
this.formData.pass = flag
this.subDis = true
flag ? this.subLoading2 = true : this.subLoading1 = true
const resp = await $.post(loc() + "/doReview", this.formData)
requestLaterMsgFun(vue, resp, () => {
this.pageData()
this.$refs.guava.index()
}, null, (v) => {
this.subDis = false
this.subLoading1 = false
this.subLoading2 = false
})
}
})
},
async flushUnits() {
this.$set(this.pageForm, "unitId", "")
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
this.units = await getUnits(this.pageForm.unionId)
} else {
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
}
},
},
async created() {
this.pageData()
this.unions = await getUnions()
this.flushUnits()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,308 @@
<!--#
layout("/layouts/platform.html"){
#-->
<!--工会主席-->
<div id="app" class="platform" v-cloak>
<guava ref="guava">
<template>
<el-card shadow="never">
<div class="search">
<div class="search-item">
<div class="search-item-label">选择年:</div>
<div class="search-item-option">
<el-date-picker
v-model="pageForm.year"
type="year"
value-format="yyyy" style="width: 100%"
placeholder="选择年">
</el-date-picker>
</div>
</div>
<div class="search-item">
<div class="search-item-label">被慰问人:</div>
<div class="search-item-option">
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
@keyup.enter.native="doSearch">
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
style="width: 140px;">
<el-option label="受助人工号" value="sbzr.loginname"></el-option>
<el-option label="受助人姓名" value="sbzr.username"></el-option>
</el-select>
</el-input>
</div>
</div>
<template v-if="searchMore">
<div class="search-item">
<div class="search-item-label">所属工会:</div>
<div class="search-item-option">
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
clearable="true"
@change="flushUnits" @clear="flushUnits"
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}"
filterable="true">
<el-option v-for="item in unions" :label="item.unionname"
:value="item.id"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">所属单位:</div>
<div class="search-item-option">
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
clearable="true"
filterable="true">
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
</el-select>
</div>
</div>
</template>
<div class="search-query">
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
<more v-model="searchMore"></more>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt10">
<table-tool label="帮扶列表" :app="this">
<template #func>
<el-radio-group v-model="pageForm.isAudit" @change="doSearch" size="small"
style="margin-bottom: -7.5px">
<el-radio-button :label="true">已审核</el-radio-button>
<el-radio-button :label="false">未审核</el-radio-button>
</el-radio-group>
</template>
</table-tool>
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder"
v-loading="tableLoading" :size="tableSize" class="vi-table">
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
show-overflow-tooltip
:label="column.label"
:prop="column.prop"
:sortable="column.sortable"
>
<template v-if="column.prop=='sbzrname'" scope="{row}">
{{row.sbzrname?row.sbzrname:row.sqrname}}
</template>
<template v-else-if="column.prop=='unitname'" scope="{row}">
{{row.unitname?row.unitname:row.sbzrunitname}}
</template>
<template v-else-if="column.prop=='sq_knlx'" scope="{row}">
<span> {{ difficulty.sq_knlx[row.sq_knlx] }}</span>
</template>
<template v-else-if="column.prop=='state_id'" scope="{row}">
<span :style="'color:'+row.statecolor">{{row.state_name}}</span>
</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:'view',data:row}">
查看
</el-dropdown-item>
<el-dropdown-item :command="{type:'openReview',data:row}">
审核
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
</template>
<template #edit>
<info ref="info2" :handle="true" label="工会主席审核" :panes="[2]">
<template #handle>
<el-form :model="formData" ref="form" :rules="formRules" label-position="right"
style="padding: 20px 0"
label-width="120px">
<el-form-item label="审核信息&emsp;" label-width="135px" class="view-header">
</el-form-item>
<el-row gutter="20">
<el-col :span="12">
<el-form-item prop="username" label="审核人员">
<el-input v-model="formData.username"
disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="time" label="审核时间">
<el-input v-model="formData.auditTime" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item prop="opinion" label="审核意见">
<el-input type="textarea" v-model="formData.auditOpinion" rows="4" maxlength="500"
placeholder="请填写您的审核意见"></el-input>
</el-form-item>
<el-form-item prop="sign" label="签&emsp;&emsp;字">
<sign :qz.sync="formData.auditSign"></sign>
</el-form-item>
</el-form>
<div style="float: right;margin: 20px 0">
<el-button @click="doReview(false)" :disabled="subDis" :loading="subLoading1">
</el-button>
<el-button type="primary" @click="doReview(true)" :disabled="subDis" :loading="subLoading2">
</el-button>
</div>
</template>
</info>
</template>
<template #view>
<info ref="info"></info>
</template>
</guava>
</div>
<script>
const vue = new Vue({
el: '#app',
mixins: [initTableMixins],
components: {
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.0'),
'guava': httpVueLoader('/components/plugins/Guava.vue'),
'info': httpVueLoader('/components/difficulty/info.vue'),
},
data() {
return {
subDis: false,
subLoading1: false,
subLoading2: false,
pageForm: {
year: new Date().getFullYear() + "",
isAudit: false,
searchName: "sbzr.loginname"
},
unitOptions: [],
formRules: {
auditOpinion: [{required: true, message: '必填', trigger: ['blur', 'change']}],
},
unions: [],
units: [],
tableColumns: [
{prop: 'sbzrname', label: '受补助人姓名'},
{prop: 'sbzrloginname', label: '受补助人工号'},
{prop: 'sqrname', label: '申请人'},
{prop: 'sqrunionname', label: '所在工会', sortable: true},
{prop: 'unitname', label: '所在单位', sortable: true},
{prop: 'lxfs', label: '联系方式'},
{prop: 'sq_knlx', label: '困难类型', sortable: true},
{prop: 'sqsj', label: '申请时间', sortable: true},
{prop: 'state_id', label: '申请状态', sortable: true},
],
}
},
methods: {
dropdownCommand(command) {
const {type, data} = command
if (type == 'view') {
this.openView(data)
} else if (type == 'openReview') {
this.openReview(data)
}
},
openView(row) {
const {id} = row
this.$refs.info.getInfo(id)
this.$refs.guava.view()
},
openReview(row) {
const {id} = row
this.formData = {
id,
username: "${@shiro.getPrincipalProperty('username')}",
auditTime: moment().format('YYYY-MM-DD'),
}
this.$refs.info2.getInfo(id)
this.$refs.guava.edit()
if (this.$refs['form']) {
this.$refs['form'].resetFields()
}
},
async doReview(flag) {
this.$refs["form"].validate(async (valid) => {
if (valid) {
this.formData.pass = flag
this.subDis = true
flag ? this.subLoading2 = true : this.subLoading1 = true
const resp = await $.post(loc() + "/doReview", this.formData)
requestLaterMsgFun(vue, resp, () => {
this.pageData()
this.$refs.guava.index()
}, null, (v) => {
this.subDis = false
this.subLoading1 = false
this.subLoading2 = false
})
}
})
},
async flushUnits() {
this.$set(this.pageForm, "unitId", "")
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
this.units = await getUnits(this.pageForm.unionId)
} else {
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
}
},
},
async created() {
this.pageData()
this.unions = await getUnions()
this.flushUnits()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,869 @@
<!--#
layout("/layouts/platform.html"){
#-->
<!--
职工困难库页面
李耀威
2019 6 12
-->
<div id="app" v-cloak>
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword">
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询" style="width: 100px;">
<el-option label="职工号" value="loginname"></el-option>
<el-option label="姓名" value="username"></el-option>
</el-select>
</el-input>
</div>
<div class="btn-group tool-button mt5" v-if="identity!=2">
<el-select placeholder="请选择基层工会" v-model="pageForm.fghid" clearable="true" filterable="true"
style="width:200px;">
<el-option v-for="item in ghOptions" :label="item.unionname" :value="item.unioninfomgr_id"></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-button icon="el-icon-search" @click="doSearch"
style="background-color:#409eff;color: white;"></el-button>
</div>
<div class="pull-right offscreen-right mt5">
<el-button size="medium" icon="el-icon-plus" @click="seeadd">添加困难职工</el-button>
<el-button size="medium" type="primary" @click="lsjl">历史记录查询</el-button>
</div>
</el-row>
<el-row class="el-table-container">
<el-table
:data="tableData"
size="small"
header-align="center"
style="width: 100%"
@sort-change="pageOrder"
>
<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
prop="loginname"
label="工号"
header-align="center"
align="center">
</el-table-column>
<el-table-column
prop="username"
label="姓名"
header-align="center"
align="center">
</el-table-column>
<el-table-column
sortable
prop="sex"
label="性别"
header-align="center"
align="center">
</el-table-column>
<el-table-column
prop="mobile"
label="电话"
header-align="center"
align="center">
</el-table-column>
<el-table-column
sortable
prop="unitname"
label="所属单位"
header-align="center"
align="center">
</el-table-column>
<el-table-column
sortable
v-if="identity!=2"
prop="fghname"
label="所属基层工会"
header-align="center"
align="center">
</el-table-column>
<el-table-column
prop="userOnline"
label="操作"
header-align="center" width="180px"
align="center">
<template slot-scope="scope">
<!-- <el-button type="primary" size="mini" @click="openEdit(scope.row.lx_id)">编辑</el-button>-->
<!-- <el-button type="danger" size="mini" @click="doDelete(scope.row.lx_id)">删除</el-button>-->
<el-button @click="openDetail(scope.row.id)" size="mini">查看</el-button>
<el-button type="danger" size="mini" @click="del(scope.row.id)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<el-row class="el-pagination-container">
<el-pagination
@size-change="pageSizeChange"
@current-change="pageNumberChange"
:current-page="pageForm.pageNumber"
:page-sizes="[10, 20, 30, 50]"
:page-size="pageForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="pageForm.totalCount">
</el-pagination>
</el-row>
<el-dialog
class="ViewDialogClass"
title="个人信息"
:visible.sync="detailDialogVisible"
width="60%">
<el-collapse v-model="activeName">
<el-collapse-item title="基本信息" name="1">
<table style="width: 100%">
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">&emsp;&emsp;</td>
<td class="tpb">{{detailData.username}}</td>
<td class="tpa">&emsp;&emsp;</td>
<td class="tpb">{{detailData.sex}}</td>
<td class="tpa">出生日期</td>
<td class="tpb">{{detailData.birthday}}</td>
<td rowspan="3">
<img v-if="detailData.imgurl!=''&&detailData.imgurl!=null" :src="showPic"
style="height: 140px;width: 100%;border:none">
<div v-if="(detailData.imgurl==''||detailData.imgurl==null)" style="text-align: center">
<el-label>暂无图片</el-label>
</div>
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">出生地点</td>
<td class="tpb">{{detailData.csdd}}</td>
<td class="tpa">&emsp;&emsp;</td>
<td class="tpb">{{detailData.mz}}</td>
<td class="tpa">政治面貌</td>
<td class="tpb">{{detailData.zzmc}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">&emsp;&emsp;</td>
<td class="tpb">{{detailData.gz}}</td>
<td class="tpa">&emsp;&emsp;</td>
<td class="tpb">{{detailData.zc}}</td>
<td class="tpa">联系电话</td>
<td class="tpb">{{detailData.mobile}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa" colspan="1">所在部门</td>
<td class="tpb" colspan="3">{{detailData.unitname}}</td>
<td class="tpa" colspan="1">现任职务</td>
<td class="tpb" colspan="2">{{detailData.zw}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa" colspan="7">个 人 简 历</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpb" colspan="7" v-if="(typeof(detailData.grjl)==='undefined')">暂无个人简历信息</td>
<td class="tpc" colspan="7" v-if="!(typeof(detailData.grjl)==='undefined')">
<div v-html="detailData.grjl"></div>
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa" colspan="7">家 庭 成 员</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpb" colspan="7" v-if="(typeof(detailData.jtcy)==='undefined')">暂无家庭成员信息</td>
<td class="tpc" colspan="7" v-if="!(typeof(detailData.jtcy)==='undefined')">
<div v-html="detailData.jtcy"></div>
</td>
</tr>
</table>
</el-collapse-item>
<el-collapse-item title="困难帮扶申请记录" name="2">
<el-table
:data="gyqss"
size="small"
header-align="center"
style="width: 100%"
@sort-change='rolePageOrder'
>
<el-table-column
label="序号"
type="index"
header-align="center"
align="center"
>
<template scope="scope">
<span>{{scope.$index+(rolePageForm.pageNumber - 1) * rolePageForm.pageSize + 1}} </span>
</template>
</el-table-column>
<el-table-column
sortable
prop="sq_sqsj"
label="申请时间"
header-align="center"
align="center">
</el-table-column>
<el-table-column
prop="sq_knbzsqly"
label="申请理由"
header-align="center"
align="center">
</el-table-column>
<el-table-column
sortable
prop="sq_sqzt"
label="状态"
header-align="center"
align="center">
<template scope="scope">
<el-tag type="warning" v-if="scope.row.sq_sqzt==1">待基层工会位审核</el-tag>
<el-tag type="danger" v-if="scope.row.sq_sqzt==2">基层工会审核不通过</el-tag>
<el-tag type="warning" v-if="scope.row.sq_sqzt==3">待校工会审核</el-tag>
<el-tag type="danger" v-if="scope.row.sq_sqzt==4">校工会审核不通过</el-tag>
<el-tag type="success" v-if="scope.row.sq_sqzt==5">申请成功</el-tag>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="rolePageSizeChange"
@current-change="rolePageNumberChange"
:page-size="rolePageForm.pageSize"
:total="rolePageForm.totalCount"
layout="prev, pager, next"
>
</el-pagination>
</el-collapse-item>
</el-collapse>
<span slot="footer" class="dialog-footer">
<el-button type="danger" @click="detailDialogVisible = false">关闭</el-button>
</span>
</el-dialog>
<el-dialog
class="ViewDialogClass"
title="新增困难职工"
:visible.sync="addDialogVisible"
width="60%">
<div v-show="firstDialogVisible==true">
<el-row>
<div class="btn-group tool-button mt5">
<el-input size="small" clearable v-model="kxryPageForm.searchName" placeholder="请输入工号或姓名查找"
style="width: 200px"></el-input>
</div>
<div class="btn-group tool-button mt5">
<el-button size="small" type="primary" icon="el-icon-search" @click="kxryPageData"></el-button>
</div>
</el-row>
<el-row style="margin-top: 10px;">
<el-table
ref="kxryTableData"
:row-key="getRowKeys"
:data="kxryTableData"
size="small"
header-align="center"
style="width: 100%"
@select="kxrySelect"
@select-all="kxrySelectAll"
>
<el-table-column
:reserve-selection="true"
type="selection"
width="30">
</el-table-column>
</el-table-column>
<el-table-column
prop="loginname"
label="教工号"
header-align="center"
align="center"
>
</el-table-column>
<el-table-column
prop="username"
label="姓名"
header-align="center"
align="center"
:show-overflow-tooltip="true"
>
</el-table-column>
<el-table-column
prop="sex"
label="性别"
header-align="center"
align="center"
>
</el-table-column>
<el-table-column
prop="name"
label="所属单位"
header-align="center"
align="center"
:show-overflow-tooltip="true">
</el-table-column>
</el-table>
</el-row>
<el-row style="margin-top: 15px">
<el-pagination
@size-change="kxryPageSizeChange"
@current-change="kxryPageNumberChange"
:current-page="kxryPageForm.pageNumber"
:page-sizes="[5, 10]"
:page-size="kxryPageForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="kxryPageForm.totalCount">
</el-pagination>
</el-row>
</div>
<div v-show="secondDialogVisible==true">
<el-row>
<el-table
class="myT"
:data="kn"
border
style="width: 100%">
<el-table-column
prop="loginname"
label="工号"
align-="center"
header-align="center"
width="100px"
align="center">
</el-table-column>
<el-table-column
prop="username"
header-align="center"
align="center"
label="姓名">
</el-table-column>
<el-table-column
prop="sex"
header-align="center"
align="center"
label="性别">
</el-table-column>
<el-table-column
prop="name"
header-align="center"
align="center"
label="所属单位">
</el-table-column>
</el-table>
</el-row>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="qx">取 消</el-button>
<el-button type="primary" v-if="firstDialogVisible==true&&isNext==true" @click="next">下一步</el-button>
<el-button type="primary" v-if="firstDialogVisible==true&&isNext==false" disabled>下一步</el-button>
<el-button type="primary" v-if="secondDialogVisible==true" @click="firstDialogVisible=true;secondDialogVisible=false">上一步</el-button>
<el-button type="success" v-if="secondDialogVisible==true" @click="submit">提 交</el-button>
</span>
</el-dialog>
<el-dialog
class="ViewDialogClass"
title="历史记录展示"
:visible.sync="showDialogVisible"
width="60%">
<el-row>
<div class="btn-group tool-button mt5">
<el-input size="small" v-model="showPageForm.searchName" placeholder="请输入工号或姓名查找"
style="width: 200px"></el-input>
</div>
<div class="btn-group tool-button mt5">
<el-button size="small" type="primary" icon="el-icon-search" @click="showPageForm"></el-button>
</div>
</el-row>
<el-row style="margin-top: 10px;">
<el-table
:data="showTableData"
size="small"
header-align="center"
style="width: 100%"
>
</el-table-column>
<el-table-column
prop="loginname"
label="教工号"
header-align="center"
align="center"
>
</el-table-column>
<el-table-column
prop="username"
label="姓名"
header-align="center"
align="center"
:show-overflow-tooltip="true"
>
</el-table-column>
<el-table-column
prop="sex"
label="性别"
header-align="center"
align="center"
>
</el-table-column>
<el-table-column
prop="qxsj"
label="取消时间"
header-align="center"
align="center"
>
</el-table-column>
<el-table-column
prop="name"
label="所属单位"
header-align="center"
align="center"
:show-overflow-tooltip="true">
</el-table-column>
</el-table>
</el-row>
<el-row style="margin-top: 15px">
<el-pagination
@size-change="showPageSizeChange"
@current-change="showPageNumberChange"
:current-page="showPageForm.pageNumber"
:page-sizes="[5, 10]"
:page-size="showPageForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="showPageForm.totalCount">
</el-pagination>
</el-row>
</el-dialog>
</div>
<script>
var vue = new Vue({
el: '#app',
data: function () {
var self = this
var validateLx_wtsl = function (rule, value, callback) {
if (typeof (value) === "undefined") {
callback(new Error(''));
} else {
callback()
}
}
return {
getRowKeys: function (row) {
return row.id;
},
userid: '',
activeName: ['1', '2'],
detailData: {},
detailDialogVisible: false,
ghOptions: [],
identity: '',
tableData: [],
pageForm: {
searchName: "username",
searchKeyword: "",
pageNumber: 1,
pageSize: 10,
totalCount: 0,
pageOrderName: "",
pageOrderBy: ""
},
showPic: '',
formData: {},
editDialogVisible: false,
formRules: {
lx_name: [{required: true, message: '', trigger: ['blur', 'change']}],
lx_wtsl: [{validator: validateLx_wtsl, trigger: ['blur', 'change']}],
lx_bz: [{required: false, message: '', trigger: ['blur', 'change']}],
},
rolePageForm: {
searchName: '',
searchKeyword: '',
pageNumber: 1,
pageSize: 10,
totalCount: 0,
pageOrderName: "",
pageOrderBy: "",
userid: '',
},
gyqss:[],
addDialogVisible:false,
kxryTableData:[],
kxryPageForm: {
searchName: '',
pageNumber: 1,
pageSize: 5,
totalCount: 0,
},
firstDialogVisible: false,
isNext: false,
kn:[],
secondDialogVisible:false,
showDialogVisible:false,
showPageForm:{
pageNumber: 1,
pageSize: 10,
totalCount: 0,
searchName:""
},
showTableData:[]
}
},
methods: {
rolePageData: function () {
var self = this;
sublime.showLoadingbar();//显示loading
$.post('/platform/knbf/knbfsq/data', self.rolePageForm, function (data) {
sublime.closeLoadingbar();//关闭loading
if (data.code == 0) {
self.gyqss = data.data.list
self.rolePageForm.totalCount = data.data.totalCount;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
},
rolePageNumberChange: function (val) {//页码更新操作
this.rolePageForm.pageNumber = val;
this.rolePageData();
},
rolePageSizeChange: function (val) {//分页大小更新操作
this.rolePageForm.pageSize = val;
this.rolePageData();
},
rolePageOrder: function (column) {//按字段排序
switch (column.order) {
case 'descending':
column.order = 'desc'
break
case "ascending":
column.order = 'asc'
break
}
this.rolePageForm.pageOrderName = column.prop;
this.rolePageForm.pageOrderBy = column.order;
this.rolePageData();
},
/*计算年龄*/
calAge: function (birthday) {
// 获得今天的时间
var date = new Date();
var startDate = new Date(birthday);
var newDate = date.getTime() - startDate.getTime();
var age = Math.ceil(newDate / 1000 / 60 / 60 / 24 / 365);
if (isNaN(age)) {
age = "";
}
return age;
},
openDetail: function (userid) {
var self = this;
self.rolePageForm.userid = userid
self.rolePageData()
$.post(base + "/platform/knbf/knzgk/queryDetail", {userid: userid}, function (data) {
if (data.code == 0) {
self.detailData = data.data;
self.showPic = base + "/platform/hy/hyda/showPic?filePath=" + data.data.imgurl;
self.detailData.age = self.calAge(self.detailData.birthday);
self.detailDialogVisible = true;
}
}, "json");
},
doDelete: function (id) {
var self = this;
this.$confirm('确定要删除吗', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: function (a, b) {
if ("confirm" == a) {//确认后再执行
$.post(base + "/platform/zgfw/wjdclx/delete", {lx_id: id}, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
}
});
},
openEdit: function (id) {
var self = this;
this.formData = {};
if (this.$refs["editForm"])
this.$refs["editForm"].resetFields();
$.get("/platform/zgfw/wjdclx/queryDetail", {lx_id: id}, function (data) {
if (data.code == 0) {
self.formData = data.data
self.formData.lx_wtsl = self.formData.lx_wtsl.toString()
self.editDialogVisible = true
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, 'json')
},
doEdit: function () {
var self = this;
self.$refs["editForm"].validate(function (valid) {
if (valid) {
$.post(base + "/platform/zgfw/wjdclx/doEdit", self.formData, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();//查询是带条件的,加载新建用户选择的单位用户数据
self.editDialogVisible = false;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
});
},
doAdd: function () {
var self = this;
self.$refs["addForm"].validate(function (valid) {
if (valid) {
$.post(base + "/platform/zgfw/wjdclx/doAdd", self.formData, function (data) {
if (data.code == 0) {
self.pageData();
self.addDialogVisible = false
self.$message({
message: '添加成功',
type: "success"
});
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
})
},
openAdd: function () {
var self = this;
this.addDialogVisible = true;
this.formData = {};//打开新增窗口,表单先清空
if (this.$refs["addForm"])
this.$refs["addForm"].resetFields();
},
doSearch: function () {
this.pageForm.pageNumber = 1;
this.pageData();
},
pageOrder: function (column) {//按字段排序
this.pageForm.pageOrderName = column.prop;
this.pageForm.pageOrderBy = column.order;
this.pageData();
},
pageNumberChange: function (val) {//页码更新操作
this.pageForm.pageNumber = val;
this.pageData();
},
pageSizeChange: function (val) {//分页大小更新操作
this.pageForm.pageSize = val;
this.pageData();
},
pageData: function () {//加载分页数据
var self = this;
sublime.showLoadingbar();//显示loading
$.post(base + "/platform/knbf/knzgk/data", self.pageForm, function (data) {
sublime.closeLoadingbar();//关闭loading
if (data.code == 0) {
self.tableData = data.data.list;
self.pageForm.totalCount = data.data.totalCount;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
},
getIdentity: function () {
var self = this
$.get(base + "/platform/zgfw/zgwwsh/getIdentity", function (data) {
self.identity = data
if (data == 2) {
self.quertyUnit2ByFgh()
} else {
self.queryAllFgh()
}
}, 'json')
},
quertyUnit2ByFgh: function () {
var self = this
$.get("/platform/zgfw/dbhzjjhyfghsq/quertyUnit2ByFgh", function (data) {
if (data.code == 0) {
self.unitOptions = data.data
}
})
},
queryAllFgh: function () {
var self = this
$.get(base + "/platform/zgfw/zgwwsh/queryAllFgh", function (data) {
self.ghOptions = data.data;
}, 'json')
},
kxrySelectAll: function (val) {
var self = this
self.kn=val
self.isNextFun()
},
kxrySelect: function (val, row) {
var self = this
self.kn=val;
self.isNextFun()
},
isNextFun: function () {
var self = this
self.isNext = self.kn.length > 0 ? true : false
},
next:function(){
var self=this;
self.firstDialogVisible= false;
self.secondDialogVisible=true;
},
kxryPageSizeChange: function (val) {//分页大小更新操作
this.kxryPageForm.pageSize = val;
this.kxryPageData();
},
kxryPageNumberChange: function (val) {//页码更新操作
this.kxryPageForm.pageNumber = val;
this.kxryPageData();
var self = this
},
kxryPageData:function () {
var self=this;
$.post(base+"/platform/knbf/knzgk/findUser",self.kxryPageForm,function (data) {
self.kxryTableData=data.data.list;
self.kxryPageForm.totalCount=data.data.totalCount;
})
},
del:function (id) {
var self=this;
var self = this;
this.$confirm('确定要删除吗', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: function (a, b) {
if ("confirm" == a) {
$.post(base+"/platform/knbf/knzgk/del",{userid:id},function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
})
}
}
})
},
seeadd:function () {
this.kn=[];
this.isNextFun();
this.addDialogVisible=true;
this.kxryPageData();
this.firstDialogVisible=true;
this.secondDialogVisible=false;
this.$refs.kxryTableData.clearSelection();
},
qx:function () {
this.addDialogVisible=false;
this.$refs.kxryTableData.clearSelection();
},
submit:function () {
var self=this;
var kns=JSON.stringify(self.kn);
$.post(base+"/platform/knbf/knzgk/submit",{kns:kns},function (data) {
if (data.code==0){
self.$message({
message: data.msg,
type: 'success'
});
self.addDialogVisible=false;
self.pageData();
} else{
self.$message({
message: data.msg,
type: 'error'
});
}
})
},
showPageNumberChange: function (val) {//页码更新操作
this.showPageForm.pageNumber = val;
this.showPageData();
},
showPageSizeChange: function (val) {//分页大小更新操作
this.showPageForm.pageSize = val;
this.showPageData();
},
lsjl:function () {
this.showDialogVisible=true;
this.showPageData();
},
showPageData:function () {
var self=this;
$.post(base+"/platform/knbf/knzgk/show",self.showPageForm,function (data) {
self.showTableData=data.data.list;
self.showPageForm.totalCount=data.data.totalCount;
})
}
},
created: function () {
this.pageData();
this.getIdentity()
}
})
</script>
<!--#
}
#-->
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,743 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
#app {
padding: 20px;
}
input[type=file] {
display: none;
}
.card-title {
margin-bottom: 20px;
letter-spacing: 2px;
display: flex;
justify-content: space-between;
height: 30px;
line-height: 30px;
}
.card-title .title-left {
font-size: 25px;
}
.card-title .title-right {
text-align: right;
font-size: 15px;
color: #0e78c5;
cursor: pointer;
}
.card-title .title-right:hover {
text-decoration: underline;
}
.el-date-editor.el-input, .el-select, .el-input-number {
width: 100%;
}
.addFormCard {
}
.excelCard {
min-height: 650px;
}
.excelBack {
font-size: 15px;
color: #0e78c5;
cursor: pointer;
}
.excelBack:hover {
text-decoration: underline;
}
.el-icon-loading {
font-size: 30px;
}
.el-input-number__decrease, .el-input-number__increase {
display: none;
}
.el-input-number .el-input__inner {
padding: 0 15px;
text-align: left;
}
.el-icon-eleme:before {
content: '元';
}
.submitClass {
text-align: right;
}
.ivu-upload {
display: inline;
}
.el-table th.gutter {
display: table-cell !important
}
.el-table {
margin-top: 100px;
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
}
input[type="number"] {
-moz-appearance: textfield;
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
}
.int_input .el-input-number__decrease {
display: none;
}
.int_input .el-input-number__increase {
display: none;
}
.int_input .el-input-number.is-controls-right .el-input__inner {
text-align: left;
}
.border_table .el-table--border td, .el-table--border th, .el-table__body-wrapper .el-table--border.is-scrolling-left ~ .el-table__fixed {
border-right: 1px solid #EBEEF5;
border-right-width: 1px;
border-right-style: solid;
border-right-color: rgb(235, 238, 245);
}
.border_table .el-table {
border: 1px solid #EBEEF5;
border-top-color: rgb(235, 238, 245);
border-top-style: solid;
border-top-width: 1px;
border-right-color: rgb(235, 238, 245);
border-right-style: solid;
border-right-width: 1px;
border-bottom-color: rgb(235, 238, 245);
border-bottom-style: solid;
border-bottom-width: 1px;
border-left-color: rgb(235, 238, 245);
border-left-style: solid;
border-left-width: 1px;
border-image-source: initial;
border-image-slice: initial;
border-image-width: initial;
border-image-outset: initial;
border-image-repeat: initial;
}
.border_table .el-table--border::after, .el-table--group::after {
width: 1px;
}
.textareaDiv {
white-space: pre-wrap;
white-space: -moz-pre-wrap;
white-space: -o-pre-wrap;
word-wrap: break-word;
}
</style>
<div id="app" v-cloak>
<transition name="el-zoom-in-top">
<el-card class="addFormCard" v-show="AddFormCardShow">
<div class="card-title">
<span class="title-left" style="font-size: 18px;font-weight: bold">新增历史数据</span>
<span class="title-right"
@click="AddFormCardShow=!AddFormCardShow;ExcelCardShow=!AddFormCardShow;">
从excel导入
<span slot="suffix">
<i class="el-icon-upload"></i>
</span>
</span>
</div>
<el-form :model="formData" style="width: 90%;margin: 0 auto" ref="addForm" :rules="formRules" size="medium"
label-position="right"
label-width="120px">
<el-row>
<el-col :span="8">
<el-form-item prop="year" label="年&emsp;&emsp;份">
<el-date-picker
v-model="formData.year"
type="year"
value-format="yyyy"
placeholder="选择年">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="sqr" label="困难职工">
<el-select
v-model="formData.sqr"
@change="userChange"
filterable
remote
reserve-keyword
placeholder="请输入姓名或工号查找"
:remote-method="remoteMethod"
:loading="loading">
<el-option
v-for="item in userOptions"
:key="item.id"
:label="item.username+''+item.unitname+''"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="sex" label="性&emsp;&emsp;别">
<el-select v-model="formData.sex" placeholder="请选择性别" clearable>
<el-option
v-for="item in ['男','女']"
:key="item"
:label="item"
:value="item">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<el-form-item prop="jtzz" label="家庭地址">
<el-input maxlength="50" placeholder="请输入家庭地址" clearable v-model="formData.jtzz"
type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="lxfs" label="手机号码">
<el-input maxlength="100" clearable placeholder="请填写手机号码" v-model="formData.lxfs"
type="text"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item prop="brnzsr" label="本人年收入" class="int_input">
<el-input-number clearable style="width: 100%" v-model="formData.brnzsr" :min="0"
:max="9999999"
controls-position="right" placeholder="请填写年收入(元)">
</el-input-number>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="jtnzsr" label="家庭年收入" class="int_input">
<el-input-number clearable style="width: 100%" v-model="formData.jtnzsr" :min="0"
:max="9999999"
controls-position="right" placeholder="请填写年收入(元)">
</el-input-number>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="jtrs" label="家庭人数" class="int_input">
<el-input-number clearable style="width: 100%" v-model="formData.jtrs" :min="0" :max="99"
controls-position="right" placeholder="请填写家庭人数">
</el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item prop="zyzkyybz" label="致困特殊原因">
<el-input maxlength="500" placeholder="请简述原因" clearable v-model="formData.zyzkyybz"
type="textarea"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="submitClass">
<el-button type="primary" @click="doAdd">确定</el-button>
</div>
</el-card>
</transition>
<transition name="el-zoom-in-bottom">
<el-card class="excelCard" v-show="ExcelCardShow">
<div class="mb10">
<span class="excelBack" @click="ExcelCardShow=!ExcelCardShow;AddFormCardShow=!ExcelCardShow;">&lt;&ensp;返回</span>
</div>
<div class="mb20">
<el-row class="header navbar">
<div class="btn-group tool-button mt5">
<el-button size="small" icon="el-icon-download" style="width: 100px"
@click="location.href='/platform/knbf/sjdr/downLoadTemp'">下载模板
</el-button>
</div>
<div class="btn-group tool-button mt5">
<!-- <i-button icon="ios-cloud-download-outline" style="width: 100px" @click="download">下载模板</i-button>-->
<el-upload :before-upload="handleUpload">
<!--<i-button icon="ios-cloud-upload-outline" style="width: 100px">选择文件</i-button>-->
<el-button icon="el-icon-upload" size="small" style="width: 100px">上传文件</el-button>
</el-upload>
</div>
<div class="btn-group tool-button mt5">
<el-date-picker size="small"
v-model="year"
type="year"
value-format="yyyy"
placeholder="选择年">
</el-date-picker>
</div>
<div v-if="file!==null" style="height: 30px;">
<el-row style="padding: 0 15px">
<el-col :span="18">
<span style="float: left;overflow: hidden;line-height: 30px;">
<i class="el-icon-tickets"></i>
{{file.name}}&emsp;
<span style="font-size: 12px;color: #b49672;" v-if="tableData.length>0">共读取了{{tableData.length}}条数据</span>
</span>
</el-col>
<span style="line-height: 30px;">
<el-button size="mini" type="danger" @click="file=null">删除</el-button>
<el-button size="mini" type="primary" @click="read">读取</el-button>
</span>
</el-row>
</div>
</el-row>
<!--<i-button @click="ls">未提交数据</i-button>-->
</div>
<el-table :data="rows" empty-text="暂无数据,请上传文件">
<el-table-column label="序号" type="index" header-align="center" align="center">
</el-table-column>
<el-table-column
align="center" header-align="center"
prop="unitname" show-overflow-tooltip width="250px"
label="单位"
>
</el-table-column>
<el-table-column
align="center" header-align="center" show-overflow-tooltip width="150px"
prop="loginname"
label="工号"
>
</el-table-column>
<el-table-column
align="center" header-align="center" show-overflow-tooltip width="200px"
prop="username"
label="职工姓名"
>
</el-table-column>
<el-table-column
align="center" header-align="center" show-overflow-tooltip width="100px"
prop="sex"
label="性别"
>
</el-table-column>
<el-table-column
align="center" header-align="center" show-overflow-tooltip width="200px"
prop="jtzz"
label="家庭住址"
>
</el-table-column>
<el-table-column
align="center" header-align="center" show-overflow-tooltip width="150px"
prop="lxfs"
label="联系电话"
>
</el-table-column>
<el-table-column
align="center" header-align="center" show-overflow-tooltip width="200px"
prop="zyzkyybz"
label="致困特殊原因"
>
</el-table-column>
<el-table-column
align="center" header-align="center" show-overflow-tooltip width="100px"
prop="jtrs"
label="家庭人数"
>
</el-table-column>
<el-table-column
align="center" header-align="center" show-overflow-tooltip width="200px"
prop="brnzsr"
label="本人总收入(元)"
>
</el-table-column>
<el-table-column
align="center" header-align="center" show-overflow-tooltip width="200px"
prop="jtnzsr"
label="家庭总收入(元)"
>
</el-table-column>
<el-table-column
align="center" header-align="center" show-overflow-tooltip width="150px"
prop="jb"
label="级别"
>
</el-table-column>
<el-table-column label="操作" header-align="center" align="center" width="100">
<template slot-scope="scope">
<el-button type="danger" size="mini" icon="el-icon-delete" circle
@click="rows.splice(scope.$index,1)"></el-button>
</template>
</el-table-column>
</el-table>
<div class="submitClass mt20 mr10">
<el-button type="primary" @click="write">导 入</el-button>
</div>
</el-card>
</transition>
</div>
<script>
const vue = new Vue({
el: '#app',
data() {
return {
year: '',
loading: false,
userOptions: [],
rows: [],
file: null,
AddFormCardShow: true,
ExcelCardShow: false,
ybOptions: ['统筹', '社保'],
activeName: ['1'],
zzyyOptions: ['本人大病', '供养直系亲属大病', '本人残疾', '家属残疾', '本人下岗失业', '家属下岗失业', '收入低', '自然灾害', '重大事故', '子女上学', '其他'],
fclxOptions: ['商品房', '福利房', '经济适用房', '限价房', '自建房'],
fclyOptions: ['购买', '接收赠与', '继承', '其他来源'],
hyzkOptions: ['未婚', '已婚', '离异', '丧偶', '再婚'],
zcOptions: ['教授', '副教授', '讲师', '助教'],
mzOptions: [
'汉族',
'蒙古族',
'回族',
'藏族',
'维吾尔族',
'苗族',
'彝族',
'壮族',
'布依族',
'朝鲜族',
'满族',
'侗族',
'瑶族',
'白族',
'土家族',
'哈尼族',
'哈萨克族',
'傣族',
'黎族',
'傈僳族',
'佤族',
'畲族',
'高山族',
'拉祜族',
'水族',
'东乡族',
'纳西族',
'景颇族',
'柯尔克孜族',
'土族',
'达翰尔族',
'么佬族',
'羌族',
'布朗族',
'撒拉族',
'毛南族',
'仡佬族',
'锡伯族',
'阿昌族',
'普米族',
'塔吉克族',
'怒族',
'乌孜别克族',
'俄罗斯族',
'鄂温克族',
'德昂族',
'保安族',
'裕固族',
'京族',
'塔塔尔族',
'独龙族',
'鄂伦春族',
'赫哲族',
'门巴族',
'珞巴族',
'基诺族',
],
bzOptions: ['事业编制职工(正式职工)', '合同制职工', '人事代理职工', '集体职工', '流动编制职工', '非事业编制职工', '博士后进站人员', '劳务派遣人员', '聘用工(各二级单位聘用)'],
ztObj: {
1: {color: '#E6A23C', label: '待基层工会审核'},
2: {color: '#E6A23C', label: '待二级党组织审核'},
3: {color: '#E6A23C', label: '待校工会审核'},
4: {color: '#67C23A', label: '审核通过'},
5: {color: '#F56C6C', label: '审核不通过'},
},
subDis: false,
formData: {
zyzkyy: [],
jtcys: [],
jtfc: [],
jtcc: [],
},
userData: {},
viewData: {},
viewDialogVisible: false,
addDialogVisible: false,
editDialogVisible: false,
tableData: [],
pageForm: {
searchName: "",
searchKeyword: "",
pageNumber: 1,
pageSize: 10,
totalCount: 0,
pageOrderName: "",
pageOrderBy: ""
},
formRules: {
// parentUnit: [{validator: validateUnit, trigger: ['blur', 'change']}],
idcard: [{
required: false,
message: '必填',
trigger: ['blur', 'change']
}, {
pattern: /^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
message: '请输入正确的身份证号'
}],
year: [{required: true, message: '必填', trigger: ['blur', 'change']}],
sqr: [{required: true, message: '必填', trigger: ['blur', 'change']}],
username: [{required: true, message: '必填', trigger: ['blur', 'change']}],
sqrname: [{required: true, message: '必填', trigger: ['blur', 'change']}],
loginname: [{required: true, message: '必填', trigger: ['blur', 'change']}],
sqrloginname: [{required: true, message: '必填', trigger: ['blur', 'change']}],
unitname: [{required: true, message: '必填', trigger: ['blur', 'change']}],
sqrunitname: [{required: true, message: '必填', trigger: ['blur', 'change']}],
zyzkyy: [{required: true, message: '必选', trigger: ['blur', 'change']}],
brnzsr: [{required: true, message: '必填', trigger: ['blur', 'change']}],
jtnzsr: [{required: true, message: '必填', trigger: ['blur', 'change']}],
jtrs: [{required: true, message: '必填', trigger: ['blur', 'change']}],
yhmc: [{required: true, message: '必填', trigger: ['blur', 'change']}],
yhkh: [{required: true, message: '必填', trigger: ['blur', 'change']}],
rsbz: [{required: true, message: '必填', trigger: ['blur', 'change']}],
jtzz: [{required: true, message: '必填', trigger: ['blur', 'change']}],
sex: [{required: true, message: '必填', trigger: ['blur', 'change']}],
},
isNull(val) {
return val === null || val === undefined || val === ''
}
}
},
filters: {
arr2str(val) {
if (val && val.length > 0) {
let str = ""
for (let i = 0; i < val.length; i++) {
str += val[i]
if (i < val.length - 1) {
str += '、'
}
}
return str
}
return ''
},
none2str(val) {
if (val === null || val === undefined || val === '') {
return '暂无'
}
return val
}
},
methods: {
write() {
if (this.year == "" || this.year == undefined) {
this.$message.warning("请选择数据所属年份!");
return;
}
let obj = {
zgfw_knbfs: JSON.stringify(this.rows),
sqsj: this.year + "-01-01"
}
const loading = this.$loading({
lock: true,
text: '数据提交中...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
$.post(base + "/platform/knbf/sjdr/write", obj, (data) => {
if (data.code == 0) {
this.$message({
message: data.msg,
type: 'success'
});
this.rows = []
this.file = null
} else {
this.$message({
message: data.msg,
type: 'error'
});
}
this.subDis = false
loading.close()
}, "json");
},
read: function () {
var self = this;
var formData = new FormData();
formData.append("file", self.file);
sublime.showLoadingbar()
const loading = this.$loading({
lock: true,
text: '数据读取中',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
$.ajax({
url: base + "/platform/knbf/sjdr/getRow",
type: "post",
data: formData,
processData: false,
contentType: false,
success: function (data) {
if (data.code == 0) {
console.log(data)
loading.close();
if (data.data.length > 0) {
self.rows = data.data
self.$message.success("读取成功!一共读取了" + self.rows.length + "条数据");
} else {
self.$message.warning("表格内没有数据,请重新导入文件");
}
} else {
loading.close();
self.$message.error(data.msg);
}
sublime.closeLoadingbar()
},
error: function (data) {
loading.close();
sublime.closeLoadingbar()
}
});
/* $.post((base + "/platform/knbf/sjdr/getRow", this.formData, (data => {
if (data.code == 0) {
console.log(1)
loading.close();
if (data.data.length > 0) {
self.rows = data.data
self.$message.success("读取成功!一共读取了" + self.rows.length + "条数据");
} else {
self.$message.warning("表格内没有数据,请重新导入文件");
}
} else {
loading.close();
self.$message.error(data.msg);
}
sublime.closeLoadingbar()
})
));*/
},
doAdd() {
this.$refs["addForm"].validate((valid) => {
if (valid) {
this.subDis = true
const loading = this.$loading({
lock: true,
text: '数据提交中...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
this.formData.sqsj = this.formData.year + '-01-01'
$.post(base + "/platform/knbf/sjdr/doAdd", this.formData, (data) => {
if (data.code == 0) {
this.$message({
message: data.msg,
type: 'success'
});
this.formData = {}
this.userOptions = []
if (this.$refs["addForm"])
this.$refs["addForm"].resetFields();
} else {
this.$message({
message: data.msg,
type: 'error'
});
}
this.subDis = false
loading.close()
}, "json");
}
});
},
userChange(id) {
this.userOptions.forEach(val => {
if (val.id == id) {
vue.$set(this.formData, 'username', val.username)
vue.$set(this.formData, 'birthday', val.birthday)
vue.$set(this.formData, 'sex', val.sex)
vue.$set(this.formData, 'unitname', val.unitname)
}
})
},
remoteMethod(query) {
this.loading = true
this.userOptions = []
$.post(base + "/platform/knbf/sjdr/queryUser", {query: query}, (data) => {
if (data.code == 0) {
this.userOptions = data.data.list;
}
this.loading = false
}, "json");
},
zcBlur(e) {
this.$set(this.formData, 'zc', e.target.value)
},
handleUpload(file) {
var self = this;
var typename = file.name.substring(file.name.lastIndexOf('.'), file.name.length);
if (typename.indexOf('xls', 'xlsx') < 0) {
self.$message.error('只能上传xls,xlsx格式的文件');
return false;
}
self.file = file;
return false;
},
},
created() {
}
})
</script>
<!--#
}
#-->
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,186 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
</style>
<div id="app" v-cloak>
<transition name="el-zoom-in-center">
<div v-show="smm.status==='table'">
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<el-date-picker
placeholder="年度"
value-format="yyyy"
format="yyyy年"
v-model="pageForm.year"
type="year">
</el-date-picker>
</div>
<div class="btn-group tool-button mt5">
</div>
<div class="btn-group tool-button mt5">
<el-button icon="el-icon-search" @click="doSearch" type="primary"></el-button>
</div>
</el-row>
<el-row class="el-table-container">
<el-table :data="tableData" @sort-change='pageOrder'>
<el-table-column label="序号" type="index">
<template scope="scope"><span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
</template>
</el-table-column>
<el-table-column prop="sqrusername" label="申请人"></el-table-column>
<el-table-column prop="wwrusername" label="被慰问人"></el-table-column>
<el-table-column prop="wwbm" label="慰问部门"></el-table-column>
<el-table-column prop="wwuserzc" label="职称"></el-table-column>
<el-table-column prop="wwsqje" label="申请金额(元)"></el-table-column>
<el-table-column prop="planwwsj" label="拟慰问时间"></el-table-column>
<el-table-column sortable prop="sqsj" label="申请时间"></el-table-column>
<el-table-column sortable prop="status" label="状态">
<template scope="{row}">
<span v-if="row.status==0">待申请人修改</span>
<span v-if="row.status==1">待基层工会审核</span>
<span v-if="row.status==2">待校工会审核</span>
<span v-if="row.status==3">基层工会审核不通过</span>
<span v-if="row.status==4">校工会审核不通过</span>
<span v-if="row.status==5">审核通过</span>
</template>
</el-table-column>
<el-table-column
label="操作"
width="100">
<template slot-scope="{row}">
<el-button v-if="row.status===1" type="primary" size="mini"
@click="openView(row)">审核
</el-button>
<el-button v-if="[2,3].includes(row.status)" type="danger" size="mini"
@click="ch(row)">撤回
</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<el-row class="el-pagination-container">
<el-pagination
@size-change="pageSizeChange"
@current-change="pageNumberChange"
:current-page="pageForm.pageNumber"
:page-sizes="[10, 20, 30, 50]"
:page-size="pageForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="pageForm.totalCount">
</el-pagination>
</el-row>
</div>
</transition>
<wwj-info :smm.sync="smm">
<template slot="handle">
<el-tab-pane label="基层工会审核" name="fghsh">
<el-form :model="formData" ref="Form" label-width="100px">
<el-form-item label="审核人">
${@shiro.getPrincipalProperty('username')}
</el-form-item>
<el-form-item label="审核时间">
{{moment().format('YYYY-MM-DD')}}
</el-form-item>
<el-form-item label="审核意见" prop="fghshyj">
<el-input v-model="formData.fghshyj" type="textarea" maxlength="300" rows="5"></el-input>
</el-form-item>
<sign prefix="wwjfghsh" :qz.sync="formData.fghqz"></sign>
</el-form>
<el-row class="mt20 text-center">
<el-button type="info" @click="doHandle(0)">退 回</el-button>
<el-button type="danger" @click="doHandle(3)">拒 绝</el-button>
<el-button type="success" @click="doHandle(2)">通 过</el-button>
</el-row>
</el-tab-pane>
</template>
</wwj-info>
</div>
<script>
let vue = new Vue({
el: '#app',
mixins: [ddmixins],
components: {
'wwj-info': httpVueLoader('/components/wwj/wwj.vue'),
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.0'),
},
data() {
return {
smm:{status:'table',id:''},
tableData: [],
formData: {
fghqz:''
},
pageForm:{
year:moment().format('YYYY'),
lx:1
}
}
},
methods: {
pageData() {
$.post('/platform/zgfw/wwj/sh/pageData', this.pageForm).then(res => {
if (res.code === 0) {
if (res.data.list.length === 0 && this.pageForm.pageNumber > 1) {
this.pageForm.pageNumber = this.pageForm.pageNumber - 1;
this.pageData();
}
this.tableData = res.data.list;
this.pageForm.totalCount = res.data.totalCount;
} else {
this.$message.error(res.msg);
}
});
},
openView(row){
this.formData = {
id:row.id
}
this.smm={
status: 'detail',
id:row.id,
data:row,
activeName:'fghsh'
}
},
doHandle(s){
this.formData.status = s
$.post('/platform/zgfw/wwj/sh/dofghSh',this.formData).then(res=>{
if(res.code===0){
this.$message.success(res.msg)
this.smm={
status:'table'
}
this.pageData()
}
})
},
ch(row){
this.$confirm('撤回吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
$.post('/platform/zgfw/wwj/sh/doch',{id:row.id,status:1}).then(res=>{
if(res.code===0){
this.$message.success(res.msg)
this.pageData()
}
})
}).catch(() => {});
}
},
created() {
this.pageData()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,174 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
#app{
padding: 10px;
height: 100%;
overflow-y: auto;
}
.el-divider {
background-color: #409EFF;
}
.el-divider__text {
color: #409EFF;
}
.flexbox {
display: flex;
}
.flexbox .el-form-item {
width: 50%;
}
.el-form .el-select, .el-form .el-date-editor, .el-form .el-input-number {
width: 100%;
}
.el-loading-spinner{
font-size: 30px;
}
.el-collapse-item__arrow{
color: red;
font-size: 20px;
}
</style>
<div id="app" v-cloak>
<el-card style="width:100%;">
<div slot="header" style="font-size: 20px;">
慰问金申请
</div>
<el-form :model="formData" label-width="120px" ref="addForm" :rules="formRules">
<el-divider content-position="left">基本信息</el-divider>
<el-form-item label="申请人">
<el-input placeholder="姓名" value="${@shiro.getPrincipalProperty('username')}"
readonly="true"></el-input>
</el-form-item>
<div class="flexbox">
<el-form-item label="慰问对象" prop="wwuserid">
<el-select v-model="formData.wwuserid"
@change="wwuserChange"
filterable
remote
clearable
reserve-keyword
placeholder="输入工号或姓名查找,职称和慰问部门会自动匹配,如果缺失请手动补全"
:remote-method="querySqr">
<el-option v-for="o in wwuserlist" :label="o.username+'-'+o.loginname" :value="o.id"
:key="o.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="职称" prop="wwuserzc">
<el-input v-model="formData.wwuserzc"></el-input>
</el-form-item>
</div>
<div>
<el-form-item label="慰问部门" prop="wwbm">
<el-input v-model="formData.wwbm"></el-input>
</el-form-item>
</div>
<div class="flexbox">
<el-form-item label="拟慰问时间" prop="planwwsj">
<el-date-picker value-format="yyyy-MM-dd" v-model="formData.planwwsj">
</el-date-picker>
</el-form-item>
<el-form-item label="申请金额(元)" prop="wwsqje">
<el-input-number v-model="formData.wwsqje"
precision="2"
:controls="false"
max="100000.00"
min="0.00"
></el-input-number>
</el-form-item>
</div>
<div>
<el-form-item label="申请事由" prop="wwsqsy">
<el-input placeholder="请填写慰问金申请事由" type="textarea" :autosize="{ minRows: 4, maxRows: 8}"
maxlength="1000" v-model.trim="formData.wwsqsy"></el-input>
</el-form-item>
</div>
<div>
<sign prefix="wwjsq" :qz.sync="formData.sqrqz"></sign>
</div>
</el-form>
<div style="text-align: right;margin-top: 20px;">
<el-button type="primary" @click="doAdd">确 定</el-button>
</div>
</el-card>
</div>
<script>
const rules = {
wwuserid: [{required: true, message: '请查询并选择慰问对象', trigger: ['blur', 'change']}],
wwuserzc: [{required: true, message: '请填写慰问对象职称', trigger: ['blur', 'change']}],
planwwsj: [{required: true, message: '请填写拟慰问时间', trigger: ['blur', 'change']}],
wwsqje: [{required: true, message: '请填写申请金额(元)', trigger: ['blur', 'change']}],
wwsqsy: [{required: true, message: '请填写申请事由', trigger: ['blur', 'change']}],
wwbm: [{required: true, message: '请填写慰问部门', trigger: ['blur', 'change']}]
}
let vue = new Vue({
el: '#app',
data() {
return {
formData: {
sqrqz:''
},
addDialogVisible: false,
formRules: rules,
fileList: [],
wwuserlist: [],
}
},
components: {
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.0'),
},
methods: {
async querySqr(key) {
const data = await selectUser(key,10)
this.wwuserlist = data.list
},
wwuserChange(val){
if(val===''){
this.$set(this.formData,'wwuserzc','')
this.$set(this.formData,'wwbm','')
}else{
let u = this.wwuserlist.find(u=>u.id === val)
this.$set(this.formData,'wwuserzc',u.zc)
this.$set(this.formData,'wwbm',u.dwname)
}
},
doAdd() {
this.$refs["addForm"].validate(valid => {
if (valid) {
if(this.formData.sqrqz===''){
this.$message.info('请签名后再提交!')
return
}
$.post('/platform/zgfw/wwjsq/doAdd',this.formData).then(res=>{
if(res.code===0){
this.$message.success(res.msg)
setTimeout(()=>{
window.location.replace('/platform/zgfw/wwjsqxx')
},200)
}
})
}
})
}
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,290 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
.flexbox {
display: flex;
}
.flexbox .el-form-item {
width: 50%;
}
.el-form .el-select, .el-form .el-date-editor {
width: 100%;
}
.el-loading-spinner {
font-size: 30px;
}
.el-divider {
background-color: #409EFF;
}
.el-divider__text {
color: #409EFF;
}
</style>
<div id="app" v-cloak>
<transition name="el-zoom-in-center">
<div v-show="smm.status==='table'">
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<el-date-picker
placeholder="年度"
value-format="yyyy"
format="yyyy年"
v-model="pageForm.year"
type="year">
</el-date-picker>
</div>
<div class="btn-group tool-button mt5">
</div>
<div class="btn-group tool-button mt5">
<el-button icon="el-icon-search" @click="doSearch" type="primary"></el-button>
</div>
</el-row>
<el-row class="el-table-container">
<el-table :data="tableData" @sort-change='pageOrder'>
<el-table-column label="序号" type="index">
<template scope="scope"><span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
</template>
</el-table-column>
<el-table-column prop="sqrusername" label="申请人"></el-table-column>
<el-table-column prop="wwrusername" label="被慰问人"></el-table-column>
<el-table-column prop="wwbm" label="慰问部门"></el-table-column>
<el-table-column prop="wwuserzc" label="职称"></el-table-column>
<el-table-column prop="wwsqje" label="申请金额(元)"></el-table-column>
<el-table-column prop="planwwsj" label="拟慰问时间"></el-table-column>
<el-table-column sortable prop="sqsj" label="申请时间"></el-table-column>
<el-table-column sortable prop="status" label="状态">
<template scope="{row}">
<span v-if="row.status==0">待申请人修改</span>
<span v-if="row.status==1">待基层工会审核</span>
<span v-if="row.status==2">待校工会审核</span>
<span v-if="row.status==3">基层工会审核不通过</span>
<span v-if="row.status==4">校工会审核不通过</span>
<span v-if="row.status==5">审核通过</span>
</template>
</el-table-column>
<el-table-column
label="操作"
width="300">
<template slot-scope="{row}">
<el-button size="mini" @click="openView(row)">查看</el-button>
<el-button v-if="row.status===5" size="mini" @click="exportWwj(row.id)">导出</el-button>
<el-button v-if="[0,1].includes(row.status)" type="primary" size="mini"
@click="openEdit(row)">编辑
</el-button>
<el-button v-if="[0,1].includes(row.status)" type="danger" size="mini"
@click="doDelete(row.id)">删除
</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<el-row class="el-pagination-container">
<el-pagination
@size-change="pageSizeChange"
@current-change="pageNumberChange"
:current-page="pageForm.pageNumber"
:page-sizes="[10, 20, 30, 50]"
:page-size="pageForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="pageForm.totalCount">
</el-pagination>
</el-row>
<el-dialog title="慰问金申请信息编辑" top="5%" :visible.sync="editDialogVisible" width="65%">
<div slot="header">
慰问金申请
</div>
<el-form :model="formData" label-width="120px" ref="editForm" :rules="formRules">
<el-divider content-position="left">基本信息</el-divider>
<el-form-item label="申请人">
<el-input placeholder="姓名" value="${@shiro.getPrincipalProperty('username')}"
readonly="true"></el-input>
</el-form-item>
<div class="flexbox">
<el-form-item label="慰问对象" prop="wwuserid">
<el-select v-model="formData.wwuserid"
@change="wwuserChange"
filterable
remote
clearable
reserve-keyword
placeholder="输入工号或姓名查找,职称和慰问部门会自动匹配,如果缺失请手动补全"
:remote-method="querySqr">
<el-option v-for="o in wwuserlist" :label="o.username+'-'+o.loginname" :value="o.id"
:key="o.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="职称" prop="wwuserzc">
<el-input v-model="formData.wwuserzc"></el-input>
</el-form-item>
</div>
<div>
<el-form-item label="慰问部门" prop="wwbm">
<el-input v-model="formData.wwbm"></el-input>
</el-form-item>
</div>
<div class="flexbox">
<el-form-item label="拟慰问时间" prop="planwwsj">
<el-date-picker value-format="yyyy-MM-dd" v-model="formData.planwwsj">
</el-date-picker>
</el-form-item>
<el-form-item label="申请金额(元)" prop="wwsqje">
<el-input-number v-model="formData.wwsqje"
precision="1"
:controls="false"
min="0.0"
max="10000.0"
></el-input-number>
</el-form-item>
</div>
<div>
<el-form-item label="申请事由" prop="wwsqsy">
<el-input placeholder="请填写慰问金申请事由" type="textarea" :autosize="{ minRows: 4, maxRows: 8}"
maxlength="1000" v-model.trim="formData.wwsqsy"></el-input>
</el-form-item>
</div>
<div>
<sign prefix="wwjsq" :qz.sync="formData.sqrqz"></sign>
</div>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="editDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="doEdit">重新提交</el-button>
</span>
</el-dialog>
</div>
</transition>
<wwj-info :smm.sync="smm"/>
</div>
<script>
const rules = {
wwuserid: [{required: true, message: '请查询并选择慰问对象', trigger: ['blur', 'change']}],
wwuserzc: [{required: true, message: '请填写慰问对象职称', trigger: ['blur', 'change']}],
planwwsj: [{required: true, message: '请填写拟慰问时间', trigger: ['blur', 'change']}],
wwsqje: [{required: true, message: '请填写申请金额(元)', trigger: ['blur', 'change']}],
wwsqsy: [{required: true, message: '请填写申请事由', trigger: ['blur', 'change']}],
wwbm: [{required: true, message: '请填写慰问部门', trigger: ['blur', 'change']}]
}
let vue = new Vue({
el: '#app',
mixins: [ddmixins],
components: {
'wwj-info': httpVueLoader('/components/zgfw/wwj/wwj.vue'),
'sign':httpVueLoader('/components/sign/sign.vue?v=1.0.0')
},
data() {
return {
smm:{status:'table',id:''},
wwuserlist: [],
tableData: [],
formData: {},
editDialogVisible: false,
formRules: rules,
pageForm:{
year:moment().format('YYYY')
}
}
},
methods: {
async querySqr(key) {
const data = await selectUser(key, 10)
this.wwuserlist = data.list
},
wwuserChange(val) {
if (val === '') {
this.$set(this.formData, 'wwuserzc', '')
this.$set(this.formData, 'wwbm', '')
} else {
let u = this.wwuserlist.find(u => u.id = val)
this.$set(this.formData, 'wwuserzc', u.zc)
this.$set(this.formData, 'wwbm', u.dwname)
}
},
pageData() {
$.post('/platform/zgfw/wwjsqxx/pageData', this.pageForm).then(res => {
if (res.code === 0) {
if (res.data.list.length === 0 && this.pageForm.pageNumber > 1) {
this.pageForm.pageNumber = this.pageForm.pageNumber - 1;
this.pageData();
}
this.tableData = res.data.list;
this.pageForm.totalCount = res.data.totalCount;
} else {
this.$message.error(res.msg);
}
});
},
doDelete(id) {
this.$confirm('是否确定删除该申请记录?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(()=>{
$.post(base + '/platform/zgfw/wwjsqxx/doDelete', {id: id}).then(res => {
if (res.code === 0) {
this.$message.success('删除成功!');
this.doSearch();
}
})
}).catch(()=>{})
},
openEdit(row) {
if (this.$refs["editForm"]) {
this.$refs["editForm"].resetFields();
}
this.wwuserlist = [{
username:row.wwrusername,
loginname:row.wwrloginname,
id:row.wwuserid,
dwname:row.wwbm,
zc:row.wwuserzc}]
this.formData = row
this.editDialogVisible = true
},
doEdit() {
this.$refs["editForm"].validate(valid => {
if (valid) {
$.post('/platform/zgfw/wwjsqxx/doEdit', this.formData).then(res => {
if (res.code === 0) {
this.editDialogVisible = false
this.$message.success(res.msg)
this.pageData()
}
})
}
});
},
openView(row){
this.smm={
status: 'detail',
id:row.id,
data:row,
activeName:'1'
}
},
exportWwj(id) {
window.location='/platform/zgfw/wwjsqxx/export?id=' + id
}
},
created() {
this.pageData()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,179 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
</style>
<div id="app" v-cloak>
<transition name="el-zoom-in-center">
<div v-show="smm.status==='table'">
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<el-date-picker
placeholder="年度"
value-format="yyyy"
format="yyyy年"
v-model="pageForm.year"
type="year">
</el-date-picker>
</div>
<div class="btn-group tool-button mt5">
<el-button icon="el-icon-search" @click="doSearch" type="primary"></el-button>
</div>
</el-row>
<el-row class="el-table-container">
<el-table :data="tableData" @sort-change='pageOrder'>
<el-table-column label="序号" type="index">
<template scope="scope"><span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
</template>
</el-table-column>
<el-table-column prop="sqrusername" label="申请人"></el-table-column>
<el-table-column prop="wwrusername" label="被慰问人"></el-table-column>
<el-table-column prop="wwbm" label="慰问部门"></el-table-column>
<el-table-column prop="wwuserzc" label="职称"></el-table-column>
<el-table-column prop="wwsqje" label="申请金额(元)"></el-table-column>
<el-table-column prop="planwwsj" label="拟慰问时间"></el-table-column>
<el-table-column sortable prop="sqsj" label="申请时间"></el-table-column>
<el-table-column sortable prop="status" label="状态">
<template scope="{row}">
<span v-if="row.status==2">待校工会审核</span>
<span v-if="row.status==3">基层工会审核不通过</span>
<span v-if="row.status==4">校工会审核不通过</span>
<span v-if="row.status==5">审核通过</span>
</template>
</el-table-column>
<el-table-column
label="操作"
width="100">
<template slot-scope="{row}">
<el-button v-if="row.status===2" type="primary" size="mini"
@click="openView(row)">审核
</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<el-row class="el-pagination-container">
<el-pagination
@size-change="pageSizeChange"
@current-change="pageNumberChange"
:current-page="pageForm.pageNumber"
:page-sizes="[10, 20, 30, 50]"
:page-size="pageForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="pageForm.totalCount">
</el-pagination>
</el-row>
</div>
</transition>
<wwj-info :smm.sync="smm">
<template slot="handle">
<el-tab-pane label="校工会审核" name="xghsh">
<el-form :model="formData" ref="Form" label-width="100px">
<el-form-item label="审核人">
${@shiro.getPrincipalProperty('username')}
</el-form-item>
<el-form-item label="审核时间">
{{moment().format('YYYY-MM-DD')}}
</el-form-item>
<el-form-item label="审核意见" prop="xghshyj">
<el-input v-model="formData.xghshyj" type="textarea" maxlength="300" rows="5"></el-input>
</el-form-item>
<sign prefix="wwjxghsh" :qz.sync="formData.xghqz"></sign>
</el-form>
<el-row class="mt20 text-center">
<el-button type="info" @click="doHandle(1)">退 回</el-button>
<el-button type="danger" @click="doHandle(4)">拒 绝</el-button>
<el-button type="success" @click="doHandle(5)">通 过</el-button>
</el-row>
</el-tab-pane>
</template>
</wwj-info>
</div>
<script>
let vue = new Vue({
el: '#app',
mixins: [ddmixins],
components: {
'wwj-info': httpVueLoader('/components/wwj/wwj.vue'),
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.0'),
},
data() {
return {
smm:{status:'table',id:''},
tableData: [],
formData: {
xghqz:''
},
pageForm:{
year:moment().format('YYYY'),
lx:2
}
}
},
methods: {
pageData() {
$.post('/platform/zgfw/wwj/sh/pageData', this.pageForm).then(res => {
if (res.code === 0) {
if (res.data.list.length === 0 && this.pageForm.pageNumber > 1) {
this.pageForm.pageNumber = this.pageForm.pageNumber - 1;
this.pageData();
}
this.tableData = res.data.list;
this.pageForm.totalCount = res.data.totalCount;
} else {
this.$message.error(res.msg);
}
});
},
openView(row){
this.formData = {
id:row.id
}
this.smm={
status: 'detail',
id:row.id,
data:row,
activeName:'xghsh'
}
},
doHandle(s){
this.formData.status = s
$.post('/platform/zgfw/wwj/sh/doxghSh',this.formData).then(res=>{
if(res.code===0){
this.$message.success(res.msg)
this.smm={
status:'table'
}
this.pageData()
}
})
},
ch(row){
this.$confirm('撤回吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
$.post('/platform/zgfw/wwj/sh/doch',{id:row.id,status:1}).then(res=>{
if(res.code===0){
this.$message.success(res.msg)
this.pageData()
}
})
}).catch(() => {});
}
},
created() {
this.pageData()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,145 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
.el-input-group__prepend>.el-select{
width: 150px!important;
}
</style>
<div id="app" v-cloak>
<transition name="el-zoom-in-center">
<div v-show="smm.status==='table'">
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<el-date-picker
placeholder="年度"
value-format="yyyy"
format="yyyy年"
v-model="pageForm.year"
type="year">
</el-date-picker>
</div>
<div class="btn-group tool-button mt5">
<el-input placeholder="请输入关键字" v-model="pageForm.searchKeyword" clearable>
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型" style="width: 120px;">
<el-option label="被慰问人姓名" value="wwr.username"></el-option>
<el-option label="被慰问人工号" value="wwr.loginname"></el-option>
</el-select>
</el-input>
</div>
<div class="btn-group tool-button mt5">
<el-select v-model="pageForm.unionid" clearable placeholder="请选择院级工会" filterable>
<el-option
v-for="item in unionList"
:key="item.id"
:label="item.unionname"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-button icon="el-icon-search" @click="doSearch" type="primary"></el-button>
</div>
</el-row>
<el-row class="el-table-container">
<el-table :data="tableData" @sort-change='pageOrder'>
<el-table-column label="序号" type="index">
<template scope="scope"><span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
</template>
</el-table-column>
<el-table-column prop="sqrusername" label="申请人"></el-table-column>
<el-table-column prop="wwrusername" label="被慰问人"></el-table-column>
<el-table-column prop="wwbm" label="慰问部门"></el-table-column>
<el-table-column prop="wwuserzc" label="职称"></el-table-column>
<el-table-column prop="wwsqje" label="申请金额(元)"></el-table-column>
<el-table-column prop="planwwsj" label="拟慰问时间"></el-table-column>
<el-table-column sortable prop="sqsj" label="申请时间"></el-table-column>
<el-table-column sortable prop="status" label="状态">
<template scope="{row}">
<span v-if="row.status==0">待申请人修改</span>
<span v-if="row.status==1">待基层工会审核</span>
<span v-if="row.status==2">待校工会审核</span>
<span v-if="row.status==3">基层工会审核不通过</span>
<span v-if="row.status==4">校工会审核不通过</span>
<span v-if="row.status==5">审核通过</span>
</template>
</el-table-column>
<el-table-column
label="操作"
width="100">
<template slot-scope="{row}">
<el-button size="mini" @click="openView(row)">查看</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<el-row class="el-pagination-container">
<el-pagination
@size-change="pageSizeChange"
@current-change="pageNumberChange"
:current-page="pageForm.pageNumber"
:page-sizes="[10, 20, 30, 50]"
:page-size="pageForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="pageForm.totalCount">
</el-pagination>
</el-row>
</div>
</transition>
<wwj-info :smm.sync="smm"/>
</div>
<script>
let vue = new Vue({
el: '#app',
mixins: [ddmixins],
components: {
'wwj-info': httpVueLoader('/components/wwj/wwj.vue')
},
data() {
return {
smm:{status:'table',id:''},
tableData: [],
pageForm:{
year:moment().format('YYYY'),
unionid:'',
wwrusername:'',
searchName:'wwr.username'
},
unionList:[]
}
},
methods: {
pageData() {
$.post('/platform/zgfw/wwj/zhcx/pageData', this.pageForm).then(res => {
if (res.code === 0) {
this.tableData = res.data.list;
this.pageForm.totalCount = res.data.totalCount;
} else {
this.$message.error(res.msg);
}
});
},
openView(row){
this.smm={
status: 'detail',
id:row.id,
data:row,
activeName:'1'
}
}
},
async created() {
this.pageData()
this.unionList = await getUnion()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,575 @@
<!--#
layout("/layouts/platform.html"){
#-->
<!--
福利发放名单
何鹏飞
2019 7 29
-->
<div id="app">
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<el-input placeholder="请输入用户名称" v-model="pageForm.searchName"></el-input>
</div>
<div class="btn-group tool-button mt5">
<el-select placeholder="请选择地区" clearable="true" v-model="pageForm.searchKeywords">
<el-option v-for="o in dqlist" :value="o.dq_id" :label="o.dq_name">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-button icon="el-icon-search" style="background-color:#409eff;color: white;" @click="pageData"></el-button>
</div>
<div class="pull-right offscreen-right mt5">
<el-button size="medium" type="warning" @click="save">提交</el-button>
</div>
</el-row>
<el-row class="el-table-container">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>福利发放人员名单</span>
</div>
<div>
<el-table
:data="tableData"
size="small"
header-align="center"
style="width: 100%"
>
<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
prop="username"
label="签收人名称"
header-align="center"
align="center"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
prop="mobile"
label="联系电话"
header-align="center"
align="center"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
label="所属校区"
header-align="center"
align="center"
:show-overflow-tooltip="true">
<template scope="scope">
<span v-if="scope.row.dq_name!=''&&scope.row.dq_name!=undefined">{{scope.row.dq_name}}</span>
<span v-else>暂无</span>
</template>
</el-table-column>
<el-table-column
prop="sfff"
label="是否发放福利"
header-align="center"
align="center"
:show-overflow-tooltip="true">
<template scope="scope">
<el-checkbox-group @change="add(scope)" v-model="scope.row.sfff">
<el-checkbox true-label="1" false-label="0"></el-checkbox>
</el-checkbox-group>
</template>
</el-table-column>
<el-table-column
prop="sflxr"
label="是否联系人"
header-align="center"
align="center"
:show-overflow-tooltip="true">
<template scope="scope">
<el-checkbox-group @change="addlxr(scope)" v-model="scope.row.sflxr">
<el-checkbox true-label="1" false-label="0"></el-checkbox>
</el-checkbox-group>
</template>
</el-table-column>
</el-table>
</div>
</el-card>
</el-row>
<el-row class="el-pagination-container">
<el-pagination
@size-change="pageSizeChange"
@current-change="pageNumberChange"
:current-page="pageForm.pageNumber"
:page-sizes="[10, 20, 30, 50]"
:page-size="pageForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="pageForm.totalCount">
</el-pagination>
</el-row>
<el-row class="el-footer" >
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>特殊人员名单</span>
<el-button style="float: right; padding: 3px 0" type="text" @click="tsadd">新增人员</el-button>
</div>
<div>
<el-table
:data="tstableData"
size="small"
header-align="center"
style="width: 100%"
>
<el-table-column
prop="ff_username"
label="签收人名称"
header-align="center"
align="center"
:show-overflow-tooltip="true">
<template scope="scope">
<span>{{scope.row.ff_username}}</span>
</template>
</el-table-column>
<el-table-column
prop="mobile"
label="联系电话"
header-align="center"
align="center"
:show-overflow-tooltip="true">
<template scope="scope">
<span>{{scope.row.mobile}}</span>
</template>
</el-table-column>
<el-table-column
label="所属地区"
header-align="center"
align="center"
:show-overflow-tooltip="true">
<template scope="scope">
<span>{{dqs[scope.row.ff_dqid]}}</span>
</template>
</el-table-column>
<el-table-column
prop="bz"
label="备注"
header-align="center"
align="center"
:show-overflow-tooltip="true">
<template scope="scope">
<span>{{scope.row.bz}}</span>
</template>
</el-table-column>
<el-table-column
label="操作"
header-align="center"
align="center"
>
<template scope="scope">
<div>
<el-button size="mini" type="primary" @click="upd(scope)">编辑</el-button>
<el-button size="mini" type="danger" @click="remove(scope)">删除</el-button>
</div>
</template>
</el-table-column>
</el-table>
</div>
</el-card>
</el-row>
<el-dialog
custom-class="ViewDialogClass"
title="新增特殊人员"
:visible.sync="addDialogVisible"
width="35%"
>
<el-form :model="formData" ref="addForm" size="small" label-width="85px">
<el-form-item label="签收人名称">
<el-input v-model="formData.ff_username"></el-input>
</el-form-item>
<el-form-item label="联系电话">
<el-input v-model="formData.mobile"></el-input>
</el-form-item>
<el-form-item label="性别">
<template>
<el-radio v-model="formData.sex" label="1"></el-radio>
<el-radio v-model="formData.sex" label="2"></el-radio>
</template>
</el-form-item>
<el-form-item label="所属单位">
<el-select style="width: 100%" v-model="formData.ff_unit">
<el-option v-for="unit in units" :value="unit.id" :label="unit.name"></el-option>
</el-select>
</el-form-item>
<el-form-item label="所属工会">
<el-input disabled="true" v-model="unionname"></el-input>
</el-form-item>
<el-form-item label="所属校区">
<el-select style="width: 100%" v-model="formData.ff_dqid">
<el-option v-for="dq in dqlist" :value="dq.dq_id" :label="dq.dq_name"></el-option>
</el-select>
</el-form-item>
<el-form-item label="备注">
<el-input :autosize="{ minRows: 4, maxRows: 4}" type="textarea" v-model="formData.bz"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="addDialogVisible=false">取消</el-button>
<el-button type="primary" @click="addts">确认</el-button>
</span>
</el-dialog>
<el-dialog
custom-class="ViewDialogClass"
title="编辑特殊人员"
:visible.sync="editDialogVisible"
width="35%"
>
<el-form :model="formData" ref="addForm" size="small" label-width="85px">
<el-form-item label="签收人名称">
<el-input v-model="formData.ff_username"></el-input>
</el-form-item>
<el-form-item label="联系电话">
<el-input v-model="formData.mobile"></el-input>
</el-form-item>
<el-form-item label="性别">
<template>
<el-radio v-model="formData.sex" label="1"></el-radio>
<el-radio v-model="formData.sex" label="2"></el-radio>
</template>
</el-form-item>
<el-form-item label="所属单位">
<el-select style="width: 100%" v-model="formData.ff_unit">
<el-option v-for="unit in units" :value="unit.id" :label="unit.name"></el-option>
</el-select>
</el-form-item>
<el-form-item label="所属工会">
<el-input disabled="true" v-model="unionname"></el-input>
</el-form-item>
<el-form-item label="所属校区">
<el-select style="width: 100%" v-model="formData.ff_dqid">
<el-option v-for="dq in dqlist" :value="dq.dq_id" :label="dq.dq_name"></el-option>
</el-select>
</el-form-item>
<el-form-item label="备注">
<el-input :autosize="{ minRows: 4, maxRows: 4}" type="textarea" v-model="formData.bz"></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="addts(1)">确认</el-button>
</span>
</el-dialog>
</div>
<script>
var vm=new Vue({
el:"#app",
data:function () {
return{
pageForm:{
pageNumber:1,
pageSize:10,
totalCount:0,
searchKeywords:"",
searchName:""
},
tableData:[],
tstableData:[],
dqlist:[],
dqs:[],
units:[],
addDialogVisible:false,
formData:{sex:"1"},
unionname:"",
checkTb:[],
checkLx:[],
editDialogVisible:false
}
},
methods:{
pageNumberChange: function (val) {//页码更新操作
this.pageForm.pageNumber = val;
this.pageData();
},
pageSizeChange: function (val) {//分页大小更新操作
this.pageForm.pageSize = val;
this.pageData();
},
pageData:function () {
var self=this;
sublime.showLoadingbar();//显示loading
$.post(base+"/platform/zgfw/ffmd/data",self.pageForm,function (data) {
sublime.closeLoadingbar();//关闭loading
self.tableData=data.data.userlist.list;
self.tableData.forEach(function (value) {
if (value.sfff!=""&&value.sfff!=undefined){
var con=true;
self.checkTb.forEach(function (val) {
if (val.id==value.id){
con=false;
return;
}
})
if (con){
self.checkTb.push(value)
}
}
if (self.checkTb!=""){
self.checkTb.forEach(function (val) {
if (value.id==val.id){
value.sfff='1'
}
})
}
if (self.checkLx!=""){
self.checkLx.forEach(function (val) {
if (value.id==val.id){
value.sflxr='1'
}
})
}
})
self.pageForm.totalCount=data.data.userlist.totalCount;
if (self.tstableData==""||self.tstableData==undefined){
self.tstableData=data.data.tslist
}
self.units=data.data.units;
self.unionname=data.data.unionname
})
},
tsadd:function () {
this.addDialogVisible=true;
this.formData={sex:"1"}
},
dq:function () {
var self=this;
$.post(base+"/platform/zgfw/ffmd/dq",function (data) {
self.dqlist=data.data;
self.dqlist.forEach(function (val) {
self.dqs[val.dq_id]=val.dq_name;
})
})
},
qd:function (scope) {
var self=this;
const phoneReg = /^1[3|4|5|7|8][0-9]\d{8}$/
if (scope.row.ff_username==""||scope.row.ff_username==undefined){
self.$message({
message: "发放人名称不能为空",
type: 'warning'
});
return;
}
if (scope.row.mobile==""||scope.row.mobile==undefined){
self.$message({
message: "类型电话不能为空",
type: 'warning'
});
return;
}
if (!Number.isInteger(+scope.row.mobile)){
self.$message({
message: "请输入数字",
type: 'warning'
});
return;
}
if (!phoneReg.test(scope.row.mobile)){
self.$message({
message: "电话格式不正确",
type: 'warning'
});
return;
}
if (scope.row.dqid==""||scope.row.dqid==undefined){
self.$message({
message: "请选择地区",
type: 'warning'
});
return;
}
scope.row.edit=false;
},
remove:function (scope) {
this.tstableData.splice(scope.$index,1);
},
upd:function(scope){
var self=this;
self.editDialogVisible=true;
self.formData=JSON.parse(JSON.stringify(scope.row));
},
save:function () {
var self=this;
self.$confirm('您确定要提交吗? ' , '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: function (a, b) {
if ("confirm" == a) {
if (self.tstableData==""||self.tstableData==undefined){
var json=""
} else{
var json=JSON.stringify(self.tstableData)
}
if(self.checkTb==""||self.checkTb==undefined){
var tbs=""
}else{
var tbs=JSON.stringify(self.checkTb);
}
$.post(base+"/platform/zgfw/ffmd/save",{json:json,tbs:tbs},function (data) {
if (data.code==0){
self.$message({
message: "提交成功",
type: 'success'
});
self.checkTb=[];
self.checkLx=[];
self.pageData();
} else{
self.$message({
message: "系统异常,请联系管理员",
type: 'error'
});
}
})
}
}
})
},
addts:function (item) {
var self=this;
const phoneReg = /^1[3|4|5|7|8][0-9]\d{8}$/
if (self.formData.ff_username==""||self.formData.ff_username==undefined){
self.$message({
message: "发放人名称不能为空",
type: 'warning'
});
return;
}
if (self.formData.mobile==""||self.formData.mobile==undefined){
self.$message({
message: "类型电话不能为空",
type: 'warning'
});
return;
}
if (!Number.isInteger(+self.formData.mobile)){
self.$message({
message: "请输入数字",
type: 'warning'
});
return;
}
if (!phoneReg.test(self.formData.mobile)){
self.$message({
message: "电话格式不正确",
type: 'warning'
});
return;
}
if (self.formData.ff_unit==""||self.formData.ff_unit==undefined){
self.$message({
message: "请选择单位",
type: 'warning'
});
return;
}
if (self.formData.dqid==""||self.formData.ff_dqid==undefined){
self.$message({
message: "请选择校区",
type: 'warning'
});
return;
}
if (item==1){
self.tstableData.forEach(function (value) {
if (value.ff_userid==self.formData.ff_userid){
value.ff_username=self.formData.ff_username;
value.mobile=self.formData.mobile;
value.ff_unit=self.formData.ff_unit;
value.sex=self.formData.sex;
value.ff_dqid=self.formData.ff_dqid;
value.bz=self.formData.bz;
}
})
self.editDialogVisible=false;
} else{
self.tstableData.push(self.formData)
self.addDialogVisible=false;
}
/*if (self.formData.ff_userid!=""&&self.formData.ff_userid!=undefined){
}*/
},
add:function (scope) {
var self=this;
var con=true
if (scope.row.sfff=="1"){
self.checkTb.forEach(function (value) {
if (scope.row.id==value.id){
con=false;
return;
}
})
if (con){
self.checkTb.push(scope.row)
}
} else{
if (self.checkTb.length>0){
self.checkTb.forEach(function (value,index) {
if (scope.row.id==value.id){
self.checkTb.splice(index,1)
}
})
}
}
},
addlxr:function (scope) {
var self=this;
var con=true
if (scope.row.sflxr=="1"){
self.checkLx.forEach(function (value) {
if (scope.row.id==value.id){
con=false;
return;
}
})
if (con){
self.checkLx.push(scope.row)
}
} else{
if (self.checkLx.length>0){
self.checkLx.forEach(function (value,index) {
if (scope.row.id==value.id){
self.checkLx.splice(index,1)
}
})
}
}
}
},
created:function () {
this.dq();
this.pageData();
}
})
</script>
<!--#
}
#-->
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,607 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
.demo-table-expand {
font-size: 0;
}
.demo-table-expand label {
width: 90px;
color: #99a9bf;
}
.demo-table-expand .el-form-item {
margin-right: 0;
margin-bottom: 0;
width: 50%;
}
.el-table .warning-row {
color: red;
}
</style>
<div id="app">
<!-- 头部 -->
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<div class="block">
<el-date-picker
v-model="pageForm.time"
type="year"
placeholder="选择年"
value-format="yyyy">
</el-date-picker>
</div>
</div>
<div class="btn-group tool-button mt5">
<el-select v-model="pageForm.jr" style="width: 160px" clearable placeholder="请选择发放节日">
<el-option
v-for="item in jjr"
:key="item"
:label="item"
:value="item">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-input type="text" v-model="pageForm.searchName" clearable="true" placeholder="请输入福利项目"
style="width:150px">
</el-input>
</div>
<div class="btn-group tool-button mt5">
<el-button icon="el-icon-search" @click="pageForm.pageNumber=1;pageData()"
style="background-color:#409eff;color: white;"></el-button>
</div>
<div class="pull-right offscreen-right mt5" style="margin-right: 10px">
<el-button size="medium" @click="addlp"><i class="el-icon-present"></i> 新建福利项目
</el-button>
</div>
</el-row>
<!--数据-->
<el-row class="el-table-container">
<el-table
:data="tableData"
size="small"
header-align="center"
style="width: 100%"
>
<el-table-column type="expand">
<template slot-scope="props">
<el-form label-position="left" inline class="demo-table-expand">
<el-form-item label="弹性福利" v-for="o in props.row.hxlps">
<span>{{ o.lp_name }}</span>
</el-form-item>
</el-form>
</template>
</el-table-column>
<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
width="80"
prop="lp_year"
label="年份"
header-align="center"
align="center">
</el-table-column>
<el-table-column
prop="lp_ms"
label="福利项目"
header-align="center"
align="center"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
prop="lp_jjr"
label="节假日"
header-align="center"
align="center"
>
</el-table-column>
<el-table-column
prop="lp_name"
label="发放福利内容"
header-align="center"
align="center">
</el-table-column>
<el-table-column
prop="unionname"
label="所属工会"
header-align="center"
align="center"
:show-overflow-tooltip="true">
<template scope="scope">
<span v-if="scope.row.unionname!=null">{{scope.row.unionname}}</span>
<span v-else>校工会</span>
</template>
</el-table-column>
<el-table-column
prop="userOnline"
label="操作"
header-align="center"
width="450px"
align="center">
<template slot-scope="scope">
<!--# if(@shiro.hasRole('sysadmin')||@shiro.hasRole('flwyh01')||@shiro.hasRole('A06')){ #-->
<el-button size="mini" :disabled="scope.row.flrs==0?false:true" @click="doffmd(scope.row.lp_id)">
生成福利名单
</el-button>
<!--# } else {#-->
<template v-if="scope.row.lp_ssgh">
<el-button size="mini" :disabled="scope.row.flrs==0?false:true"
@click="doffmd(scope.row.lp_id)">生成福利名单
</el-button>
</template>
<!--# } #-->
<el-button size="mini" :disabled="scope.row.flrs==0?true:false"
@click="exportFFmd(scope.row.lp_id)">导出名单
</el-button>
<!--# if(@shiro.hasRole('sysadmin')||@shiro.hasRole('flwyh01')||@shiro.hasRole('A06')){ #-->
<el-button type="success" size="mini" @click="openEdit(scope.row)">编辑</el-button>
<el-button type="danger" size="mini" @click="doDelete(scope.row)">删除
</el-button>
<!--# } else {#-->
<template v-if="scope.row.lp_ssgh">
<el-button type="success" size="mini" @click="openEdit(scope.row)">编辑</el-button>
<el-button type="danger" size="mini" @click="doDelete(scope.row)">删除
</el-button>
</template>
<!--# } #-->
</template>
</el-table-column>
</el-table>
</el-row>
<!--分页-->
<el-row class="el-pagination-container">
<el-pagination
@size-change="pageSizeChange"
@current-change="pageNumberChange"
:current-page="pageForm.pageNumber"
:page-sizes="[10, 20, 30, 50]"
:page-size="pageForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="pageForm.totalCount">
</el-pagination>
</el-row>
<!-- 会员详细信息和节日礼品记录 -->
<el-dialog
custom-class="ViewDialogClass"
title="新建福利"
:close-on-click-modal="false"
:visible.sync="addDialogVisible"
width="35%">
<el-form :model="formData" ref="jrlpForm" size="small" label-width="80px">
<el-form-item label="福利名称">
<el-input v-model="formData.lp_ms" placeholder="请填写福利名称(例:中秋节福利)"></el-input>
</el-form-item>
<el-form-item label="发放节日">
<el-select v-model="formData.lp_jjr" style="width: 100%" placeholder="请选择发放节日">
<el-option
v-for="item in jjr"
:key="item"
:label="item"
:value="item">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="是否弹性">
<el-switch v-model="formData.lp_sfhx"></el-switch>
</el-form-item>
<el-form-item label="截止时间" v-if="formData.lp_sfhx">
<div class="block">
<el-date-picker
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
v-model="formData.lp_jzrq"
type="date"
:picker-options="pickerOptions"
placeholder="选择日期">
</el-date-picker>
</div>
</el-form-item>
<el-form-item label="主&ensp;福&ensp;利">
<el-input v-model="formData.lp_name" placeholder="请填写主福利"></el-input>
</el-form-item>
<el-form-item label="弹性福利" v-if="formData.lp_sfhx">
<el-row v-for="lp,index in formData.hxlp" style="margin-bottom: 10px">
<el-col :span="19">
<el-input size="mini" style="width: 95%" placeholder="请填写礼品名"
v-model="lp.lp_name"
></el-input>
</el-col>
<el-col :span="3">
<el-radio v-model="sfmr" :label="index" @change="mr(index)">默认</el-radio>
</el-col>
<el-col :span="1">
<el-button type="danger" size="mini" icon="el-icon-delete"
@click="delJrlp(index)"></el-button>
</el-col>
</el-row>
<el-row style="margin-top: 15px">
<el-col :span="1">&nbsp;</el-col>
<el-col :span="1">&nbsp;</el-col>
<el-col :span="8">&nbsp;</el-col>
<el-col :span="12">&nbsp;</el-col>
<el-col :span="1">
<el-button @click="addhxlp" type="warning" size="mini"
icon="el-icon-plus"></el-button>
</el-col>
</el-row>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="addDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="save">保 存</el-button>
</span>
</el-dialog>
<el-dialog
custom-class="ViewDialogClass"
title="编辑福利"
:close-on-click-modal="false"
:visible.sync="editDialogVisible"
width="35%">
<el-form :model="formData" ref="jrlpForm" size="small" label-width="80px">
<el-form-item label="福利名称">
<el-input v-model="formData.lp_ms" placeholder="请填写福利名称(例:中秋节福利)"></el-input>
</el-form-item>
<el-form-item label="发放节日">
<el-select v-model="formData.lp_jjr" style="width: 100%" placeholder="请选择发放节日">
<el-option
v-for="item in jjr"
:key="item"
:label="item"
:value="item">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="是否弹性">
<el-switch v-model="formData.lp_sfhx"></el-switch>
</el-form-item>
<el-form-item label="截止时间" v-if="formData.lp_sfhx">
<div class="block">
<el-date-picker
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
v-model="formData.lp_jzrq"
type="date"
:picker-options="pickerOptions"
placeholder="选择日期">
</el-date-picker>
</div>
</el-form-item>
<el-form-item label="主&ensp;福&ensp;利">
<el-input v-model="formData.lp_name" placeholder="请填写主福利"></el-input>
</el-form-item>
<el-form-item label="弹性福利" v-if="formData.lp_sfhx">
<el-row v-for="lp,index in formData.hxlp" style="margin-bottom: 10px">
<el-col :span="19">
<el-input size="mini" style="width: 95%" placeholder="请填写礼品名"
v-model="lp.lp_name"
></el-input>
</el-col>
<el-col :span="3">
<el-radio v-model="sfmr" :label="index" @change="mr(index)">默认</el-radio>
</el-col>
<el-col :span="1">
<el-button type="danger" size="mini" icon="el-icon-delete"
@click="delJrlp(index)"></el-button>
</el-col>
</el-row>
<el-row style="margin-top: 15px">
<el-col :span="1">&nbsp;</el-col>
<el-col :span="1">&nbsp;</el-col>
<el-col :span="8">&nbsp;</el-col>
<el-col :span="12">&nbsp;</el-col>
<el-col :span="1">
<el-button @click="addhxlp" type="warning" size="mini"
icon="el-icon-plus"></el-button>
</el-col>
</el-row>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="editDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="doEdit">保 存</el-button>
</span>
</el-dialog>
<!-- 会员详细信息和节日礼品记录 -->
<el-dialog
custom-class="ViewDialogClass"
title="发放名单"
top="50px"
:visible.sync="ffmdDialogVisible"
width="50%">
<el-table :row-class-name="tableRowClassName" :data="ffmd" size="small" max-height="600">
<el-table-column align="center" header-align="center" width="140" label="工会" prop="unionname">
</el-table-column>
<el-table-column align="center" header-align="center" label="是否确认人员">
<template scope="scope">
<el-tag type="success" v-if="scope.row.sum!='0'"></el-tag>
<el-tag type="errror" v-else></el-tag>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="联系人" prop="lxr">
<template scope="scope">
<span v-if="scope.row.lxr==''||scope.row.lxr==undefined">
暂无
</span>
<span v-else>
{{scope.row.lxr}}
</span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="应发人数" prop="yf">
</el-table-column>
<el-table-column align="center" header-align="center" label="会员实发" prop="fts">
</el-table-column>
<el-table-column align="center" header-align="center" label="特殊人员" prop="ts">
</el-table-column>
<el-table-column align="center" header-align="center" label="发放总人数" prop="sum">
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button @click="ffmdDialogVisible = false">关 闭</el-button>
</span>
</el-dialog>
</div>
<script>
const vm = new Vue({
el: "#app",
data() {
return {
pageForm: {
pageNumber: 1,
pageSize: 10,
totalCount: 0,
jr: "",
time: moment().format('YYYY')
},
jjr: ['元旦', '春节', '清明节', '劳动节', '端午节', '中秋节', '国庆节', '其它'],
tableData: [],
addDialogVisible: false,
formData: {lp_sfhx: false, hxlp: []},
sfmr: 0,
ffmdDialogVisible: false,
ffmd: [],
pickerOptions: {
disabledDate(time) {
return time.getTime() < Date.now() - 8.64e6
}
},
editDialogVisible: false,
}
},
methods: {
exportFFmd(lp_id) {
window.location.href = '/platform/zgfw/lpffgl/exportFFmd?lp_id=' + lp_id
},
doEdit() {
if (!this.formData.lp_sfhx) {
this.formData.hxlp = []
}
$.post(base + "/platform/zgfw/lpffgl/doedit", {zgfw_jjrlp: JSON.stringify(this.formData)}, (data) => {
if (data.code === 0) {
this.$message.success(data.msg);
this.pageData();
this.editDialogVisible = false
} else {
this.$message.error(data.msg);
}
})
},
doffmd(id) {
var self = this;
this.$confirm('生成福利名单之前,请确保会员数据已更新!', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback(a, b) {
if ("confirm" == a) {//确认后再执行
const loading = self.$loading({
lock: true,
text: 'loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
$.post(base + "/platform/zgfw/lpffgl/doffmd", {id: id}, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
loading.close();
})
}
}
});
},
async findOne(id) {
const {data} = await $.get("/platform/zgfw/lpffgl/findOne", {id})
return data
},
async openEdit(row) {
this.formData = await this.findOne(row.lp_id)
this.editDialogVisible = true;
},
pageNumberChange(val) {//页码更新操作
this.pageForm.pageNumber = val;
this.pageData();
},
pageSizeChange(val) {//分页大小更新操作
this.pageForm.pageSize = val;
this.pageData();
},
delJrlp(index) {
this.formData.hxlp.splice(index, 1);
},
addlp() {
this.formData = {lp_sfhx: false, hxlp: []}
this.addDialogVisible = true
},
save() {
$.post(base + "/platform/zgfw/lpffgl/add", {zgfw_jjrlp: JSON.stringify(this.formData)}, (data) => {
if (data.code == 0) {
this.$message.success(data.msg);
this.pageData();
this.addDialogVisible = false
} else {
this.$message.error(data.msg);
}
})
},
pageData() {
$.post(base + "/platform/zgfw/lpffgl/data", this.pageForm, (data) => {
this.tableData = data.data.list;
this.pageForm.totalCount = data.data.totalCount;
})
},
mr(index) {
this.formData.hxlp.forEach(function (value) {
value.lp_sfmr = '0'
})
this.formData.hxlp[index].lp_sfmr = '1'
console.log(this.formData.hxlp)
},
tableRowClassName(row, rowIndex) {
if (row.row.wf != 0) {
return 'warning-row';
}
return '';
},
toffmd(id) {
var self = this;
$.post(base + "/platform/zgfw/lpffgl/ffmds", {ghid: id}, function (data) {
self.ffmd = data.data
self.ffmdDialogVisible = true;
})
},
todc(id) {
var self = this;
this.$confirm('确定要开始调查吗', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback(a, b) {
if ("confirm" == a) {//确认后再执行
$.post(base + "/platform/zgfw/lpffgl/dc", {lp_id: id}, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
})
}
}
});
},
addhxlp() {
if (this.formData.hxlp == "") {
this.formData.hxlp.push({lp_sfmr: '1'})
} else {
this.formData.hxlp.push({lp_sfmr: '0'})
}
},
fflp(row) {
var self = this;
var oDate1 = new Date(row.lp_jzrq);
var oDate2 = new Date(moment().format('YYYY-MM-DD'));
if (oDate1.getTime() > oDate2.getTime()) {
self.$message({
message: '当前活动正在调查中',
type: 'warning'
});
} else {
$.post(base + "/platform/zgfw/lpffgl/fflp", {id: row.lp_id}, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
})
}
},
doDelete(row) {
var self = this;
this.$confirm('本操作同时删除福利名单,确定要删除吗', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback(a, b) {
if ("confirm" == a) {//确认后再执行
$.post(base + "/platform/zgfw/lpffgl/del", {lp_id: row.lp_id}, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
}
});
}
},
created() {
this.pageData();
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,485 @@
<!--#
layout("/layouts/platform.html"){
#-->
<!--
职工慰问报销单页面
李耀威
2019 6 17
-->
<style>
.dia .el-dialog__body {
padding: 5px 20px;
}
.note {
width: 100%;
height: 200px;
}
.el-radio.is-bordered.is-disabled.is-checked {
/* cursor: not-allowed; */
border-color: #409EFF;
}
.el-radio__input.is-disabled .is-checked .el-radio__inner, .el-radio__input.is-disabled.is-checked .el-radio__inner {
background-color: #409EFF;
/*border-color: #E4E7ED; */
}
.tpa {
padding: 10px;
text-align: center;
width: 12%;
background-color: rgb(250, 250, 250);
border: 1px solid rgb(220, 220, 220);
}
.tpb {
padding: 10px;
text-align: center;
color: #a0a9b4;
width: 15%;
border: 1px solid rgb(220, 220, 220);
}
.tpc {
padding: 10px;
color: #a0a9b4;
width: 15%;
border: 1px solid rgb(220, 220, 220);
}
</style>
<div id="app" v-cloak>
<!-- 头部 -->
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<div>
<el-input placeholder="请输入内容" v-model="pageForm.searchKeyword">
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查 询 类 型" style="width: 160px;">
<el-option label="被慰问人职工号" value="bwwrLoginname"></el-option>
<el-option label="被慰问人姓名" value="bwwrUsername"></el-option>
</el-select>
</el-input>
</div>
</div>
<div class="btn-group tool-button mt5">
<el-select clearable v-model="pageForm.wwsq_wwfs" placeholder="请选择慰问方式">
<el-option
v-for="item in [{x:1,y:'慰问金'},{x:2,y:'提货券、慰问品、纪念品'}]"
:key="item.x"
:label="item.y"
:value="item.x">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<div class="block">
<el-date-picker
format="MM-dd"
v-model="pageForm.time"
type="daterange"
range-separator="——"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</div>
</div>
<div class="btn-group tool-button mt5" v-if="identity==1||identity==3">
<el-select placeholder="请选择基层工会" v-model="pageForm.fghid" clearable="true" filterable="true"
style="width:200px;">
<el-option v-for="item in ghOptions" :label="item.unionname" :value="item.id"></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-button type="primary" @click="doSearch" icon="el-icon-search"></el-button>
</div>
</el-row>
<!-- 数据表格 -->
<el-row class="el-table-container">
<el-table
:data="tableData"
size="small"
header-align="center"
style="width: 100%"
@sort-change='pageOrder'
>
<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
prop="bwwrloginname"
label="被慰问人工号"
header-align="center"
align="center"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
prop="bwwrusername"
label="被慰问人"
header-align="center"
align="center"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
sortable
prop="fghname"
label="所属基层工会"
header-align="center"
align="center"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
sortable
prop="wwsq_sqsj"
label="慰问申请时间"
header-align="center"
align="center"
:show-overflow-tooltip="true"
>
</el-table-column>
<el-table-column
sortable
prop="wwsq_wwfs"
label="慰问方式"
header-align="center"
align="center"
:show-overflow-tooltip="true">
<template slot-scope="scope">
<el-tag type="success" v-if="scope.row.wwsq_wwfs==1">慰问金</el-tag>
<el-tag type="warning" v-if="scope.row.wwsq_wwfs==2">提货券、慰问品、纪念品</el-tag>
</template>
</el-table-column>
<el-table-column
prop="userOnline"
label="操作"
header-align="center"
align="center"
width="300px">
<template slot-scope="scope">
<el-row>
<el-button size="mini" type="primary" @click="openXghsh(scope.row.wwsq_id)">审核</el-button>
</el-row>
</template>
</el-table-column>
</el-table>
</el-row>
<el-row class="el-pagination-container">
<el-pagination
@size-change="pageSizeChange"
@current-change="pageNumberChange"
:current-page="pageForm.pageNumber"
:page-sizes="[10, 20, 30, 50]"
:page-size="pageForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="pageForm.totalCount">
</el-pagination>
</el-row>
<el-dialog
:close-on-click-modal="false"
@close="activeNames1='';wwsq_id='',zgscxzshFormData={wwsq_xghshyj:''}"
class="ViewDialogClass"
title="慰问申请审核"
:visible.sync="zgscxzDialogVisible"
width="45%">
<el-collapse v-model="activeNames1">
<el-collapse-item title="基本信息" name="1">
<el-card>
<div>
<table style="width: 100%">
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">申请人</td>
<td class="tpb">{{zgscxzscData.sqrusername}}</td>
<td class="tpa">被慰问人</td>
<td class="tpb">{{zgscxzscData.bwwrusername}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">慰问方式</td>
<td colspan="3" class="tpb" v-if="zgscxzscData.wwsq_wwfs==null"></td>
<td colspan="3" class="tpb" v-if="zgscxzscData.wwsq_wwfs==1">慰问金</td>
<td colspan="3" class="tpb" v-if="zgscxzscData.wwsq_wwfs==2">提货券、慰问品、纪念品</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">慰问金额</td>
<td class="tpb">{{zgscxzscData.wwsq_wwje}}</td>
<td class="tpa">申请时间</td>
<td class="tpb">{{zgscxzscData.wwsq_sqsj}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);"
v-if="zgscxzscData.wwsq_wwlx==4||zgscxzscData.wwsq_wwlx==5">
<td class="tpa">去世时间</td>
<td class="tpb" colspan="3"><span size="small">{{zgscxzscData.wwsq_qssj}}</span></td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);" v-if="zgscxzscData.wwsq_wwlx==6">
<td class="tpa">慰问事由</td>
<td class="tpb" colspan="3"><span size="small">{{zgscxzscData.wwsq_wwsy}}</span></td>
</tr>
</table>
</div>
</el-card>
</el-collapse-item>
<el-collapse-item title="校工会审核意见" name="2">
<el-form :model="zgscxzshFormData" ref="zgscxzshForm" style="margin-top: 15px"
size="medium"
label-width="50px">
<el-form-item prop="wwsq_xghshyj" label="意见">
<el-input
maxlength="300"
type="textarea"
:autosize="{ minRows: 4, maxRows: 10}"
placeholder="请输入您的审核意见"
v-model="zgscxzshFormData.wwsq_xghshyj">
</el-input>
</el-form-item>
</el-form>
</el-collapse-item>
</el-collapse>
<span slot="footer" class="dialog-footer">
<el-button @click="zgscxzDialogVisible = false">取 消</el-button>
<el-button type="danger" @click="zgscxzsh(1)">不合格</el-button>
<el-button type="success" @click="zgscxzsh(2)">通 过</el-button>
</span>
</el-dialog>
</div>
<script>
var ue1;
var ue2;
var vue = new Vue({
el: "#app",
data: function () {
var self = this
return {
wwsq_id: '',
identity: 0,
fghshFormData: {},
zgscxzshFormData: {},
dbid: '',
activeNames: '',
activeNames1: '',
identity: 0,
gxOptions: [],
ghOptions: [],
fzhDialogVisible: false,
zgscxzDialogVisible: false,
tableData: [],
jdhOptions: [],
unitOptions: [],
pageForm: {
searchName: "",
searchKeyword: "",
pageNumber: 1,
pageSize: 10,
totalCount: 0,
pageOrderName: "",
pageOrderBy: ""
},
fghscData: {unit: {}},
zgscxzscData: {user: {unit: {}}, jdhdb: {}},
fghshFormRules: {
wwsq_fghshyj: [{required: true, message: '请填写您的审核意见', trigger: ['blur', 'change']}],
},
zgscxzFormRules: {
wwsq_xghshyj: [{required: true, message: '请填写您的审核意见', trigger: ['blur', 'change']}],
},
}
},
methods: {
zgscxzsh: function (flag) {
var self = this
var notSubmit = true
if (flag == 1) {
if (typeof (self.zgscxzshFormData.wwsq_xghshyj) === "undefined" || self.zgscxzshFormData.wwsq_xghshyj == '') {
notSubmit = false;
self.$message({
message: "请填写您的审核意见",
type: 'warning'
});
}
}
if (flag == 2) {
if (typeof (self.zgscxzshFormData.wwsq_xghshyj) === "undefined" || self.zgscxzshFormData.wwsq_xghshyj == '') {
self.zgscxzshFormData.wwsq_xghshyj = '同意'
}
}
if (notSubmit) {
$.get(base + "/platform/zgfw/txlgwwsh/xghsh", {
wwsq_id: self.wwsq_id,
wwsq_xghshyj: self.zgscxzshFormData.wwsq_xghshyj,
flag: flag
}, function (data) {
if (data.code == 0) {
self.doSearch();
self.$message({
message: data.msg,
type: 'success'
});
self.zgscxzDialogVisible = false
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
})
}
},
openXghsh: function (id) {
var self = this
this.wwsq_id = id
if (this.$refs["zgscxzshForm"])
this.$refs["zgscxzshForm"].resetFields();
$.get(base + "/platform/zgfw/txlgwwsq/queryDetail", {wwsq_id: id}, function (data) {
if (data.code == 0) {
self.zgscxzscData = data.data;
setTimeout(function () {
self.activeNames1 = ['1', '2']
}, 10)
self.zgscxzDialogVisible = true
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
})
},
doSearch: function () {
this.pageForm.pageNumber = 1;
this.pageData();
},
pageOrder: function (column) {//按字段排序
switch (column.order) {
case 'descending':
column.order = 'desc'
break
case "ascending":
column.order = 'asc'
break
}
this.pageForm.pageOrderName = column.prop;
this.pageForm.pageOrderBy = column.order;
this.pageData();
},
pageNumberChange: function (val) {//页码更新操作
this.pageForm.pageNumber = val;
this.pageData();
},
pageSizeChange: function (val) {//分页大小更新操作
this.pageForm.pageSize = val;
this.pageData();
},
pageData: function () {//加载分页数据
var self = this;
sublime.showLoadingbar();//显示loading
$.post(base + "/platform/zgfw/txlgwwsh/data", self.pageForm, function (data) {
sublime.closeLoadingbar();//关闭loading
if (data.code == 0) {
self.tableData = data.data.list;
self.pageForm.totalCount = data.data.totalCount;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
},
queryAllKqJdh: function () {
var self = this
$.get(base + "/platform/jdh/cbldxz/queryAllKqJdh", function (data) {
self.jdhOptions = data.data;
}, 'json')
},
queryAllGX: function () {
var self = this
$.get(base + "/platform/jdh/cbldxz/queryAllGX", function (data) {
if (data.code == 0) {
self.gxOptions = data.data;
}
}, 'json')
},
getIdentity: function () {
var self = this
$.get(base + "/platform/zgfw/zgwwsh/getIdentity", function (data) {
self.identity = data
if (data == 1 || data == 3) {
self.queryAllFgh()
}
}, 'json')
},
/**
* @param strBirthday:指的是出生日期,格式为"1990-01-01"
*/
getAge: function (strBirthday) {
try {
var returnAge,
strBirthdayArr = strBirthday.split("-"),
birthYear = strBirthdayArr[0],
birthMonth = strBirthdayArr[1],
birthDay = strBirthdayArr[2],
d = new Date(),
nowYear = d.getFullYear(),
nowMonth = d.getMonth() + 1,
nowDay = d.getDate();
if (nowYear == birthYear) {
returnAge = 0;//同年 则为0周岁
} else {
var ageDiff = nowYear - birthYear; //年之差
if (ageDiff > 0) {
if (nowMonth == birthMonth) {
var dayDiff = nowDay - birthDay;//日之差
if (dayDiff < 0) {
returnAge = ageDiff - 1;
} else {
returnAge = ageDiff;
}
} else {
var monthDiff = nowMonth - birthMonth;//月之差
if (monthDiff < 0) {
returnAge = ageDiff - 1;
} else {
returnAge = ageDiff;
}
}
} else {
returnAge = -1;//返回-1 表示出生日期输入错误 晚于今天
}
}
return returnAge;//返回周岁年龄
} catch (e) {
return ''
}
},
queryAllFgh: function () {
var self = this
$.get(base + "/platform/zgfw/zgwwsh/queryAllFgh", function (data) {
self.ghOptions = data.data;
}, 'json')
}
},
created:
function () {
this.pageData();
this.getIdentity()
}
,
})
</script>
<!--#
}
#-->
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,369 @@
<!--#
layout("/layouts/platform.html"){
#-->
<!--
职工慰问阅览页面
李耀威
2019 6 17
-->
<style>
.dia .el-dialog__body {
padding: 5px 20px;
}
.note {
width: 100%;
height: 200px;
}
.el-radio.is-bordered.is-disabled.is-checked {
/* cursor: not-allowed; */
border-color: #409EFF;
}
.el-radio__input.is-disabled .is-checked .el-radio__inner, .el-radio__input.is-disabled.is-checked .el-radio__inner {
background-color: #409EFF;
/*border-color: #E4E7ED; */
}
.tpa {
padding: 10px;
text-align: center;
width: 12%;
color: #777;
background-color: rgb(250, 250, 250);
border: 1px solid rgb(220, 220, 220);
}
.tpb {
padding: 10px;
text-align: center;
color: #333;
width: 15%;
border: 1px solid rgb(220, 220, 220);
}
.tpc {
padding: 10px;
color: #a0a9b4;
width: 15%;
border: 1px solid rgb(220, 220, 220);
}
.el-card__body {
padding: 0;
}
.zw{
color: rgb(200,200,200);
}
</style>
<div id="app" v-cloak>
<!-- 头部 -->
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<div>
<el-input placeholder="请输入内容" v-model="pageForm.searchKeyword">
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查 询 类 型" style="width: 160px;">
<el-option label="被慰问人职工号" value="bwwrLoginname"></el-option>
<el-option label="被慰问人姓名" value="bwwrUsername"></el-option>
</el-select>
</el-input>
</div>
</div>
<div class="btn-group tool-button mt5">
<el-select clearable v-model="pageForm.wwsq_wwfs" placeholder="请选择慰问方式">
<el-option
v-for="item in [{x:1,y:'慰问金'},{x:2,y:'提货券、慰问品、纪念品'}]"
:key="item.x"
:label="item.y"
:value="item.x">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<div class="block">
<el-date-picker
format="MM-dd"
v-model="pageForm.time"
type="daterange"
range-separator="——"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</div>
</div>
<div class="btn-group tool-button mt5" v-if="identity==1||identity==3">
<el-select placeholder="请选择基层工会" v-model="pageForm.fghid" clearable="true" filterable="true"
style="width:200px;">
<el-option v-for="item in ghOptions" :label="item.unionname" :value="item.id"></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-button type="primary" @click="doSearch" icon="el-icon-search"></el-button>
</div>
</el-row>
<!-- 数据表格 -->
<el-row class="el-table-container">
<el-table
:data="tableData"
size="small"
header-align="center"
style="width: 100%"
@sort-change='pageOrder'
>
<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
prop="bwwrloginname"
label="被慰问人工号"
header-align="center"
align="center"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
prop="bwwrusername"
label="被慰问人"
header-align="center"
align="center"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
v-if="identity!=2"
sortable
prop="fghname"
label="所属基层工会"
header-align="center"
align="center"
:show-overflow-tooltip="true">
</el-table-column>
<el-table-column
sortable
prop="wwsq_sqsj"
label="慰问申请时间"
header-align="center"
align="center"
:show-overflow-tooltip="true"
>
</el-table-column>
<el-table-column
sortable
prop="wwsq_wwfs"
label="慰问方式"
header-align="center"
align="center"
:show-overflow-tooltip="true">
<template slot-scope="scope">
<el-tag type="success" v-if="scope.row.wwsq_wwfs==1">慰问金</el-tag>
<el-tag type="warning" v-if="scope.row.wwsq_wwfs==2">提货券、慰问品、纪念品</el-tag>
</template>
</el-table-column>
<el-table-column
prop="userOnline"
label="操作"
header-align="center"
align="center"
width="300px">
<template slot-scope="scope">
<el-row>
<el-button size="mini" type="success" @click="openRole(scope.row.wwsq_id)">查看</el-button>
</el-row>
</template>
</el-table-column>
</el-table>
</el-row>
<el-row class="el-pagination-container">
<el-pagination
@size-change="pageSizeChange"
@current-change="pageNumberChange"
:current-page="pageForm.pageNumber"
:page-sizes="[10, 20, 30, 50]"
:page-size="pageForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="pageForm.totalCount">
</el-pagination>
</el-row>
<!-- 慰问申请详情 -->
<el-dialog
custom-class="ViewDialogClass"
title="慰问申请详情"
:visible.sync="roleDialogVisible"
width="40%"
>
<el-card style="box-shadow: none;border: none ;padding: 0px">
<div style="padding: 0px">
<table style="width: 100%">
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa" colspan="4"
style="font-weight: bolder;background-color: #1874CD;color: white;border: 1px solid #1874CD">
基本信息
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">申请人</td>
<td class="tpb">{{roleData.sqrusername}}</td>
<td class="tpa">被慰问人</td>
<td class="tpb">{{roleData.bwwrusername}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">慰问方式</td>
<td colspan="3" class="tpb zw" v-if="roleData.wwsq_wwfs==null">暂无</td>
<td colspan="3" class="tpb" v-if="roleData.wwsq_wwfs==1">慰问金</td>
<td colspan="3" class="tpb" v-if="roleData.wwsq_wwfs==2">提货券、慰问品、纪念品</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">慰问金额</td>
<td class="tpb" v-if="!(typeof(roleData.wwsq_wwje)==='undefined')">{{roleData.wwsq_wwje}}</td>
<td class="tpb zw" v-if="typeof(roleData.wwsq_wwje)==='undefined'">暂无</td>
<td class="tpa">申请时间</td>
<td class="tpb">{{roleData.wwsq_sqsj}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa" colspan="4"
style="font-weight: bolder;background-color: #1874CD;color: white;border: 1px solid #1874CD">
校工会审核
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">审核人</td>
<td class="tpb zw" v-if="(typeof(roleData.xghsqr)==='undefined')">暂无</td>
<td class="tpb" v-if="!(typeof(roleData.xghsqr)==='undefined')">{{roleData.xghsqr}}</td>
<td class="tpa">审核时间</td>
<td class="tpb zw" v-if="(typeof(roleData.wwsq_xghshsj)==='undefined')">暂无</td>
<td class="tpb" v-if="!(typeof(roleData.wwsq_xghshsj)==='undefined')">
{{roleData.wwsq_xghshsj}}
</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">审核意见</td>
<td class="tpb zw" colspan="3" v-if="(typeof(roleData.wwsq_xghshyj)==='undefined')">暂无审核意见</td>
<td class="tpb" colspan="3" v-if="!(typeof(roleData.wwsq_xghshyj)==='undefined')">
{{roleData.wwsq_xghshyj}}
</td>
</tr>
</table>
</div>
</el-card>
<span slot="footer" class="dialog-footer">
<el-button type="danger" @click="roleDialogVisible = false">关 闭</el-button>
</span>
</el-dialog>
</div>
<script>
var vue = new Vue({
el: "#app",
data: function () {
var self = this
return {
roleData: {},
roleDialogVisible: false,
wwsq_id: '',
identity: 0,
ghOptions: [],
tableData: [],
pageForm: {
searchName: "",
searchKeyword: "",
pageNumber: 1,
pageSize: 10,
totalCount: 0,
pageOrderName: "",
pageOrderBy: ""
},
}
},
methods: {
openRole: function (id) {
var self = this;
$.get(base + "/platform/zgfw/txlgwwsq/queryDetail", {"wwsq_id": id}, function (data) {
if (data.code == 0) {
self.roleData = data.data;//加载后台表单数据
self.roleDialogVisible = true
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json")
},
doSearch: function () {
this.pageForm.pageNumber = 1;
this.pageData();
},
pageOrder: function (column) {//按字段排序
switch (column.order) {
case 'descending':
column.order = 'desc'
break
case "ascending":
column.order = 'asc'
break
}
this.pageForm.pageOrderName = column.prop;
this.pageForm.pageOrderBy = column.order;
this.pageData();
},
pageNumberChange: function (val) {//页码更新操作
this.pageForm.pageNumber = val;
this.pageData();
},
pageSizeChange: function (val) {//分页大小更新操作
this.pageForm.pageSize = val;
this.pageData();
},
pageData: function () {//加载分页数据
var self = this;
sublime.showLoadingbar();//显示loading
$.post(base + "/platform/zgfw/txlgwwyl/data", self.pageForm, function (data) {
sublime.closeLoadingbar();//关闭loading
if (data.code == 0) {
self.tableData = data.data.list;
self.pageForm.totalCount = data.data.totalCount;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
},
getIdentity: function () {
var self = this
$.get(base + "/platform/zgfw/zgwwsh/getIdentity", function (data) {
self.identity = data
if (data == 1 || data == 3) {
self.queryAllFgh()
}
}, 'json')
},
queryAllFgh: function () {
var self = this
$.get(base + "/platform/zgfw/zgwwsh/queryAllFgh", function (data) {
self.ghOptions = data.data;
}, 'json')
}
},
created:
function () {
this.pageData();
this.getIdentity()
}
,
})
</script>
<!--#
}
#-->
@@ -0,0 +1,180 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
.el-table th{
background: #00c1de;
color: white;
}
.el-table .warning-row {
color: red;
}
</style>
<div id="app">
<el-row class="header navbar bg-white shadow">
<div class="pull-right offscreen-right mt5">
<el-button size="medium" type="warning" @click="dc">导出发放清单</el-button>
</div>
</el-row>
<el-row class="el-table-container">
<el-table :row-class-name="tableRowClassName" :data="tableData" size="small">
<el-table-column align="center" header-align="center" label="工会" prop="unionname">
</el-table-column>
<el-table-column align="center" header-align="center" label="是否确认人员">
<template scope="scope">
<el-tag type="success" v-if="scope.row.sum!='0'"></el-tag>
<el-tag type="errror" v-else></el-tag>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="联系人" prop="lxr">
<template scope="scope">
<span v-if="scope.row.lxr==''||scope.row.lxr==undefined">
暂无
</span>
<span v-else>
{{scope.row.lxr}}
</span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="应发人数" prop="yf">
</el-table-column>
<el-table-column align="center" header-align="center" label="会员实发" prop="fts">
</el-table-column>
<el-table-column align="center" header-align="center" label="特殊人员" prop="ts">
</el-table-column>
<el-table-column align="center" header-align="center" label="发放总人数" prop="sum">
</el-table-column>
<el-table-column align="center" header-align="center" label="操作" >
<template scope="scope">
<el-button type="success" size="mini" @click="ffxq(scope.row.id)">详情</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<el-dialog
custom-class="ViewDialogClass"
title="发放名单详情"
:visible.sync="seeDialogVisible"
width="45%"
>
<el-table :data="fftableData" size="small">
<el-table-column align="center" header-align="center" label="姓名" prop="ff_username">
</el-table-column>
<el-table-column align="center" header-align="center" label="性别" prop="sex">
<template scope="scope">
<span v-if="scope.row.sex=='1'" ></span>
<span v-if="scope.row.sex=='2'" ></span>
<span v-if="scope.row.sex!='1'&&scope.row.sex!='2'">{{scope.row.sex}}</span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="联系电话" prop="mobile">
</el-table-column>
<el-table-column align="center" header-align="center" label="是否联系人" prop="sflxr">
<template scope="scope">
<el-tag type="success" v-if="scope.row.sflxr=='1'"></el-tag>
<el-tag type="info" v-else></el-tag>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="是否特殊" prop="sfts">
<template scope="scope">
<el-tag v-if="scope.row.sfts=='0'">普通</el-tag>
<el-tag type="danger" v-else>特殊</el-tag>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="备注" prop="bz">
<template scope="scope">
<span v-if="scope.row.bz==''||scope.row.bz==undefined">
暂无
</span>
<span v-else>
{{scope.row.bz}}
</span>
</template>
</el-table-column>
</el-table>
<el-row class="el-pagination-container">
<el-pagination
@size-change="pageSizeChange"
@current-change="pageNumberChange"
:current-page="pageForm.pageNumber"
:page-sizes="[10, 20, 30, 50]"
:page-size="pageForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="pageForm.totalCount">
</el-pagination>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button size="mini" @click="seeDialogVisible = false">关 闭</el-button>
</span>
</el-dialog>
</div>
<script>
var vm=new Vue({
el:"#app",
data:function () {
return{
pageForm:{
pageNumber:1,
pageSize:20,
totalCount:0,
id:""
},
tableData:[],
seeDialogVisible:false,
fftableData:[],
}
},
methods:{
pageData:function () {
var self=this;
$.post(base+"/platform/zgfw/xghmd/data",self.pageForm,function (data) {
self.tableData=data.data
})
},
dc:function () {
var self=this;
location.href=base+"/platform/zgfw/xghmd/excel"
},
ffxq:function (id) {
var self=this;
if (id!=""&&id!=undefined){
self.pageForm.id=id
}
$.post(base+"/platform/zgfw/xghmd/ffxq",self.pageForm,function (data) {
self.fftableData=data.data.list;
self.pageForm.totalCount=data.data.totalCount;
self.seeDialogVisible=true;
})
},
pageNumberChange: function (val) {//页码更新操作
this.pageForm.pageNumber = val;
this.ffxq();
},
pageSizeChange: function (val) {//分页大小更新操作
this.pageForm.pageSize = val;
this.ffxq();
},
tableRowClassName:function (row, rowIndex) {
if (row.row.wf != 0) {
return 'warning-row';
}
return '';
}
},
created:function () {
this.pageData();
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,634 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
.tpa {
padding: 10px;
text-align: center;
width: 12%;
background-color: rgb(250, 250, 250);
border: 1px solid rgb(220, 220, 220);
}
.tpb {
padding: 10px;
text-align: center;
width: 16%;
border: 1px solid rgb(220, 220, 220);
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
}
input[type="number"] {
-moz-appearance: textfield;
}
.el-collapse-item__header {
background-color: #317fca;
color: whitesmoke;
padding-left: 10px;
height: 35px;
line-height: 35px;
font-size: 16px;
}
</style>
<div id="app" v-cloak>
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<el-date-picker
v-model="pageForm.year"
type="year"
style="width: 100px"
:clearable="false"
value-format="yyyy"
@change="getJjrlp(pageForm.year)"
placeholder="年度">
</el-date-picker>
</div>
<div class="btn-group tool-button mt5">
<el-select clearable placeholder="福利项目" @change="change" filterable v-model="pageForm.lp"
style="width:250px">
<el-option v-for="lp in lplist" :value="lp.lp_id" :label="lp.lp_ms"></el-option>
</el-select>
</div>
<!-- <div class="btn-group tool-button mt5">-->
<!-- <el-select clearable placeholder="基层工会"-->
<!-- @change="getFghBydw(pageForm.fgh);getJjrlp(pageForm.year,pageForm.fgh)" filterable-->
<!-- v-model="pageForm.fgh" style="width:180px">-->
<!-- <el-option v-for="dw in fghlist" :value="dw.unionname" :label="dw.unionname"></el-option>-->
<!-- </el-select>-->
<!-- </div>-->
<div class="btn-group tool-button mt5">
<el-select clearable placeholder="单位名称" filterable v-model="pageForm.ejdw" style="width:210px">
<el-option v-for="dw in dwlist" :value="dw.name" :label="dw.name"></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-input type="text" v-model="pageForm.searchName" placeholder="请输入" style="width: 230px"
class="input-with-select">
<el-select style="width: 80px" v-model="pageForm.searchKey" slot="prepend" placeholder="请选择">
<el-option label="工号" value="loginname"></el-option>
<el-option label="姓名" value="username"></el-option>
</el-select>
</el-input>
</div>
<!-- <div class="btn-group tool-button mt5">-->
<!-- <el-select clearable v-model="pageForm.flhy" style="width: 130px" slot="prepend" placeholder="福利会员">-->
<!-- <el-option value="1" label="有效会员"></el-option>-->
<!-- <el-option value="0" label="无效会员"></el-option>-->
<!-- </el-select>-->
<!-- </div>-->
<div class="btn-group tool-button mt5">
<el-select v-model="pageForm.rylx" style="width: 100%" filterable clearable placeholder="人员类型">
<el-option
label="在编" value="在编">
</el-option>
<el-option
label="非编" value="非编">
</el-option>
<el-option
label="离退休" value="离退休">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-button type="primary" icon="el-icon-search" @click="doSearch"></el-button>
</div>
<div class="pull-right offscreen-right mt5">
<el-button size="medium" @click="openAdd">
新增
</el-button>
<el-button size="medium" @click="doAllDel">
批量删除
</el-button>
</div>
</el-row>
<el-row class="el-table-container">
<el-table :data="tableData" @sort-change="changeTableSort" size="small">
<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="工号" prop="loginname" 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="单位" sortable prop="ejdw" width="220px" header-align="center"
align="center"></el-table-column>
<el-table-column label="福利单位" sortable prop="fgh" width="220px" header-align="center"
align="center"></el-table-column>
<el-table-column label="人员类型" sortable prop="rylx" header-align="center" align="center">
</el-table-column>
<el-table-column label="状态" sortable prop="ryzt" header-align="center" align="center">
<template scope="scope">
<span v-if="scope.row.ryzt==1">待审核</span>
<span v-if="scope.row.ryzt==2">拒绝</span>
<span v-if="scope.row.ryzt==3">通过</span>
</template>
</el-table-column>
<el-table-column label="是否签收" sortable prop="sfqs" header-align="center" align="center">
<template scope="scope">
<span style="color: #67C23A" v-if="scope.row.sfqs==1">已签收</span>
<span style="color: #909399" v-else>未签收</span>
</template>
</el-table-column>
<el-table-column label="操作" header-align="center" align="center" width="300">
<template slot-scope="scope">
<el-button size="mini" @click="see(scope.row)">查看</el-button>
<el-button size="mini" type="primary" @click="openEdit(scope.row)">编辑</el-button>
<el-button size="mini" type="danger" @click="doDel(scope.row.id)">删除</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>
<el-dialog
title="福利人员信息"
:visible.sync="viewDialogVisible"
width="50%">
<el-collapse v-model="activeNames">
<el-collapse-item title="基本信息" name="1">
<div>
<table style="width: 100%">
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">姓名</td>
<td class="tpb">{{viewData.username}}</td>
<td class="tpa">工号</td>
<td class="tpb">{{viewData.loginname}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">单位</td>
<td class="tpb">{{viewData.name}}</td>
<td class="tpa">联系电话</td>
<td class="tpb">{{viewData.mobile}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">福利会员</td>
<td class="tpb">
<span v-if="viewData.flhy==1">有效会员</span>
<span v-if="viewData.flhy==0">无效会员</span>
<!--<span v-if="viewData.jflx==3">自筹经费</span>-->
</td>
<td class="tpa">人员类型</td>
<td class="tpb">{{viewData.rylx}}</td>
</tr>
</table>
</div>
</el-collapse-item>
</el-collapse>
</el-dialog>
<!-- 编辑人员 -->
<el-dialog
title="编辑"
top="15px"
:close-on-click-modal="false"
:visible.sync="editDialogVisible"
width="50%">
<el-form :model="EditFormData" :rules="rules" ref="editForm" label-width="100px">
<div>
<div>
<el-row>
<el-col :span="24">
<el-form-item label="工号" prop="loginname">
<el-input clearable v-model="EditFormData.loginname"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="姓名" prop="username">
<el-input clearable v-model="EditFormData.username"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="福利单位" prop="fgh">
<el-select clearable v-model="EditFormData.fgh" @change="getFghBydw(EditFormData.fgh)"
style="width: 100%">
<el-option v-for="dw in fghlist" :value="dw.welfare_unit_name"
:label="dw.welfare_unit_name"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="单位" prop="ejdw">
<el-select clearable v-model="EditFormData.ejdw" style="width: 100%">
<el-option v-for="dw in dwlist" :value="dw.name" :label="dw.name"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="人员类型" prop="rylx">
<el-select clearable v-model="EditFormData.rylx" style="width: 100%">
<el-option
label="在编" value="在编">
</el-option>
<el-option
label="非编" value="非编">
</el-option>
<el-option
label="离退休" value="离退休">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</div>
</div>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="editDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="doEdit">确 定</el-button>
</span>
</el-dialog>
<!-- 新增人员 -->
<el-dialog
title="新增"
top="15px"
:close-on-click-modal="false"
:visible.sync="addDialogVisible"
width="50%">
<el-form :model="AddFormData" :rules="rules" ref="addForm" label-width="100px">
<div>
<div>
<el-row>
<el-col :span="24">
<el-form-item label="工号">
<el-input clearable v-model="AddFormData.loginname"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="姓名" prop="username">
<el-input clearable v-model="AddFormData.username"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="福利单位" prop="fgh">
<el-select clearable v-model="AddFormData.fgh" @change="getFghBydw(AddFormData.fgh)"
style="width: 100%">
<el-option v-for="dw in fghlist" :value="dw.welfare_unit_name"
:label="dw.welfare_unit_name"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="单位" prop="ejdw">
<el-select clearable v-model="AddFormData.ejdw" style="width: 100%"
@change="unitChange">
<el-option v-for="dw in dwlist" :value="dw.name" :label="dw.name"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="人员类型" prop="rylx">
<el-select clearable v-model="AddFormData.rylx" style="width: 100%">
<el-option
label="在编" value="在编">
</el-option>
<el-option
label="非编" value="非编">
</el-option>
<el-option
label="离退休" value="离退休">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</div>
</div>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="addDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="doAdd">确 定</el-button>
</span>
</el-dialog>
</div>
<script>
const vue = new Vue({
el: "#app",
data: function () {
return {
viewData: {},
viewDialogVisible: false,
activeNames: ["1"],
addDialogVisible: false,
AddFormData: {},
editDialogVisible: false,
EditFormData: {},
pageForm: {
pageNumber: 1,
pageSize: 10,
totalCount: 0,
searchName: "",
year: moment().format('YYYY'),
sfhz: "",
searchKey: "username",
jflx: "",
rylx: "",
fgh: "",
prop: "",
order: "",
ejdw: "",
newhy: "",
flhy: ""
},
tableData: [],
multipleTable: [],
drDialogVisible: false,
fileList: [],
rows: [],
hzlist: [],
year: "",
dwlist: [],
rules: {
username: [{required: true, message: '必选', trigger: ['blur', 'change']}],
loginname: [{required: true, message: '必填', trigger: ['blur', 'change']}],
unitid: [{required: true, message: '必填', trigger: ['blur', 'change']}],
jflx: [{required: true, message: '必填', trigger: ['blur', 'change']}],
rylx: [{required: true, message: '必填', trigger: ['blur', 'change']}],
unionid: [{required: true, message: '必填', trigger: ['blur', 'change']}],
year: [{required: true, message: '必填', trigger: ['blur', 'change']}],
yf: [{required: true, message: '必填', trigger: ['blur', 'change']}],
order: "",
prop: "",
},
drDialogVisible: false,
fileList: [],
year: "",
yf: "",
fghlist: [],
dw: [],
lp: "",
lplist: []
}
},
methods: {
doSearch: function () {
this.pageForm.pageNumber = 1;
this.pageForm.newhy = "";
this.pageData();
},
pageData: function () {
var self = this;
$.post(base + "/platform/zgfw/flhy/data", self.pageForm, function (data) {
if (data.code === 0) {
self.tableData = data.data.list;
self.pageForm.totalCount = data.data.totalCount;
} else {
self.$message.error(data.msg);
}
});
},
pageNumberChange: function (val) {
this.pageForm.pageNumber = val;
this.pageData();
},
openAdd: function () {
var self = this;
self.addDialogVisible = true;
self.AddFormData = {jflx: '2', year: self.pageForm.year, lpid: self.pageForm.lp};
if (this.$refs["addForm"])
this.$refs["addForm"].resetFields();
},
async getDw() {
this.dwlist = await getUnits();
},
async getFgh() {
this.fghlist = await getWelfareUnits();
},
unitChange(unitName) {
let un = this.dwlist.find(v => v.name == unitName)
this.$set(this.AddFormData, "unit_id", un.id);
},
async getFghBydw(welfare_unit_name) {
let wu = this.fghlist.find(v => v.welfare_unit_name == welfare_unit_name)
this.$set(this.AddFormData, "ejdw", "");
this.$set(this.AddFormData, "union_id", wu.id);
this.$set(this.EditFormData, "ejdw", "");
this.$set(this.EditFormData, "union_id", wu.id);
if (wu) {
this.dwlist = await getUnitsByWelfareUnit(wu.id)
}
},
doAdd: function () {
var self = this;
this.$refs["addForm"].validate((valid) => {
if (valid) {
$.post(base + "/platform/zgfw/flhy/doAdd", self.AddFormData, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.doSearch();//查询是带条件的,加载新建用户选择的单位用户数据
self.addDialogVisible = false;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
})
}
})
},
see: function (scope) {
var self = this;
self.viewData = scope;
self.viewDialogVisible = true;
},
openEdit: function (scope) {
var self = this;
self.EditFormData = JSON.parse(JSON.stringify(scope));
self.editDialogVisible = true;
if (this.$refs["editForm"])
this.$refs["editForm"].resetFields();
},
doEdit: function () {
var self = this;
this.$refs["editForm"].validate((valid) => {
if (valid) {
$.post(base + "/platform/zgfw/flhy/doEdit", self.EditFormData, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.doSearch();//查询是带条件的,加载新建用户选择的单位用户数据
self.editDialogVisible = false;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
})
}
})
},
doDel: function (id) {
var self = this;
self.$confirm('此操作将删除这条数据,确定吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: function (a, b) {
if ("confirm" == a) {//确认后再执行
$.post(base + "/platform/zgfw/flhy/doDel", {id: id}, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.doSearch();
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
}
});
},
opendr: function () {
var self = this;
self.fileList = [];
self.year = "";
self.drDialogVisible = true;
},
alldel: function () {
var self = this;
self.$confirm('此操作将删除当前所选数据,确定吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: function (a, b) {
if ("confirm" == a) {//确认后再执行
$.post(base + "/platform/zgfw/mddr/allDel", self.pageForm, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.doSearch();
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
}
});
},
changeTableSort: function (column) {
var self = this;
self.pageForm.prop = column.prop;
self.pageForm.order = column.order;
self.pageData();
},
getJjrlp: function (year, id) {
var self = this;
$.post(base + "/platform/zgfw/mdgl/getJjrlp", {year: year, id: id}, function (data) {
self.lplist = data.data;
if (self.lplist.length > 0) {
self.pageForm.lp = self.lplist[0].lp_id
}
if (id == null || id == "") {
self.pageData();
}
})
},
change: function () {
this.$forceUpdate()
},
doAllDel: function () {
var self = this;
self.$confirm('此操作将删除当前福利项目下所以数据,确定吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: function (a, b) {
if ("confirm" == a) {//确认后再执行
$.post(base + "/platform/zgfw/flhy/doAllDel", {lpid: self.pageForm.lp}, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.pageData();
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, 'json')
}
}
});
}
},
created: function () {
this.getJjrlp(this.pageForm.year, "");
this.getDw();
this.getFgh();
}
});
</script>
<!--#
}
#-->
@@ -0,0 +1,376 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
.el-table .warning-row {
color: red;
}
input[type=file] {
display: none;
}
.el-form-item {
margin-bottom: 15px;
}
.el-form-item__error {
color: #F56C6C;
font-size: 12px;
line-height: 1;
position: absolute;
top: 100%;
left: 0;
padding-top: 0px;
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
}
input[type="number"] {
-moz-appearance: textfield;
}
.el-table .warning-row {
background: oldlace;
}
.el-collapse-item__header {
background-color: #317fca;
color: whitesmoke;
padding-left: 10px;
height: 35px;
line-height: 35px;
font-size: 16px;
}
.el-dialog__body {
padding: 30px 20px;
margin-bottom: -50px;
color: #606266;
font-size: 14px;
word-break: break-all;
}
</style>
<div id="app">
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<el-date-picker
v-model="hzpageForm.year"
type="year"
:clearable="false"
value-format="yyyy"
@change="getJjrlp(hzpageForm.year)"
placeholder="年度">
</el-date-picker>
</div>
<div class="btn-group tool-button mt5">
<el-select clearable placeholder="福利项目" @change="change" filterable v-model="hzpageForm.lp"
style="width:250px">
<el-option v-for="lp in lplist" :value="lp.lp_id" :label="lp.lp_ms"></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-select clearable placeholder="按单位查询" filterable v-model="hzpageForm.fgh" style="width: 100%">
<el-option v-for="dw in dwlist" :value="dw.id" :label="dw.name"></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-button type="primary" icon="el-icon-search" @click="doSearch"></el-button>
</div>
<div class="pull-right offscreen-right mt5">
<el-button type="warning" @click="bg"><i class="ti-plus"></i>导出福利名单</el-button>
</div>
</el-row>
<el-row class="el-table-container">
<el-table :data="tableData" ref="multipleTable" size="small">
<el-table-column label="序号" type="index" header-align="center" align="center">
<template scope="scope"><span>{{scope.$index+1}} </span></template>
</el-table-column>
<el-table-column label="福利单位" prop="unionname" header-align="center" align="center"></el-table-column>
<el-table-column label="发放地址" prop="welfare_unit_address" header-align="center" align="center"></el-table-column>
<el-table-column label="联系人电话" prop="leader_phone" header-align="center" align="center"></el-table-column>
<el-table-column label="合计" prop="zrs" header-align="center" align="center"></el-table-column>
</el-table-column>
<el-table-column label="操作" header-align="center" align="center" width="200">
<template slot-scope="scope">
<el-button size="mini" @click="openView(scope.row.id)">查看</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<el-row class="el-pagination-container">
<el-pagination
@size-change="hzpageSizeChange"
@current-change="hzpageNumberChange"
:current-page="hzpageForm.pageNumber"
layout="total, prev, pager, next, jumper"
:total="hzpageForm.totalCount">
</el-pagination>
</el-row>
<el-dialog
custom-class="ViewDialogClass"
title="发放名单详情"
top="1%"
:visible.sync="seeDialogVisible"
width="80%"
>
<div style="margin-bottom: 15px;margin-top: -10px">
<div class="btn-group tool-button mt5">
<el-date-picker
v-model="pageForm.year"
type="year"
disabled
style="width: 100px"
:clearable="false"
value-format="yyyy"
placeholder="年度">
</el-date-picker>
</div>
<div class="btn-group tool-button mt5">
<el-select v-model="pageForm.lp" disabled slot="prepend" placeholder="项目">
<el-option v-for="item in lplist" :label="item.lp_ms" :value="item.lp_id"></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-select clearable placeholder="单位名称" filterable v-model="pageForm.ejdw" style="width:210px">
<el-option v-for="dw in dw" :value="dw.name" :label="dw.name"></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-input type="text" v-model="pageForm.searchName" placeholder="请输入" style="width: 230px"
class="input-with-select">
<el-select style="width: 100px" size="mini" v-model="pageForm.searchKey" slot="prepend"
placeholder="请选择">
<el-option label="工号" value="loginname"></el-option>
<el-option label="姓名" value="username"></el-option>
</el-select>
</el-input>
</div>
<div class="btn-group tool-button mt5">
<el-select clearable v-model="pageForm.rylx" style="width: 140px" slot="prepend" placeholder="人员类型">
<el-option
label="在编" value="在编">
</el-option>
<el-option
label="非编" value="非编">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-button type="primary" icon="el-icon-search" @click="see"></el-button>
</div>
</div>
<el-table :data="rytableData" size="small" @sort-change="changeTableSort">
<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="工号" prop="loginname" 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="单位" sortable prop="ejdw" header-align="center" align="center"></el-table-column>
<el-table-column label="人员类型" sortable prop="rylx" header-align="center" align="center">
</el-table-column>
<el-table-column label="状态" prop="ryzt" header-align="center" align="center">
<template scope="scope">
<span v-if="scope.row.ryzt==1">待审核</span>
<span v-if="scope.row.ryzt==2">拒绝</span>
<span v-if="scope.row.ryzt==3">通过</span>
</template>
</el-table-column>
</el-table>
<el-row class="el-pagination-container">
<el-pagination
@size-change="pageSizeChange"
@current-change="pageNumberChange"
:current-page="pageForm.pageNumber"
:page-sizes="[10, 20, 30, 50]"
:page-size="pageForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="pageForm.totalCount">
</el-pagination>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button size="mini" @click="seeDialogVisible = false">关 闭</el-button>
</span>
</el-dialog>
</div>
<script>
const vue = new Vue({
el: "#app",
data() {
return {
addDialogVisible: false,
AddFormData: {sex: '男'},
editDialogVisible: false,
EditFormData: {},
pageForm: {
pageNumber: 1,
pageSize: 10,
totalCount: 0,
searchName: "",
year: moment().format('YYYY'),
sfhz: "",
searchKey: "username",
jflx: "",
rylx: "",
ejdw: "",
lp: ""
},
hzpageForm: {
pageNumber: 1,
pageSize: 10,
totalCount: 0,
year: moment().format('YYYY'),
fgh: "",
lp: ""
},
tableData: [],
multipleTable: [],
drDialogVisible: false,
fileList: [],
rows: [],
hzlist: [],
year: "",
seeDialogVisible: false,
rytableData: [],
dwlist: [],
dw: [],
lplist: []
}
},
methods: {
doSearch() {
this.pageForm.pageNumber = 1;
this.pageData();
},
pageData() {
let self = this;
$.post(base + "/platform/zgfw/mdgl/data", self.hzpageForm, function (data) {
if (data.code === 0) {
self.tableData = data.data.list;
self.hzpageForm.totalCount = data.data.totalCount;
} else {
self.$message.error(data.msg);
}
});
},
hzpageNumberChange(val) {
this.hzpageForm.pageNumber = val;
this.pageData();
},
hzpageSizeChange(val) {//分页大小更新操作
this.hzpageForm.pageSize = val;
this.pageData();
},
pageNumberChange(val) {
this.pageForm.pageNumber = val;
this.see();
},
pageSizeChange(val) {//分页大小更新操作
this.pageForm.pageSize = val;
this.see();
},
handleSelectionChange(val) {
this.hzlist = val;
},
handleRemove(file, fileList) {
let self = this;
self.fileList = fileList;
},
handleChange(file, fileList) {
let self = this;
if (file.size == 0) {
self.$message.warning("您选择的是空文件!");
for (let i = 0; i < fileList.length; i++) {
if (file == fileList[i]) {
fileList.splice(i, 1);
}
}
}
self.fileList = fileList;
},
openView(wu_id) {
this.pageForm = {
pageNumber: 1,
pageSize: 10,
totalCount: 0,
searchName: "",
year: this.hzpageForm.year,
sfhz: "",
searchKey: "username",
jflx: "",
rylx: "",
ejdw: "",
lp: this.hzpageForm.lp,
wu_id: wu_id
}
this.getFghBydw(this.pageForm.wu_id);
this.seeDialogVisible = true;
this.see()
},
see() {
let self = this;
$.post(base + "/platform/zgfw/mdgl/fghdata", self.pageForm, function (data) {
if (data.code === 0) {
self.rytableData = data.data.list;
self.pageForm.totalCount = data.data.totalCount;
self.seeDialogVisible = true;
} else {
self.$message.error(data.msg);
}
});
},
getFghBydw(wu_id) {
let self = this;
$.post(base + "/platform/zgfw/mdgl/getDw", {wu_id: wu_id}, function (data) {
self.dw = data.data;
})
},
changeTableSort(column) {
let self = this;
self.pageForm.prop = column.prop;
self.pageForm.order = column.order;
self.see();
},
bg() {
location.href = base + "/platform/zgfw/mdgl/doExcel?year=" + this.hzpageForm.year + "&lp=" + this.hzpageForm.lp;
},
getJjrlp(year) {
let self = this;
$.post(base + "/platform/zgfw/mdgl/getJjrlp", {year: year}, function (data) {
self.lplist = data.data;
self.pageForm.lp = self.lplist[0].lp_id
self.hzpageForm.lp = self.lplist[0].lp_id
self.pageData();
})
},
change() {
this.$forceUpdate()
}
},
async created() {
this.getJjrlp(this.pageForm.year);
this.dwlist = await getUnits()
}
});
</script>
<!--#
}
#-->
@@ -0,0 +1,780 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
.tpa {
padding: 10px;
text-align: center;
width: 12%;
background-color: rgb(250, 250, 250);
border: 1px solid rgb(220, 220, 220);
}
.tpb {
padding: 10px;
text-align: center;
width: 16%;
border: 1px solid rgb(220, 220, 220);
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
}
input[type="number"] {
-moz-appearance: textfield;
}
.el-collapse-item__header {
background-color: #317fca;
color: whitesmoke;
padding-left: 10px;
height: 35px;
line-height: 35px;
font-size: 16px;
}
.el-table-container2 el-table-container {
padding-top: 0px !important;
}
</style>
<div id="app" v-cloak>
<el-row class="header navbar bg-white shadow">
<!-- <div class="btn-group tool-button mt5">
<el-date-picker
v-model="pageForm.year"
type="year"
style="width: 100px"
:clearable="false"
value-format="yyyy"
placeholder="年度">
</el-date-picker>
</div>-->
<div class="btn-group tool-button mt5">
<el-select clearable placeholder="福利单位" @change="getFghBydw(pageForm.fgh)" filterable v-model="pageForm.fgh"
style="width:180px">
<el-option v-for="dw in fghlist" :value="dw.id" :label="dw.welfare_unit_name"></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-select clearable placeholder="组成单位" filterable v-model="pageForm.ejdw" style="width:210px">
<el-option v-for="dw in dwlist" :value="dw.id" :label="dw.name"></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-input type="text" v-model="pageForm.searchName" placeholder="请输入" style="width: 230px"
class="input-with-select">
<el-select style="width: 100px" v-model="pageForm.searchKey" slot="prepend" placeholder="请选择">
<el-option label="工号" value="loginname"></el-option>
<el-option label="姓名" value="username"></el-option>
</el-select>
</el-input>
</div>
<!-- <div class="btn-group tool-button mt5">
<el-select clearable v-model="pageForm.flhy" style="width: 130px" slot="prepend" placeholder="福利会员">
<el-option value="1" label="有效会员"></el-option>
<el-option value="0" label="无效会员"></el-option>
&lt;!&ndash;<el-option value="3" label="自筹经费"></el-option>&ndash;&gt;
</el-select>
</div>-->
<div class="btn-group tool-button mt5">
<el-select v-model="pageForm.rylx" style="width: 100%" filterable clearable placeholder="人员类型">
<el-option
label="在编" value="在编">
</el-option>
<el-option
label="非编" value="非编">
</el-option>
<el-option
label="离退休" value="离退休">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-select clearable v-model="pageForm.jflx" style="width: 130px" slot="prepend" placeholder="缴费类型">
<el-option value="学校经费" label="学校经费"></el-option>
<el-option value="单位缴费" label="单位缴费"></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-button type="primary" icon="el-icon-search" @click="doSearch"></el-button>
</div>
<div class="pull-right offscreen-right mt5">
<!-- <el-button size="medium" @click="download">-->
<!-- 数据模板-->
<!-- </el-button>-->
<el-button size="medium" @click="opendr">
导入
</el-button>
<el-button size="medium" @click="openAdd">
新增
</el-button>
<!-- <el-button size="medium" @click="alldel">
删除
</el-button>-->
<!-- <el-button size="medium" @click="dc">
导出
</el-button>-->
</div>
</el-row>
<el-row class="el-table-container">
<el-table :data="tableData" @sort-change="changeTableSort" size="small">
<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="工号" prop="loginname" 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="单位" sortable prop="name" width="220px" header-align="center"
align="center"></el-table-column>
<el-table-column label="福利单位" sortable prop="unionname" width="220px" header-align="center"
align="center"></el-table-column>
<el-table-column label="人员类型" sortable prop="rylx" header-align="center" align="center">
</el-table-column>
<el-table-column label="福利会员" prop="flhy" header-align="center" align="center">
<template scope="scope">
<span style="color: #9fadbd" v-if="scope.row.flhy==0">无效会员</span>
<span style="color: #00c1de" v-if="scope.row.flhy==1">有效会员</span>
</template>
</el-table-column>
<el-table-column label="状态" sortable prop="ryzt" header-align="center" align="center">
<template scope="scope">
<span v-if="scope.row.flzt==1">待审核</span>
<span v-if="scope.row.flzt==2">拒绝</span>
<span v-if="scope.row.flzt==3">通过</span>
</template>
</el-table-column>
<el-table-column label="操作" header-align="center" align="center" width="300">
<template slot-scope="scope">
<el-button size="mini" @click="see(scope.row)">查看</el-button>
<el-button size="mini" type="primary" @click="openEdit(scope.row)">编辑</el-button>
<!-- <el-button size="mini" type="danger" @click="doDel(scope.row.id)">删除</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>
<el-divider content-position="left" style="color: #409EFF">系统未找到的人员数据</el-divider>
<template class="el-table-container2">
<el-row class="el-table-container">
<el-table :data="noTableData" @sort-change="changeTableSort" size="small">
<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="工号" prop="loginname" 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="单位" sortable prop="unitname" width="220px" header-align="center"
align="center"></el-table-column>
<!-- <el-table-column label="基层工会" sortable prop="unionname" width="220px" header-align="center"-->
<!-- align="center"></el-table-column>-->
<el-table-column label="人员类型" sortable prop="rylx" header-align="center" align="center">
</el-table-column>
<el-table-column label="操作" header-align="center" align="center" width="300">
<template slot-scope="scope">
<el-button size="mini" @click="see(scope.row)">查看</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<el-row class="el-pagination-container">
<el-pagination
@current-change="noPageNumberChange"
:current-page="noPageForm.pageNumber"
layout="total, prev, pager, next, jumper"
:total="noPageForm.totalCount">
</el-pagination>
</el-row>
</template>
<el-dialog
title="福利人员信息"
:visible.sync="viewDialogVisible"
width="50%">
<el-collapse v-model="activeNames">
<el-collapse-item title="基本信息" name="1">
<div>
<table style="width: 100%">
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">姓名</td>
<td class="tpb">{{viewData.username}}</td>
<td class="tpa">工号</td>
<td class="tpb">{{viewData.loginname}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">单位</td>
<td class="tpb">{{viewData.name}}</td>
<td class="tpa">联系电话</td>
<td class="tpb">{{viewData.mobile}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">福利会员</td>
<td class="tpb">
<span v-if="viewData.flhy==1">有效会员</span>
<span v-if="viewData.flhy==0">无效会员</span>
<!--<span v-if="viewData.jflx==3">自筹经费</span>-->
</td>
<td class="tpa">人员类型</td>
<td class="tpb">{{viewData.rylx}}</td>
</tr>
</table>
</div>
</el-collapse-item>
</el-collapse>
</el-dialog>
<!-- 编辑人员 -->
<el-dialog
title="编辑"
top="15px"
:close-on-click-modal="false"
:visible.sync="editDialogVisible"
width="50%">
<el-form :model="EditFormData" :rules="rules" ref="editForm" label-width="100px">
<div>
<div>
<el-row>
<el-col :span="24">
<el-form-item label="工号" prop="loginname">
<el-input clearable v-model="EditFormData.loginname"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="姓名" prop="username">
<el-input clearable v-model="EditFormData.username"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="福利单位" prop="unionid">
<el-select clearable filterable v-model="EditFormData.unionid"
@change="getFghBydw(EditFormData.unionid)" style="width: 100%">
<el-option v-for="dw in fghlist" :value="dw.id"
:label="dw.welfare_unit_name"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="单位" prop="unitid">
<el-select clearable filterable v-model="EditFormData.unitid" style="width: 100%">
<el-option v-for="dw in dwlist" :value="dw.id" :label="dw.name"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="人员类型" prop="rylx">
<el-select clearable v-model="EditFormData.rylx" style="width: 100%">
<el-option
label="在编" value="在编">
</el-option>
<el-option
label="非编" value="非编">
</el-option>
<el-option
label="离退休" value="离退休">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</div>
</div>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="editDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="doEdit">确 定</el-button>
</span>
</el-dialog>
<!-- 新增人员 -->
<el-dialog
title="新增"
top="15px"
:close-on-click-modal="false"
:visible.sync="addDialogVisible"
width="50%">
<el-form :model="AddFormData" :rules="rules" ref="addForm" label-width="100px">
<div>
<div>
<el-row>
<el-col :span="24">
<el-form-item label="工号">
<el-input clearable v-model="AddFormData.loginname"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="姓名" prop="username">
<el-input clearable v-model="AddFormData.username"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="福利单位" prop="unionid">
<el-select clearable filterable v-model="AddFormData.unionid"
@change="getFghBydw(AddFormData.unionid)" style="width: 100%">
<el-option v-for="dw in fghlist" :value="dw.id"
:label="dw.welfare_unit_name"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="单位" prop="unitid">
<el-select clearable filterable v-model="AddFormData.unitid" style="width: 100%">
<el-option v-for="dw in dwlist" :value="dw.id" :label="dw.name"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="人员类型" prop="rylx">
<el-select clearable v-model="AddFormData.rylx" style="width: 100%">
<el-option
label="在编" value="在编">
</el-option>
<el-option
label="非编" value="非编">
</el-option>
<el-option
label="劳务派遣人员" value="劳务派遣人员">
</el-option>
<el-option
label="单位自聘人员" value="单位自聘人员">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</div>
</div>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="addDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="doAdd">确 定</el-button>
</span>
</el-dialog>
<el-dialog
custom-class="ViewDialogClass"
title="人员名单导入"
:visible.sync="drDialogVisible"
:close-on-click-modal="false"
width="40%"
>
<el-row>
<el-col :span="9">
<el-upload
name="file"
ref="upload"
action="****"
:on-remove="handleRemove"
:on-change="handleChange"
:auto-upload="false"
:limit="1"
:file-list="fileList">
<el-button size="small" type="">选择文件</el-button>
<div class="el-upload__tip" slot="tip" style="color: #F56C6C">
只能上传 xls/xlsx 文件
</div>
</el-upload>
</el-col>
<el-col :span="10">
导入数据年度:
<el-date-picker
v-model="year"
type="year"
size="small"
style="width: 50%"
value-format="yyyy"
placeholder="年度">
</el-date-picker>
</el-col>
<!-- <el-col :span="5">
<el-select size="small" v-model="yf" placeholder="月份">
<el-option label="4月" value="4月"></el-option>
<el-option label="12月" value="12月"></el-option>
</el-select>
</el-col>-->
</el-row>
<span slot="footer" class="dialog-footer">
<el-button @click="drDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="dq">确定</el-button>
</span>
</el-dialog>
</div>
<script>
const vue = new Vue({
el: "#app",
data() {
return {
viewData: {},
viewDialogVisible: false,
activeNames: ["1"],
addDialogVisible: false,
AddFormData: {},
editDialogVisible: false,
EditFormData: {},
pageForm: {
pageNumber: 1,
pageSize: 10,
totalCount: 0,
searchName: "",
year: moment().format('YYYY'),
sfhz: "",
searchKey: "username",
jflx: "",
rylx: "",
fgh: "",
prop: "",
order: "",
ejdw: "",
newhy: "",
flhy: ""
},
tableData: [],
multipleTable: [],
drDialogVisible: false,
fileList: [],
rows: [],
hzlist: [],
year: "",
dwlist: [],
rules: {
username: [{required: true, message: '必选', trigger: ['blur', 'change']}],
loginname: [{required: true, message: '必填', trigger: ['blur', 'change']}],
unitid: [{required: true, message: '必填', trigger: ['blur', 'change']}],
jflx: [{required: true, message: '必填', trigger: ['blur', 'change']}],
rylx: [{required: true, message: '必填', trigger: ['blur', 'change']}],
unionid: [{required: true, message: '必填', trigger: ['blur', 'change']}],
year: [{required: true, message: '必填', trigger: ['blur', 'change']}],
yf: [{required: true, message: '必填', trigger: ['blur', 'change']}],
order: "",
prop: "",
},
drDialogVisible: false,
fileList: [],
year: "",
yf: "",
fghlist: [],
dw: [],
lp: "",
lplist: [],
noTableData: [],
noPageForm: {
pageNumber: 1,
pageSize: 10,
totalCount: 0,
},
}
},
methods: {
doSearch() {
this.pageForm.pageNumber = 1;
this.pageForm.newhy = "";
this.pageData();
},
pageData() {
var self = this;
$.post(base + "/platform/zgfw/mddr/data", self.pageForm, function (data) {
if (data.code === 0) {
self.tableData = data.data.list;
self.pageForm.totalCount = data.data.totalCount;
} else {
self.$message.error(data.msg);
}
});
},
noPageData() {
$.post("/platform/zgfw/mddr/getUserNo", this.noPageForm, (data) => {
if (data.code === 0) {
this.noTableData = data.data.list;
this.noPageForm.totalCount = data.data.totalCount;
} else {
this.$message.error(data.msg);
}
})
},
pageNumberChange(val) {
this.pageForm.pageNumber = val;
this.pageData();
},
noPageNumberChange(val) {
this.noPageForm.pageNumber = val;
this.noPageData();
},
openAdd() {
var self = this;
self.addDialogVisible = true;
self.AddFormData = {jflx: '2', year: self.pageForm.year, lpid: self.pageForm.lp};
if (this.$refs["addForm"])
this.$refs["addForm"].resetFields();
},
async getDw() {
this.dwlist = await getUnits();
},
async getFgh() {
this.fghlist = await getWelfareUnits();
},
async getFghBydw(dwid) {
this.dwlist = await getUnitsByWelfareUnit(dwid);
this.EditFormData.unitid = "";
this.AddFormData.unitid = "";
},
doAdd() {
var self = this;
this.$refs["addForm"].validate((valid) => {
if (valid) {
$.post(base + "/platform/zgfw/mddr/doAdd", self.AddFormData, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.doSearch();//查询是带条件的,加载新建用户选择的单位用户数据
self.addDialogVisible = false;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
})
}
})
},
see(scope) {
var self = this;
self.viewData = scope;
self.viewDialogVisible = true;
},
openEdit(scope) {
var self = this;
self.EditFormData = JSON.parse(JSON.stringify(scope));
self.editDialogVisible = true;
if (this.$refs["editForm"])
this.$refs["editForm"].resetFields();
},
doEdit() {
var self = this;
this.$refs["editForm"].validate((valid) => {
if (valid) {
$.post(base + "/platform/zgfw/mddr/doEdit", self.EditFormData, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.doSearch();//查询是带条件的,加载新建用户选择的单位用户数据
self.editDialogVisible = false;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
})
}
})
},
doDel(id) {
var self = this;
self.$confirm('此操作将删除这条数据,确定吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback(a, b) {
if ("confirm" == a) {//确认后再执行
$.post(base + "/platform/zgfw/mddr/doDel", {id: id}, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.doSearch();
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
}
});
},
download() {//附件下载
var self = this;
window.location.href = base + "/platform/zgfw/mdgl/downLoad";
},
opendr() {
var self = this;
self.fileList = [];
self.year = "";
self.drDialogVisible = true;
},
dq() {
var self = this;
if (self.fileList.length == 0) {
self.$message.warning("请选择选择一个文件!");
return;
}
if (self.year == "" || self.year == undefined) {
self.$message.warning("请选择数据所属年份!");
return;
}
var formdata = new FormData();
self.fileList.forEach(function (val) {
formdata.append("file", val.raw, val.raw.name);
});
sublime.showLoadingbar()
const loading = this.$loading({
lock: true,
text: '数据读取中',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
$.ajax({
url: base + "/platform/zgfw/mdgl/getRow?year=" + self.year + "&yf=" + self.yf,
type: "post",
data: formdata,
processData: false,
contentType: false,
success(data) {
if (data.code == 0) {
loading.close();
self.$message.success("数据导入成功!");
self.pageData();
self.drDialogVisible = false;
} else {
loading.close();
self.$message.error(data.msg);
}
sublime.closeLoadingbar()
},
error(data) {
sublime.closeLoadingbar()
}
});
},
handleRemove(file, fileList) {
var self = this;
self.fileList = fileList;
},
handleChange(file, fileList) {
var self = this;
if (file.size == 0) {
self.$message.warning("您选择的是空文件!");
for (var i = 0; i < fileList.length; i++) {
if (file == fileList[i]) {
fileList.splice(i, 1);
}
}
}
self.fileList = fileList;
},
alldel() {
var self = this;
self.$confirm('此操作将删除当前所选数据,确定吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback(a, b) {
if ("confirm" == a) {//确认后再执行
$.post(base + "/platform/zgfw/mddr/allDel", self.pageForm, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.doSearch();
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
}
});
},
changeTableSort(column) {
var self = this;
self.pageForm.prop = column.prop;
self.pageForm.order = column.order;
self.pageData();
},
dc() {
var self = this;
location.href = base + "/platform/zgfw/mdgl/exportExcel?year=" + self.pageForm.year + "&yf=" + self.pageForm.yf + "&searchKey=" + self.searchKey + "&searchName=" +
self.pageForm.searchName + "&jflx=" + self.pageForm.jflx + "&bzlx=" + self.pageForm.bzlx + "&fgh=" + self.pageForm.fgh + "&order=" + self.pageForm.order + "&prop=" + self.pageForm.prop;
},
getJjrlp(year) {
var self = this;
$.post(base + "/platform/zgfw/mdgl/getJjrlp", {year: year}, function (data) {
self.lplist = data.data;
self.pageForm.lp = self.lplist[0].lp_id
self.pageData();
})
}
},
async created() {
this.pageData();
this.noPageData()
this.getDw();
this.getFgh();
}
});
</script>
<!--#
}
#-->
@@ -0,0 +1,627 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
.tpa {
padding: 10px;
text-align: center;
width: 12%;
background-color: rgb(250, 250, 250);
border: 1px solid rgb(220, 220, 220);
}
.tpb {
padding: 10px;
text-align: center;
width: 16%;
border: 1px solid rgb(220, 220, 220);
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
}
input[type="number"] {
-moz-appearance: textfield;
}
.el-collapse-item__header {
background-color: #317fca;
color: whitesmoke;
padding-left: 10px;
height: 35px;
line-height: 35px;
font-size: 16px;
}
</style>
<div id="app" v-cloak>
<el-row class="header navbar bg-white shadow">
<!-- <div class="btn-group tool-button mt5">
<el-date-picker
v-model="pageForm.year"
type="year"
style="width: 100px"
:clearable="false"
value-format="yyyy"
@change="getJjrlp(pageForm.year);change()"
placeholder="年度">
</el-date-picker>
</div>-->
<!-- <div class="btn-group tool-button mt5">
<el-select style="width: 100px" v-model="pageForm.yf" slot="prepend" placeholder="月份">
<el-option label="4月" value="4月"></el-option>
<el-option label="12月" value="12月"></el-option>
</el-select>
</div>-->
<div class="btn-group tool-button mt5">
<el-select clearable placeholder="福利单位" @change="getFghBydw(pageForm.fgh)" filterable v-model="pageForm.fgh"
style="width:260px">
<el-option v-for="dw in fghlist" :value="dw.id" :label="dw.welfare_unit_name"></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-select clearable placeholder="单位名称" filterable v-model="pageForm.ejdw" style="width:210px">
<el-option v-for="dw in dwlist" :value="dw.id" :label="dw.name"></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-input type="text" v-model="pageForm.searchName" placeholder="请输入" style="width: 230px"
class="input-with-select">
<el-select style="width: 100px" v-model="pageForm.searchKey" slot="prepend" placeholder="请选择">
<el-option label="工号" value="loginname"></el-option>
<el-option label="姓名" value="username"></el-option>
</el-select>
</el-input>
</div>
<div class="btn-group tool-button mt5">
<el-select clearable v-model="pageForm.rylx" style="width: 140px" slot="prepend" placeholder="人员类型">
<el-option
label="在编" value="在编">
</el-option>
<el-option
label="非编" value="非编">
</el-option>
<el-option
label="离退休" value="离退休">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-select clearable v-model="pageForm.flhy" style="width: 130px" slot="prepend" placeholder="会员类型">
<el-option value="1" label="有效会员"></el-option>
<el-option value="0" label="无效会员"></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-button type="primary" icon="el-icon-search" @click="doSearch"></el-button>
</div>
<div class="pull-right offscreen-right mt5">
<el-button size="medium" @click="openAdd">
新增
</el-button>
</div>
</el-row>
<el-row class="el-table-container">
<el-table :data="tableData" size="small" @sort-change="changeTableSort">
<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="工号" prop="loginname" 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="单位名称" sortable width="220px" prop="name" header-align="center"
align="center"></el-table-column>
<el-table-column label="人员类型" sortable prop="rylx" header-align="center" align="center">
</el-table-column>
<el-table-column label="福利会员" sortable prop="ryzt" header-align="center" align="center">
<template scope="scope">
<span style="color: #9fadbd" v-if="scope.row.flhy==0">无效会员</span>
<span style="color: #00c1de" v-if="scope.row.flhy==1">有效会员</span>
</template>
</el-table-column>
<el-table-column label="状态" sortable prop="ryzt" header-align="center" align="center">
<template scope="scope">
<span v-if="scope.row.flzt==1">待审核</span>
<span v-if="scope.row.flzt==2">拒绝</span>
<span v-if="scope.row.flzt==3">通过</span>
</template>
</el-table-column>
<el-table-column label="操作" header-align="center" align="center" width="180px">
<template slot-scope="scope">
<el-button size="mini" @click="see(scope.row)">查看</el-button>
<el-button size="mini" :disabled="scope.row.flzt==3?false:true" type="primary"
@click="openEdit(scope.row)">变更
</el-button>
<!--<el-button size="mini" type="danger" @click="doDel(scope.row.id)">删除</el-button>-->
</template>
</el-table-column>
</el-table>
</el-row>
<el-row class="el-pagination-container">
<el-pagination
@size-change="pageSizeChange"
@current-change="pageNumberChange"
:current-page="pageForm.pageNumber"
:page-size="pageForm.pageSize"
layout="total, prev, pager, next, jumper"
:total="pageForm.totalCount">
</el-pagination>
</el-row>
<!-- 添加人员 -->
<el-dialog
title="新增"
top="15px"
:close-on-click-modal="false"
:visible.sync="addDialogVisible"
width="50%">
<el-form :model="AddFormData" :rules="rules" ref="addForm" label-width="100px">
<div>
<div>
<el-row>
<el-col :span="24">
<el-form-item label="工号" prop="loginname">
<el-input clearable v-model="AddFormData.loginname"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="姓名" prop="username">
<el-input clearable v-model="AddFormData.username"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="福利单位" prop="unionid">
<el-select clearable v-model="AddFormData.unionid"
@change="getFghBydw(AddFormData.unionid)" style="width: 100%">
<el-option v-for="dw in fghlist" :value="dw.id"
:label="dw.welfare_unit_name"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="单位" prop="unitid">
<el-select clearable v-model="AddFormData.unitid" style="width: 100%">
<el-option v-for="dw in dwlist" :value="dw.id" :label="dw.name"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="人员类型" prop="rylx">
<el-select clearable v-model="AddFormData.rylx" style="width: 100%">
<el-option
label="在编" value="在编">
</el-option>
<el-option
label="非编" value="非编">
</el-option>
<el-option
label="离退休" value="离退休">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</div>
</div>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="addDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="doAdd">确 定</el-button>
</span>
</el-dialog>
<!-- 编辑人员-->
<el-dialog
title="变更"
top="15px"
:close-on-click-modal="false"
:visible.sync="editDialogVisible"
width="50%">
<el-form :model="EditFormData" :rules="rules" ref="editForm" label-width="100px">
<div>
<div>
<el-row>
<el-col :span="24">
<el-form-item label="工号" prop="loginname">
<el-input clearable v-model="EditFormData.loginname"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="姓名" prop="username">
<el-input clearable v-model="EditFormData.username"></el-input>
</el-form-item>
</el-col>
</el-row>
<!-- <el-row>-->
<!-- <el-col :span="24">-->
<!-- <el-form-item label="原基层工会" prop="unionname">-->
<!-- <el-input v-model="EditFormData.unionname"></el-input>-->
<!-- &lt;!&ndash; <el-select clearable v-model="EditFormData.unionid"&ndash;&gt;-->
<!-- &lt;!&ndash; @change="getFghBydw(EditFormData.unionid)" style="width: 100%">&ndash;&gt;-->
<!-- &lt;!&ndash; <el-option v-for="dw in fghlist" :value="dw.id"&ndash;&gt;-->
<!-- &lt;!&ndash; :label="dw.unionname"></el-option>&ndash;&gt;-->
<!-- &lt;!&ndash; </el-select>&ndash;&gt;-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-row>
<el-col :span="24">
<el-form-item label="原单位" prop="unitid">
<el-select clearable v-model="EditFormData.unitid" style="width: 100%">
<el-option v-for="dw in dwlist" :value="dw.id" :label="dw.name"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="人员类型" prop="rylx">
<el-select clearable v-model="EditFormData.rylx" style="width: 100%">
<el-option
label="在编" value="在编">
</el-option>
<el-option
label="非编" value="非编">
</el-option>
<el-option
label="离退休" value="离退休">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="变化原因">
<el-select clearable @change="change" v-model="EditFormData.bhyy">
<el-option label="校内变动" value="校内变动"></el-option>
<el-option label="离职" value="离职"></el-option>
<el-option label="新增" value="新增"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<!-- <el-row>-->
<!-- <el-col :span="24">-->
<!-- <el-form-item v-if="EditFormData.bhyy=='校内变动'" label="新基层工会">-->
<!-- <el-select filterable clearable v-model="EditFormData.flnewunionid"-->
<!-- @change="getnewFghBydw(EditFormData.flnewunionid)" style="width: 100%">-->
<!-- <el-option v-for="dw in bgfghlist" :value="dw.id"-->
<!-- :label="dw.unionname"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-row>
<el-col :span="24">
<el-form-item v-if="EditFormData.bhyy=='校内变动'" label="新单位">
<el-select filterable clearable v-model="EditFormData.flnewunitid" style="width: 100%">
<el-option v-for="dw in dwlist" :value="dw.id" :label="dw.name"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</div>
</div>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="editDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="doEdit">确 定</el-button>
</span>
</el-dialog>
<el-dialog
title="福利人员信息"
:visible.sync="viewDialogVisible"
width="50%">
<el-collapse v-model="activeNames">
<el-collapse-item title="基本信息" name="1">
<div>
<table style="width: 100%">
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">姓名</td>
<td class="tpb">{{viewData.username}}</td>
<td class="tpa">工号</td>
<td class="tpb">{{viewData.loginname}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">单位</td>
<td class="tpb">{{viewData.name}}</td>
<td class="tpa">联系电话</td>
<td class="tpb">{{viewData.mobile}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);" v-if="viewData.bhyy=='校内变动'">
<td class="tpa">调出基层工会</td>
<td class="tpb">{{viewData.newunionname}}</td>
<td class="tpa">调出单位</td>
<td class="tpb">{{viewData.newname}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">福利会员</td>
<td class="tpb">
<span v-if="viewData.flhy==1">有效会员</span>
<span v-if="viewData.flhy==0">无效会员</span>
<!--<span v-if="viewData.jflx==3">自筹经费</span>-->
</td>
<td class="tpa">人员类型</td>
<td class="tpb">{{viewData.rylx}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">变化原因</td>
<td colspan="3" class="tpb">
<span>{{viewData.bhyy}}</span>
</td>
</tr>
</table>
</div>
</el-collapse-item>
</el-collapse>
</el-dialog>
</div>
<script>
const vue = new Vue({
el: "#app",
data: function () {
return {
viewData: {},
viewDialogVisible: false,
activeNames: ["1"],
addDialogVisible: false,
AddFormData: {},
editDialogVisible: false,
EditFormData: {},
pageForm: {
pageNumber: 1,
pageSize: 10,
totalCount: 0,
searchName: "",
year: moment().format('YYYY'),
sfhz: "",
searchKey: "username",
flhy: "1",
rylx: "",
ejdw: "",
newhy: ""
},
tableData: [],
multipleTable: [],
drDialogVisible: false,
fileList: [],
rows: [],
hzlist: [],
year: "",
dwlist: [],
rules: {
username: [{required: true, message: '必填', trigger: ['blur', 'change']}],
loginname: [{required: true, message: '必填', trigger: ['blur', 'change']}],
unitid: [{required: true, message: '必填', trigger: ['blur', 'change']}],
jflx: [{required: true, message: '必填', trigger: ['blur', 'change']}],
rylx: [{required: true, message: '必填', trigger: ['blur', 'change']}],
unionid: [{required: true, message: '必填', trigger: ['blur', 'change']}],
newdw: [{required: true, message: '必填', trigger: ['blur', 'change']}],
newfgh: [{required: true, message: '必填', trigger: ['blur', 'change']}],
},
tstableData: [],
fghlist: [],
lplist: [],
dw: [],
newdw: [],
bgfghlist: [],
}
},
methods: {
doSearch: function () {
this.pageForm.pageNumber = 1;
this.pageForm.newhy = "";
this.pageData();
},
pageData: function () {
var self = this;
$.post(base + "/platform/zgfw/rygl/data", self.pageForm, function (data) {
console.log(data)
if (data.code === 0) {
self.tableData = data.data.zc.list;
self.tstableData = data.data.ts;
self.pageForm.totalCount = data.data.zc.totalCount;
} else {
self.$message.error(data.msg);
}
});
},
pageSizeChange: function (val) {//分页大小更新操作
this.pageForm.pageSize = val;
this.pageData();
},
pageNumberChange: function (val) {
this.pageForm.pageNumber = val;
this.pageData();
},
openAdd: function () {
var self = this;
self.addDialogVisible = true;
self.AddFormData = {jflx: '1', bhyy: "新增", year: self.pageForm.year, lpid: self.pageForm.lp};
self.getDw();
if (this.$refs["addForm"])
this.$refs["addForm"].resetFields();
},
async getDw() {
this.dwlist = await getUnits();
},
async getFgh() {
this.fghlist = await getWelfareUnits();
},
getbgFgh: function () {
var self = this;
$.post(base + "/platform/zgfw/rysh/getbgFgh", function (data) {
self.bgfghlist = data.data;
})
},
change: function () {
this.$forceUpdate()
},
async getFghBydw(dwid) {
this.dwlist = await getUnitsByWelfareUnit(dwid);
this.$set(this.EditFormData,"unitid","")
this.$set(this.AddFormData,"unitid","")
// this.EditFormData.unitid = "";
// this.AddFormData.unitid = "";
},
getnewFghBydw: function (dwid) {
var self = this;
$.post(base + "/platform/zgfw/rygl/getDw", {id: dwid}, function (data) {
self.newdw = data.data;
self.EditFormData.newdw = "";
})
},
doAdd: function () {
var self = this;
self.AddFormData.year = self.pageForm.year;
self.AddFormData.yf = self.pageForm.yf;
this.$refs["addForm"].validate((valid) => {
if (valid) {
$.post(base + "/platform/zgfw/rygl/doAdd", self.AddFormData, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.doSearch();//查询是带条件的,加载新建用户选择的单位用户数据
self.addDialogVisible = false;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
})
}
})
},
see: function (scope) {
var self = this;
self.viewData = scope;
self.viewDialogVisible = true;
},
openEdit: function (scope) {
console.log(scope)
var self = this;
self.EditFormData = JSON.parse(JSON.stringify(scope));
self.getDw();
self.editDialogVisible = true;
if (this.$refs["editForm"])
this.$refs["editForm"].resetFields();
},
doEdit: function () {
var self = this;
this.$refs["editForm"].validate((valid) => {
if (valid) {
self.$confirm('确定要进行变更吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: function (a, b) {
if ("confirm" == a) {//确认后再执行
$.post(base + "/platform/zgfw/rygl/doEdit", self.EditFormData, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.doSearch();//查询是带条件的,加载新建用户选择的单位用户数据
self.editDialogVisible = false;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
})
}
}
})
}
})
},
doDel: function (id) {
var self = this;
self.$confirm('此操作将删除这条数据,确定吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: function (a, b) {
if ("confirm" == a) {//确认后再执行
$.post(base + "/platform/zgfw/rygl/doDel", {id: id}, function (data) {
if (data.code == 0) {
self.$message({
message: data.msg,
type: 'success'
});
self.doSearch();
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
}
});
},
changeTableSort: function (column) {
var self = this;
self.pageForm.prop = column.prop;
self.pageForm.order = column.order;
self.pageData();
},
getJjrlp: function (year) {
var self = this;
$.post(base + "/platform/zgfw/mdgl/getJjrlp", {year: year}, function (data) {
self.lplist = data.data;
self.$set(self.pageForm, "lp", self.lplist[0].lp_id)
//self.pageForm.lp=self.lplist[0].lp_id
})
}
},
created: function () {
this.pageData();
this.getDw();
this.getFgh();
this.getbgFgh();
}
});
</script>
<!--#
}
#-->
@@ -0,0 +1,361 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
.tpa {
padding: 10px;
text-align: center;
width: 12%;
background-color: rgb(250, 250, 250);
border: 1px solid rgb(220, 220, 220);
}
.tpb {
padding: 10px;
text-align: center;
width: 16%;
border: 1px solid rgb(220, 220, 220);
}
.el-collapse-item__header {
background-color: #317fca;
color: whitesmoke;
padding-left: 10px;
height: 35px;
line-height: 35px;
font-size: 16px;
}
</style>
<div id="app" v-cloak>
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<el-select clearable placeholder="福利单位" filterable v-model="pageForm.fgh" style="width:210px">
<el-option v-for="dw in dwlist" :value="dw.id" :label="dw.welfare_unit_name"></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-input type="text" v-model="pageForm.searchName" placeholder="请输入" style="width: 230px"
class="input-with-select">
<el-select style="width: 100px" v-model="pageForm.searchKey" slot="prepend" placeholder="请选择">
<el-option label="工号" value="loginname"></el-option>
<el-option label="姓名" value="username"></el-option>
</el-select>
</el-input>
</div>
<div class="btn-group tool-button mt5">
<el-select clearable v-model="pageForm.rylx" style="width: 140px" slot="prepend" placeholder="人员类型">
<el-option
label="在编" value="在编">
</el-option>
<el-option
label="非编" value="非编">
</el-option>
<el-option
label="离退休" value="离退休">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-button type="primary" icon="el-icon-search" @click="doSearch"></el-button>
</div>
<div class="pull-right offscreen-right mt5">
<el-button size="medium" :disabled="ids.length==0?true:false" @click="plsh">
批量审核
</el-button>
</div>
</el-row>
<el-row class="el-table-container">
<el-table :data="tableData" ref="multipleTable" @sort-change="changeTableSort" size="small"
@selection-change="handleSelectionChange">
<el-table-column type="selection">
</el-table-column>
<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="工号" prop="loginname" 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="福利单位" sortable width="220px" prop="welfare_unit_name" header-align="center"
align="center"></el-table-column>
<el-table-column label="人员类型" sortable prop="rylx" header-align="center" align="center">
</el-table-column>
<el-table-column label="变化原因" prop="bhyy" header-align="center" align="center">
</el-table-column>
<el-table-column label="状态" sortable prop="ryzt" header-align="center" align="center">
<template scope="scope">
<span v-if="scope.row.flzt==1">待审核</span>
<span v-if="scope.row.flzt==2">拒绝</span>
<span v-if="scope.row.flzt==3">通过</span>
</template>
</el-table-column>
<el-table-column label="操作" header-align="center" align="center" width="200">
<template slot-scope="scope">
<el-button size="mini" type="primary" @click="see(scope.row)">审核</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>
<el-dialog
title="审核"
:visible.sync="viewDialogVisible"
width="50%">
<el-collapse v-model="activeNames">
<el-collapse-item title="基本信息" name="1">
<div>
<table style="width: 100%">
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">姓名</td>
<td class="tpb">{{viewData.username}}</td>
<td class="tpa">工号</td>
<td class="tpb">{{viewData.loginname}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">单位</td>
<td class="tpb">{{viewData.name}}</td>
<td class="tpa">联系电话</td>
<td class="tpb">{{viewData.mobile}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);" v-if="viewData.bhyy=='校内变动'">
<td class="tpa">新福利单位</td>
<td class="tpb">{{viewData.newunionname}}</td>
<td class="tpa">新单位</td>
<td class="tpb">{{viewData.newname}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">福利会员</td>
<td class="tpb">
<span v-if="viewData.flhy==1">有效会员</span>
<span v-if="viewData.flhy==0">无效会员</span>
<!--<span v-if="viewData.jflx==3">自筹经费</span>-->
</td>
<td class="tpa">人员类型</td>
<td class="tpb">{{viewData.rylx}}</td>
</tr>
<tr style="border: 1px solid rgb(220,220,220);">
<td class="tpa">变化原因</td>
<td colspan="3" class="tpb">
<span>{{viewData.bhyy}}</span>
</td>
</tr>
</table>
</div>
</el-collapse-item>
<el-collapse-item title="审核" name="2">
<el-form :model="formData" :rules="formRules" ref="shForm" size="medium" label-width="100px">
<el-form-item prop="flag" label="审核结果">
<el-radio-group @change="change" style="margin-left: 32%" v-model="formData.flag">
<el-radio label="false" border>拒绝</el-radio>
<el-radio label="true" border>通过</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
</el-collapse-item>
</el-collapse>
<span slot="footer" class="dialog-footer">
<el-button @click="viewDialogVisible = false">关 闭</el-button>
<el-button type="primary" @click="doSh">确 定</el-button>
</span>
</el-dialog>
<el-dialog
title="批量审核"
:visible.sync="plshDialogVisible"
width="40%">
<el-form :model="formData" :rules="formRules" ref="shForm" size="medium" label-width="80px">
<el-form-item prop="flag" label="审核结果">
<el-radio-group @change="change" style="margin-left: 32%" v-model="formData.flag">
<el-radio label="flase" border>拒绝</el-radio>
<el-radio label="true" border>通过</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="plshDialogVisible = false">关 闭</el-button>
<el-button type="primary" @click="doplsh">确 定</el-button>
</span>
</el-dialog>
</div>
<script>
const vue = new Vue({
el: "#app",
data: function () {
return {
formRules: {
flag: [{required: true, message: '必选', trigger: ['blur', 'change']}],
shyj: [{required: true, message: '必填', trigger: ['blur', 'change']}],
},
viewData: {},
viewDialogVisible: false,
activeNames: ["1", "2"],
addDialogVisible: false,
AddFormData: {},
editDialogVisible: false,
EditFormData: {},
pageForm: {
pageNumber: 1,
pageSize: 10,
totalCount: 0,
searchName: "",
year: moment().format('YYYY'),
sfhz: "",
fgh: "",
searchKey: "username",
jflx: "",
rylx: "",
yf: moment().format('MM') == '12' ? '12月' : '4月',
prop: "",
order: ""
},
tableData: [],
drDialogVisible: false,
fileList: [],
rows: [],
hzlist: [],
year: "",
dwlist: [],
formData: {},
multipleTable: [],
ids: [],
plshDialogVisible: false,
lplist: []
}
},
methods: {
doSearch: function () {
this.pageForm.pageNumber = 1;
this.pageData();
},
pageData: function () {
var self = this;
$.post(base + "/platform/zgfw/rysh/data", self.pageForm, function (data) {
if (data.code === 0) {
self.tableData = data.data.list;
self.pageForm.totalCount = data.data.totalCount;
} else {
self.$message.error(data.msg);
}
});
},
pageNumberChange: function (val) {
this.pageForm.pageNumber = val;
this.pageData();
},
async getDw() {
this.dwlist = await getWelfareUnits();
},
change: function () {
this.$forceUpdate()
},
see: function (scope) {
var self = this;
console.log(scope)
self.viewData = scope;
self.viewDialogVisible = true;
self.formData.id = scope.id;
self.formData.flag = 'true';
},
doSh() {
this.$refs["shForm"].validate((valid) => {
if (valid) {
$.post(base + "/platform/zgfw/rysh/doSh", this.formData, (data) => {
if (data.code == 0) {
this.$message({
message: '审核成功!',
type: 'success'
});
this.pageData();
this.viewDialogVisible = false;
} else {
this.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
});
},
handleSelectionChange: function (val) {
var self = this;
self.ids = [];
val.forEach(function (value) {
self.ids.push(value.id);
})
},
plsh: function () {
var self = this;
self.formData.flag = 'true';
self.plshDialogVisible = true;
},
doplsh: function () {
var self = this;
self.$refs["shForm"].validate((valid) => {
if (valid) {
self.formData.ids = JSON.stringify(self.ids);
$.post(base + "/platform/zgfw/rysh/plsh", self.formData, (data) => {
if (data.code == 0) {
self.$message({
message: '审核成功!',
type: 'success'
});
self.pageData();
self.plshDialogVisible = false;
} else {
self.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
});
},
changeTableSort: function (column) {
var self = this;
self.pageForm.prop = column.prop;
self.pageForm.order = column.order;
self.pageData();
},
getJjrlp: function (year) {
var self = this;
$.post(base + "/platform/zgfw/mdgl/getJjrlp", {year: year}, function (data) {
self.lplist = data.data;
self.pageForm.lp = self.lplist[0].lp_id
self.pageData();
})
}
},
created: function () {
this.pageData();
this.getDw();
}
});
</script>
<!--#
}
#-->