Files
zhgh_hrbnu/src/main/resources/views/platform/payment/config.html
T
2024-07-22 17:36:03 +08:00

222 lines
12 KiB
HTML

<!--#
layout("/layouts/platform.html"){
#-->
<style>
.el-input-group__append {
border-left: 0;
padding: 0 13px;
height: 40px;
}
</style>
<div id="app" v-cloak>
<guava ref="guava">
<el-card shadow="never">
<div slot="header" class="clearfix">
<h3 style="color: rgb(24, 103, 176);font-family: Microsoft YaHei;">缴费配置</h3>
</div>
<el-form :model="formData" ref="addForm" :rules="rules"
label-width="120px"
style="margin: 10px 0 0 0">
<vi-title title="缴纳标准"></vi-title>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item class="is-required" label="会费缴纳情况" prop="payStandard">
<el-button @click="formData.payStandards.push({payPersonnel: null, payMode: '1', personTypes: null, payModeValue: null,payModeValueList:[{name:'',value:''}]})" icon="el-icon-plus" size="mini"
style="float: right;margin-bottom: 10px">
添加
</el-button>
<span style="color: red">说明:。</span>
<el-table
:data="formData.payStandards"
border
v-fit-columns
size="mini"
style="width: 100%">
<el-table-column label="缴费人员" prop="payPersonnel" width="200">
<template scope="{row,$index}">
<el-form-item :prop="'payStandards.'+$index+'.payPersonnel'"
:rules="[{required:true,message:'必填',trigger:['change','blur']}]"
label-width="0">
<el-input clearable maxlength="100" placeholder="请输入缴费人员"
v-model="row.payPersonnel"></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="缴费模式" prop="payMode" width="200">
<template scope="{row,$index}">
<el-form-item :prop="'payStandards.'+$index+'.payMode'"
:rules="[{required:true,message:'必填',trigger:['change','blur']}]"
label-width="0">
<el-select placeholder="请选择缴费模式" v-model="row.payMode"
style="width: 100%">
<el-option v-for="item in payModeList" :label="item.value" :value="item.code"></el-option>
</el-select>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="人员类型" prop="personTypes" width="300">
<template slot-scope="{row,$index}">
<el-select multiple placeholder="请选择人员类型" v-model="row.personTypes"
style="width: 100%" clearable>
<el-option v-for="item in personTypeList" :label="item.name" :value="item.code"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="缴费标准" prop="payModeValue">
<template scope="{row,$index}">
<div v-if="row.payMode=='2'">
<el-form-item :prop="'payStandards.'+$index+'.payModeValueList'"
:rules="[{required:true,message:'必填',trigger:['change','blur']}]"
label-width="0">
<div style="display:flex;justify-content: space-between;margin-left: 30px">
(
<template v-for="(o,i) in row.payModeValueList">
<el-input placeholder="请输入" style="width: 120px;"
v-model="o.name">
<el-button @click="row.payModeValueList.splice(i, 1)" slot="append" style="padding: 0 7px;"
icon="el-icon-circle-close"></el-button>
</el-input>
<span v-if="i !== row.payModeValueList.length - 1">+</span>
</template>
) * 0.5%
<div>
<el-button @click="row.payModeValueList.push({name: '',value:''})" size="mini">新增</el-button>
</div>
</div>
</el-form-item>
</div>
<div v-else-if="row.payMode == '1' || row.payMode == '3'">
<el-form-item :prop="'payStandards.'+$index+'.payModeValue'"
:rules="[{required:true,message:'必填',trigger:['change','blur']}]"
label-width="0">
<div v-if="row.payMode == '1'">
<el-input clearable maxlength="100" type="number" placeholder="请输入缴费金额"
v-model="row.payModeValue"></el-input>
</div>
<div v-if="row.payMode == '3'" style="text-align: center">
<span>导入名单</span>
</div>
<!-- <el-input clearable maxlength="100" placeholder="请填写缴费标准"-->
<!-- v-model="row.payModeValue"></el-input>-->
</el-form-item>
</div>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="操作" width="80">
<template slot-scope="scope">
<el-button :disabled="formData.payStandards.length<=1"
@click="formData.payStandards.splice(scope.$index,1)" circle
icon="el-icon-delete"
size="mini"
type="danger"></el-button>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-col>
</el-row>
<vi-title title="退会标准"></vi-title>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="未缴费退会时间" prop="unPaidExitDuration">
<el-input v-model="formData.unPaidExitDuration">
<template slot="append">月</template>
</el-input>
</el-form-item>
</el-col>
<div style="margin-top: 10px">
<span style="color: red">说明:多长时间未缴纳会费则视为退会处理。</span>
</div>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="退会模式" prop="exitMode">
<el-radio-group v-model="formData.exitMode">
<el-radio label="1" border>自动退会</el-radio>
<el-radio label="2" border>人工退会</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<vi-title title="缴费时长"></vi-title>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="缴费时长" prop="paidDuration">
<el-input v-model="formData.paidDuration">
<template slot="append">月</template>
</el-input>
</el-form-item>
</el-col>
<div style="margin-top: 10px">
<span style="color: red">说明:多长时间缴费一次。</span>
</div>
</el-row>
</el-form>
<el-row class="mt10" justify="center" type="flex">
<el-button @click="doSubmit" style="width: 300px" type="primary">保存
</el-button>
<el-button @click="doSubmit" style="width: 300px" type="primary">提交
</el-button>
</el-row>
</el-card>
</guava>
</div>
<script>
const vue = new Vue({
el: '#app',
mixins: [initTableMixins],
data() {
return {
payModeList:[{code:'1',value:'固定金额缴纳'},{code:'2',value:'按比例缴纳'},{code:'3',value:'导入'}],
formData: {
payStandards: [{payPersonnel: null, payMode: '1', personTypes: null, payModeValue: null,payModeValueList:[{name:'',value:''}]}]
},
rules: {
exit: [{required: true, message: '必填', trigger: ['blur', 'change']}],
},
personTypeList:[],
}
},
methods: {
async doSubmit(){
const formData = clone(this.formData)
formData.payStandards = JSON.stringify(this.formData.payStandards)
const resp = await $.post(loc() + '/doAddOrModify',formData)
if (resp.code === 0){
await this.getPaymentConfig()
this.notifySuccess(resp.msg)
} else {
this.notifyWarning(resp.msg)
}
},
async getPaymentConfig(){
const resp = await $.get(loc() + '/getPaymentConfig')
if (resp.code === 0){
this.formData = {...resp.data}
}
}
},
async created() {
this.personTypeList = await getDictOptions('UserType')
await this.getPaymentConfig()
}
})
</script>
<!--#
}
#-->