system.vue 5.1 KB
Newer Older
1
<template>
Mr.奇淼('s avatar
Mr.奇淼( 已提交
2
  <div class="system">
3 4 5 6 7 8 9 10 11 12 13
    <el-form :model="config" label-width="100px" ref="form" class="system">
      <h2>系统配置</h2>
      <el-form-item label="多点登录拦截">
        <el-checkbox v-model="config.system.useMultipoint">开启</el-checkbox>
      </el-form-item>
      <el-form-item label="环境值">
        <el-input v-model="config.system.env"></el-input>
      </el-form-item>
      <el-form-item label="端口值">
        <el-input v-model="config.system.addr"></el-input>
      </el-form-item>
14 15 16 17 18 19
      <el-form-item label="数据库类型">
        <el-select v-model="config.system.dbType">
          <el-option value="sqlite"></el-option>
          <el-option value="mysql"></el-option>
        </el-select>
      </el-form-item>
20 21 22 23 24 25
      <h2>jwt签名</h2>
      <el-form-item label="jwt签名">
        <el-input v-model="config.jwt.signingKey"></el-input>
      </el-form-item>
      <h2>casbin配置</h2>
      <el-form-item label="模型地址">
Mr.奇淼('s avatar
Mr.奇淼( 已提交
26
        <el-input v-model="config.casbin.modelPath"></el-input>
27
      </el-form-item>
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
      <template v-show="config.system.dbType == 'mysql'">
        <h2>mysql admin数据库配置</h2>
        <el-form-item label="username">
          <el-input v-model="config.mysql.username"></el-input>
        </el-form-item>
        <el-form-item label="password">
          <el-input v-model="config.mysql.password"></el-input>
        </el-form-item>
        <el-form-item label="path">
          <el-input v-model="config.mysql.path"></el-input>
        </el-form-item>
        <el-form-item label="dbname">
          <el-input v-model="config.mysql.dbname"></el-input>
        </el-form-item>
        <el-form-item label="maxIdleConns">
          <el-input v-model.number="config.mysql.maxIdleConns"></el-input>
        </el-form-item>
        <el-form-item label="maxOpenConns">
          <el-input v-model.number="config.mysql.maxOpenConns"></el-input>
        </el-form-item>
        <el-form-item label="logMode">
          <el-checkbox v-model="config.log.logMode"></el-checkbox>
        </el-form-item>
      </template>
      <template v-show="config.system.dbType == 'sqlite'">
        <h2>sqlite admin数据库配置</h2>
        <el-form-item label="path">
          <el-input v-model="config.sqlite.path"></el-input>
        </el-form-item>
        <el-form-item label="config">
          <el-input v-model="config.sqlite.config"></el-input>
        </el-form-item>
        <el-form-item label="logMode">
          <el-checkbox v-model="config.sqlite.logMode"></el-checkbox>
        </el-form-item>
      </template>
64 65
      <h2>Redis admin数据库配置</h2>
      <el-form-item label="addr">
Mr.奇淼('s avatar
Mr.奇淼( 已提交
66
        <el-input v-model="config.redis.addr"></el-input>
67 68
      </el-form-item>
      <el-form-item label="password">
Mr.奇淼('s avatar
Mr.奇淼( 已提交
69
        <el-input v-model="config.redis.password"></el-input>
70 71
      </el-form-item>
      <el-form-item label="db">
Mr.奇淼('s avatar
Mr.奇淼( 已提交
72
        <el-input v-model="config.redis.db"></el-input>
73 74 75 76 77 78 79 80
      </el-form-item>
      <h2>七牛密钥配置</h2>
      <el-form-item label="accessKey">
        <el-input v-model="config.qiniu.accessKey"></el-input>
      </el-form-item>
      <el-form-item label="secretKey">
        <el-input v-model="config.qiniu.secretKey"></el-input>
      </el-form-item>
Mr.奇淼('s avatar
Mr.奇淼( 已提交
81 82 83 84 85 86 87 88 89 90
      <h2>验证码配置</h2>
      <el-form-item label="keyLong">
        <el-input v-model.number="config.captcha.keyLong"></el-input>
      </el-form-item>
      <el-form-item label="imgWidth">
        <el-input v-model.number="config.captcha.imgWidth"></el-input>
      </el-form-item>
      <el-form-item label="imgHeight">
        <el-input v-model.number="config.captcha.imgHeight"></el-input>
      </el-form-item>
Mr.奇淼('s avatar
Mr.奇淼( 已提交
91
      <h2>日志配置</h2>
Mr.奇淼('s avatar
Mr.奇淼( 已提交
92 93 94 95 96 97 98 99 100
      <el-form-item label="prefix">
        <el-input v-model.number="config.log.prefix"></el-input>
      </el-form-item>
      <el-form-item label="logFile">
        <el-checkbox v-model="config.log.logFile"></el-checkbox>
      </el-form-item>
      <el-form-item>
        <el-button @click="update" type="primary">立即更新</el-button>
        <el-button @click="reload" type="primary">重启服务(开发中)</el-button>
101 102 103 104 105 106
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
Mr.奇淼('s avatar
Mr.奇淼( 已提交
107
import { getSystemConfig, setSystemConfig } from "@/api/system";
108
export default {
Mr.奇淼('s avatar
Mr.奇淼( 已提交
109
  name: "Config",
110 111 112 113 114
  data() {
    return {
      config: {
        system: {},
        jwt: {},
Mr.奇淼('s avatar
Mr.奇淼( 已提交
115 116
        casbin: {},
        mysql: {},
117
        sqlite: {},
Mr.奇淼('s avatar
Mr.奇淼( 已提交
118 119
        redis: {},
        qiniu: {},
Mr.奇淼('s avatar
Mr.奇淼( 已提交
120 121
        captcha: {},
        log: {}
122
      }
Mr.奇淼('s avatar
Mr.奇淼( 已提交
123
    };
124 125
  },
  async created() {
Mr.奇淼('s avatar
Mr.奇淼( 已提交
126
    await this.initForm();
127 128 129
  },
  methods: {
    async initForm() {
Mr.奇淼('s avatar
Mr.奇淼( 已提交
130
      const res = await getSystemConfig();
131
      if (res.code == 0) {
Mr.奇淼('s avatar
Mr.奇淼( 已提交
132
        this.config = res.data.config;
133 134 135 136
      }
    },
    reload() {},
    async update() {
Mr.奇淼('s avatar
Mr.奇淼( 已提交
137
      const res = await setSystemConfig({ config: this.config });
138
      if (res.code == 0) {
139
        this.$message({
Mr.奇淼('s avatar
Mr.奇淼( 已提交
140 141 142 143
          type: "success",
          message: "配置文件设置成功"
        });
        await this.initForm();
144 145 146
      }
    }
  }
Mr.奇淼('s avatar
Mr.奇淼( 已提交
147
};
148 149
</script>
<style lang="scss">
Mr.奇淼('s avatar
Mr.奇淼( 已提交
150 151 152 153 154 155 156
.system {
  h2 {
    padding: 10px;
    margin: 10px 0;
    font-size: 16px;
    box-shadow: -4px 1px 3px 0px #e7e8e8;
  }
157
}
158
</style>