From aca67f7c4b312c82dadb747ffaa3301e10b966c4 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Thu, 02 Apr 2026 08:54:13 +0800
Subject: [PATCH] feat: oss更新

---
 applications/drone-command/src/views/resource/oss.vue |  326 ++++++++++++++++++++++++------------------------------
 1 files changed, 145 insertions(+), 181 deletions(-)

diff --git a/applications/drone-command/src/views/resource/oss.vue b/applications/drone-command/src/views/resource/oss.vue
index 8e76346..ee4f959 100644
--- a/applications/drone-command/src/views/resource/oss.vue
+++ b/applications/drone-command/src/views/resource/oss.vue
@@ -1,22 +1,51 @@
 <template>
   <basic-container>
-    <avue-crud :option="option" :table-loading="loading" :data="data" v-model:page="page" :permission="permissionList"
-      v-model="form" ref="crud" @row-update="rowUpdate" @row-save="rowSave" @row-del="rowDel" :before-open="beforeOpen"
-      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
-      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
+    <avue-crud
+      :option="option"
+      :table-loading="loading"
+      :data="data"
+      v-model:page="page"
+      :permission="permissionList"
+      v-model="form"
+      ref="crud"
+      @row-update="rowUpdate"
+      @row-save="rowSave"
+      @row-del="rowDel"
+      :before-open="beforeOpen"
+      @search-change="searchChange"
+      @search-reset="searchReset"
+      @selection-change="selectionChange"
+      @current-change="currentChange"
+      @size-change="sizeChange"
+      @refresh-change="refreshChange"
+      @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">
-        <el-button type="primary" text icon="el-icon-video-play" v-if="userInfo.role_name.includes('admin')"
-          @click="handleDebug(scope.row)">调试
+        <el-button
+          type="primary"
+          text
+          icon="el-icon-video-play"
+          v-if="userInfo.role_name.includes('admin')"
+          @click="handleDebug(scope.row)"
+          >调试
         </el-button>
-        <el-button type="primary" text icon="el-icon-circle-check" v-if="scope.row.status == 1 && permission.oss_enable"
-          @click.stop="handleEnable(scope.row)">启用
-        </el-button>
-        <el-button type="primary" text icon="VideoPause" v-if="scope.row.status == 2 && permission.oss_enable"
-          @click.stop="handleDisable(scope.row)">禁用
+        <el-button
+          type="primary"
+          text
+          icon="el-icon-circle-check"
+          v-if="permission.oss_enable"
+          @click.stop="handleEnable(scope.row)"
+          >启用
         </el-button>
       </template>
       <template #status="{ row }">
@@ -33,12 +62,12 @@
 </template>
 
 <script>
