mirror of
https://gitee.com/durcframework/SOP.git
synced 2025-08-11 12:56:28 +08:00
5.0
This commit is contained in:
@@ -13,7 +13,7 @@ public enum ConfigKeyEnum {
|
||||
PASSWORD_SALT("admin.password-salt", ""),
|
||||
JWT_TIMEOUT_DAYS("admin.jwt-timeout-days", "365"),
|
||||
JWT_SECRET("admin.jwt.secret", ""),
|
||||
TORNA_URL("admin.torna-url", ""),
|
||||
TORNA_SERVER_ADDR("admin.torna-server-addr", ""),
|
||||
OPEN_PROD_URL("admin.open-prod-url", ""),
|
||||
OPEN_SANDBOX_URL("admin.open-sandbox-url", "");
|
||||
|
||||
|
@@ -0,0 +1,42 @@
|
||||
package com.gitee.sop.adminbackend.controller.doc;
|
||||
|
||||
import com.gitee.sop.adminbackend.common.resp.Result;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.gitee.sop.adminbackend.controller.doc.param.DocAppAddParam;
|
||||
import com.gitee.sop.adminbackend.controller.doc.vo.DocAppVO;
|
||||
import com.gitee.sop.adminbackend.service.doc.DocService;
|
||||
import com.gitee.sop.adminbackend.service.website.dto.DocAppDTO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author 六如
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("doc")
|
||||
public class DocController {
|
||||
|
||||
@Autowired
|
||||
private DocService docService;
|
||||
|
||||
@GetMapping("app/list")
|
||||
public Result<List<DocAppVO>> listApp() {
|
||||
List<DocAppDTO> docAppDTOS = docService.listDocApp();
|
||||
List<DocAppVO> docAppVOS = CopyUtil.copyList(docAppDTOS, DocAppVO::new);
|
||||
return Result.ok(docAppVOS);
|
||||
}
|
||||
|
||||
@PostMapping("app/add")
|
||||
public Result<Integer> addApp(@Validated @RequestBody DocAppAddParam param) {
|
||||
docService.addDocApp(param.getTornaToken());
|
||||
return Result.ok(1);
|
||||
}
|
||||
|
||||
}
|
@@ -2,7 +2,7 @@ package com.gitee.sop.adminbackend.controller.doc;
|
||||
|
||||
import com.gitee.sop.adminbackend.common.resp.Result;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.gitee.sop.adminbackend.controller.doc.resp.DocSettingVO;
|
||||
import com.gitee.sop.adminbackend.controller.doc.vo.DocSettingVO;
|
||||
import com.gitee.sop.adminbackend.service.doc.DocService;
|
||||
import com.gitee.sop.adminbackend.service.doc.dto.DocSettingDTO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@@ -0,0 +1,18 @@
|
||||
package com.gitee.sop.adminbackend.controller.doc.param;
|
||||
|
||||
import lombok.Data;
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* @author 六如
|
||||
*/
|
||||
@Data
|
||||
public class DocAppAddParam {
|
||||
|
||||
@NotBlank
|
||||
@Length(max = 128)
|
||||
private String tornaToken;
|
||||
|
||||
}
|
@@ -1,4 +1,4 @@
|
||||
package com.gitee.sop.adminbackend.controller.website.resp;
|
||||
package com.gitee.sop.adminbackend.controller.doc.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package com.gitee.sop.adminbackend.controller.doc.resp;
|
||||
package com.gitee.sop.adminbackend.controller.doc.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
@@ -7,10 +7,10 @@ import com.gitee.sop.adminbackend.common.util.RSATool;
|
||||
import com.gitee.sop.adminbackend.common.dto.StatusUpdateDTO;
|
||||
import com.gitee.sop.adminbackend.common.req.StatusUpdateParam;
|
||||
import com.gitee.sop.adminbackend.common.resp.Result;
|
||||
import com.gitee.sop.adminbackend.controller.isv.req.IsvInfoAddParam;
|
||||
import com.gitee.sop.adminbackend.controller.isv.req.IsvInfoUpdateKeysParam;
|
||||
import com.gitee.sop.adminbackend.controller.isv.req.IsvInfoUpdateParam;
|
||||
import com.gitee.sop.adminbackend.controller.isv.req.IsvKeysGenParam;
|
||||
import com.gitee.sop.adminbackend.controller.isv.param.IsvInfoAddParam;
|
||||
import com.gitee.sop.adminbackend.controller.isv.param.IsvInfoUpdateKeysParam;
|
||||
import com.gitee.sop.adminbackend.controller.isv.param.IsvInfoUpdateParam;
|
||||
import com.gitee.sop.adminbackend.controller.isv.param.IsvKeysGenParam;
|
||||
import com.gitee.sop.adminbackend.dao.entity.IsvInfo;
|
||||
import com.gitee.sop.adminbackend.service.isv.IsvInfoService;
|
||||
import com.gitee.sop.adminbackend.service.isv.PermIsvGroupService;
|
||||
|
@@ -4,8 +4,8 @@ import com.gitee.fastmybatis.core.PageInfo;
|
||||
import com.gitee.fastmybatis.core.query.LambdaQuery;
|
||||
import com.gitee.sop.adminbackend.common.req.IdParam;
|
||||
import com.gitee.sop.adminbackend.common.resp.Result;
|
||||
import com.gitee.sop.adminbackend.controller.isv.req.PermGroupPageParam;
|
||||
import com.gitee.sop.adminbackend.controller.isv.req.PermGroupParam;
|
||||
import com.gitee.sop.adminbackend.controller.isv.param.PermGroupPageParam;
|
||||
import com.gitee.sop.adminbackend.controller.isv.param.PermGroupParam;
|
||||
import com.gitee.sop.adminbackend.dao.entity.PermGroup;
|
||||
import com.gitee.sop.adminbackend.service.isv.PermGroupService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@@ -3,8 +3,8 @@ package com.gitee.sop.adminbackend.controller.isv;
|
||||
import com.gitee.fastmybatis.core.PageInfo;
|
||||
import com.gitee.fastmybatis.core.query.LambdaQuery;
|
||||
import com.gitee.sop.adminbackend.common.resp.Result;
|
||||
import com.gitee.sop.adminbackend.controller.isv.req.PermGroupApiInfoParam;
|
||||
import com.gitee.sop.adminbackend.controller.isv.req.PermGroupPermissionParam;
|
||||
import com.gitee.sop.adminbackend.controller.isv.param.PermGroupApiInfoParam;
|
||||
import com.gitee.sop.adminbackend.controller.isv.param.PermGroupPermissionParam;
|
||||
import com.gitee.sop.adminbackend.dao.entity.ApiInfo;
|
||||
import com.gitee.sop.adminbackend.service.isv.PermGroupPermissionService;
|
||||
import com.gitee.sop.adminbackend.service.isv.dto.PermGroupPermissionDTO;
|
||||
|
@@ -2,7 +2,7 @@ package com.gitee.sop.adminbackend.controller.isv;
|
||||
|
||||
import com.gitee.sop.adminbackend.common.context.SpringContext;
|
||||
import com.gitee.sop.adminbackend.common.resp.Result;
|
||||
import com.gitee.sop.adminbackend.controller.isv.req.IsvGroupSettingParam;
|
||||
import com.gitee.sop.adminbackend.controller.isv.param.IsvGroupSettingParam;
|
||||
import com.gitee.sop.adminbackend.service.isv.PermIsvGroupService;
|
||||
import com.gitee.sop.adminbackend.service.isv.dto.IsvGroupSettingDTO;
|
||||
import com.gitee.sop.adminbackend.service.isv.event.ChangeIsvPermEvent;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package com.gitee.sop.adminbackend.controller.isv.req;
|
||||
package com.gitee.sop.adminbackend.controller.isv.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package com.gitee.sop.adminbackend.controller.isv.req;
|
||||
package com.gitee.sop.adminbackend.controller.isv.param;
|
||||
|
||||
import lombok.Data;
|
||||
import org.hibernate.validator.constraints.Length;
|
@@ -1,4 +1,4 @@
|
||||
package com.gitee.sop.adminbackend.controller.isv.req;
|
||||
package com.gitee.sop.adminbackend.controller.isv.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package com.gitee.sop.adminbackend.controller.isv.req;
|
||||
package com.gitee.sop.adminbackend.controller.isv.param;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
@@ -1,4 +1,4 @@
|
||||
package com.gitee.sop.adminbackend.controller.isv.req;
|
||||
package com.gitee.sop.adminbackend.controller.isv.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package com.gitee.sop.adminbackend.controller.isv.req;
|
||||
package com.gitee.sop.adminbackend.controller.isv.param;
|
||||
|
||||
import com.gitee.fastmybatis.core.query.Operator;
|
||||
import com.gitee.fastmybatis.core.query.annotation.Condition;
|
@@ -1,4 +1,4 @@
|
||||
package com.gitee.sop.adminbackend.controller.isv.req;
|
||||
package com.gitee.sop.adminbackend.controller.isv.param;
|
||||
|
||||
import com.gitee.fastmybatis.core.query.Operator;
|
||||
import com.gitee.fastmybatis.core.query.annotation.Condition;
|
@@ -1,4 +1,4 @@
|
||||
package com.gitee.sop.adminbackend.controller.isv.req;
|
||||
package com.gitee.sop.adminbackend.controller.isv.param;
|
||||
|
||||
import com.gitee.fastmybatis.core.query.Operator;
|
||||
import com.gitee.fastmybatis.core.query.annotation.Condition;
|
@@ -1,4 +1,4 @@
|
||||
package com.gitee.sop.adminbackend.controller.isv.req;
|
||||
package com.gitee.sop.adminbackend.controller.isv.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
@@ -5,7 +5,7 @@ import com.gitee.fastmybatis.core.query.Query;
|
||||
import com.gitee.sop.adminbackend.common.dto.StatusUpdateDTO;
|
||||
import com.gitee.sop.adminbackend.common.req.StatusUpdateParam;
|
||||
import com.gitee.sop.adminbackend.common.resp.Result;
|
||||
import com.gitee.sop.adminbackend.controller.serve.req.ApiInfoPageParam;
|
||||
import com.gitee.sop.adminbackend.controller.serve.param.ApiInfoPageParam;
|
||||
import com.gitee.sop.adminbackend.dao.entity.ApiInfo;
|
||||
import com.gitee.sop.adminbackend.service.serve.ApiInfoService;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package com.gitee.sop.adminbackend.controller.serve.req;
|
||||
package com.gitee.sop.adminbackend.controller.serve.param;
|
||||
|
||||
import com.gitee.fastmybatis.core.query.Operator;
|
||||
import com.gitee.fastmybatis.core.query.annotation.Condition;
|
@@ -1,4 +1,4 @@
|
||||
package com.gitee.sop.adminbackend.controller.serve.req;
|
||||
package com.gitee.sop.adminbackend.controller.serve.param;
|
||||
|
||||
import com.gitee.fastmybatis.core.query.Operator;
|
||||
import com.gitee.fastmybatis.core.query.annotation.Condition;
|
@@ -2,8 +2,8 @@ package com.gitee.sop.adminbackend.controller.sys;
|
||||
|
||||
import com.gitee.sop.adminbackend.common.annotation.NoToken;
|
||||
import com.gitee.sop.adminbackend.common.resp.Result;
|
||||
import com.gitee.sop.adminbackend.controller.sys.req.LoginParam;
|
||||
import com.gitee.sop.adminbackend.controller.sys.resp.LoginResultVO;
|
||||
import com.gitee.sop.adminbackend.controller.sys.param.LoginParam;
|
||||
import com.gitee.sop.adminbackend.controller.sys.vo.LoginResultVO;
|
||||
import com.gitee.sop.adminbackend.service.sys.login.LoginService;
|
||||
import com.gitee.sop.adminbackend.service.sys.login.dto.LoginDTO;
|
||||
import com.gitee.sop.adminbackend.service.sys.login.dto.LoginUser;
|
||||
|
@@ -1,7 +1,7 @@
|
||||
package com.gitee.sop.adminbackend.controller.sys;
|
||||
|
||||
import com.gitee.sop.adminbackend.common.resp.Result;
|
||||
import com.gitee.sop.adminbackend.controller.sys.req.ConfigSettingParam;
|
||||
import com.gitee.sop.adminbackend.controller.sys.param.ConfigSettingParam;
|
||||
import com.gitee.sop.adminbackend.service.sys.SysConfigService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package com.gitee.sop.adminbackend.controller.sys.req;
|
||||
package com.gitee.sop.adminbackend.controller.sys.param;
|
||||
|
||||
import com.gitee.sop.adminbackend.service.sys.dto.SystemConfigDTO;
|
||||
import lombok.Data;
|
@@ -1,4 +1,4 @@
|
||||
package com.gitee.sop.adminbackend.controller.sys.req;
|
||||
package com.gitee.sop.adminbackend.controller.sys.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package com.gitee.sop.adminbackend.controller.sys.resp;
|
||||
package com.gitee.sop.adminbackend.controller.sys.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
@@ -3,8 +3,8 @@ package com.gitee.sop.adminbackend.controller.website;
|
||||
import com.gitee.sop.adminbackend.common.annotation.NoToken;
|
||||
import com.gitee.sop.adminbackend.common.resp.Result;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.gitee.sop.adminbackend.controller.website.resp.DocAppVO;
|
||||
import com.gitee.sop.adminbackend.controller.website.resp.DocInfoTreeVO;
|
||||
import com.gitee.sop.adminbackend.controller.doc.vo.DocAppVO;
|
||||
import com.gitee.sop.adminbackend.controller.website.vo.DocInfoTreeVO;
|
||||
import com.gitee.sop.adminbackend.service.website.WebsiteService;
|
||||
import com.gitee.sop.adminbackend.service.website.dto.DocAppDTO;
|
||||
import com.gitee.sop.adminbackend.service.website.dto.DocInfoTreeDTO;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package com.gitee.sop.adminbackend.controller.website.resp;
|
||||
package com.gitee.sop.adminbackend.controller.website.vo;
|
||||
|
||||
import com.gitee.fastmybatis.core.support.TreeNode;
|
||||
import lombok.Data;
|
@@ -1,14 +1,30 @@
|
||||
package com.gitee.sop.adminbackend.service.doc;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.gitee.httphelper.HttpHelper;
|
||||
import com.gitee.sop.adminbackend.common.enums.ConfigKeyEnum;
|
||||
import com.gitee.sop.adminbackend.common.exception.BizException;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.gitee.sop.adminbackend.dao.entity.DocApp;
|
||||
import com.gitee.sop.adminbackend.dao.mapper.DocAppMapper;
|
||||
import com.gitee.sop.adminbackend.service.doc.dto.DocSettingDTO;
|
||||
import com.gitee.sop.adminbackend.service.doc.dto.TornaModuleDTO;
|
||||
import com.gitee.sop.adminbackend.service.sys.SysConfigService;
|
||||
import com.gitee.sop.adminbackend.service.sys.dto.SystemConfigDTO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.gitee.sop.adminbackend.service.website.dto.DocAppDTO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
@@ -20,9 +36,15 @@ public class DocService {
|
||||
@Autowired
|
||||
private SysConfigService sysConfigService;
|
||||
|
||||
@Autowired
|
||||
private DocAppMapper docAppMapper;
|
||||
|
||||
@Autowired
|
||||
private TornaClient tornaClient;
|
||||
|
||||
public DocSettingDTO getDocSetting() {
|
||||
DocSettingDTO docSettingDTO = new DocSettingDTO();
|
||||
docSettingDTO.setTornaServerAddr(ConfigKeyEnum.TORNA_URL.getValue());
|
||||
docSettingDTO.setTornaServerAddr(ConfigKeyEnum.TORNA_SERVER_ADDR.getValue());
|
||||
docSettingDTO.setOpenProdUrl(ConfigKeyEnum.OPEN_PROD_URL.getValue());
|
||||
docSettingDTO.setOpenSandboxUrl(ConfigKeyEnum.OPEN_SANDBOX_URL.getValue());
|
||||
return docSettingDTO;
|
||||
@@ -30,10 +52,27 @@ public class DocService {
|
||||
|
||||
public void save(DocSettingDTO docSettingDTO) {
|
||||
Collection<SystemConfigDTO> systemConfigDTOS = new ArrayList<>();
|
||||
systemConfigDTOS.add(new SystemConfigDTO(ConfigKeyEnum.TORNA_URL.getKey(), docSettingDTO.getTornaServerAddr(), "Torna服务器地址"));
|
||||
systemConfigDTOS.add(new SystemConfigDTO(ConfigKeyEnum.TORNA_SERVER_ADDR.getKey(), docSettingDTO.getTornaServerAddr(), "Torna服务器地址"));
|
||||
systemConfigDTOS.add(new SystemConfigDTO(ConfigKeyEnum.OPEN_PROD_URL.getKey(), docSettingDTO.getOpenProdUrl(), "开放平台线上地址"));
|
||||
systemConfigDTOS.add(new SystemConfigDTO(ConfigKeyEnum.OPEN_SANDBOX_URL.getKey(), docSettingDTO.getOpenSandboxUrl(), "开放平台沙箱地址"));
|
||||
sysConfigService.save(systemConfigDTOS);
|
||||
}
|
||||
|
||||
public void addDocApp(String token) {
|
||||
if (docAppMapper.checkExist(DocApp::getToken, token)) {
|
||||
throw new BizException("该应用已添加");
|
||||
}
|
||||
TornaModuleDTO tornaModuleDTO = tornaClient.execute("module.get", null, token, TornaModuleDTO.class);
|
||||
DocApp docApp = new DocApp();
|
||||
docApp.setAppName(tornaModuleDTO.getName());
|
||||
docApp.setToken(token);
|
||||
docAppMapper.saveIgnoreNull(docApp);
|
||||
}
|
||||
|
||||
public List<DocAppDTO> listDocApp() {
|
||||
List<DocApp> docApps = docAppMapper.listAll();
|
||||
return CopyUtil.copyList(docApps, DocAppDTO::new);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@@ -0,0 +1,51 @@
|
||||
package com.gitee.sop.adminbackend.service.doc;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.gitee.httphelper.HttpHelper;
|
||||
import com.gitee.sop.adminbackend.common.enums.ConfigKeyEnum;
|
||||
import com.gitee.sop.adminbackend.common.exception.BizException;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @author 六如
|
||||
*/
|
||||
@Component
|
||||
public class TornaClient {
|
||||
|
||||
public <T> T execute(String name, Object param, String token, Class<T> respClass) {
|
||||
try {
|
||||
HttpHelper httpHelper = HttpHelper.get(getTornaApiUrl())
|
||||
.parameter("name", name)
|
||||
.parameter("access_token", token);
|
||||
if (param != null) {
|
||||
httpHelper.parameter("data", JSON.toJSONString(param));
|
||||
}
|
||||
String body = httpHelper
|
||||
.execute()
|
||||
.asString();
|
||||
JSONObject jsonObject = JSON.parseObject(body);
|
||||
if (!Objects.equals("0", jsonObject.getString("code"))) {
|
||||
throw new BizException(jsonObject.getString("msg"));
|
||||
}
|
||||
JSONObject data = jsonObject.getJSONObject("data");
|
||||
return data.toJavaObject(respClass);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public String getTornaApiUrl() {
|
||||
String value = ConfigKeyEnum.TORNA_SERVER_ADDR.getValue();
|
||||
if (ObjectUtils.isEmpty(value)) {
|
||||
throw new BizException("Torna服务器地址未配置");
|
||||
}
|
||||
return StringUtils.trimTrailingCharacter(value, '/') + "/api";
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,15 @@
|
||||
package com.gitee.sop.adminbackend.service.doc.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author 六如
|
||||
*/
|
||||
@Data
|
||||
public class TornaModuleDTO {
|
||||
|
||||
private Long id;
|
||||
|
||||
private String name;
|
||||
|
||||
}
|
@@ -4,7 +4,7 @@
|
||||
"FixedHeader": true,
|
||||
"HiddenSideBar": false,
|
||||
"MultiTagsCache": false,
|
||||
"KeepAlive": true,
|
||||
"KeepAlive": false,
|
||||
"Locale": "zh",
|
||||
"Layout": "vertical",
|
||||
"Theme": "light",
|
||||
|
32
sop-admin/sop-admin-frontend/src/api/doc.ts
Normal file
32
sop-admin/sop-admin-frontend/src/api/doc.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
import { createUrl, http } from "@/utils/http";
|
||||
import type { Result } from "@/model";
|
||||
|
||||
// 后端请求接口
|
||||
const apiUrl: any = createUrl({
|
||||
addApp: "/doc/app/add",
|
||||
listApp: "/doc/app/list"
|
||||
});
|
||||
|
||||
interface DocApp {
|
||||
id: number;
|
||||
appName: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 接口管理
|
||||
*/
|
||||
export const api: any = {
|
||||
/**
|
||||
* 分页查询
|
||||
*/
|
||||
listApp(): Promise<Result<Array<DocApp>>> {
|
||||
return http.get<Result<Array<DocApp>>, any>(apiUrl.listApp, {});
|
||||
},
|
||||
/**
|
||||
* 新增
|
||||
* @param data 表单内容
|
||||
*/
|
||||
addApp(data: object) {
|
||||
return http.post<Result<any>, any>(apiUrl.addApp, { data });
|
||||
}
|
||||
};
|
@@ -50,7 +50,7 @@
|
||||
height: 100vh;
|
||||
min-height: 100%;
|
||||
margin-left: $sideBarWidth;
|
||||
background: #f0f2f5;
|
||||
//background: #f0f2f5;
|
||||
|
||||
/* main-content 属性动画 */
|
||||
transition: margin-left var(--pure-transition-duration);
|
||||
|
56
sop-admin/sop-admin-frontend/src/views/doc/list/index.ts
Normal file
56
sop-admin/sop-admin-frontend/src/views/doc/list/index.ts
Normal file
@@ -0,0 +1,56 @@
|
||||
import { ref } from "vue";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import { api } from "@/api/doc";
|
||||
|
||||
export const tabsData = ref<Array<any>>([
|
||||
{
|
||||
id: "",
|
||||
appName: ""
|
||||
}
|
||||
]);
|
||||
|
||||
export const activeName = ref(0);
|
||||
|
||||
export const handleClick = data => {
|
||||
const id = data.props.name;
|
||||
loadContent(id);
|
||||
};
|
||||
|
||||
export const handleAddApp = () => {
|
||||
ElMessageBox.prompt("请输入Torna应用token", "添加应用", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
inputPattern: /\w+/,
|
||||
inputErrorMessage: "请输入Torna应用token"
|
||||
})
|
||||
.then(({ value }) => {
|
||||
const data = {
|
||||
tornaToken: value
|
||||
};
|
||||
api.addApp(data).then(() => {
|
||||
ElMessage.success("添加成功");
|
||||
loadTabs(true);
|
||||
});
|
||||
})
|
||||
.catch(() => {});
|
||||
};
|
||||
|
||||
const loadTabs = showLast => {
|
||||
api.listApp().then(resp => {
|
||||
tabsData.value = resp.data;
|
||||
const length = tabsData.value.length;
|
||||
if (length > 0) {
|
||||
const showData = showLast
|
||||
? tabsData.value[length - 1]
|
||||
: tabsData.value[0];
|
||||
activeName.value = showData.id;
|
||||
loadContent(showData.id);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const loadContent = id => {
|
||||
console.log(id);
|
||||
};
|
||||
|
||||
loadTabs(false);
|
@@ -1,6 +1,23 @@
|
||||
<script setup lang="ts">
|
||||
const a = 1;
|
||||
import { activeName, handleClick, handleAddApp, tabsData } from "./index";
|
||||
</script>
|
||||
<template>
|
||||
<el-card>1</el-card>
|
||||
<el-card shadow="never">
|
||||
<el-tabs
|
||||
v-show="tabsData.length > 0"
|
||||
v-model="activeName"
|
||||
type="card"
|
||||
@tab-click="handleClick"
|
||||
>
|
||||
<el-tab-pane
|
||||
v-for="item in tabsData"
|
||||
:key="item.id"
|
||||
:label="item.appName"
|
||||
:name="item.id"
|
||||
/>
|
||||
</el-tabs>
|
||||
</el-card>
|
||||
<div v-show="tabsData.length === 0" style="margin: 20px">
|
||||
<el-button type="primary" @click="handleAddApp">添加应用</el-button>
|
||||
</div>
|
||||
</template>
|
||||
|
Reference in New Issue
Block a user