吉安感知网项目-前端
罗广辉
2026-04-02 4b11628929f9b738833dcc77384dcfee9e65ddfc
feat: 启用禁用
1 files modified
160 ■■■■ changed files
applications/drone-command/src/views/resource/oss.vue 160 ●●●● patch | view | raw | blame | history
applications/drone-command/src/views/resource/oss.vue
@@ -21,13 +21,8 @@
      @on-load="onLoad"
    >
      <template #menu-left>
        <el-button
          type="danger"
          icon="el-icon-delete"
          plain
          v-if="permission.oss_delete"
          @click="handleDelete"
          >删 除
                <el-button type="danger" icon="el-icon-delete" plain v-if="permission.oss_delete" @click="handleDelete">
                    删 除
        </el-button>
      </template>
      <template #menu="scope">
@@ -37,7 +32,8 @@
          icon="el-icon-video-play"
          v-if="userInfo.role_name.includes('admin')"
          @click="handleDebug(scope.row)"
          >调试
                >
                    调试
        </el-button>
        <el-button
          type="primary"
@@ -45,7 +41,8 @@
          icon="el-icon-circle-check"
          v-if="permission.oss_enable"
          @click.stop="handleEnable(scope.row)"
          >启用
                >
                    {{ scope.row.statusName === '是' ? '禁用' : '启用' }}
        </el-button>
      </template>
      <template #status="{ row }">
@@ -62,9 +59,9 @@
</template>
<script>
import { getList, getDetail, add, update, remove, enable } from '@/api/resource/oss';
import { mapGetters } from 'vuex';
import func from '@/utils/func';
import { getList, getDetail, add, update, remove, enable, disable } from '@/api/resource/oss'
import { mapGetters } from 'vuex'
import func from '@/utils/func'
export default {
  data() {
@@ -255,23 +252,23 @@
          },
        ],
      },
    };
        }
  },
  watch: {
    'form.category'() {
      const category = func.toInt(this.form.category);
            const category = func.toInt(this.form.category)
      this.$refs.crud.option.column.filter(item => {
        if (item.prop === 'appId') {
          item.display = category === 4;
                    item.display = category === 4
        }
        if (item.prop === 'region') {
          item.display = category === 4 || category === 5;
                    item.display = category === 4 || category === 5
        }
      });
            })
    },
    'debugForm.code'() {
      const column = this.findObject(this.debugOption.column, 'backgroundUrl');
      column.action = `/blade-resource/oss/endpoint/put-file?code=${this.debugForm.code}`;
            const column = this.findObject(this.debugOption.column, 'backgroundUrl')
            column.action = `/blade-resource/oss/endpoint/put-file?code=${this.debugForm.code}`
    },
  },
  computed: {
@@ -282,48 +279,48 @@
        viewBtn: this.validData(this.permission.oss_view),
        delBtn: this.validData(this.permission.oss_delete),
        editBtn: this.validData(this.permission.oss_edit),
      };
            }
    },
    ids() {
      let ids = [];
            let ids = []
      this.selectionList.forEach(ele => {
        ids.push(ele.id);
      });
      return ids.join(',');
                ids.push(ele.id)
            })
            return ids.join(',')
    },
  },
  methods: {
    rowSave(row, done, loading) {
      add(row).then(
        () => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: 'success',
            message: '操作成功!',
          });
          done();
                    })
                    done()
        },
        error => {
          window.console.log(error);
          loading();
                    window.console.log(error)
                    loading()
        }
      );
            )
    },
    rowUpdate(row, index, done, loading) {
      update(row).then(
        () => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: 'success',
            message: '操作成功!',
          });
          done();
                    })
                    done()
        },
        error => {
          window.console.log(error);
          loading();
                    window.console.log(error)
                    loading()
        }
      );
            )
    },
    rowDel(row) {
      this.$confirm('确定将选择数据删除?', {
@@ -332,67 +329,68 @@
        type: 'warning',
      })
        .then(() => {
          return remove(row.id);
                    return remove(row.id)
        })
        .then(() => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: 'success',
            message: '操作成功!',
          });
        });
                    })
                })
    },
    searchReset() {
      this.query = {};
      this.onLoad(this.page);
            this.query = {}
            this.onLoad(this.page)
    },
    searchChange(params, done) {
      this.query = params;
      this.page.currentPage = 1;
      this.onLoad(this.page, params);
      done();
            this.query = params
            this.page.currentPage = 1
            this.onLoad(this.page, params)
            done()
    },
    selectionChange(list) {
      this.selectionList = list;
            this.selectionList = list
    },
    selectionClear() {
      this.selectionList = [];
      this.$refs.crud.toggleSelection();
            this.selectionList = []
            this.$refs.crud.toggleSelection()
    },
    handleEnable(row) {
      this.$confirm('是否确定启用这条配置?', {
            const open = row.statusName === '是'
            this.$confirm(`是否确定${open ? '禁用' : '启用'}这条配置?`, {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
      })
        .then(() => {
          return enable(row.id);
                    return open ? disable(row.id) : enable(row.id)
        })
        .then(() => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: 'success',
            message: '操作成功!',
          });
          this.$refs.crud.toggleSelection();
        });
                    })
                    this.$refs.crud.toggleSelection()
                })
    },
    handleDebug(row) {
      this.box = true;
      this.debugForm.code = row.ossCode;
      this.debugForm.backgroundUrl = '';
            this.box = true
            this.debugForm.code = row.ossCode
            this.debugForm.backgroundUrl = ''
    },
    handleSubmit(form, done) {
      this.$message({
        type: 'success',
        message: `获取到图片地址:[${form.backgroundUrl}]`,
      });
      done();
            })
            done()
    },
    handleDelete() {
      if (this.selectionList.length === 0) {
        this.$message.warning('请选择至少一条数据');
        return;
                this.$message.warning('请选择至少一条数据')
                return
      }
      this.$confirm('确定将选择数据删除?', {
        confirmButtonText: '确定',
@@ -400,44 +398,44 @@
        type: 'warning',
      })
        .then(() => {
          return remove(this.ids);
                    return remove(this.ids)
        })
        .then(() => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: 'success',
            message: '操作成功!',
          });
          this.$refs.crud.toggleSelection();
        });
                    })
                    this.$refs.crud.toggleSelection()
                })
    },
    beforeOpen(done, type) {
      if (['edit', 'view'].includes(type)) {
        getDetail(this.form.id).then(res => {
          this.form = res.data.data;
        });
                    this.form = res.data.data
                })
      }
      done();
            done()
    },
    currentChange(currentPage) {
      this.page.currentPage = currentPage;
            this.page.currentPage = currentPage
    },
    sizeChange(pageSize) {
      this.page.pageSize = pageSize;
            this.page.pageSize = pageSize
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
            this.onLoad(this.page, this.query)
    },
    onLoad(page, params = {}) {
      this.loading = true;
            this.loading = true
      getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        this.loading = false;
        this.selectionClear();
      });
                const data = res.data.data
                this.page.total = data.total
                this.data = data.records
                this.loading = false
                this.selectionClear()
            })
    },
  },
};
}
</script>