system.vue 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. <template>
  2. <div class="system">
  3. <el-form :model="config" label-width="100px" ref="form" class="system">
  4. <h2>系统配置</h2>
  5. <el-form-item label="多点登录拦截">
  6. <el-checkbox v-model="config.system.useMultipoint">开启</el-checkbox>
  7. </el-form-item>
  8. <el-form-item label="环境值">
  9. <el-input v-model="config.system.env"></el-input>
  10. </el-form-item>
  11. <el-form-item label="端口值">
  12. <el-input v-model.number="config.system.addr"></el-input>
  13. </el-form-item>
  14. <el-form-item label="数据库类型">
  15. <el-select v-model="config.system.dbType">
  16. <el-option value="sqlite"></el-option>
  17. <el-option value="mysql"></el-option>
  18. </el-select>
  19. </el-form-item>
  20. <h2>jwt签名</h2>
  21. <el-form-item label="jwt签名">
  22. <el-input v-model="config.jwt.signingKey"></el-input>
  23. </el-form-item>
  24. <h2>casbin配置</h2>
  25. <el-form-item label="模型地址">
  26. <el-input v-model="config.casbin.modelPath"></el-input>
  27. </el-form-item>
  28. <template v-show="config.system.dbType == 'mysql'">
  29. <h2>mysql admin数据库配置</h2>
  30. <el-form-item label="username">
  31. <el-input v-model="config.mysql.username"></el-input>
  32. </el-form-item>
  33. <el-form-item label="password">
  34. <el-input v-model="config.mysql.password"></el-input>
  35. </el-form-item>
  36. <el-form-item label="path">
  37. <el-input v-model="config.mysql.path"></el-input>
  38. </el-form-item>
  39. <el-form-item label="dbname">
  40. <el-input v-model="config.mysql.dbname"></el-input>
  41. </el-form-item>
  42. <el-form-item label="maxIdleConns">
  43. <el-input v-model.number="config.mysql.maxIdleConns"></el-input>
  44. </el-form-item>
  45. <el-form-item label="maxOpenConns">
  46. <el-input v-model.number="config.mysql.maxOpenConns"></el-input>
  47. </el-form-item>
  48. <el-form-item label="logMode">
  49. <el-checkbox v-model="config.mysql.logMode"></el-checkbox>
  50. </el-form-item>
  51. </template>
  52. <template v-show="config.system.dbType == 'sqlite'">
  53. <h2>sqlite admin数据库配置</h2>
  54. <el-form-item label="path">
  55. <el-input v-model="config.sqlite.path"></el-input>
  56. </el-form-item>
  57. <el-form-item label="config">
  58. <el-input v-model="config.sqlite.config"></el-input>
  59. </el-form-item>
  60. <el-form-item label="logMode">
  61. <el-checkbox v-model="config.sqlite.logMode"></el-checkbox>
  62. </el-form-item>
  63. </template>
  64. <h2>Redis admin数据库配置</h2>
  65. <el-form-item label="addr">
  66. <el-input v-model="config.redis.addr"></el-input>
  67. </el-form-item>
  68. <el-form-item label="password">
  69. <el-input v-model="config.redis.password"></el-input>
  70. </el-form-item>
  71. <el-form-item label="db">
  72. <el-input v-model="config.redis.db"></el-input>
  73. </el-form-item>
  74. <h2>上传配置</h2>
  75. <el-form-item label="本地或七牛云">
  76. <el-checkbox v-model="config.localUpload.local">本地</el-checkbox>
  77. </el-form-item>
  78. <el-form-item label="本地头像路径">
  79. <el-input v-model="config.localUpload.avatarPath"></el-input>
  80. </el-form-item>
  81. <el-form-item label="本地文件路径">
  82. <el-input v-model="config.localUpload.filePath"></el-input>
  83. </el-form-item>
  84. <h2>七牛密钥配置</h2>
  85. <el-form-item label="accessKey">
  86. <el-input v-model="config.qiniu.accessKey"></el-input>
  87. </el-form-item>
  88. <el-form-item label="secretKey">
  89. <el-input v-model="config.qiniu.secretKey"></el-input>
  90. </el-form-item>
  91. <h2>验证码配置</h2>
  92. <el-form-item label="keyLong">
  93. <el-input v-model.number="config.captcha.keyLong"></el-input>
  94. </el-form-item>
  95. <el-form-item label="imgWidth">
  96. <el-input v-model.number="config.captcha.imgWidth"></el-input>
  97. </el-form-item>
  98. <el-form-item label="imgHeight">
  99. <el-input v-model.number="config.captcha.imgHeight"></el-input>
  100. </el-form-item>
  101. <h2>日志配置</h2>
  102. <el-form-item label="prefix">
  103. <el-input v-model.number="config.log.prefix"></el-input>
  104. </el-form-item>
  105. <el-form-item label="logFile">
  106. <el-checkbox v-model="config.log.logFile"></el-checkbox>
  107. </el-form-item>
  108. <el-form-item>
  109. <el-button @click="update" type="primary">立即更新</el-button>
  110. <el-button @click="reload" type="primary">重启服务(开发中)</el-button>
  111. </el-form-item>
  112. </el-form>
  113. </div>
  114. </template>
  115. <script>
  116. import { getSystemConfig, setSystemConfig } from "@/api/system";
  117. export default {
  118. name: "Config",
  119. data() {
  120. return {
  121. config: {
  122. system: {},
  123. jwt: {},
  124. casbin: {},
  125. mysql: {},
  126. sqlite: {},
  127. redis: {},
  128. qiniu: {},
  129. captcha: {},
  130. log: {},
  131. localUpload: {}
  132. }
  133. };
  134. },
  135. async created() {
  136. await this.initForm();
  137. },
  138. methods: {
  139. async initForm() {
  140. const res = await getSystemConfig();
  141. if (res.code == 0) {
  142. this.config = res.data.config;
  143. }
  144. },
  145. reload() {},
  146. async update() {
  147. const res = await setSystemConfig({ config: this.config });
  148. if (res.code == 0) {
  149. this.$message({
  150. type: "success",
  151. message: "配置文件设置成功"
  152. });
  153. await this.initForm();
  154. }
  155. }
  156. }
  157. };
  158. </script>
  159. <style lang="scss">
  160. .system {
  161. h2 {
  162. padding: 10px;
  163. margin: 10px 0;
  164. font-size: 16px;
  165. box-shadow: -4px 1px 3px 0px #e7e8e8;
  166. }
  167. }
  168. </style>