180 lines
4.2 KiB
Vue
180 lines
4.2 KiB
Vue
<template>
|
|
|
|
<div class="layout">
|
|
|
|
<div class="row" v-if="client ==item.client" v-for="(item,index) in formValidate" :key="index">
|
|
<div class="col">
|
|
<Card :padding="0">
|
|
<!-- app -->
|
|
<div class="icon-item" v-if="item.clientType== 'APP'">
|
|
<img class="icon" src="../../../../assets/setting/app.svg" alt="" srcset="">
|
|
</div>
|
|
<div class="icon-item" v-if="item.clientType== 'PC'">
|
|
<!-- pc -->
|
|
<img class="icon" src="../../../../assets/setting/pc.svg" alt="" srcset="">
|
|
</div>
|
|
<div class="icon-item" v-if="item.clientType== 'WECHAT_MP'">
|
|
<!-- 小程序 -->
|
|
<img class="icon" src="../../../../assets/setting/wechat_mp.svg" alt="" srcset="">
|
|
</div>
|
|
<div class="icon-item" v-if=" item.clientType== 'H5'">
|
|
<!-- h5 -->
|
|
<img class="icon" src="../../../../assets/setting/h5.svg" alt="" srcset="">
|
|
</div>
|
|
<div class='pay-title'> {{way[item.clientType]}}</div>
|
|
<div>
|
|
|
|
<Divider orientation="left">登录设置</Divider>
|
|
<div class="pay-list">
|
|
<Form style="width:100%;" ref="formValidate" :model="formValidate" :rules="ruleValidate" :label-width="80">
|
|
<FormItem label="appId" prop="appId">
|
|
<Input @on-enter="setupSetting" class="label-appkey" v-model="item.appId" />
|
|
</FormItem>
|
|
<FormItem label="appKey" prop="appKey">
|
|
<Input @on-enter="setupSetting" v-model="item.appKey" />
|
|
</FormItem>
|
|
|
|
</Form>
|
|
<Button @click="setupSetting">保存设置</Button>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</Card>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
<script>
|
|
import { setSetting } from "@/api/index";
|
|
import { handleSubmit } from "../setting/validate";
|
|
import { getPaymentSupportForm } from "@/api/setting";
|
|
export default {
|
|
data() {
|
|
return {
|
|
ruleValidate: {}, // 验证规则
|
|
way: { // 类型
|
|
APP: "移动应用端",
|
|
H5: "移动端",
|
|
WECHAT_MP: "小程序端",
|
|
PC: "PC端",
|
|
},
|
|
formValidate: {} // 表单数据
|
|
};
|
|
},
|
|
props: ["res", "type"],
|
|
created() {
|
|
this.init();
|
|
},
|
|
methods: {
|
|
submit(name) {
|
|
let that = this;
|
|
if (handleSubmit(that, name)) {
|
|
this.setupSetting();
|
|
}
|
|
},
|
|
|
|
setupSetting() {
|
|
this.$Spin.show();
|
|
setTimeout(() => {
|
|
this.$Spin.hide();
|
|
setSetting(this.type, {
|
|
qqConnectSettingItemList: this.formValidate,
|
|
}).then((res) => {
|
|
if (res.success) {
|
|
this.$Message.success("保存成功!");
|
|
this.$Modal.remove();
|
|
} else {
|
|
this.$Message.error("保存失败!");
|
|
this.$Modal.remove();
|
|
}
|
|
});
|
|
}, 3000);
|
|
},
|
|
// 实例化数据
|
|
async init() {
|
|
this.formValidate = JSON.parse(this.res).qqConnectSettingItemList;
|
|
Object.keys(this.formValidate).forEach((item) => {
|
|
this.ruleValidate[item] = [
|
|
{
|
|
required: true,
|
|
message: "请填写必填项",
|
|
trigger: "blur",
|
|
},
|
|
];
|
|
});
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
@import "../setting/style.scss";
|
|
.pay-title {
|
|
text-align: center;
|
|
margin: 10px 0;
|
|
}
|
|
|
|
.col {
|
|
width: 100%;
|
|
}
|
|
.layout {
|
|
padding: 20px;
|
|
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
justify-content: flex-start;
|
|
}
|
|
.row {
|
|
width: 350px;
|
|
margin-right: 20px;
|
|
display: flex;
|
|
margin-bottom: 20px;
|
|
/deep/ .ivu-card-body {
|
|
padding: 0 16px !important;
|
|
}
|
|
}
|
|
|
|
.label-item {
|
|
display: flex;
|
|
}
|
|
.label-item {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
.pay-list {
|
|
display: flex;
|
|
justify-content: center;
|
|
padding-bottom: 10px;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
/deep/ .ivu-btn {
|
|
width: 100px;
|
|
}
|
|
}
|
|
.icon-item {
|
|
width: 100%;
|
|
padding: 30px;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
flex-direction: column;
|
|
}
|
|
.ivu-form-item {
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
}
|
|
.ivu-row {
|
|
width: 100%;
|
|
}
|
|
.icon {
|
|
width: 100px;
|
|
height: 100px;
|
|
}
|
|
</style>
|