update 添加接口令牌校验

master
yinq 2 months ago
parent 15f0050c84
commit cfdf1dfb1c

@ -3,4 +3,7 @@
后端采用Spring Boot、Spring Security、Redis & Jwt。
权限认证使用Jwt支持多终端认证系统。
支持加载动态权限菜单,多方式轻松权限控制。
高效率开发,使用代码生成器可以一键生成前后端代码。
高效率开发,使用代码生成器可以一键生成前后端代码。
API常量类配置
ApiConstants

@ -0,0 +1,98 @@
package hw.tagApi.web.controller.system;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import hw.tagApi.common.annotation.Log;
import hw.tagApi.common.core.controller.BaseController;
import hw.tagApi.common.core.domain.AjaxResult;
import hw.tagApi.common.enums.BusinessType;
import hw.tagApi.system.domain.SysApiToken;
import hw.tagApi.system.service.ISysApiTokenService;
import hw.tagApi.common.utils.poi.ExcelUtil;
import hw.tagApi.common.core.page.TableDataInfo;
/**
* Controller
*
* @author Yinq
* @date 2025-04-23
*/
@RestController
@RequestMapping("/system/apiToken")
public class SysApiTokenController extends BaseController {
@Autowired
private ISysApiTokenService sysApiTokenService;
/**
*
*/
@PreAuthorize("@ss.hasPermi('system:apiToken:list')")
@GetMapping("/list")
public TableDataInfo list(SysApiToken sysApiToken) {
startPage();
List<SysApiToken> list = sysApiTokenService.selectSysApiTokenList(sysApiToken);
return getDataTable(list);
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('system:apiToken:export')")
@Log(title = "用户令牌", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, SysApiToken sysApiToken) {
List<SysApiToken> list = sysApiTokenService.selectSysApiTokenList(sysApiToken);
ExcelUtil<SysApiToken> util = new ExcelUtil<SysApiToken>(SysApiToken.class);
util.exportExcel(response, list, "用户令牌数据");
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('system:apiToken:query')")
@GetMapping(value = "/{tokenId}")
public AjaxResult getInfo(@PathVariable("tokenId") Long tokenId) {
return success(sysApiTokenService.selectSysApiTokenByTokenId(tokenId));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('system:apiToken:add')")
@Log(title = "用户令牌", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody SysApiToken sysApiToken) {
return toAjax(sysApiTokenService.insertSysApiToken(sysApiToken));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('system:apiToken:edit')")
@Log(title = "用户令牌", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody SysApiToken sysApiToken) {
return toAjax(sysApiTokenService.updateSysApiToken(sysApiToken));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('system:apiToken:remove')")
@Log(title = "用户令牌", businessType = BusinessType.DELETE)
@DeleteMapping("/{tokenIds}")
public AjaxResult remove(@PathVariable Long[] tokenIds) {
return toAjax(sysApiTokenService.deleteSysApiTokenByTokenIds(tokenIds));
}
}

@ -95,7 +95,7 @@ token:
# 令牌密钥
secret: abcdefghijklmnopqrstuvwxyz
# 令牌有效期默认30分钟
expireTime: 30
expireTime: 720
# MyBatis配置
mybatis:
@ -127,3 +127,7 @@ xss:
excludes: /system/notice
# 匹配链接
urlPatterns: /system/*,/monitor/*,/tool/*
tagApi:
username: highwayiot
password: tagPass@2025

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 日志存放路径 -->
<property name="log.path" value="/home/ruoyi/logs" />
<property name="log.path" value="/usr/local/hwTagApi/logs" />
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />

@ -1,6 +1,5 @@
package hw.tagApi.service.constant;
import com.fasterxml.jackson.databind.ObjectMapper;
/**
* API
@ -13,7 +12,8 @@ public class ApiConstants {
/**
* IP
*/
public static final String BASE_URL = "http://127.0.0.1:9000/docs/export/";
// public static final String BASE_URL = "http://127.0.0.1:9000/docs/export/";
public static final String BASE_URL = "http://1.13.177.47:9000/docs/export/";
/**
* () 6

@ -2,17 +2,18 @@ package hw.tagApi.service.controller;
import hw.tagApi.common.core.controller.BaseController;
import hw.tagApi.common.core.domain.AjaxResult;
import hw.tagApi.common.utils.poi.ExcelUtil;
import hw.tagApi.service.constant.ApiConstants;
import hw.tagApi.service.domain.ApiContent;
import hw.tagApi.service.domain.ApiRequest;
import hw.tagApi.service.domain.ApiResponse;
import hw.tagApi.service.service.IKDocsService;
import hw.tagApi.system.domain.SysAttachInfo;
import hw.tagApi.system.service.ISysApiTokenService;
import hw.tagApi.system.service.ISysAttachInfoService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import javax.servlet.ServletException;
@ -26,6 +27,7 @@ import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Objects;
/**
* Controller
@ -45,6 +47,15 @@ public class KDocsApiController extends BaseController {
@Autowired
private ISysAttachInfoService attachInfoService;
@Autowired
private ISysApiTokenService apiTokenService;
@Value("${tagApi.username}")
private String apiUsername;
@Value("${tagApi.password}")
private String apiPassword;
/**
*
*
@ -173,7 +184,23 @@ public class KDocsApiController extends BaseController {
* @return
*/
private boolean validateApiKey(String apiKey) {
// TODO: 实现API-Key的验证逻辑
return true;
String sysApiToken = apiTokenService.getSysApiToken();
return Objects.equals(sysApiToken, apiKey);
}
/**
* token
* @param username
* @param password
* @return
*/
@GetMapping("/getToken")
public AjaxResult getToken(@RequestParam String username, @RequestParam String password) {
if (!apiUsername.equals(username) || !apiPassword.equals(password)) {
return AjaxResult.error("账号或密码错误!");
}
return AjaxResult.success(apiTokenService.getSysApiToken());
}
}

@ -0,0 +1,135 @@
package hw.tagApi.system.domain;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import hw.tagApi.common.annotation.Excel;
import hw.tagApi.common.core.domain.BaseEntity;
/**
* sys_api_token
*
* @author Yinq
* @date 2025-04-23
*/
public class SysApiToken extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键标识 */
private Long tokenId;
/** 令牌字符串 */
@Excel(name = "令牌字符串")
private String tokenCode;
/** 过期时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "过期时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date expiresTime;
/** 启用状态1是 0否 */
@Excel(name = "启用状态", readConverterExp = "1=是,0=否")
private String enableFlag;
/** 预留字段1 */
@Excel(name = "预留字段1")
private String fields1;
/** 预留字段2 */
@Excel(name = "预留字段2")
private String fields2;
/** 预留字段3 */
@Excel(name = "预留字段3")
private String fields3;
public void setTokenId(Long tokenId)
{
this.tokenId = tokenId;
}
public Long getTokenId()
{
return tokenId;
}
public void setTokenCode(String tokenCode)
{
this.tokenCode = tokenCode;
}
public String getTokenCode()
{
return tokenCode;
}
public void setExpiresTime(Date expiresTime)
{
this.expiresTime = expiresTime;
}
public Date getExpiresTime()
{
return expiresTime;
}
public void setEnableFlag(String enableFlag)
{
this.enableFlag = enableFlag;
}
public String getEnableFlag()
{
return enableFlag;
}
public void setFields1(String fields1)
{
this.fields1 = fields1;
}
public String getFields1()
{
return fields1;
}
public void setFields2(String fields2)
{
this.fields2 = fields2;
}
public String getFields2()
{
return fields2;
}
public void setFields3(String fields3)
{
this.fields3 = fields3;
}
public String getFields3()
{
return fields3;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("tokenId", getTokenId())
.append("tokenCode", getTokenCode())
.append("expiresTime", getExpiresTime())
.append("enableFlag", getEnableFlag())
.append("fields1", getFields1())
.append("fields2", getFields2())
.append("fields3", getFields3())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
}
}

@ -0,0 +1,61 @@
package hw.tagApi.system.mapper;
import java.util.List;
import hw.tagApi.system.domain.SysApiToken;
/**
* Mapper
*
* @author Yinq
* @date 2025-04-23
*/
public interface SysApiTokenMapper
{
/**
*
*
* @param tokenId
* @return
*/
public SysApiToken selectSysApiTokenByTokenId(Long tokenId);
/**
*
*
* @param sysApiToken
* @return
*/
public List<SysApiToken> selectSysApiTokenList(SysApiToken sysApiToken);
/**
*
*
* @param sysApiToken
* @return
*/
public int insertSysApiToken(SysApiToken sysApiToken);
/**
*
*
* @param sysApiToken
* @return
*/
public int updateSysApiToken(SysApiToken sysApiToken);
/**
*
*
* @param tokenId
* @return
*/
public int deleteSysApiTokenByTokenId(Long tokenId);
/**
*
*
* @param tokenIds
* @return
*/
public int deleteSysApiTokenByTokenIds(Long[] tokenIds);
}

@ -0,0 +1,67 @@
package hw.tagApi.system.service;
import java.util.List;
import hw.tagApi.system.domain.SysApiToken;
/**
* Service
*
* @author Yinq
* @date 2025-04-23
*/
public interface ISysApiTokenService
{
/**
*
*
* @param tokenId
* @return
*/
public SysApiToken selectSysApiTokenByTokenId(Long tokenId);
/**
*
*
* @param sysApiToken
* @return
*/
public List<SysApiToken> selectSysApiTokenList(SysApiToken sysApiToken);
/**
*
*
* @param sysApiToken
* @return
*/
public int insertSysApiToken(SysApiToken sysApiToken);
/**
*
*
* @param sysApiToken
* @return
*/
public int updateSysApiToken(SysApiToken sysApiToken);
/**
*
*
* @param tokenIds
* @return
*/
public int deleteSysApiTokenByTokenIds(Long[] tokenIds);
/**
*
*
* @param tokenId
* @return
*/
public int deleteSysApiTokenByTokenId(Long tokenId);
/**
* Token
* @return
*/
public String getSysApiToken();
}

@ -0,0 +1,111 @@
package hw.tagApi.system.service.impl;
import java.util.List;
import hw.tagApi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import hw.tagApi.system.mapper.SysApiTokenMapper;
import hw.tagApi.system.domain.SysApiToken;
import hw.tagApi.system.service.ISysApiTokenService;
/**
* Service
*
* @author Yinq
* @date 2025-04-23
*/
@Service
public class SysApiTokenServiceImpl implements ISysApiTokenService
{
@Autowired
private SysApiTokenMapper sysApiTokenMapper;
/**
*
*
* @param tokenId
* @return
*/
@Override
public SysApiToken selectSysApiTokenByTokenId(Long tokenId)
{
return sysApiTokenMapper.selectSysApiTokenByTokenId(tokenId);
}
/**
*
*
* @param sysApiToken
* @return
*/
@Override
public List<SysApiToken> selectSysApiTokenList(SysApiToken sysApiToken)
{
return sysApiTokenMapper.selectSysApiTokenList(sysApiToken);
}
/**
*
*
* @param sysApiToken
* @return
*/
@Override
public int insertSysApiToken(SysApiToken sysApiToken)
{
sysApiToken.setCreateTime(DateUtils.getNowDate());
return sysApiTokenMapper.insertSysApiToken(sysApiToken);
}
/**
*
*
* @param sysApiToken
* @return
*/
@Override
public int updateSysApiToken(SysApiToken sysApiToken)
{
sysApiToken.setUpdateTime(DateUtils.getNowDate());
return sysApiTokenMapper.updateSysApiToken(sysApiToken);
}
/**
*
*
* @param tokenIds
* @return
*/
@Override
public int deleteSysApiTokenByTokenIds(Long[] tokenIds)
{
return sysApiTokenMapper.deleteSysApiTokenByTokenIds(tokenIds);
}
/**
*
*
* @param tokenId
* @return
*/
@Override
public int deleteSysApiTokenByTokenId(Long tokenId)
{
return sysApiTokenMapper.deleteSysApiTokenByTokenId(tokenId);
}
/**
* Token
* @return
*/
@Override
public String getSysApiToken() {
SysApiToken sysApiToken = new SysApiToken();
sysApiToken.setEnableFlag("1");
List<SysApiToken> apiTokens = sysApiTokenMapper.selectSysApiTokenList(sysApiToken);
if (apiTokens.isEmpty()){
return null;
}
return apiTokens.get(0).getTokenCode();
}
}

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="hw.tagApi.system.mapper.SysApiTokenMapper">
<resultMap type="SysApiToken" id="SysApiTokenResult">
<result property="tokenId" column="token_id" />
<result property="tokenCode" column="token_code" />
<result property="expiresTime" column="expires_time" />
<result property="enableFlag" column="enable_flag" />
<result property="fields1" column="fields_1" />
<result property="fields2" column="fields_2" />
<result property="fields3" column="fields_3" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectSysApiTokenVo">
select token_id, token_code, expires_time, enable_flag, fields_1, fields_2, fields_3, create_by, create_time, update_by, update_time, remark from sys_api_token
</sql>
<select id="selectSysApiTokenList" parameterType="SysApiToken" resultMap="SysApiTokenResult">
<include refid="selectSysApiTokenVo"/>
<where>
<if test="tokenCode != null and tokenCode != ''"> and token_code like concat('%', #{tokenCode}, '%')</if>
<if test="params.beginExpiresTime != null and params.beginExpiresTime != '' and params.endExpiresTime != null and params.endExpiresTime != ''"> and expires_time between #{params.beginExpiresTime} and #{params.endExpiresTime}</if>
<if test="enableFlag != null and enableFlag != ''"> and enable_flag = #{enableFlag}</if>
<if test="fields1 != null and fields1 != ''"> and fields_1 = #{fields1}</if>
<if test="fields2 != null and fields2 != ''"> and fields_2 = #{fields2}</if>
<if test="fields3 != null and fields3 != ''"> and fields_3 = #{fields3}</if>
</where>
</select>
<select id="selectSysApiTokenByTokenId" parameterType="Long" resultMap="SysApiTokenResult">
<include refid="selectSysApiTokenVo"/>
where token_id = #{tokenId}
</select>
<insert id="insertSysApiToken" parameterType="SysApiToken" useGeneratedKeys="true" keyProperty="tokenId">
insert into sys_api_token
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="tokenCode != null and tokenCode != ''">token_code,</if>
<if test="expiresTime != null">expires_time,</if>
<if test="enableFlag != null and enableFlag != ''">enable_flag,</if>
<if test="fields1 != null">fields_1,</if>
<if test="fields2 != null">fields_2,</if>
<if test="fields3 != null">fields_3,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="tokenCode != null and tokenCode != ''">#{tokenCode},</if>
<if test="expiresTime != null">#{expiresTime},</if>
<if test="enableFlag != null and enableFlag != ''">#{enableFlag},</if>
<if test="fields1 != null">#{fields1},</if>
<if test="fields2 != null">#{fields2},</if>
<if test="fields3 != null">#{fields3},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
</trim>
</insert>
<update id="updateSysApiToken" parameterType="SysApiToken">
update sys_api_token
<trim prefix="SET" suffixOverrides=",">
<if test="tokenCode != null and tokenCode != ''">token_code = #{tokenCode},</if>
<if test="expiresTime != null">expires_time = #{expiresTime},</if>
<if test="enableFlag != null and enableFlag != ''">enable_flag = #{enableFlag},</if>
<if test="fields1 != null">fields_1 = #{fields1},</if>
<if test="fields2 != null">fields_2 = #{fields2},</if>
<if test="fields3 != null">fields_3 = #{fields3},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where token_id = #{tokenId}
</update>
<delete id="deleteSysApiTokenByTokenId" parameterType="Long">
delete from sys_api_token where token_id = #{tokenId}
</delete>
<delete id="deleteSysApiTokenByTokenIds" parameterType="String">
delete from sys_api_token where token_id in
<foreach item="tokenId" collection="array" open="(" separator="," close=")">
#{tokenId}
</foreach>
</delete>
</mapper>

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询用户令牌列表
export function listApiToken(query) {
return request({
url: '/system/apiToken/list',
method: 'get',
params: query
})
}
// 查询用户令牌详细
export function getApiToken(tokenId) {
return request({
url: '/system/apiToken/' + tokenId,
method: 'get'
})
}
// 新增用户令牌
export function addApiToken(data) {
return request({
url: '/system/apiToken',
method: 'post',
data: data
})
}
// 修改用户令牌
export function updateApiToken(data) {
return request({
url: '/system/apiToken',
method: 'put',
data: data
})
}
// 删除用户令牌
export function delApiToken(tokenId) {
return request({
url: '/system/apiToken/' + tokenId,
method: 'delete'
})
}

@ -0,0 +1,332 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px">
<el-form-item label="令牌字符串" prop="tokenCode">
<el-input
v-model="queryParams.tokenCode"
placeholder="请输入令牌字符串"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="过期时间">
<el-date-picker
v-model="daterangeExpiresTime"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:apiToken:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:apiToken:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:apiToken:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:apiToken:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="apiTokenList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="主键标识" align="center" prop="tokenId" />-->
<el-table-column label="令牌字符串" align="center" prop="tokenCode" />
<el-table-column label="过期时间" align="center" prop="expiresTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.expiresTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
</template>
</el-table-column>
<el-table-column label="启用状态" align="center" prop="enableFlag" >
<template slot-scope="scope">
<dict-tag :options="dict.type.enable_flag" :value="scope.row.enableFlag"/>
</template>
</el-table-column>
<!-- <el-table-column label="预留字段1" align="center" prop="fields1" />-->
<!-- <el-table-column label="预留字段2" align="center" prop="fields2" />-->
<!-- <el-table-column label="预留字段3" align="center" prop="fields3" />-->
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:apiToken:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:apiToken:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改用户令牌对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="令牌字符串" prop="tokenCode">
<el-input v-model="form.tokenCode" placeholder="请输入令牌字符串" />
</el-form-item>
<el-form-item label="过期时间" prop="expiresTime">
<el-date-picker clearable
v-model="form.expiresTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择过期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="启用状态" prop="enableFlag">
<el-radio-group v-model="form.enableFlag">
<el-radio
v-for="dict in dict.type.enable_flag"
:key="dict.value"
:label="dict.value"
>{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item>
<!-- <el-form-item label="预留字段1" prop="fields1">-->
<!-- <el-input v-model="form.fields1" placeholder="请输入预留字段1" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="预留字段2" prop="fields2">-->
<!-- <el-input v-model="form.fields2" placeholder="请输入预留字段2" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="预留字段3" prop="fields3">-->
<!-- <el-input v-model="form.fields3" placeholder="请输入预留字段3" />-->
<!-- </el-form-item>-->
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listApiToken, getApiToken, delApiToken, addApiToken, updateApiToken } from "@/api/system/apiToken";
export default {
name: "ApiToken",
dicts: ['enable_flag'],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
apiTokenList: [],
//
title: "",
//
open: false,
//
daterangeExpiresTime: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
tokenCode: null,
expiresTime: null,
enableFlag: null,
fields1: null,
fields2: null,
fields3: null,
},
//
form: {},
//
rules: {
tokenCode: [
{ required: true, message: "令牌字符串不能为空", trigger: "blur" }
],
expiresTime: [
{ required: true, message: "过期时间不能为空", trigger: "blur" }
],
enableFlag: [
{ required: true, message: "启用状态不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询用户令牌列表 */
getList() {
this.loading = true;
this.queryParams.params = {};
if (null != this.daterangeExpiresTime && '' != this.daterangeExpiresTime) {
this.queryParams.params["beginExpiresTime"] = this.daterangeExpiresTime[0];
this.queryParams.params["endExpiresTime"] = this.daterangeExpiresTime[1];
}
listApiToken(this.queryParams).then(response => {
this.apiTokenList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
tokenId: null,
tokenCode: null,
expiresTime: null,
enableFlag: null,
fields1: null,
fields2: null,
fields3: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.daterangeExpiresTime = [];
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.tokenId)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加用户令牌";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const tokenId = row.tokenId || this.ids
getApiToken(tokenId).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改用户令牌";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.tokenId != null) {
updateApiToken(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addApiToken(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const tokenIds = row.tokenId || this.ids;
this.$modal.confirm('是否确认删除用户令牌编号为"' + tokenIds + '"的数据项?').then(function() {
return delApiToken(tokenIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('system/apiToken/export', {
...this.queryParams
}, `apiToken_${new Date().getTime()}.xlsx`)
}
}
};
</script>
Loading…
Cancel
Save