<template> <div> <el-row :gutter="24"> <el-col :span="18"> <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="10vw" class="demo-ruleForm" > <el-form-item label="配置名称" prop="appName" style="width:30vw"> <el-input v-model="ruleForm.appName" /> </el-form-item> <el-form-item label="二维码" prop="qrCode"> <img width="150" alt="二维码" src="https://cdn4.buysellads.net/uu/1/41334/1550855401-cc_light.png" /> </el-form-item> <el-form-item label="类型" prop="appType"> <el-select v-model="ruleForm.appType" placeholder="请选择类型"> <el-option label="小程序" value="ma" /> <el-option label="公众号" value="md" /> </el-select> </el-form-item> <el-form-item style="width:30vw" label="AppID" prop="appid"> <el-input v-model="ruleForm.appid" /> </el-form-item> <el-form-item style="width:30vw" label="Secret" prop="secret"> <el-input v-model="ruleForm.secret" /> </el-form-item> <el-form-item style="width:30vw" label="Token" prop="token"> <el-input v-model="ruleForm.token" /> </el-form-item> <el-form-item style="width:30vw" label="AesKey" prop="aesKey"> <el-input v-model="ruleForm.aesKey" /> </el-form-item> <el-form-item style="width:30vw" label="消息格式类型" prop="msgDataFormat"> <el-input v-model="ruleForm.msgDataFormat" /> </el-form-item> <el-form-item style="width:30vw" label="接口代理地址" prop="httpPoxyHost"> <el-input v-model="ruleForm.httpPoxyHost" /> </el-form-item> <el-form-item style="width:30vw" label="接口代理端口" prop="httpProxyPort"> <el-input v-model="ruleForm.httpProxyPort" type="Number" /> </el-form-item> <el-form-item style="width:30vw" label="第三方接口地址" prop="apiUrl"> <el-input v-model="ruleForm.apiUrl" /> </el-form-item> <el-form-item label="发布状态" prop="status"> <el-select v-model="ruleForm.status" placeholder="请选择状态"> <el-option label="发布" value="1" /> <el-option label="未发布" value="0" /> </el-select> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm('ruleForm')">{{ !configId?'新建配置':'修改配置' }}</el-button> <!-- <el-button type="primary" @click="submitForm('ruleForm')">应用配置</el-button> --> <el-button @click="resetForm('ruleForm')">重置</el-button> </el-form-item> </el-form> </el-col> </el-row> </div> </template> <script> import { saveConfig, detailsConfig, ChangeConfig } from '@/api/WeChatApi'; export default { data() { return { configId: '', ruleForm: { appName: '', appid: '', appType: '', aesKey: '', apiUrl: '', resource: '', httpPoxyHost: '', msgDataFormat: 'Json', secret: '', token: '', httpProxyPort: null, status: null }, rules: { appName: [ { required: true, message: '请输入配置名称', trigger: 'blur' } ], appid: [{ required: true, message: '请输入AppID', trigger: 'blur' }], appType: [{ required: true, message: '请选择类型', trigger: 'blur' }], aesKey: [{ required: true, message: '请选择AesKey', trigger: 'blur' }], apiUrl: [ { required: true, message: '请选择第三方接口地址', trigger: 'blur' } ], httpPoxyHost: [ { required: true, message: '请输入接口代理地址', trigger: 'blur' } ], httpProxyPort: [ { required: true, message: '请输入接口代理端口', trigger: 'blur' } ], msgDataFormat: [ { required: true, message: '请输入消息格式类型', trigger: 'blur' } ], secret: [{ required: true, message: '请输入Secret', trigger: 'blur' }], token: [{ required: true, message: '请输入Token', trigger: 'blur' }], status: [{ required: true, message: '请选择状态', trigger: 'blur' }] } }; }, watch: { '$route.query.id'(val) { this.configId = val; detailsConfig(val) .then((res) => { this.ruleForm = res.data; }) .catch((e) => { this.$message.error('ID有误。'); this.$router.go(-1); }); } }, mounted() { if (this.$route?.query.id) { this.configId = this.$route.query.id; detailsConfig(this.$route.query.id) .then((res) => { this.ruleForm = res.data; }) .catch((e) => { this.$message.error('ID有误。'); this.$router.go(-1); }); } }, methods: { submitForm(formName) { this.$refs[formName].validate((valid) => { if (valid) { if (this.configId == '') { saveConfig(this.ruleForm) .then((e) => { this.$message.success('配置保存成功'); this.$router.go(-1); console.log('保存字段', e); }) .catch((e) => { this.$message.error('保存失败', e); }); } else { ChangeConfig(this.ruleForm, this.configId).then((res) => { this.$message.success('配置修改成功'); this.$router.go(-1); }); } } else { return false; } }); }, resetForm(formName) { this.$refs[formName].resetFields(); } } }; </script> <style scoped > .demo-ruleForm { margin-top: 1em; } </style>