| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303 |
- <template>
- <div id="app" style="width: 100%">
- <div class="page-header" style="margin-bottom: 0">
- <div class="page-title">
- <el-page-header @back="goBack" content="ApiKey列表"></el-page-header>
- </div>
- <div class="page-header-btn">
- <el-button icon="el-icon-plus" size="mini" style="margin-right: 1rem;" type="primary" @click="addUserApiKey">
- 添加ApiKey
- </el-button>
- </div>
- </div>
- <!--ApiKey列表-->
- <el-table :data="userList" style="width: 100%;font-size: 12px;" :height="winHeight"
- header-row-class-name="table-header">
- <el-table-column prop="user.username" label="用户名" min-width="120"/>
- <el-table-column prop="app" label="应用名" min-width="160"/>
- <el-table-column label="ApiKey" :show-overflow-tooltip="true" min-width="300">
- <template #default="scope">
- <!-- <el-button style="float: right;" type="primary" size="mini" icon="el-icon-document-copy" title="点击拷贝" v-clipboard="scope.row.apiKey" @success="$message({type:'success', message:'成功拷贝到粘贴板'})"></el-button>-->
- <i class="cpoy-btn el-icon-document-copy" title="点击拷贝" v-clipboard="scope.row.apiKey" @success="$message({type:'success', message:'成功拷贝到粘贴板'})"></i>
- <span>{{scope.row.apiKey}}</span>
- </template>
- </el-table-column>
- <el-table-column prop="enable" label="启用" width="120">
- <template #default="scope">
- <el-tag v-if="scope.row.enable">
- 启用
- </el-tag>
- <el-tag v-else type="info">
- 停用
- </el-tag>
- </template>
- </el-table-column>
- <el-table-column prop="expiredAt" label="过期时间" width="160"/>
- <el-table-column prop="remark" label="备注信息" min-width="160"/>
- <el-table-column label="操作" min-width="260" fixed="right">
- <template #default="scope">
- <el-button v-if="scope.row.enable"
- size="medium" icon="el-icon-circle-close" type="text" @click="disableUserApiKey(scope.row)">
- 停用
- </el-button>
- <el-button v-else
- size="medium" icon="el-icon-circle-check" type="text" @click="enableUserApiKey(scope.row)">
- 启用
- </el-button>
- <el-divider direction="vertical"></el-divider>
- <el-button size="medium" icon="el-icon-refresh" type="text" @click="resetUserApiKey(scope.row)">
- 重置
- </el-button>
- <el-divider direction="vertical"></el-divider>
- <el-button size="medium" icon="el-icon-edit" type="text" @click="remarkUserApiKey(scope.row)">
- 备注
- </el-button>
- <el-divider direction="vertical"></el-divider>
- <el-button size="medium" icon="el-icon-delete" type="text" @click="deleteUserApiKey(scope.row)"
- style="color: #f56c6c">
- 删除
- </el-button>
- </template>
- </el-table-column>
- </el-table>
- <addUserApiKey ref="addUserApiKey"></addUserApiKey>
- <remarkUserApiKey ref="remarkUserApiKey"></remarkUserApiKey>
- <el-pagination
- style="float: right"
- @size-change="handleSizeChange"
- @current-change="currentChange"
- :current-page="currentPage"
- :page-size="count"
- :page-sizes="[15, 25, 35, 50]"
- layout="total, sizes, prev, pager, next"
- :total="total">
- </el-pagination>
- </div>
- </template>
- <script>
- import uiHeader from '../layout/UiHeader.vue'
- import addUserApiKey from "./dialog/addUserApiKey.vue";
- import remarkUserApiKey from './dialog/remarkUserApiKey.vue'
- export default {
- name: 'userApiKeyManager',
- components: {
- uiHeader,
- addUserApiKey,
- remarkUserApiKey
- },
- data() {
- return {
- userList: [], //设备列表
- currentUser: {}, //当前操作设备对象
- winHeight: window.innerHeight - 200,
- currentPage: 1,
- count: 15,
- total: 0,
- getUserApiKeyListLoading: false
- };
- },
- mounted() {
- this.initParam();
- this.initData();
- },
- methods: {
- goBack() {
- this.$router.back()
- },
- initParam() {
- this.userId = this.$route.params.userId;
- },
- initData() {
- this.getUserApiKeyList();
- },
- currentChange(val) {
- this.currentPage = val;
- this.getUserApiKeyList();
- },
- handleSizeChange(val) {
- this.count = val;
- this.getUserApiKeyList();
- },
- getUserApiKeyList() {
- let that = this;
- this.getUserApiKeyListLoading = true;
- this.$axios({
- method: 'get',
- url: `/api/userApiKey/userApiKeys`,
- params: {
- page: that.currentPage,
- count: that.count
- }
- }).then((res) => {
- if (res.data.code === 0) {
- that.total = res.data.data.total;
- that.userList = res.data.data.list;
- }
- that.getUserApiKeyListLoading = false;
- }).catch((error) => {
- that.getUserApiKeyListLoading = false;
- });
- },
- addUserApiKey() {
- this.$refs.addUserApiKey.openDialog(this.userId, () => {
- this.$refs.addUserApiKey.close();
- this.$message({
- showClose: true,
- message: "ApiKey添加成功",
- type: "success",
- });
- setTimeout(this.getUserApiKeyList, 200)
- })
- },
- remarkUserApiKey(row) {
- this.$refs.remarkUserApiKey.openDialog(row.id, () => {
- this.$refs.remarkUserApiKey.close();
- this.$message({
- showClose: true,
- message: "备注修改成功",
- type: "success",
- });
- setTimeout(this.getUserApiKeyList, 200)
- })
- },
- enableUserApiKey(row) {
- let msg = "确定启用此ApiKey?"
- if (row.online !== 0) {
- msg = "<strong>确定启用此ApiKey?</strong>"
- }
- this.$confirm(msg, '提示', {
- dangerouslyUseHTMLString: true,
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- center: true,
- type: 'warning'
- }).then(() => {
- this.$axios({
- method: 'post',
- url: `/api/userApiKey/enable?id=${row.id}`
- }).then((res) => {
- this.$message({
- showClose: true,
- message: '启用成功',
- type: 'success'
- });
- this.getUserApiKeyList();
- }).catch((error) => {
- this.$message({
- showClose: true,
- message: '启用失败',
- type: 'error'
- });
- console.error(error);
- });
- }).catch(() => {
- });
- },
- disableUserApiKey(row) {
- let msg = "确定停用此ApiKey?"
- if (row.online !== 0) {
- msg = "<strong>确定停用此ApiKey?</strong>"
- }
- this.$confirm(msg, '提示', {
- dangerouslyUseHTMLString: true,
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- center: true,
- type: 'warning'
- }).then(() => {
- this.$axios({
- method: 'post',
- url: `/api/userApiKey/disable?id=${row.id}`
- }).then((res) => {
- this.$message({
- showClose: true,
- message: '停用成功',
- type: 'success'
- });
- this.getUserApiKeyList();
- }).catch((error) => {
- this.$message({
- showClose: true,
- message: '停用失败',
- type: 'error'
- });
- console.error(error);
- });
- }).catch(() => {
- });
- },
- resetUserApiKey(row) {
- let msg = "确定重置此ApiKey?"
- if (row.online !== 0) {
- msg = "<strong>确定重置此ApiKey?</strong>"
- }
- this.$confirm(msg, '提示', {
- dangerouslyUseHTMLString: true,
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- center: true,
- type: 'warning'
- }).then(() => {
- this.$axios({
- method: 'post',
- url: `/api/userApiKey/reset?id=${row.id}`
- }).then((res) => {
- this.$message({
- showClose: true,
- message: '重置成功',
- type: 'success'
- });
- this.getUserApiKeyList();
- }).catch((error) => {
- this.$message({
- showClose: true,
- message: '重置失败',
- type: 'error'
- });
- console.error(error);
- });
- }).catch(() => {
- });
- },
- deleteUserApiKey(row) {
- let msg = "确定删除此ApiKey?"
- if (row.online !== 0) {
- msg = "<strong>确定删除此ApiKey?</strong>"
- }
- this.$confirm(msg, '提示', {
- dangerouslyUseHTMLString: true,
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- center: true,
- type: 'warning'
- }).then(() => {
- this.$axios({
- method: 'delete',
- url: `/api/userApiKey/delete?id=${row.id}`
- }).then((res) => {
- this.$message({
- showClose: true,
- message: '删除成功',
- type: 'success'
- });
- this.getUserApiKeyList();
- }).catch((error) => {
- this.$message({
- showClose: true,
- message: '删除失败',
- type: 'error'
- });
- console.error(error);
- });
- }).catch(() => {
- });
- },
- }
- }
- </script>
- <style>
- </style>
|