222 lines
12 KiB
HTML
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>
|
|
<!--#
|
|
}
|
|
#-->
|