|
|
@@ -4,24 +4,24 @@
|
|
|
<el-tab-pane :label="item.label" v-for="(item,key) in option" :key="key">
|
|
|
<!--易宝选项卡下拉框-->
|
|
|
<div v-if="item.key==='YEEPAY_PRODUCT_INFO'">
|
|
|
- <el-select v-model="item.value" placeholder="请选择产品类型" size="small" style="width:100%" @change="selectChange(item)">
|
|
|
- <el-option
|
|
|
- v-for="opt in item.opt"
|
|
|
- :key="opt.productCode"
|
|
|
- :label="opt.productName"
|
|
|
- :value="opt.productCode">
|
|
|
- <span style="float: left">{{ opt.productName }}</span>
|
|
|
- <span style="float: right; color: #8492a6; font-size: 13px">{{ opt.productCode }}</span>
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
+ <div style="text-align: right">
|
|
|
+ <el-button size="small" icon="el-icon-check" type="primary" @click="submit(item.data,()=>{
|
|
|
+ item.loading = false;
|
|
|
+ },item.loading=true,item)" :loading="item.loading">提交</el-button>
|
|
|
+ </div>
|
|
|
+ <div v-for="(fee,index) in item.data" :key="index">
|
|
|
+ <h4 style="padding-left: 50px">{{fee.productName}}</h4>
|
|
|
+ <avue-form :option="item.option[index]" v-model="item.data[index]"></avue-form>
|
|
|
+ <el-divider/>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<!--平台费率表单-->
|
|
|
<avue-crud v-if="item.key==='platform_arg'" :option="item.optionwithdrawConfigOption" v-model="item.data" :data="item.form.withdrawConfigList"
|
|
|
@row-update="(data,index,done,loading)=>submit(data,done,loading,item,'update')" @row-save="(data,done,loading)=>submit(data,done,loading,item,'save')"
|
|
|
@row-del="(data,index,done,loading)=>submit(data,done,loading,item,'delete')" style="margin-top: 20px">
|
|
|
</avue-crud>
|
|
|
- <!--公共表单-->
|
|
|
- <avue-form :option="item.option" v-model="item.form"
|
|
|
+ <!--公共表单(易宝除外)-->
|
|
|
+ <avue-form v-if="item.key!=='YEEPAY_PRODUCT_INFO'" :option="item.option" v-model="item.form"
|
|
|
@submit="(data,done,loading)=>{submit(data,done,loading,item)}" style="margin-top: 20px"></avue-form>
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
@@ -251,172 +251,9 @@ export default {
|
|
|
label: "商户易宝",
|
|
|
id: "",
|
|
|
key: "YEEPAY_PRODUCT_INFO",
|
|
|
- option: {
|
|
|
- labelWidth: 160,
|
|
|
- emptyBtn: false,
|
|
|
- column: [
|
|
|
- {
|
|
|
- label: '产品码',
|
|
|
- prop: 'productCode',
|
|
|
- disabled: true,
|
|
|
- rules: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请输入产品码',
|
|
|
- trigger: 'blur'
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- label: '计费策略',
|
|
|
- prop: 'rateType',
|
|
|
- type: 'select',
|
|
|
- change:(value)=>{
|
|
|
- const percentRate = this.option[3].option.column.find(ele=>{
|
|
|
- return ele.prop==='percentRate';
|
|
|
- });
|
|
|
- const fixedRate = this.option[3].option.column.find(ele=>{
|
|
|
- return ele.prop==='fixedRate';
|
|
|
- });
|
|
|
- switch (value.value){
|
|
|
- case "SINGLE_PERCENT":
|
|
|
- percentRate.disabled = false;
|
|
|
- percentRate.rules[0].required = true;
|
|
|
- fixedRate.disabled = true;
|
|
|
- fixedRate.rules[0].required = false;
|
|
|
- break;
|
|
|
- case "SINGLE_FIXED":
|
|
|
- percentRate.disabled = true;
|
|
|
- percentRate.rules[0].required = false;
|
|
|
- fixedRate.disabled = false;
|
|
|
- fixedRate.rules[0].required = true;
|
|
|
- break;
|
|
|
- case "FIXED_MIX_PERCENT":
|
|
|
- case "PERCENT_MIX_CAP":
|
|
|
- percentRate.disabled = false;
|
|
|
- percentRate.rules[0].required = true;
|
|
|
- fixedRate.disabled = false;
|
|
|
- fixedRate.rules[0].required = true;
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
- },
|
|
|
- dicData: [
|
|
|
- {
|
|
|
- label:'单笔百分比',
|
|
|
- value:'SINGLE_PERCENT',
|
|
|
- },
|
|
|
- {
|
|
|
- label:'单笔固定值',
|
|
|
- value:'SINGLE_FIXED',
|
|
|
- },
|
|
|
- {
|
|
|
- label:'单笔固定值+单笔百分比',
|
|
|
- value:'FIXED_MIX_PERCENT',
|
|
|
- },
|
|
|
- {
|
|
|
- label:'单笔百分比+封顶值',
|
|
|
- value:'PERCENT_MIX_CAP',
|
|
|
- }
|
|
|
- ],
|
|
|
- rules: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请输入积分策略',
|
|
|
- trigger: 'blur'
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- label: '单笔百分比',
|
|
|
- prop: 'percentRate',
|
|
|
- disabled: true,
|
|
|
- rules: [
|
|
|
- {
|
|
|
- required: false,
|
|
|
- message: '请输入单笔百分比',
|
|
|
- trigger: 'blur'
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- label: '单笔固定值',
|
|
|
- prop: 'fixedRate',
|
|
|
- disabled: true,
|
|
|
- rules: [
|
|
|
- {
|
|
|
- required: false,
|
|
|
- message: '请输入单笔固定值',
|
|
|
- trigger: 'blur'
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- label: '手续费承担方',
|
|
|
- prop: 'undertaker',
|
|
|
- type: 'select',
|
|
|
- dicData: [
|
|
|
- {
|
|
|
- label: '入驻商户',
|
|
|
- value: 'SETTLED_MERCHANT'
|
|
|
- },
|
|
|
- {
|
|
|
- label: '用户',
|
|
|
- value: 'USER'
|
|
|
- },
|
|
|
- {
|
|
|
- label: '标准商户',
|
|
|
- value: 'ORDINARY_MERCHANT'
|
|
|
- },
|
|
|
- {
|
|
|
- label: '平台商',
|
|
|
- value: 'PLATFORM_MERCHANT'
|
|
|
- },
|
|
|
- {
|
|
|
- label: '服务商',
|
|
|
- value: 'SAAS_SERVICE_PROVIDER'
|
|
|
- }
|
|
|
- ],
|
|
|
- rules: [
|
|
|
- {
|
|
|
- required: false,
|
|
|
- message: '请输入手续费承担方',
|
|
|
- trigger: 'blur'
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- label: '手续费收取方式',
|
|
|
- prop: 'paymentMethod',
|
|
|
- type: 'select',
|
|
|
- dicData: [
|
|
|
- {
|
|
|
- label: '实收',
|
|
|
- value: 'REAL_TIME'
|
|
|
- },
|
|
|
- {
|
|
|
- label: '预付实扣',
|
|
|
- value: 'PREPAID_REAL'
|
|
|
- },
|
|
|
- {
|
|
|
- label: '后收',
|
|
|
- value: 'UN_REAL_TIME'
|
|
|
- }
|
|
|
- ],
|
|
|
- rules: [
|
|
|
- {
|
|
|
- required: false,
|
|
|
- message: '请输入手续费收取方式',
|
|
|
- trigger: 'blur'
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- form: {},
|
|
|
- opt:[],
|
|
|
- value:"",
|
|
|
+ data: [],
|
|
|
+ option:[],
|
|
|
+ loading: false,
|
|
|
}
|
|
|
]
|
|
|
};
|
|
|
@@ -436,9 +273,8 @@ export default {
|
|
|
tab.id = ele.id;
|
|
|
//易宝
|
|
|
if(tab.key==="YEEPAY_PRODUCT_INFO"){
|
|
|
- tab.opt = JSON.parse(ele.settingValue);
|
|
|
- tab.value = tab.opt[0].productCode;
|
|
|
- this.selectChange(tab);
|
|
|
+ tab.data = JSON.parse(ele.settingValue);
|
|
|
+ this.setProductFee(tab);
|
|
|
}else if(tab.key==="platform_arg"){ //平台费率
|
|
|
tab.form = JSON.parse(ele.settingValue);
|
|
|
}else{
|
|
|
@@ -448,17 +284,6 @@ export default {
|
|
|
});
|
|
|
});
|
|
|
},
|
|
|
- /**
|
|
|
- * 选择下拉框值
|
|
|
- * @param value
|
|
|
- */
|
|
|
- selectChange(tab){
|
|
|
- if(tab){
|
|
|
- tab.form = tab.opt.find(col=>{
|
|
|
- return col.productCode === tab.value;
|
|
|
- });
|
|
|
- }
|
|
|
- },
|
|
|
//随机生成ID
|
|
|
generateUuid() {
|
|
|
let s = [];
|
|
|
@@ -472,15 +297,184 @@ export default {
|
|
|
let uuid = s.join("")
|
|
|
return uuid
|
|
|
},
|
|
|
+ //设置易宝产品费率
|
|
|
+ setProductFee(item) {
|
|
|
+ item.option = [];
|
|
|
+ for(let i=0;i<item.data.length;i++){
|
|
|
+ const productFeeOption = {
|
|
|
+ labelWidth: 150,
|
|
|
+ emptyBtn: false,
|
|
|
+ height: 'auto',
|
|
|
+ calcHeight: 30,
|
|
|
+ tip: false,
|
|
|
+ submitBtn: false,
|
|
|
+ border: true,
|
|
|
+ card: true,
|
|
|
+ column: [
|
|
|
+ {
|
|
|
+ label: '产品码',
|
|
|
+ prop: 'productCode',
|
|
|
+ disabled: true,
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入产品码',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '计费策略',
|
|
|
+ prop: 'rateType',
|
|
|
+ type: 'select',
|
|
|
+ change: (value) => {
|
|
|
+ const percentRate = item.option[i].column.find(ele => {
|
|
|
+ return ele.prop === 'percentRate';
|
|
|
+ });
|
|
|
+ const fixedRate = item.option[i].column.find(ele => {
|
|
|
+ return ele.prop === 'fixedRate';
|
|
|
+ });
|
|
|
+ switch (value.value) {
|
|
|
+ case "SINGLE_PERCENT":
|
|
|
+ percentRate.disabled = false;
|
|
|
+ percentRate.rules[0].required = true;
|
|
|
+ fixedRate.disabled = true;
|
|
|
+ fixedRate.rules[0].required = false;
|
|
|
+ break;
|
|
|
+ case "SINGLE_FIXED":
|
|
|
+ percentRate.disabled = true;
|
|
|
+ percentRate.rules[0].required = false;
|
|
|
+ fixedRate.disabled = false;
|
|
|
+ fixedRate.rules[0].required = true;
|
|
|
+ break;
|
|
|
+ case "FIXED_MIX_PERCENT":
|
|
|
+ case "PERCENT_MIX_CAP":
|
|
|
+ percentRate.disabled = false;
|
|
|
+ percentRate.rules[0].required = true;
|
|
|
+ fixedRate.disabled = false;
|
|
|
+ fixedRate.rules[0].required = true;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ dicData: [
|
|
|
+ {
|
|
|
+ label: '单笔百分比',
|
|
|
+ value: 'SINGLE_PERCENT',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '单笔固定值',
|
|
|
+ value: 'SINGLE_FIXED',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '单笔固定值+单笔百分比',
|
|
|
+ value: 'FIXED_MIX_PERCENT',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '单笔百分比+封顶值',
|
|
|
+ value: 'PERCENT_MIX_CAP',
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入积分策略',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '单笔百分比',
|
|
|
+ prop: 'percentRate',
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
+ required: false,
|
|
|
+ message: '请输入单笔百分比',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '单笔固定值',
|
|
|
+ prop: 'fixedRate',
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
+ required: false,
|
|
|
+ message: '请输入单笔固定值',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '手续费承担方',
|
|
|
+ prop: 'undertaker',
|
|
|
+ type: 'select',
|
|
|
+ dicData: [
|
|
|
+ {
|
|
|
+ label: '入驻商户',
|
|
|
+ value: 'SETTLED_MERCHANT'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '用户',
|
|
|
+ value: 'USER'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '标准商户',
|
|
|
+ value: 'ORDINARY_MERCHANT'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '平台商',
|
|
|
+ value: 'PLATFORM_MERCHANT'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '服务商',
|
|
|
+ value: 'SAAS_SERVICE_PROVIDER'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
+ required: false,
|
|
|
+ message: '请输入手续费承担方',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '手续费收取方式',
|
|
|
+ prop: 'paymentMethod',
|
|
|
+ type: 'select',
|
|
|
+ dicData: [
|
|
|
+ {
|
|
|
+ label: '实收',
|
|
|
+ value: 'REAL_TIME'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '预付实扣',
|
|
|
+ value: 'PREPAID_REAL'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '后收',
|
|
|
+ value: 'UN_REAL_TIME'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
+ required: false,
|
|
|
+ message: '请输入手续费收取方式',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ item.option.push(productFeeOption);
|
|
|
+ }
|
|
|
+ },
|
|
|
submit(data, done, loading, item, type) {
|
|
|
//判断是否是易宝提交
|
|
|
if(item.key === "YEEPAY_PRODUCT_INFO"){
|
|
|
- const content = item.opt.find(col=>{
|
|
|
- return col.productCode===data.productCode;
|
|
|
- });
|
|
|
- //拷贝对象值
|
|
|
- Object.assign(content,data);
|
|
|
- data = item.opt;
|
|
|
+ this.data = item.data;
|
|
|
}else if(item.key==="platform_arg" && data.minBalance && data.maxBalance){ //平台费率提交
|
|
|
if(data.minBalance>=data.maxBalance){
|
|
|
this.$message.warning("区间最小值不能大于等于最大值");
|