123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. <template>
  2. <div>
  3. <el-row :gutter="24">
  4. <el-col :span="18">
  5. <el-form
  6. ref="ruleForm"
  7. :model="ruleForm"
  8. :rules="rules"
  9. label-width="10vw"
  10. class="demo-ruleForm"
  11. >
  12. <el-form-item label="配置名称" prop="appName" style="width:30vw">
  13. <el-input v-model="ruleForm.appName" />
  14. </el-form-item>
  15. <el-form-item label="二维码" prop="qrCode">
  16. <img
  17. width="150"
  18. alt="二维码"
  19. src="https://cdn4.buysellads.net/uu/1/41334/1550855401-cc_light.png"
  20. />
  21. </el-form-item>
  22. <el-form-item label="类型" prop="appType">
  23. <el-select v-model="ruleForm.appType" placeholder="请选择类型">
  24. <el-option label="小程序" value="ma" />
  25. <el-option label="公众号" value="md" />
  26. </el-select>
  27. </el-form-item>
  28. <el-form-item style="width:30vw" label="AppID" prop="appid">
  29. <el-input v-model="ruleForm.appid" />
  30. </el-form-item>
  31. <el-form-item style="width:30vw" label="Secret" prop="secret">
  32. <el-input v-model="ruleForm.secret" />
  33. </el-form-item>
  34. <el-form-item style="width:30vw" label="Token" prop="token">
  35. <el-input v-model="ruleForm.token" />
  36. </el-form-item>
  37. <el-form-item style="width:30vw" label="AesKey" prop="aesKey">
  38. <el-input v-model="ruleForm.aesKey" />
  39. </el-form-item>
  40. <el-form-item style="width:30vw" label="消息格式类型" prop="msgDataFormat">
  41. <el-input v-model="ruleForm.msgDataFormat" />
  42. </el-form-item>
  43. <el-form-item style="width:30vw" label="接口代理地址" prop="httpPoxyHost">
  44. <el-input v-model="ruleForm.httpPoxyHost" />
  45. </el-form-item>
  46. <el-form-item style="width:30vw" label="接口代理端口" prop="httpProxyPort">
  47. <el-input v-model="ruleForm.httpProxyPort" type="Number" />
  48. </el-form-item>
  49. <el-form-item style="width:30vw" label="第三方接口地址" prop="apiUrl">
  50. <el-input v-model="ruleForm.apiUrl" />
  51. </el-form-item>
  52. <el-form-item label="发布状态" prop="status">
  53. <el-select v-model="ruleForm.status" placeholder="请选择状态">
  54. <el-option label="发布" value="1" />
  55. <el-option label="未发布" value="0" />
  56. </el-select>
  57. </el-form-item>
  58. <el-form-item>
  59. <el-button type="primary" @click="submitForm('ruleForm')">{{ !configId?'新建配置':'修改配置' }}</el-button>
  60. <!-- <el-button type="primary" @click="submitForm('ruleForm')">应用配置</el-button> -->
  61. <el-button @click="resetForm('ruleForm')">重置</el-button>
  62. </el-form-item>
  63. </el-form>
  64. </el-col>
  65. </el-row>
  66. </div>
  67. </template>
  68. <script>
  69. import { saveConfig, detailsConfig, ChangeConfig } from '@/api/WeChatApi';
  70. export default {
  71. data() {
  72. return {
  73. configId: '',
  74. ruleForm: {
  75. appName: '',
  76. appid: '',
  77. appType: '',
  78. aesKey: '',
  79. apiUrl: '',
  80. resource: '',
  81. httpPoxyHost: '',
  82. msgDataFormat: 'Json',
  83. secret: '',
  84. token: '',
  85. httpProxyPort: null,
  86. status: null
  87. },
  88. rules: {
  89. appName: [
  90. { required: true, message: '请输入配置名称', trigger: 'blur' }
  91. ],
  92. appid: [{ required: true, message: '请输入AppID', trigger: 'blur' }],
  93. appType: [{ required: true, message: '请选择类型', trigger: 'blur' }],
  94. aesKey: [{ required: true, message: '请选择AesKey', trigger: 'blur' }],
  95. apiUrl: [
  96. { required: true, message: '请选择第三方接口地址', trigger: 'blur' }
  97. ],
  98. httpPoxyHost: [
  99. { required: true, message: '请输入接口代理地址', trigger: 'blur' }
  100. ],
  101. httpProxyPort: [
  102. { required: true, message: '请输入接口代理端口', trigger: 'blur' }
  103. ],
  104. msgDataFormat: [
  105. { required: true, message: '请输入消息格式类型', trigger: 'blur' }
  106. ],
  107. secret: [{ required: true, message: '请输入Secret', trigger: 'blur' }],
  108. token: [{ required: true, message: '请输入Token', trigger: 'blur' }],
  109. status: [{ required: true, message: '请选择状态', trigger: 'blur' }]
  110. }
  111. };
  112. },
  113. watch: {
  114. '$route.query.id'(val) {
  115. this.configId = val;
  116. detailsConfig(val)
  117. .then((res) => {
  118. this.ruleForm = res.data;
  119. })
  120. .catch((e) => {
  121. this.$message.error('ID有误。');
  122. this.$router.go(-1);
  123. });
  124. }
  125. },
  126. mounted() {
  127. if (this.$route?.query.id) {
  128. this.configId = this.$route.query.id;
  129. detailsConfig(this.$route.query.id)
  130. .then((res) => {
  131. this.ruleForm = res.data;
  132. })
  133. .catch((e) => {
  134. this.$message.error('ID有误。');
  135. this.$router.go(-1);
  136. });
  137. }
  138. },
  139. methods: {
  140. submitForm(formName) {
  141. this.$refs[formName].validate((valid) => {
  142. if (valid) {
  143. if (this.configId == '') {
  144. saveConfig(this.ruleForm)
  145. .then((e) => {
  146. this.$message.success('配置保存成功');
  147. this.$router.go(-1);
  148. console.log('保存字段', e);
  149. })
  150. .catch((e) => {
  151. this.$message.error('保存失败', e);
  152. });
  153. } else {
  154. ChangeConfig(this.ruleForm, this.configId).then((res) => {
  155. this.$message.success('配置修改成功');
  156. this.$router.go(-1);
  157. });
  158. }
  159. } else {
  160. return false;
  161. }
  162. });
  163. },
  164. resetForm(formName) {
  165. this.$refs[formName].resetFields();
  166. }
  167. }
  168. };
  169. </script>
  170. <style scoped >
  171. .demo-ruleForm {
  172. margin-top: 1em;
  173. }
  174. </style>