潘志宝
2024-11-04 fd1845889744a82334799291674709de0971657a
src/views/data/channel/http/api/tag/index.vue
@@ -2,7 +2,7 @@
  <el-drawer
    v-model="drawer"
    size="50%"
    title="Kio Tag"
    title="Http Tag"
    :direction="direction"
    :before-close="handleClose"
  >
@@ -37,10 +37,25 @@
            type="primary"
            plain
            @click="openForm('create')"
            v-hasPermi="['data:channel-kio:create']"
            v-hasPermi="['data:channel-http:create']"
          >
            <Icon icon="ep:plus" class="mr-5px" />
            新增
          </el-button>
          <el-button
            type="warning"
            plain
            @click="handleImport"
            v-hasPermi="['data:channel-http-tag:import']">
            <Icon icon="ep:upload" /> 导入
          </el-button>
          <el-button
            type="success"
            plain
            @click="handleExport"
            :loading="exportLoading"
            v-hasPermi="['data:channel-http-tag:export']">
            <Icon icon="ep:download" />导出
          </el-button>
        </el-form-item>
      </el-form>
@@ -75,7 +90,7 @@
          align="center"
        >
          <template #default="scope">
            <el-tag v-if="scope.row.enabled === true" size="small">是</el-tag>
            <el-tag v-if="scope.row.enabled === 1" size="small">是</el-tag>
            <el-tag v-else size="small" type="danger">否</el-tag>
          </template>
        </el-table-column>
@@ -85,7 +100,7 @@
              link
              type="primary"
              @click="openForm('update', scope.row.id)"
              v-hasPermi="['data:channel-kio:update']"
              v-hasPermi="['data:channel-http:update']"
            >
              编辑
            </el-button>
@@ -93,7 +108,7 @@
              link
              type="danger"
              @click="handleDelete(scope.row.id)"
              v-hasPermi="['data:channel-kio:delete']"
              v-hasPermi="['data:channel-http:delete']"
            >
              删除
            </el-button>
@@ -110,12 +125,16 @@
    </ContentWrap>
    <!-- 表单弹窗:添加/修改 -->
    <TagForm ref="formRef" @success="getList" />
    <TagImportForm ref="importFormRef" @success="getList" />
  </el-drawer>
</template>
<script lang="ts" setup>
import type { DrawerProps } from 'element-plus'
import * as HttpTagApi from "@/api/data/channel/http/tag";
import TagForm from './TagForm.vue'
import download from "@/utils/download";
import {ref} from "vue";
import TagImportForm from '../../../common/tag/TagImportForm.vue'
defineOptions({name: 'HttpTag'})
@@ -131,7 +150,8 @@
  pageNo: 1,
  pageSize: 10,
  apiId: undefined,
  tagName: undefined
  tagName: undefined,
  httpName: undefined
})
const queryFormRef = ref() // 搜索的表单
const exportLoading = ref(false) // 导出的加载中
@@ -181,10 +201,11 @@
}
/** 打开弹窗 */
const open = async (apiId?: string) => {
const open = async (apiId?: string, name?:string) => {
  resetForm()
  drawer.value = true
  queryParams.apiId = apiId
  queryParams.httpName = name
  if (apiId) {
    getList()
  }
@@ -202,4 +223,27 @@
const handleClose = (done: () => void) => {
  drawer.value = false
}
/** tag导入 */
const importFormRef = ref()
const handleImport = () => {
  if(queryParams.apiId){
    importFormRef.value.open(queryParams.httpName, '/data/channel/http/tag/import',HttpTagApi.importHttpTagTemplate(), 'Http', queryParams.apiId)
  }
}
/** 导出按钮操作 */
const handleExport = async () => {
  try {
    // 导出的二次确认
    await message.exportConfirm()
    // 发起导出
    exportLoading.value = true
    const data = await HttpTagApi.exportHttpTag(queryParams)
    download.excel(data, 'Http_' + queryParams.httpName + '_Tag列表.xlsx')
  } catch {
  } finally {
    exportLoading.value = false
  }
}
</script>