ruoyi-ui/src/views/system/oss/config.vue
@@ -2,14 +2,13 @@
  <div class="app-container">
    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
      <el-form-item label="配置key" prop="configKey">
        <el-select v-model="queryParams.configKey" placeholder="请选择配置key" clearable size="small">
          <el-option
            v-for="configKey in configKeyOptions"
            :key="configKey.configKey"
            :label="configKey.label"
            :value="configKey.configKey"
          />
        </el-select>
        <el-input
          v-model="queryParams.configKey"
          placeholder="配置key"
          clearable
          size="small"
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="桶名称" prop="bucketName">
        <el-input
@@ -23,10 +22,10 @@
      <el-form-item label="状态" prop="status">
        <el-select v-model="queryParams.status" placeholder="请选择状态" clearable size="small">
          <el-option
            v-for="dict in statusOptions"
            :key="dict.dictValue"
            :label="dict.dictLabel"
            :value="dict.dictValue"
            v-for="dict in dict.type.sys_normal_disable"
            :key="dict.value"
            :label="dict.label"
            :value="dict.value"
          />
        </el-select>
      </el-form-item>
@@ -77,9 +76,17 @@
      <el-table-column label="主建" align="center" prop="ossConfigId" v-if="false"/>
      <el-table-column label="配置key" align="center" prop="configKey" />
      <el-table-column label="访问站点" align="center" prop="endpoint" width="200" />
      <el-table-column label="自定义域名" align="center" prop="domain" width="200" />
      <el-table-column label="桶名称" align="center" prop="bucketName" />
      <el-table-column label="前缀" align="center" prop="prefix" />
      <el-table-column label="域" align="center" prop="region" />
      <el-table-column label="桶权限类型" align="center" prop="accessPolicy">
        <template slot-scope="scope">
          <el-tag type="warning" v-if="scope.row.accessPolicy === '0'">private</el-tag>
          <el-tag type="success" v-if="scope.row.accessPolicy === '1'">public</el-tag>
          <el-tag type="info" v-if="scope.row.accessPolicy === '2'">custom</el-tag>
        </template>
      </el-table-column>
      <el-table-column label="状态" align="center" prop="status">
        <template slot-scope="scope">
          <el-switch
@@ -122,17 +129,13 @@
    <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
        <el-form-item label="配置key" prop="configKey">
          <el-select v-model="form.configKey" placeholder="请选择配置key">
            <el-option
              v-for="configKey in configKeyOptions"
              :key="configKey.configKey"
              :label="configKey.label"
              :value="configKey.configKey"
            />
          </el-select>
          <el-input v-model="form.configKey" placeholder="请输入配置key" />
        </el-form-item>
        <el-form-item label="访问站点" prop="endpoint">
          <el-input v-model="form.endpoint" placeholder="请输入访问站点" />
        </el-form-item>
        <el-form-item label="自定义域名" prop="domain">
          <el-input v-model="form.domain" placeholder="请输入自定义域名" />
        </el-form-item>
        <el-form-item label="accessKey" prop="accessKey">
          <el-input v-model="form.accessKey" placeholder="请输入accessKey" />
@@ -149,10 +152,17 @@
        <el-form-item label="是否HTTPS">
          <el-radio-group v-model="form.isHttps">
            <el-radio
              v-for="dict in isHttpsOptions"
              :key="dict.dictValue"
              :label="dict.dictValue"
            >{{dict.dictLabel}}</el-radio>
              v-for="dict in dict.type.sys_yes_no"
              :key="dict.value"
              :label="dict.value"
            >{{dict.label}}</el-radio>
          </el-radio-group>
        </el-form-item>
        <el-form-item label="桶权限类型">
          <el-radio-group v-model="form.accessPolicy">
            <el-radio label="0">private</el-radio>
            <el-radio label="1">public</el-radio>
            <el-radio label="2">custom</el-radio>
          </el-radio-group>
        </el-form-item>
        <el-form-item label="域" prop="region">
@@ -183,6 +193,7 @@
export default {
  name: "OssConfig",
  dicts: ['sys_yes_no', 'sys_normal_disable'],
  data() {
    return {
      // 按钮loading
@@ -203,14 +214,6 @@
      total: 0,
      // 对象存储配置表格数据
      ossConfigList: [],
      // configKeyOptions
      configKeyOptions: [],
      configKeyDatas: [
        { configKey: "minio", label: "Minio" },
        { configKey: "qiniu", label: "七牛云" },
        { configKey: "aliyun", label: "阿里云" },
        { configKey: "qcloud", label: "腾讯云" },
      ],
      // 弹出层标题
      title: "",
      // 是否显示弹出层
@@ -270,18 +273,14 @@
            trigger: "blur",
          },
        ],
        accessPolicy:[
          { required: true, message: "accessPolicy不能为空", trigger: "blur" }
        ]
      },
    };
  },
  created() {
    this.getList();
    this.getDicts("sys_yes_no").then(response => {
      this.isHttpsOptions = response.data;
    });
    this.getDicts("sys_normal_disable").then(response => {
      this.statusOptions = response.data;
    });
    this.configKeyOptions = this.configKeyDatas;
  },
  methods: {
    /** 查询对象存储配置列表 */
@@ -308,7 +307,9 @@
        bucketName: undefined,
        prefix: undefined,
        endpoint: undefined,
        domain: undefined,
        isHttps: "N",
        accessPolicy: "1",
        region: undefined,
        status: "1",
        remark: undefined,
@@ -356,7 +357,7 @@
          this.buttonLoading = true;
          if (this.form.ossConfigId != null) {
            updateOssConfig(this.form).then(response => {
              this.msgSuccess("修改成功");
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
            }).finally(() => {
@@ -364,7 +365,7 @@
            });
          } else {
            addOssConfig(this.form).then(response => {
              this.msgSuccess("新增成功");
              this.$modal.msgSuccess("新增成功");
              this.open = false;
              this.getList();
            }).finally(() => {
@@ -377,17 +378,13 @@
    /** 删除按钮操作 */
    handleDelete(row) {
      const ossConfigIds = row.ossConfigId || this.ids;
      this.$confirm('是否确认删除对象存储配置编号为"' + ossConfigIds + '"的数据项?', "警告", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      }).then(() => {
      this.$modal.confirm('是否确认删除对象存储配置编号为"' + ossConfigIds + '"的数据项?').then(() => {
        this.loading = true;
        return delOssConfig(ossConfigIds);
      }).then(() => {
        this.loading = false;
        this.getList();
        this.msgSuccess("删除成功");
        this.$modal.msgSuccess("删除成功");
      }).finally(() => {
        this.loading = false;
      });
@@ -395,16 +392,11 @@
    // 对象存储配置状态修改
    handleStatusChange(row) {
      let text = row.status === "0" ? "启用" : "停用";
      this.$confirm(
        '确认要"' + text + '""' + row.configKey + '"配置吗?', "警告", {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning",
      }).then(() => {
      this.$modal.confirm('确认要"' + text + '""' + row.configKey + '"配置吗?').then(() => {
        return changeOssConfigStatus(row.ossConfigId, row.status, row.configKey);
      }).then(() => {
        this.getList()
        this.msgSuccess(text + "成功");
        this.$modal.msgSuccess(text + "成功");
      }).catch(() => {
        row.status = row.status === "0" ? "1" : "0";
      })