-import { getListPage, getDetail, add, update, remove, enable, disable } from '@/api/resource/oss'
-import { mapGetters } from 'vuex'
-import func from '@/utils/func'
+import { getList, getDetail, add, update, remove, enable } from '@/api/resource/oss';
+import { mapGetters } from 'vuex';
+import func from '@/utils/func';
 
 export default {
-  data () {
+  data() {
     return {
       form: {},
       query: {},
@@ -51,34 +80,27 @@
       },
       selectionList: [],
       option: {
-        emptyBtnText: '重置',
-        emptyBtnIcon: 'el-icon-refresh',
+        height: 'auto',
+        calcHeight: 32,
         tip: false,
         searchShow: true,
-        searchGutter: 30,
-        searchMenuPosition: 'left',
-        searchMenuSpan: 4,
+        searchMenuSpan: 6,
         border: true,
         index: true,
         viewBtn: true,
         selection: true,
-        grid: false,
         menuWidth: 350,
         labelWidth: 100,
         dialogWidth: 880,
         dialogClickModal: false,
-
-        height: 'auto',
-        calcHeight: 20,
         column: [
           {
-            label: '存储分类',
+            label: '分类',
             type: 'radio',
             value: 1,
             span: 24,
             width: 120,
-            // searchLabelWidth: 50,
-            searchSpan: 4,
+            searchLabelWidth: 50,
             row: true,
             dicUrl: '/blade-system/dict/dictionary?code=oss',
             props: {
@@ -96,32 +118,13 @@
                 trigger: 'blur',
               },
             ],
-               change: (value) => {
-               this.searchChange({ ...this.query,category:value.value}, () => {});
-            }
-          },
-          {
-            label: '存储名称',
-            prop: 'name',
-            span: 24,
-            search: true,
-            searchSpan: 4,
-            rules: [
-              {
-                required: true,
-                message: '请输入名称',
-                trigger: 'blur',
-              },
-            ],
           },
           {
             label: '资源编号',
             prop: 'ossCode',
             span: 24,
             width: 120,
-            // searchLabelWidth: 100,
             search: true,
-            searchSpan: 4,
             rules: [
               {
                 required: true,
@@ -167,8 +170,7 @@
             prop: 'accessKey',
             span: 24,
             search: true,
-            searchSpan: 4,
-            // searchLabelWidth: 100,
+            width: 200,
             overHidden: true,
             rules: [
               {
@@ -182,6 +184,7 @@
             label: 'secretKey',
             prop: 'secretKey',
             span: 24,
+            width: 200,
             overHidden: true,
             rules: [
               {
@@ -199,31 +202,11 @@
             display: false,
           },
           {
-            label: '过期时间',
-            prop: 'expire',
-            type: "number",
-            span: 24,
-            hide: true,
-            rules: [
-              {
-                required: true,
-                message: '请输入过期时间',
-                trigger: 'blur',
-              },
-            ],
-          },
-          {
-            label: '地域简称',
+            label: 'region',
             prop: 'region',
             span: 24,
             hide: true,
-            rules: [
-              {
-                required: true,
-                message: '请输入地域简称',
-                trigger: 'blur',
-              },
-            ],
+            display: false,
           },
           {
             label: '是否启用',
@@ -272,162 +255,144 @@
           },
         ],
       },
-    }
+    };
   },
   watch: {
-    'form.category' () {
-      const category = func.toInt(this.form.category)
+    '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;
-        // }
-      })
+        if (item.prop === 'region') {
+          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}`
+    'debugForm.code'() {
+      const column = this.findObject(this.debugOption.column, 'backgroundUrl');
+      column.action = `/blade-resource/oss/endpoint/put-file?code=${this.debugForm.code}`;
     },
   },
   computed: {
     ...mapGetters(['userInfo', 'permission']),
-    permissionList () {
+    permissionList() {
       return {
         addBtn: this.validData(this.permission.oss_add),
         viewBtn: this.validData(this.permission.oss_view),
         delBtn: this.validData(this.permission.oss_delete),
         editBtn: this.validData(this.permission.oss_edit),
-      }
+      };
     },
-    ids () {
-      let ids = []
+    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) {
+    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) {
+    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) {
+    rowDel(row) {
       this.$confirm('确定将选择数据删除?', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         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)
+    searchReset() {
+      this.query = {};
+      this.onLoad(this.page);
     },
-    searchChange (params, done) {
-      this.query = params
-      this.page.currentPage = 1
-      this.onLoad(this.page, params)
-      done()
+    searchChange(params, done) {
+      this.query = params;
+      this.page.currentPage = 1;
+      this.onLoad(this.page, params);
+      done();
     },
-    selectionChange (list) {
-      this.selectionList = list
+    selectionChange(list) {
+      this.selectionList = list;
     },
-    selectionClear () {
-      this.selectionList = []
-      this.$refs.crud.toggleSelection()
+    selectionClear() {
+      this.selectionList = [];
+      this.$refs.crud.toggleSelection();
     },
-    handleEnable (row) {
+    handleEnable(row) {
       this.$confirm('是否确定启用这条配置?', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning',
       })
         .then(() => {
-          return enable(row.id)
+          return 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();
+        });
     },
-    handleDisable (row) {
-      this.$confirm('是否确定禁用用这条配置?', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning',
-      })
-        .then(() => {
-          return disable(row.id)
-        })
-        .then(() => {
-          this.onLoad(this.page)
-          this.$message({
-            type: 'success',
-            message: '操作成功!',
-          })
-          this.$refs.crud.toggleSelection()
-        })
+    handleDebug(row) {
+      this.box = true;
+      this.debugForm.code = row.ossCode;
+      this.debugForm.backgroundUrl = '';
     },
-    handleDebug (row) {
-      this.box = true
-      this.debugForm.code = row.ossCode
-      this.debugForm.backgroundUrl = ''
-    },
-    handleSubmit (form, done) {
+    handleSubmit(form, done) {
       this.$message({
         type: 'success',
         message: `获取到图片地址:[${form.backgroundUrl}]`,
-      })
-      done()
+      });
+      done();
     },
-    handleDelete () {
+    handleDelete() {
       if (this.selectionList.length === 0) {
-        this.$message.warning('请选择至少一条数据')
-        return
+        this.$message.warning('请选择至少一条数据');
+        return;
       }
       this.$confirm('确定将选择数据删除?', {
         confirmButtonText: '确定',
@@ -435,45 +400,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) {
+    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
+    currentChange(currentPage) {
+      this.page.currentPage = currentPage;
     },
-    sizeChange (pageSize) {
-      this.page.pageSize = pageSize
+    sizeChange(pageSize) {
+      this.page.pageSize = pageSize;
     },
-    refreshChange () {
-      this.onLoad(this.page, this.query)
+    refreshChange() {
+      this.onLoad(this.page, this.query);
     },
-    onLoad (page, params = {}) {
-      this.loading = true
-      getListPage(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()
-      })
+    onLoad(page, params = {}) {
+      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();
+      });
     },
   },
-}
+};
 </script>
-<style scoped lang="scss"></style>
\ No newline at end of file

--
Gitblit v1.9.3