Merge branch 'develop' into bruceyan/issue#1124

# Conflicts:
#	hippo4j-adapter/hippo4j-adapter-web/src/main/java/cn/hippo4j/adapter/web/AbstractWebThreadPoolService.java
pull/1133/head
yanrongzhen 3 years ago
commit 58663d1a77

@ -1,5 +1,5 @@
## 动态可观测线程池,通过对 JDK 线程池的增强,以及扩展三方框架底层线程池等功能,为业务系统提高线上运行保障能力
## 动态可观测线程池,提高系统运行保障能力
[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0)
@ -115,7 +115,7 @@ For full documentation & more details, visit: [Docs](https://www.hippo4j.cn)
- [[ JavaGuide ]](https://github.com/Snailclimb/JavaGuide):一份涵盖大部分 Java 程序员所需要掌握的核心知识。
- [[ toBeBetterJavaer ]](https://github.com/itwanger/toBeBetterJavaer):一份通俗易懂、风趣幽默的 Java 学习指南。
- [[ Jpom ]](https://gitee.com/dromara/Jpom):简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件。
- [[ CongoMall ]](https://sourl.cn/VERS4y):刚果商城基于 DDD 开发,内置分布式锁、分布式事务、分库分表、消息队列、服务监控等功能
- [[ CongoMall ]](https://magestack.cn):刚果商城,不一样的 C 端商城系统,包含商城核心业务和基础架构两大模块
### 贡献者

@ -116,7 +116,7 @@ const config = {
position: 'left',
},
{
href: 'https://sourl.cn/Fyp7y4',
href: 'https://magestack.cn',
label: '👉 刚果商城',
position: 'left',
},

@ -22,21 +22,19 @@ import cn.hippo4j.common.model.ThreadPoolBaseInfo;
import cn.hippo4j.common.model.ThreadPoolParameter;
import cn.hippo4j.common.model.ThreadPoolParameterInfo;
import cn.hippo4j.common.model.ThreadPoolRunStateInfo;
import io.undertow.Undertow;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.util.ReflectionUtils;
import java.lang.reflect.Field;
import java.util.concurrent.Executor;
/**
* Abstract web thread pool service.
*/
@Slf4j
@Order(Ordered.HIGHEST_PRECEDENCE)
public abstract class AbstractWebThreadPoolService implements WebThreadPoolService, ApplicationRunner {
private final IWebThreadPoolHandlerSupport support;

@ -18,22 +18,28 @@
package cn.hippo4j.adapter.web;
import cn.hippo4j.common.config.ApplicationContextHolder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.web.context.WebServerApplicationContext;
import org.springframework.boot.web.server.WebServer;
import org.springframework.context.ApplicationContext;
import org.springframework.util.ReflectionUtils;
import java.lang.reflect.Field;
import java.util.concurrent.Executor;
/**
* Default WebThreadPoolService abstract class,
* reuses common capabilities for web container operations.
*/
@Slf4j
public abstract class DefaultAbstractWebThreadPoolService extends AbstractWebThreadPoolService {
public DefaultAbstractWebThreadPoolService(IWebThreadPoolHandlerSupport support) {
super(support);
}
private static final String STARTED_FIELD_NAME = "started";
/**
* Get the internal abstract method of the web container thread pool,
* to be implemented by subclasses.

@ -13,7 +13,7 @@
<spring-context.version>5.2.21.RELEASE</spring-context.version>
<spring-web.version>5.2.15.RELEASE</spring-web.version>
<spring-beans.version>5.2.21.RELEASE</spring-beans.version>
<spring-core.version>5.2.22.RELEASE</spring-core.version>
<spring-core.version>5.2.23.RELEASE</spring-core.version>
</properties>
<dependencies>

@ -94,7 +94,7 @@ public class TaskTimeoutNotifyAlarmPlugin extends AbstractTaskTimerPlugin {
*/
@Override
protected void processTaskTime(long taskExecuteTime) {
if (taskExecuteTime <= executeTimeOut) {
if (executeTimeOut <= 0 || taskExecuteTime <= executeTimeOut) {
return;
}
threadPoolCheckAlarm.asyncSendExecuteTimeOutAlarm(threadPoolId, taskExecuteTime, executeTimeOut, threadPoolExecutor);

@ -20,18 +20,25 @@ package cn.hippo4j.config.springboot1x.starter.web;
import cn.hippo4j.adapter.web.AbstractWebThreadPoolService;
import cn.hippo4j.adapter.web.IWebThreadPoolHandlerSupport;
import cn.hippo4j.common.config.ApplicationContextHolder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.embedded.EmbeddedServletContainer;
import org.springframework.boot.context.embedded.EmbeddedWebApplicationContext;
import org.springframework.util.ReflectionUtils;
import java.lang.reflect.Field;
/**
* Abstract class for adapting WebThreadPoolService to Spring 1.x version.
*/
@Slf4j
public abstract class AbstractWebThreadPoolService1x extends AbstractWebThreadPoolService {
public AbstractWebThreadPoolService1x(IWebThreadPoolHandlerSupport support) {
super(support);
}
private static final String STARTED_FIELD_NAME = "started";
/**
* Get the embedded Servlet container from the Spring application context.
*/
@ -46,4 +53,5 @@ public abstract class AbstractWebThreadPoolService1x extends AbstractWebThreadPo
public Integer getPort() {
return getContainer().getPort();
}
}

@ -2,8 +2,8 @@
<el-breadcrumb class="app-breadcrumb" separator="/">
<transition-group name="breadcrumb">
<el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path">
<span v-if="item.redirect==='noRedirect'||index==levelList.length-1" class="no-redirect">{{ item.meta.title }}</span>
<a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a>
<span v-if="item.redirect==='noRedirect'||index==levelList.length-1" class="no-redirect">{{ $t(item.meta.title) }}</span>
<a v-else @click.prevent="handleLink(item)">{{ $t(item.meta.title) }}</a>
</el-breadcrumb-item>
</transition-group>
</el-breadcrumb>

@ -29,7 +29,7 @@
<el-dropdown-item>Profile</el-dropdown-item>
</router-link>-->
<router-link to="/">
<el-dropdown-item>Dashboard</el-dropdown-item>
<el-dropdown-item>{{ this.$t('menu.dashboard') }}</el-dropdown-item>
</router-link>
<el-dropdown-item divided>
<span style="display:block;" @click="logout">{{ $t('system.logOut') }}</span>

@ -3,14 +3,14 @@
<template v-if="hasOneShowingChild(item.children,item) && (!onlyOneChild.children||onlyOneChild.noShowingChildren)&&!item.alwaysShow">
<app-link v-if="onlyOneChild.meta" :to="resolvePath(onlyOneChild.path)">
<el-menu-item :index="resolvePath(onlyOneChild.path)" :class="{'submenu-title-noDropdown':!isNest}">
<item :icon="onlyOneChild.meta.icon||(item.meta&&item.meta.icon)" :title="onlyOneChild.meta.title" />
<item :icon="onlyOneChild.meta.icon||(item.meta&&item.meta.icon)" :title="this.$t(onlyOneChild.meta.title)" />
</el-menu-item>
</app-link>
</template>
<el-submenu v-else ref="subMenu" :index="resolvePath(item.path)" popper-append-to-body>
<template slot="title">
<item v-if="item.meta" :icon="item.meta && item.meta.icon" :title="item.meta.title" />
<item v-if="item.meta" :icon="item.meta && item.meta.icon" :title="this.$t(item.meta.title)" />
</template>
<sidebar-item
v-for="child in item.children"

@ -18,7 +18,11 @@ export default {
selectMessage: 'Please select a {target}',
NoDeletionPermissionTip: 'Contact the administrator to delete it',
emptyWarning: "The '{name}' cannot be empty",
queryFailure: 'The query fails. Please refresh the page'
queryFailure: 'The query fails. Please refresh the page',
updateFailure:'Failed to modify thread pool',
auditApprovedMessage: 'This operation will accept thread pool change requests. Do you want to continue?',
auditRejectionMessage: 'This operation will reject the thread pool change request. Do you want to continue?',
inputMessage: 'Please input {target}',
},
// 公共
@ -40,7 +44,11 @@ export default {
createTime: 'Create Time',
updateTime: 'Update Time',
hint: 'Warning',
info: 'Info'
info: 'Info',
stack: 'Stack',
audit: 'audit',
yes: 'Yes',
no: 'No'
},
// 运行报表
@ -125,5 +133,100 @@ export default {
allowCoreThreadTimeOut: 'Allow Core Thread Time Out',
changeAll: 'Change All',
stackRequestFail: 'The current thread pool has no stack information'
},
//线程池监控
threadPoolMonitor: {
ipPort: 'IP : Port',
ipPortRequired: 'IP : Port(Required)',
noResultsYet: 'No results yet'
},
//框架线程池
frameworkThreadPool : {
threadPoolIDRequired: 'ThreadPool ID(Required)',
threadPoolID: 'ThreadPool ID',
threadPoolType: 'ThreadPool Type'
},
//线程池审核
threadPoolAudit: {
changeType: 'Change Type',
modifiedBy: 'Modified by',
auditStatus: 'Audit Status',
reviewer: 'Reviewer',
submissionTime: 'Submission Time',
auditTime: 'Audit Time',
unaudited: 'Unaudited',
expired: 'Expired',
auditApproved: 'Audit Approved',
auditRejection: 'Audit Rejection',
manage: 'Manage',
instance: 'Instance',
container: 'Container',
framework: 'Framework',
threadPoolManage: 'ThreadPool Manage',
threadPoolInstance: 'ThreadPool Instance',
containerThreadPool: 'Container ThreadPool',
frameworkThreadPool: 'Framework ThreadPool',
},
//通知报警
notifyAlarm: {
platform: 'Platform',
type: 'Type',
enabled: 'Enabled',
interval: 'Interval',
receiver: 'Receiver',
enabling: 'Enabling',
disabling: 'Disabling',
token: 'Token',
receiverTip: 'Use English commas for multiple recipients and separate them (be careful not to have spaces)\n' +
'-Ding: Fill in the phone number\n' +
'-WeChat: Fill in \'userid\' and it will be sent to the user as a @ message, otherwise fill in the name, such as: XiaomaGe\n' +
'-Lark: Fill in with \'ou_\' the unique user ID at the beginning will be sent to the user as a @ message, and filling in the phone number is normal@'
},
//用户权限
userAuthority: {
userName: 'User Name',
role: 'Role',
password: 'Password'
},
//日志管理
logManage: {
bizType: 'Biz Type',
bizID: 'Biz ID',
operator: 'Operator',
logContent: 'Log Content',
},
//菜单
menu: {
dashboard: 'Dashboard',
tenantManage: 'Tenant Manage',
itemManage: 'Item Manage',
dynamicThreadPool: 'Dynamic ThreadPool',
threadPoolManage: 'ThreadPool Manage',
threadPoolInstance: 'ThreadPool Instance',
threadPoolMonitor: 'ThreadPool Monitor',
containerThreadPool: 'Container ThreadPool',
tomcat: 'Tomcat',
undertow: 'Undertow',
jetty : 'Jetty',
frameworkThreadPool: 'Framework ThreadPool',
dubbo: 'Dubbo',
hystrix: 'Hystrix',
rabbitMQ: 'RabbitMQ',
rocketMQ: 'RocketMQ',
alibabaDubbo: 'AlibabaDubbo',
rabbitMQStream: 'RabbitMQStream',
rocketMQStream: 'RocketMQStream',
threadPoolAudit: 'ThreadPool Audit',
notifyAlarm: 'Notify Alarm',
userAuthority: 'User Authority',
logManage: 'Log Manage',
officialWebsite: 'Official Website',
}
}

@ -18,7 +18,11 @@ export default {
selectMessage: '请选择{target}',
NoDeletionPermissionTip: '请联系管理员删除',
emptyWarning: "{name}不允许为空",
queryFailure: '查询失败,请尝试刷新页面'
queryFailure: '查询失败,请尝试刷新页面',
updateFailure:'修改线程池失败',
auditApprovedMessage: '此操作将接受线程池变更申请, 是否继续?',
auditRejectionMessage: '此操作将拒绝线程池变更申请, 是否继续?',
inputMessage: '请输入{target}',
},
// 公共
@ -40,7 +44,11 @@ export default {
createTime: '创建时间',
updateTime: '修改时间',
hint: '提示',
info: '详情'
info: '详情',
stack: '堆栈',
audit: '审核',
yes: '是',
no: '否'
},
// 运行报表
@ -95,7 +103,6 @@ export default {
threadsNumErrorTip: '最大线程必须大于等于核心线程'
},
// 线程池实例
threadPoolInstance: {
instanceID: '实例标识',
@ -126,5 +133,100 @@ export default {
allowCoreThreadTimeOut: '线程超时',
changeAll: '全部修改',
stackRequestFail: '当前线程池暂无堆栈信息'
},
//线程池监控
threadPoolMonitor: {
ipPort: 'IP : Port',
ipPortRequired: 'IP : Port必填',
noResultsYet: '暂无结果'
},
//框架线程池
frameworkThreadPool: {
threadPoolIDRequired: '线程池标识(必填)',
threadPoolID: '线程池标识',
threadPoolType: '线程池类型'
},
//线程池审核
threadPoolAudit: {
changeType: '变更类型',
modifiedBy: '修改人',
auditStatus: '审核状态',
reviewer: '审核人',
submissionTime: '提交时间',
auditTime: '审核时间',
unaudited: '待审核',
expired: '失效',
auditApproved: '审核通过',
auditRejection: '审核拒绝',
manage: '管理',
instance: '实例',
container: '容器',
framework: '框架',
threadPoolManage: '线程池管理',
threadPoolInstance: '线程池实例',
containerThreadPool: '容器线程池',
frameworkThreadPool: '框架线程池',
},
//通知报警
notifyAlarm: {
platform: '通知平台',
type: '通知类型',
enabled: '是否启用',
interval: '通知间隔',
receiver: '接收者',
enabling: '启用',
disabling: '禁用',
token: 'Token',
receiverTip: '多个接收者使用英文逗号 , 分割 (注意不要有空格)\n' +
'- 钉钉:填写手机号\n' +
'- 企微填写user_id会以@的消息发给用户,否则填写姓名,如:小马哥\n' +
'- 飞书填写ou_开头用户唯一标识会以@的消息发给用户,填写手机号则是普通的@"'
},
//用户权限
userAuthority: {
userName: '用户名',
role: '角色',
password: '密码'
},
//日志管理
logManage: {
bizType: '业务类型',
bizID: '业务标识',
operator: '操作人',
logContent: '日志内容',
},
//菜单
menu: {
dashboard: '运行报表',
tenantManage: '租户管理',
itemManage: '项目管理',
dynamicThreadPool: '动态线程池',
threadPoolManage: '线程池管理',
threadPoolInstance: '线程池实例',
threadPoolMonitor: '线程池监控',
containerThreadPool: '容器线程池',
tomcat: 'Tomcat',
undertow: 'Undertow',
jetty : 'Jetty',
frameworkThreadPool: '框架线程池',
dubbo: 'Dubbo',
hystrix: 'Hystrix',
rabbitMQ: 'rabbitMQ',
rocketMQ: 'RocketMQ',
alibabaDubbo: 'AlibabaDubbo',
rabbitMQStream: 'RabbitMQStream',
rocketMQStream: 'RocketMQStream',
threadPoolAudit: '线程池审核',
notifyAlarm: '通知报警',
userAuthority: '用户权限',
logManage: '日志管理',
officialWebsite: '官网外链',
}
}

@ -5,6 +5,7 @@ import NProgress from 'nprogress'; // progress bar
import 'nprogress/nprogress.css'; // progress bar style
import { getToken } from '@/utils/auth'; // get token from cookie
import getPageTitle from '@/utils/get-page-title';
import i18n from "@/locale";
NProgress.configure({ showSpinner: false }); // NProgress Configuration
@ -15,7 +16,7 @@ router.beforeEach(async (to, from, next) => {
NProgress.start();
// set page title
document.title = getPageTitle(to.meta.title);
document.title = getPageTitle(i18n.t(to.meta.title));
// determine whether the user has logged in
const hasToken = getToken();

@ -47,7 +47,7 @@ export const constantRoutes = [
path: 'dashboard',
component: () => import('@/views/dashboard/admin/index'),
name: 'Dashboard',
meta: { title: '运行报表', icon: 'dashboard2', affix: true },
meta: { title: 'menu.dashboard', icon: 'dashboard2', affix: true },
},
],
},
@ -107,13 +107,13 @@ export const asyncRoutes = [
component: Layout,
redirect: '/hippo4j/tenantList',
name: 'tenant',
meta: { title: '租户管理', icon: 'lessee' },
meta: { title: 'menu.tenantManage', icon: 'lessee' },
children: [
{
path: 'index',
name: 'index',
component: () => import('@/views/hippo4j/tenant/index'),
meta: { title: '租户管理', icon: 'lessee' },
meta: { title: 'menu.tenantManage', icon: 'lessee' },
},
],
},
@ -122,13 +122,13 @@ export const asyncRoutes = [
component: Layout,
redirect: '/hippo4j/itemList',
name: 'item',
meta: { title: '项目管理', icon: 'item' },
meta: { title: 'menu.itemManage', icon: 'item' },
children: [
{
path: 'index',
name: 'index',
component: () => import('@/views/hippo4j/item/index'),
meta: { title: '项目管理', icon: 'item' },
meta: { title: 'menu.itemManage', icon: 'item' },
},
],
},
@ -138,25 +138,25 @@ export const asyncRoutes = [
component: Layout,
redirect: '/hippo4j/dynamic/thread-pool',
name: 'thread-pool',
meta: { title: '动态线程池', icon: 'pool' },
meta: { title: 'menu.dynamicThreadPool', icon: 'pool' },
children: [
{
path: 'index',
name: 'index',
component: () => import('@/views/hippo4j/threadpool/index'),
meta: { title: '线程池管理' },
meta: { title: 'menu.threadPoolManage' },
},
{
path: 'instance',
name: 'instance',
component: () => import('@/views/hippo4j/instance/index'),
meta: { title: '线程池实例' },
meta: { title: 'menu.threadPoolInstance' },
},
{
path: 'monitor',
name: 'monitor',
component: () => import('@/views/hippo4j/monitor/index'),
meta: { title: '线程池监控' },
meta: { title: 'menu.threadPoolMonitor' },
},
],
},
@ -165,25 +165,25 @@ export const asyncRoutes = [
component: Layout,
redirect: '/hippo4j/server',
name: 'server-thread-pool',
meta: { title: '容器线程池', icon: 'vessel' },
meta: { title: 'menu.containerThreadPool', icon: 'vessel' },
children: [
{
path: 'tomcat',
name: 'tomcat',
component: () => import('@/views/hippo4j/server/tomcat/index'),
meta: { title: 'Tomcat' },
meta: { title: 'menu.tomcat' },
},
{
path: 'undertow',
name: 'undertow',
component: () => import('@/views/hippo4j/server/undertow/index'),
meta: { title: 'Undertow' },
meta: { title: 'menu.undertow' },
},
{
path: 'jetty',
name: 'jetty',
component: () => import('@/views/hippo4j/server/jetty/index'),
meta: { title: 'Jetty' },
meta: { title: 'menu.jetty' },
},
],
},
@ -192,49 +192,49 @@ export const asyncRoutes = [
component: Layout,
redirect: '/hippo4j/other',
name: 'other-thread-pool',
meta: { title: '框架线程池', icon: 'other' },
meta: { title: 'menu.frameworkThreadPool', icon: 'other' },
children: [
{
path: 'dubbo',
name: 'dubbo',
component: () => import('@/views/hippo4j/other/dubbo/index'),
meta: { title: 'Dubbo' },
meta: { title: 'menu.dubbo' },
},
{
path: 'hystrix',
name: 'hystrix',
component: () => import('@/views/hippo4j/other/hystrix/index'),
meta: { title: 'Hystrix' },
meta: { title: 'menu.hystrix' },
},
{
path: 'rabbitmq',
name: 'rabbitmq',
component: () => import('@/views/hippo4j/other/rabbitmq/index'),
meta: { title: 'RabbitMQ' },
meta: { title: 'menu.rabbitMQ' },
},
{
path: 'rocketmq',
name: 'rocketmq',
component: () => import('@/views/hippo4j/other/rocketmq/index'),
meta: { title: 'RocketMQ' },
meta: { title: 'menu.rocketMQ' },
},
{
path: 'alibaba-dubbo',
name: 'alibaba-dubbo',
component: () => import('@/views/hippo4j/other/alibaba-dubbo/index'),
meta: { title: 'AlibabaDubbo' },
meta: { title: 'menu.alibabaDubbo' },
},
{
path: 'rabbitmq-stream',
name: 'rabbitmq-stream',
component: () => import('@/views/hippo4j/other/rabbitmq-stream/index'),
meta: { title: 'RabbitMQStream' },
meta: { title: 'menu.rabbitMQStream' },
},
{
path: 'rocketmq-stream',
name: 'rocketmq-stream',
component: () => import('@/views/hippo4j/other/rocketmq-stream/index'),
meta: { title: 'RocketMQStream' },
meta: { title: 'menu.rocketMQStream' },
},
],
},
@ -243,13 +243,13 @@ export const asyncRoutes = [
component: Layout,
redirect: '/hippo4j/verifyList',
name: 'config-modification-verify',
meta: { title: '线程池审核', icon: 'audit', roles: ['ROLE_MANAGE', 'ROLE_ADMIN'] },
meta: { title: 'menu.threadPoolAudit', icon: 'audit', roles: ['ROLE_MANAGE', 'ROLE_ADMIN'] },
children: [
{
path: 'index',
name: 'index',
component: () => import('@/views/hippo4j/verify/index'),
meta: { title: '线程池审核', icon: 'audit' },
meta: { title: 'menu.threadPoolAudit', icon: 'audit' },
},
],
},
@ -258,13 +258,13 @@ export const asyncRoutes = [
component: Layout,
redirect: '/hippo4j/notifyList',
name: 'notify',
meta: { title: '通知报警', icon: 'notify' },
meta: { title: 'menu.notifyAlarm', icon: 'notify' },
children: [
{
path: 'index',
name: 'index',
component: () => import('@/views/hippo4j/notify/index'),
meta: { title: '通知报警', icon: 'notify' },
meta: { title: 'menu.notifyAlarm', icon: 'notify' },
},
],
},
@ -273,13 +273,13 @@ export const asyncRoutes = [
component: Layout,
redirect: '/hippo4j/userList',
name: 'user',
meta: { title: '用户权限', icon: 'user', roles: ['ROLE_ADMIN'] },
meta: { title: 'menu.userAuthority', icon: 'user', roles: ['ROLE_ADMIN'] },
children: [
{
path: 'index',
name: 'index',
component: () => import('@/views/hippo4j/user/index'),
meta: { title: '用户权限', icon: 'user' },
meta: { title: 'menu.userAuthority', icon: 'user' },
},
],
},
@ -288,13 +288,13 @@ export const asyncRoutes = [
component: Layout,
redirect: '/hippo4j/logList',
name: 'log',
meta: { title: '日志管理', icon: 'log' },
meta: { title: 'menu.logManage', icon: 'log' },
children: [
{
path: 'index',
name: 'index',
component: () => import('@/views/hippo4j/log/index'),
meta: { title: '日志管理', icon: 'log' },
meta: { title: 'menu.logManage', icon: 'log' },
},
],
},
@ -305,7 +305,7 @@ export const asyncRoutes = [
children: [
{
path: 'https://hippo4j.cn',
meta: { title: '官网外链', icon: 'link' },
meta: { title: 'menu.officialWebsite', icon: 'link' },
},
],
},

@ -358,7 +358,7 @@
v-model="temp.executeTimeOut"
:placeholder="$t('threadPool.executionTimeoutUnit')"
controls-position="right"
:min="0"
:min="-1"
:max="999999"
/>
</el-form-item>

@ -4,21 +4,21 @@
<el-input
v-model="listQuery.category"
clearable
placeholder="业务类型"
:placeholder="$t('logManage.bizType')"
style="width: 200px"
class="filter-item"
/>
<el-input
v-model="listQuery.bizNo"
clearable
placeholder="业务标识"
:placeholder="$t('logManage.bizID')"
style="width: 200px"
class="filter-item"
/>
<el-input
v-model="listQuery.operator"
clearable
placeholder="操作人"
:placeholder="$t('logManage.operator')"
style="width: 200px"
class="filter-item"
/>
@ -29,7 +29,7 @@
icon="el-icon-search"
@click="fetchData"
>
搜索
{{ $t('common.query') }}
</el-button>
</div>
<el-table
@ -40,33 +40,33 @@
fit
highlight-current-row
>
<el-table-column label="序号" fixed width="95">
<el-table-column :label="$t('common.num')" fixed width="95">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="业务类型" width="200">
<el-table-column :label="$t('logManage.bizType')" width="200">
<template slot-scope="scope">{{ scope.row.category }}</template>
</el-table-column>
<el-table-column label="业务标识" width="380">
<el-table-column :label="$t('logManage.bizID')" width="380">
<template slot-scope="scope">{{ scope.row.bizNo }}</template>
</el-table-column>
<el-table-column label="日志内容" width="500">
<el-table-column :label="$t('logManage.logContent')" width="500">
<template slot-scope="scope">{{ scope.row.action | ellipsis }}</template>
</el-table-column>
<el-table-column label="操作人" width="140">
<el-table-column :label="$t('logManage.operator')" width="140">
<template slot-scope="scope">{{ scope.row.operator }} </template>
</el-table-column>
<el-table-column label="创建时间" width="160">
<el-table-column :label="$t('common.createTime')" width="160">
<template slot-scope="scope">{{ scope.row.createTime }}</template>
</el-table-column>
<el-table-column
label="操作"
:label="$t('common.operation')"
fixed="right"
width="90"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="{ row }">
<el-button type="text" size="small" @click="handleUpdate(row)"> </el-button>
<el-button type="text" size="small" @click="handleUpdate(row)"> {{ $t('common.detail') }} </el-button>
</template>
</el-table-column>
</el-table>
@ -80,45 +80,45 @@
<el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" width="800px">
<el-form ref="dataForm" :model="temp" label-position="left" label-width="100px">
<el-form-item label="业务类型" prop="category">
<el-form-item :label="$t('logManage.bizType')" prop="category">
<el-input
v-model="temp.category"
:disabled="true"
placeholder="业务类型"
:placeholder="$t('logManage.bizType')"
style="width: 40%"
/>
</el-form-item>
<el-form-item label="业务标识" prop="bizNo">
<el-form-item :label="$t('logManage.bizID')" prop="bizNo">
<el-input
v-model="temp.bizNo"
:disabled="true"
placeholder="业务标识"
:placeholder="$t('logManage.bizID')"
style="width: 40%"
/>
</el-form-item>
<el-form-item label="操作人" prop="operator">
<el-form-item :label="$t('logManage.operator')" prop="operator">
<el-input
v-model="temp.operator"
:disabled="true"
placeholder="操作人"
:placeholder="$t('logManage.operator')"
style="width: 40%"
/>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-form-item :label="$t('common.createTime')" prop="createTime">
<el-input
v-model="temp.createTime"
:disabled="true"
placeholder="创建时间"
:placeholder="$t('common.createTime')"
style="width: 40%"
/>
</el-form-item>
<el-form-item label="日志内容" prop="action">
<el-form-item :label="$t('logManage.logContent')" prop="action">
<el-input
v-model="temp.action"
:disabled="true"
:autosize="{ minRows: 4, maxRows: 10 }"
type="textarea"
placeholder="日志内容"
:placeholder="$t('logManage.logContent')"
style="width: 60%"
/>
</el-form-item>
@ -227,8 +227,8 @@ export default {
this.fetchData();
this.dialogFormVisible = false;
this.$notify({
title: 'Success',
message: 'Created Successfully',
title: this.$t('message.success'),
message: this.$t('message.createdSuccess'),
type: 'success',
duration: 2000,
});
@ -252,8 +252,8 @@ export default {
this.fetchData();
this.dialogFormVisible = false;
this.$notify({
title: 'Success',
message: 'Update Successfully',
title: this.$t('message.success'),
message: this.$t('message.updateSuccess'),
type: 'success',
duration: 2000,
});
@ -266,8 +266,8 @@ export default {
jobProjectApi.deleted(row.tenantId).then((response) => {
this.fetchData();
this.$notify({
title: 'Success',
message: 'Delete Successfully',
title: this.$t('message.success'),
message: this.$t('message.deleteSuccess'),
type: 'success',
duration: 2000,
});

@ -3,7 +3,7 @@
<div class="filter-container">
<el-select
v-model="listQuery.tenantId"
placeholder="租户(必填)"
:placeholder="$t('tenantManage.tenantRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -18,7 +18,7 @@
</el-select>
<el-select
v-model="listQuery.itemId"
placeholder="项目(必填)"
:placeholder="$t('projectManage.itemRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -33,7 +33,7 @@
</el-select>
<el-select
v-model="listQuery.tpId"
placeholder="线程池(必填)"
:placeholder="$t('threadPool.threadPoolRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -48,7 +48,7 @@
</el-select>
<el-select
v-model="listQuery.identify"
placeholder="IP : Port必填"
:placeholder="$t('threadPoolMonitor.ipPortRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -69,7 +69,7 @@
icon="el-icon-search"
@click="fetchData"
>
搜索
{{ $t('common.query') }}
</el-button>
<el-button
v-waves
@ -79,10 +79,10 @@
icon="el-icon-refresh"
@click="refreshData"
>
重置
{{ $t('common.reset') }}
</el-button>
</div>
<el-empty v-if="!temp.coreSize" description="暂无结果" />
<el-empty v-if="!temp.coreSize" :description="$t('threadPoolMonitor.noResultsYet')" />
<section v-else>
<!-- <el-card shadow="hover">
<el-descriptions :column="3" border>
@ -267,19 +267,19 @@ export default {
methods: {
fetchData() {
if (!this.listQuery.tenantId) {
this.$message.warning('租户不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('tenantManage.tenant') }));
return;
}
if (!this.listQuery.itemId) {
this.$message.warning('项目不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('projectManage.item') }));
return;
}
if (!this.listQuery.tpId) {
this.$message.warning('线程池不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('threadPool.threadPool') }));
return;
}
if (!this.listQuery.identify) {
this.$message.warning('IP : PORT 不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('threadPoolMonitor.ipPort') }));
return;
}

@ -3,7 +3,7 @@
<div class="filter-container">
<el-select
v-model="listQuery.tenantId"
placeholder="租户"
:placeholder="$t('tenantManage.tenant')"
style="width: 220px"
filterable
class="filter-item"
@ -18,7 +18,7 @@
</el-select>
<el-select
v-model="listQuery.itemId"
placeholder="项目"
:placeholder="$t('projectManage.item')"
style="width: 220px"
filterable
class="filter-item"
@ -33,7 +33,7 @@
</el-select>
<el-select
v-model="listQuery.tpId"
placeholder="线程池"
:placeholder="$t('threadPool.threadPool')"
style="width: 220px"
filterable
class="filter-item"
@ -52,7 +52,7 @@
icon="el-icon-search"
@click="fetchData"
>
搜索
{{ $t('common.query') }}
</el-button>
<el-button
class="filter-item"
@ -61,7 +61,7 @@
icon="el-icon-edit"
@click="handleCreate"
>
添加
{{ $t('common.insert') }}
</el-button>
</div>
<el-table
@ -72,29 +72,29 @@
border
highlight-current-row
>
<el-table-column label="序号" fixed width="95">
<el-table-column fixed :label="$t('common.num')" width="95">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="租户" width="150">
<el-table-column :label="$t('tenantManage.tenant')" width="150">
<template slot-scope="scope">{{ scope.row.tenantId }}</template>
</el-table-column>
<el-table-column label="项目" width="260">
<el-table-column :label="$t('projectManage.item')" width="260">
<template slot-scope="scope">{{ scope.row.itemId }}</template>
</el-table-column>
<el-table-column label="线程池" width="260">
<el-table-column :label="$t('threadPool.threadPool')" width="260">
<template slot-scope="scope">{{ scope.row.tpId }}</template>
</el-table-column>
<el-table-column label="通知平台" width="150">
<el-table-column :label="$t('notifyAlarm.platform')" width="150">
<template slot-scope="scope">
<el-tag> {{ scope.row.platform }}</el-tag>
</template>
</el-table-column>
<el-table-column label="通知类型" width="150">
<el-table-column :label="$t('notifyAlarm.type')" width="150">
<template slot-scope="scope">
<el-tag type="success">{{ scope.row.type }}</el-tag>
</template>
</el-table-column>
<el-table-column label="是否启用" width="100">
<el-table-column :label="$t('notifyAlarm.enabled')" width="100">
<template slot-scope="scope">
<el-tooltip :content="'Switch value: ' + scope.row.enable" placement="top">
<el-switch
@ -109,34 +109,34 @@
</el-tooltip>
</template>
</el-table-column>
<el-table-column label="通知间隔" width="150">
<el-table-column :label="$t('notifyAlarm.interval')" width="150">
<template slot-scope="scope">{{ scope.row.interval | intervals }}</template>
</el-table-column>
<el-table-column label="接收者" width="200">
<el-table-column :label="$t('notifyAlarm.receiver')" width="200">
<template slot-scope="scope">{{ scope.row.receives | ellipsis }}</template>
</el-table-column>
<el-table-column label="创建时间" width="180">
<el-table-column :label="$t('common.createTime')" width="180">
<template slot-scope="scope">{{ scope.row.gmtCreate }}</template>
</el-table-column>
<el-table-column label="修改时间" width="180">
<el-table-column :label="$t('common.updateTime')" width="180">
<template slot-scope="scope">{{ scope.row.gmtModified }}</template>
</el-table-column>
<el-table-column
label="操作"
:label="$t('common.operation')"
fixed="right"
width="90"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="{ row }">
<el-button type="text" size="small" @click="handleUpdate(row)"> </el-button>
<el-button type="text" size="small" @click="handleUpdate(row)"> {{$t('common.edit')}} </el-button>
<el-button
v-if="row.status !== 'deleted'"
size="small"
type="text"
@click="handleDelete(row)"
>
删除
{{$t('common.delete')}}
</el-button>
</template>
</el-table-column>
@ -157,10 +157,10 @@
:model="temp"
label-width="80px"
>
<el-form-item v-if="isEdit" label="租户" prop="tenantId">
<el-form-item v-if="isEdit" :label="$t('tenantManage.tenant')" prop="tenantId">
<el-select
v-model="temp.tenantId"
placeholder="请选择租户"
:placeholder="$t('message.selectMessage', { target: $t('tenantManage.tenant') })"
style="display: block"
:disabled="dialogStatus === 'create' ? false : true"
@change="tenantTempSelectList()"
@ -173,10 +173,10 @@
/>
</el-select>
</el-form-item>
<el-form-item v-if="isEdit" label="项目" prop="itemId">
<el-form-item v-if="isEdit" :label="$t('projectManage.item')" prop="itemId">
<el-select
v-model="temp.itemId"
placeholder="请选择项目"
:placeholder="$t('message.selectMessage', { target: $t('projectManage.item') })"
style="display: block"
:disabled="dialogStatus === 'create' ? false : true"
@change="itemTempSelectList()"
@ -189,10 +189,10 @@
/>
</el-select>
</el-form-item>
<el-form-item v-if="isEdit" label="线程池" prop="tpId">
<el-form-item v-if="isEdit" :label="$t('threadPool.threadPool')" prop="tpId">
<el-select
v-model="temp.tpId"
placeholder="线程池"
:placeholder="$t('threadPool.threadPool')"
style="display: block"
:disabled="dialogStatus === 'create' ? false : true"
>
@ -205,7 +205,7 @@
</el-select>
</el-form-item>
<el-form-item label="通知平台" prop="platform">
<el-form-item :label="$t('notifyAlarm.platform')" prop="platform">
<template>
<div>
<el-radio-group v-model="temp.platform">
@ -216,18 +216,18 @@
</div>
</template>
</el-form-item>
<el-form-item label="是否启用" prop="enable">
<el-form-item :label="$t('notifyAlarm.enabled')" prop="enable">
<template>
<div>
<el-radio-group v-model="temp.enable">
<el-radio-button :label="1">启用</el-radio-button>
<el-radio-button :label="0">停用</el-radio-button>
<el-radio-button :label="1">{{ $t('notifyAlarm.enabling') }}</el-radio-button>
<el-radio-button :label="0">{{ $t('notifyAlarm.disabling') }}</el-radio-button>
</el-radio-group>
</div>
</template>
</el-form-item>
<el-form-item label="通知类型" prop="configType">
<el-form-item :label="$t('notifyAlarm.type')" prop="configType">
<!-- <el-tooltip :content="123">
<i class="el-icon-question"/>
</el-tooltip>-->
@ -248,10 +248,10 @@
</div>
</template>
</el-form-item>
<el-form-item label="报警间隔" prop="interval">
<el-form-item :label="$t('notifyAlarm.interval')" prop="interval">
<el-input-number
v-model="temp.interval"
placeholder="报警间隔 / Min"
:placeholder= "$t('notifyAlarm.interval') + ' / Min'"
controls-position="right"
:min="0"
:max="999999"
@ -259,31 +259,28 @@
/>
</el-form-item>
<el-form-item label="Token" prop="secretKey">
<el-form-item :label="$t('notifyAlarm.token')" prop="secretKey">
<el-input
v-model="temp.secretKey"
type="textarea"
placeholder="请输入 Token"
:placeholder="$t('message.inputMessage', { target: $t('notifyAlarm.token') })"
show-word-limit
/>
</el-form-item>
<el-form-item label="接收者" prop="receives">
<el-form-item :label="$t('notifyAlarm.receiver')" prop="receives">
<el-input
v-model="temp.receives"
type="textarea"
:autosize="{ minRows: 4, maxRows: 4 }"
placeholder="多个接收者使用英文逗号 , 分割 (注意不要有空格)
- 钉钉填写手机号
- 企微填写user_id会以@的消息发给用户否则填写姓名小马哥
- 飞书填写ou_开头用户唯一标识会以@的消息发给用户填写手机号则是普通的@"
:placeholder="$t('notifyAlarm.receiverTip')"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cleanForm()"> </el-button>
<el-button @click="cleanForm()"> {{ $t('common.cancel') }} </el-button>
<el-button type="primary" @click="dialogStatus === 'create' ? createData() : updateData()">
确认
{{ $t('common.confirm') }}
</el-button>
</div>
</el-dialog>
@ -293,7 +290,7 @@
<el-table-column prop="pv" label="Pv" />
</el-table>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="dialogPvVisible = false">Confirm</el-button>
<el-button type="primary" @click="dialogPvVisible = false">{{ $t('common.confirm') }}</el-button>
</span>
</el-dialog>
</div>
@ -380,14 +377,14 @@ export default {
create: 'Create',
},
rules: {
tenantId: [{ required: true, message: 'this is required', trigger: 'blur' }],
itemId: [{ required: true, message: 'this is required', trigger: 'blur' }],
tpId: [{ required: true, message: 'this is required', trigger: 'blur' }],
receives: [{ required: true, message: 'this is required', trigger: 'blur' }],
secretKey: [{ required: true, message: 'this is required', trigger: 'blur' }],
platform: [{ required: true, message: 'this is required', trigger: 'blur' }],
configType: [{ required: true, message: 'this is required', trigger: 'blur' }],
enable: [{ required: true, message: 'this is required', trigger: 'blur' }],
tenantId: [{ required: true, message: this.$t('message.requiredError'), trigger: 'blur' }],
itemId: [{ required: true, message: this.$t('message.requiredError'), trigger: 'blur' }],
tpId: [{ required: true, message: this.$t('message.requiredError'), trigger: 'blur' }],
receives: [{ required: true, message: this.$t('message.requiredError'), trigger: 'blur' }],
secretKey: [{ required: true, message: this.$t('message.requiredError'), trigger: 'blur' }],
platform: [{ required: true, message: this.$t('message.requiredError'), trigger: 'blur' }],
configType: [{ required: true, message: this.$t('message.requiredError'), trigger: 'blur' }],
enable: [{ required: true, message: this.$t('message.requiredError'), trigger: 'blur' }],
},
temp: {
id: undefined,
@ -479,8 +476,8 @@ export default {
this.fetchData();
this.dialogFormVisible = false;
this.$notify({
title: 'Success',
message: 'Created Successfully',
title: this.$t('message.success'),
message: this.$t('message.createdSuccess'),
type: 'success',
duration: 2000,
});
@ -509,8 +506,8 @@ export default {
this.fetchData();
this.dialogFormVisible = false;
this.$notify({
title: 'Success',
message: 'Update Successfully',
title: this.$t('message.success'),
message: this.$t('message.updateSuccess'),
type: 'success',
duration: 2000,
});
@ -519,9 +516,9 @@ export default {
});
},
openDelConfirm(name) {
return this.$confirm(`此操作将删除 ${name}, 是否继续?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
return this.$confirm(this.$t('message.deleteMessage', { name }), this.$t('common.hint'), {
confirmButtonText: this.$t('common.ok'),
cancelButtonText: this.$t('common.cancel'),
type: 'warning',
});
},
@ -531,8 +528,8 @@ export default {
notifyApi.deleted(row).then((response) => {
this.fetchData();
this.$notify({
title: 'Success',
message: 'Delete Successfully',
title: this.$t('message.success'),
message: this.$t('message.deleteSuccess'),
type: 'success',
duration: 2000,
});
@ -543,8 +540,8 @@ export default {
notifyApi.enable(row).then((response) => {
this.fetchData();
this.$notify({
title: 'Success',
message: 'Delete Successfully',
title: this.$t('message.success'),
message: this.$t('message.updateSuccess'),
type: 'success',
duration: 2000,
});
@ -557,7 +554,7 @@ export default {
this.rules['interval'] = [];
}
if (configType != null && configType != undefined && alarmType === true) {
this.rules['interval'] = [{ required: true, message: 'this is required', trigger: 'blur' }];
this.rules['interval'] = [{ required: true, message: this.$t('message.requiredError'), trigger: 'blur' }];
}
},

@ -3,7 +3,7 @@
<div class="filter-container">
<el-select
v-model="listQuery.tenantId"
placeholder="租户(必填)"
:placeholder="$t('tenantManage.tenantRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -18,7 +18,7 @@
</el-select>
<el-select
v-model="listQuery.itemId"
placeholder="项目(必填)"
:placeholder="$t('projectManage.itemRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -33,7 +33,7 @@
</el-select>
<el-select
v-model="listQuery.threadPoolKey"
placeholder="线程池标识(必填)"
:placeholder="$t('frameworkThreadPool.threadPoolIDRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -52,7 +52,7 @@
icon="el-icon-search"
@click="fetchData"
>
搜索
{{ $t('common.query') }}
</el-button>
<el-button
v-waves
@ -62,7 +62,7 @@
icon="el-icon-refresh"
@click="refreshData"
>
重置
{{ $t('common.reset') }}
</el-button>
</div>
<el-table
@ -74,32 +74,32 @@
max-height="714"
highlight-current-row
>
<el-table-column label="序号" width="95">
<el-table-column :label="$t('common.num')" fixed width="95">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="实例标识" width="260">
<el-table-column :label="$t('threadPoolInstance.instanceID')" width="260">
<template slot-scope="scope">
<el-link type="primary" :underline="false">{{ scope.row.identify }}</el-link>
</template>
</el-table-column>
<el-table-column label="Active">
<el-table-column :label="$t('threadPoolInstance.active')" width="120">
<template slot-scope="scope">
<el-tag :type="scope.row.active | statusFilter">
{{ scope.row.active }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="线程池标识">
<el-table-column :label="$t('frameworkThreadPool.threadPoolID')">
<template slot-scope="scope">
{{ scope.row.threadPoolKey }}
</template>
</el-table-column>
<el-table-column label="核心线程">
<el-table-column :label="$t('threadPool.coreSize')">
<template slot-scope="scope">
<el-link type="success" :underline="false">{{ scope.row.coreSize }}</el-link>
</template>
</el-table-column>
<el-table-column label="最大线程">
<el-table-column :label="$t('threadPool.maximumSize')" width="120">
<template slot-scope="scope">
<el-link type="danger" :underline="false">{{ scope.row.maximumSize }}</el-link>
</template>
@ -110,7 +110,7 @@
<el-table-column label="队列容量" >
<template slot-scope="scope">{{ scope.row.queueCapacity }}</template>
</el-table-column>-->
<el-table-column label="操作" width="180" class-name="small-padding fixed-width">
<el-table-column :label="$t('common.operation')" width="180" class-name="small-padding fixed-width">
<template slot-scope="{ row }">
<!--<el-dropdown trigger="click">
<span class="el-dropdown-link">
@ -121,7 +121,7 @@
<el-dropdown-item @click.native="handleUpdate(row)">编辑</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>-->
<el-button type="text" size="small" @click="handleUpdate(row)"> </el-button>
<el-button type="text" size="small" @click="handleUpdate(row)"> {{ $t('common.edit') }} </el-button>
</template>
</el-table-column>
</el-table>
@ -134,7 +134,7 @@
label-position="left"
label-width="110px"
>
<el-form-item label="核心线程" prop="coreSize">
<el-form-item :label="$t('threadPool.coreSize')" prop="coreSize">
<template>
<el-input-number
v-model="temp.coreSize"
@ -144,7 +144,7 @@
></el-input-number>
</template>
</el-form-item>
<el-form-item label="最大线程" prop="maximumSize">
<el-form-item :label="$t('threadPool.maximumSize')" prop="maximumSize">
<template>
<el-input-number
v-model="temp.maximumSize"
@ -154,13 +154,13 @@
></el-input-number>
</template>
</el-form-item>
<el-form-item label="全部修改" prop="allUpdate">
<el-form-item :label="$t('threadPoolInstance.changeAll')" prop="allUpdate">
<el-switch v-model="temp.allUpdate"></el-switch>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> 取消 </el-button>
<el-button type="primary" @click="updateData()"> </el-button>
<el-button @click="dialogFormVisible = false"> {{ $t('common.cancel') }} </el-button>
<el-button type="primary" @click="updateData()"> {{$t('common.confirm')}} </el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="dialogPluginVisible" title="Reading statistics">
@ -283,19 +283,19 @@ export default {
},
fetchData() {
if (!this.listQuery.mark) {
this.$message.warning('线程池类型不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this. $t('frameworkThreadPool.threadPoolType') }));
return;
}
if (!this.listQuery.tenantId) {
this.$message.warning('租户不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('tenantManage.tenant') }));
return;
}
if (!this.listQuery.itemId) {
this.$message.warning('项目不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('projectManage.item') }));
return;
}
if (!this.listQuery.threadPoolKey) {
this.$message.warning('线程池标识不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this. $t('frameworkThreadPool.threadPoolID') }));
return;
}
this.listLoading = true;
@ -333,7 +333,7 @@ export default {
if (valid) {
if (parseInt(this.temp.maximumSize) < parseInt(this.temp.coreSize)) {
this.$message({
message: '最大线程必须大于等于核心线程',
message: this.$t('threadPool.threadsNumErrorTip'),
type: 'warning',
});
return;
@ -385,13 +385,13 @@ export default {
})
.catch((error) => {
console.log(error);
this.$message.error('修改线程池失败');
this.$message.error(this.$t('message.updateFailure'));
});
},
openDelConfirm(name) {
return this.$confirm(`此操作将删除 ${name}, 是否继续?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
return this.$confirm(this.$t('message.deleteMessage', { name }), this.$t('common.hint'), {
confirmButtonText: this.$t('common.ok'),
cancelButtonText: this.$t('common.cancel'),
type: 'warning',
});
},
@ -497,7 +497,7 @@ export default {
})
.catch((error) => {
console.log(error);
this.$message.error('查询失败,请尝试刷新页面');
this.$message.error(this.$t('message.queryFailure'));
});
},
},

@ -3,7 +3,7 @@
<div class="filter-container">
<el-select
v-model="listQuery.tenantId"
placeholder="租户(必填)"
:placeholder="$t('tenantManage.tenantRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -18,7 +18,7 @@
</el-select>
<el-select
v-model="listQuery.itemId"
placeholder="项目(必填)"
:placeholder="$t('projectManage.itemRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -33,7 +33,7 @@
</el-select>
<el-select
v-model="listQuery.threadPoolKey"
placeholder="线程池标识(必填)"
:placeholder="$t('frameworkThreadPool.threadPoolIDRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -52,7 +52,7 @@
icon="el-icon-search"
@click="fetchData"
>
搜索
{{ $t('common.query') }}
</el-button>
<el-button
v-waves
@ -62,7 +62,7 @@
icon="el-icon-refresh"
@click="refreshData"
>
重置
{{ $t('common.reset') }}
</el-button>
</div>
<el-table
@ -74,32 +74,32 @@
max-height="714"
highlight-current-row
>
<el-table-column label="序号" width="95">
<el-table-column :label="$t('common.num')" fixed width="95">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="实例标识" width="260">
<el-table-column :label="$t('threadPoolInstance.instanceID')" width="260">
<template slot-scope="scope">
<el-link type="primary" :underline="false">{{ scope.row.identify }}</el-link>
</template>
</el-table-column>
<el-table-column label="Active">
<el-table-column :label="$t('threadPoolInstance.active')" width="120">
<template slot-scope="scope">
<el-tag :type="scope.row.active | statusFilter">
{{ scope.row.active }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="线程池标识">
<el-table-column :label="$t('frameworkThreadPool.threadPoolID')">
<template slot-scope="scope">
{{ scope.row.threadPoolKey }}
</template>
</el-table-column>
<el-table-column label="核心线程">
<el-table-column :label="$t('threadPool.coreSize')">
<template slot-scope="scope">
<el-link type="success" :underline="false">{{ scope.row.coreSize }}</el-link>
</template>
</el-table-column>
<el-table-column label="最大线程">
<el-table-column :label="$t('threadPool.maximumSize')" width="120">
<template slot-scope="scope">
<el-link type="danger" :underline="false">{{ scope.row.maximumSize }}</el-link>
</template>
@ -110,7 +110,7 @@
<el-table-column label="队列容量" >
<template slot-scope="scope">{{ scope.row.queueCapacity }}</template>
</el-table-column>-->
<el-table-column label="操作" width="180" class-name="small-padding fixed-width">
<el-table-column :label="$t('common.operation')" width="180" class-name="small-padding fixed-width">
<template slot-scope="{ row }">
<!--<el-dropdown trigger="click">
<span class="el-dropdown-link">
@ -121,7 +121,7 @@
<el-dropdown-item @click.native="handleUpdate(row)">编辑</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>-->
<el-button type="text" size="small" @click="handleUpdate(row)"> </el-button>
<el-button type="text" size="small" @click="handleUpdate(row)"> {{ $t('common.edit') }} </el-button>
</template>
</el-table-column>
</el-table>
@ -134,7 +134,7 @@
label-position="left"
label-width="110px"
>
<el-form-item label="核心线程" prop="coreSize">
<el-form-item :label="$t('threadPool.coreSize')" prop="coreSize">
<template>
<el-input-number
v-model="temp.coreSize"
@ -144,7 +144,7 @@
></el-input-number>
</template>
</el-form-item>
<el-form-item label="最大线程" prop="maximumSize">
<el-form-item :label="$t('threadPool.maximumSize')" prop="maximumSize">
<template>
<el-input-number
v-model="temp.maximumSize"
@ -154,13 +154,13 @@
></el-input-number>
</template>
</el-form-item>
<el-form-item label="全部修改" prop="allUpdate">
<el-form-item :label="$t('threadPoolInstance.changeAll')" prop="allUpdate">
<el-switch v-model="temp.allUpdate"></el-switch>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> 取消 </el-button>
<el-button type="primary" @click="updateData()"> </el-button>
<el-button @click="dialogFormVisible = false"> {{ $t('common.cancel') }} </el-button>
<el-button type="primary" @click="updateData()"> {{$t('common.confirm')}} </el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="dialogPluginVisible" title="Reading statistics">
@ -283,19 +283,19 @@ export default {
},
fetchData() {
if (!this.listQuery.mark) {
this.$message.warning('线程池类型不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this. $t('frameworkThreadPool.threadPoolType') }));
return;
}
if (!this.listQuery.tenantId) {
this.$message.warning('租户不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('tenantManage.tenant') }));
return;
}
if (!this.listQuery.itemId) {
this.$message.warning('项目不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('projectManage.item') }));
return;
}
if (!this.listQuery.threadPoolKey) {
this.$message.warning('线程池标识不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this. $t('frameworkThreadPool.threadPoolID') }));
return;
}
this.listLoading = true;
@ -333,7 +333,7 @@ export default {
if (valid) {
if (parseInt(this.temp.maximumSize) < parseInt(this.temp.coreSize)) {
this.$message({
message: '最大线程必须大于等于核心线程',
message: this.$t('threadPool.threadsNumErrorTip'),
type: 'warning',
});
return;
@ -385,13 +385,13 @@ export default {
})
.catch((error) => {
console.log(error);
this.$message.error('修改线程池失败');
this.$message.error(this.$t('message.updateFailure'));
});
},
openDelConfirm(name) {
return this.$confirm(`此操作将删除 ${name}, 是否继续?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
return this.$confirm(this.$t('message.deleteMessage', { name }), this.$t('common.hint'), {
confirmButtonText: this.$t('common.ok'),
cancelButtonText: this.$t('common.cancel'),
type: 'warning',
});
},
@ -497,7 +497,7 @@ export default {
})
.catch((error) => {
console.log(error);
this.$message.error('查询失败,请尝试刷新页面');
this.$message.error(this.$t('message.queryFailure'));
});
},
},

@ -3,7 +3,7 @@
<div class="filter-container">
<el-select
v-model="listQuery.tenantId"
placeholder="租户(必填)"
:placeholder="$t('tenantManage.tenantRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -18,7 +18,7 @@
</el-select>
<el-select
v-model="listQuery.itemId"
placeholder="项目(必填)"
:placeholder="$t('projectManage.itemRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -33,7 +33,7 @@
</el-select>
<el-select
v-model="listQuery.threadPoolKey"
placeholder="线程池标识(必填)"
:placeholder="$t('frameworkThreadPool.threadPoolIDRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -52,7 +52,7 @@
icon="el-icon-search"
@click="fetchData"
>
搜索
{{ $t('common.query') }}
</el-button>
<el-button
v-waves
@ -62,7 +62,7 @@
icon="el-icon-refresh"
@click="refreshData"
>
重置
{{ $t('common.reset') }}
</el-button>
</div>
<el-table
@ -74,32 +74,32 @@
max-height="714"
highlight-current-row
>
<el-table-column label="序号" width="95">
<el-table-column :label="$t('common.num')" fixed width="95">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="实例标识" width="260">
<el-table-column :label="$t('threadPoolInstance.instanceID')" width="260">
<template slot-scope="scope">
<el-link type="primary" :underline="false">{{ scope.row.identify }}</el-link>
</template>
</el-table-column>
<el-table-column label="Active">
<el-table-column :label="$t('threadPoolInstance.active')" width="120">
<template slot-scope="scope">
<el-tag :type="scope.row.active | statusFilter">
{{ scope.row.active }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="线程池标识">
<el-table-column :label="$t('frameworkThreadPool.threadPoolID')">
<template slot-scope="scope">
{{ scope.row.threadPoolKey }}
</template>
</el-table-column>
<el-table-column label="核心线程">
<el-table-column :label="$t('threadPool.coreSize')">
<template slot-scope="scope">
<el-link type="success" :underline="false">{{ scope.row.coreSize }}</el-link>
</template>
</el-table-column>
<el-table-column label="最大线程">
<el-table-column :label="$t('threadPool.maximumSize')" width="120">
<template slot-scope="scope">
<el-link type="danger" :underline="false">{{ scope.row.maximumSize }}</el-link>
</template>
@ -110,7 +110,7 @@
<el-table-column label="队列容量" >
<template slot-scope="scope">{{ scope.row.queueCapacity }}</template>
</el-table-column>-->
<el-table-column label="操作" width="180" class-name="small-padding fixed-width">
<el-table-column :label="$t('common.operation')" width="180" class-name="small-padding fixed-width">
<template slot-scope="{ row }">
<!--<el-dropdown trigger="click">
<span class="el-dropdown-link">
@ -121,7 +121,7 @@
<el-dropdown-item @click.native="handleUpdate(row)">编辑</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>-->
<el-button type="text" size="small" @click="handleUpdate(row)"> </el-button>
<el-button type="text" size="small" @click="handleUpdate(row)"> {{ $t('common.edit') }} </el-button>
</template>
</el-table-column>
</el-table>
@ -134,7 +134,7 @@
label-position="left"
label-width="110px"
>
<el-form-item label="核心线程" prop="coreSize">
<el-form-item :label="$t('threadPool.coreSize')" prop="coreSize">
<template>
<el-input-number
v-model="temp.coreSize"
@ -144,7 +144,7 @@
></el-input-number>
</template>
</el-form-item>
<el-form-item label="最大线程" prop="maximumSize">
<el-form-item :label="$t('threadPool.maximumSize')" prop="maximumSize">
<template>
<el-input-number
v-model="temp.maximumSize"
@ -154,13 +154,13 @@
></el-input-number>
</template>
</el-form-item>
<el-form-item label="全部修改" prop="allUpdate">
<el-form-item :label="$t('threadPoolInstance.changeAll')" prop="allUpdate">
<el-switch v-model="temp.allUpdate"></el-switch>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> 取消 </el-button>
<el-button type="primary" @click="updateData()"> </el-button>
<el-button @click="dialogFormVisible = false"> {{ $t('common.cancel') }} </el-button>
<el-button type="primary" @click="updateData()"> {{$t('common.confirm')}} </el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="dialogPluginVisible" title="Reading statistics">
@ -283,19 +283,19 @@ export default {
},
fetchData() {
if (!this.listQuery.mark) {
this.$message.warning('线程池类型不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this. $t('frameworkThreadPool.threadPoolType') }));
return;
}
if (!this.listQuery.tenantId) {
this.$message.warning('租户不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('tenantManage.tenant') }));
return;
}
if (!this.listQuery.itemId) {
this.$message.warning('项目不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('projectManage.item') }));
return;
}
if (!this.listQuery.threadPoolKey) {
this.$message.warning('线程池标识不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this. $t('frameworkThreadPool.threadPoolID') }));
return;
}
this.listLoading = true;
@ -333,7 +333,7 @@ export default {
if (valid) {
if (parseInt(this.temp.maximumSize) < parseInt(this.temp.coreSize)) {
this.$message({
message: '最大线程必须大于等于核心线程',
message: this.$t('threadPool.threadsNumErrorTip'),
type: 'warning',
});
return;
@ -385,13 +385,13 @@ export default {
})
.catch((error) => {
console.log(error);
this.$message.error('修改线程池失败');
this.$message.error(this.$t('message.updateFailure'));
});
},
openDelConfirm(name) {
return this.$confirm(`此操作将删除 ${name}, 是否继续?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
return this.$confirm(this.$t('message.deleteMessage', { name }), this.$t('common.hint'), {
confirmButtonText: this.$t('common.ok'),
cancelButtonText: this.$t('common.cancel'),
type: 'warning',
});
},
@ -497,7 +497,7 @@ export default {
})
.catch((error) => {
console.log(error);
this.$message.error('查询失败,请尝试刷新页面');
this.$message.error(this.$t('message.queryFailure'));
});
},
},

@ -3,7 +3,7 @@
<div class="filter-container">
<el-select
v-model="listQuery.tenantId"
placeholder="租户(必填)"
:placeholder="$t('tenantManage.tenantRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -18,7 +18,7 @@
</el-select>
<el-select
v-model="listQuery.itemId"
placeholder="项目(必填)"
:placeholder="$t('projectManage.itemRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -33,7 +33,7 @@
</el-select>
<el-select
v-model="listQuery.threadPoolKey"
placeholder="线程池标识(必填)"
:placeholder="$t('frameworkThreadPool.threadPoolIDRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -52,7 +52,7 @@
icon="el-icon-search"
@click="fetchData"
>
搜索
{{ $t('common.query') }}
</el-button>
<el-button
v-waves
@ -62,7 +62,7 @@
icon="el-icon-refresh"
@click="refreshData"
>
重置
{{ $t('common.reset') }}
</el-button>
</div>
<el-table
@ -74,32 +74,32 @@
max-height="714"
highlight-current-row
>
<el-table-column label="序号" width="95">
<el-table-column :label="$t('common.num')" fixed width="95">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="实例标识" width="260">
<el-table-column :label="$t('threadPoolInstance.instanceID')" width="260">
<template slot-scope="scope">
<el-link type="primary" :underline="false">{{ scope.row.identify }}</el-link>
</template>
</el-table-column>
<el-table-column label="Active">
<el-table-column :label="$t('threadPoolInstance.active')" width="120">
<template slot-scope="scope">
<el-tag :type="scope.row.active | statusFilter">
{{ scope.row.active }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="线程池标识">
<el-table-column :label="$t('frameworkThreadPool.threadPoolID')">
<template slot-scope="scope">
{{ scope.row.threadPoolKey }}
</template>
</el-table-column>
<el-table-column label="核心线程">
<el-table-column :label="$t('threadPool.coreSize')">
<template slot-scope="scope">
<el-link type="success" :underline="false">{{ scope.row.coreSize }}</el-link>
</template>
</el-table-column>
<el-table-column label="最大线程">
<el-table-column :label="$t('threadPool.maximumSize')" width="120">
<template slot-scope="scope">
<el-link type="danger" :underline="false">{{ scope.row.maximumSize }}</el-link>
</template>
@ -110,7 +110,7 @@
<el-table-column label="队列容量" >
<template slot-scope="scope">{{ scope.row.queueCapacity }}</template>
</el-table-column>-->
<el-table-column label="操作" width="180" class-name="small-padding fixed-width">
<el-table-column :label="$t('common.operation')" width="180" class-name="small-padding fixed-width">
<template slot-scope="{ row }">
<!--<el-dropdown trigger="click">
<span class="el-dropdown-link">
@ -121,7 +121,7 @@
<el-dropdown-item @click.native="handleUpdate(row)">编辑</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>-->
<el-button type="text" size="small" @click="handleUpdate(row)"> </el-button>
<el-button type="text" size="small" @click="handleUpdate(row)"> {{ $t('common.edit') }} </el-button>
</template>
</el-table-column>
</el-table>
@ -133,7 +133,7 @@
label-position="left"
label-width="110px"
>
<el-form-item label="核心线程" prop="coreSize">
<el-form-item :label="$t('threadPool.coreSize')" prop="coreSize">
<template>
<el-input-number
v-model="temp.coreSize"
@ -143,7 +143,7 @@
></el-input-number>
</template>
</el-form-item>
<el-form-item label="最大线程" prop="maximumSize">
<el-form-item :label="$t('threadPool.maximumSize')" prop="maximumSize">
<template>
<el-input-number
v-model="temp.maximumSize"
@ -153,13 +153,13 @@
></el-input-number>
</template>
</el-form-item>
<el-form-item label="全部修改" prop="allUpdate">
<el-form-item :label="$t('threadPoolInstance.changeAll')" prop="allUpdate">
<el-switch v-model="temp.allUpdate"></el-switch>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> 取消 </el-button>
<el-button type="primary" @click="updateData()"> </el-button>
<el-button @click="dialogFormVisible = false"> {{ $t('common.cancel') }} </el-button>
<el-button type="primary" @click="updateData()"> {{$t('common.confirm')}} </el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="dialogPluginVisible" title="Reading statistics">
@ -282,19 +282,19 @@ export default {
},
fetchData() {
if (!this.listQuery.mark) {
this.$message.warning('线程池类型不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this. $t('frameworkThreadPool.threadPoolType') }));
return;
}
if (!this.listQuery.tenantId) {
this.$message.warning('租户不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('tenantManage.tenant') }));
return;
}
if (!this.listQuery.itemId) {
this.$message.warning('项目不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('projectManage.item') }));
return;
}
if (!this.listQuery.threadPoolKey) {
this.$message.warning('线程池标识不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this. $t('frameworkThreadPool.threadPoolID') }));
return;
}
this.listLoading = true;
@ -332,7 +332,7 @@ export default {
if (valid) {
if (parseInt(this.temp.maximumSize) < parseInt(this.temp.coreSize)) {
this.$message({
message: '最大线程必须大于等于核心线程',
message: this.$t('threadPool.threadsNumErrorTip'),
type: 'warning',
});
return;
@ -384,13 +384,13 @@ export default {
})
.catch((error) => {
console.log(error);
this.$message.error('修改线程池失败');
this.$message.error(this.$t('message.updateFailure'));
});
},
openDelConfirm(name) {
return this.$confirm(`此操作将删除 ${name}, 是否继续?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
return this.$confirm(this.$t('message.deleteMessage', { name }), this.$t('common.hint'), {
confirmButtonText: this.$t('common.ok'),
cancelButtonText: this.$t('common.cancel'),
type: 'warning',
});
},
@ -496,7 +496,7 @@ export default {
})
.catch((error) => {
console.log(error);
this.$message.error('查询失败,请尝试刷新页面');
this.$message.error(this.$t('message.queryFailure'));
});
},
},

@ -3,7 +3,7 @@
<div class="filter-container">
<el-select
v-model="listQuery.tenantId"
placeholder="租户(必填)"
:placeholder="$t('tenantManage.tenantRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -18,7 +18,7 @@
</el-select>
<el-select
v-model="listQuery.itemId"
placeholder="项目(必填)"
:placeholder="$t('projectManage.itemRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -33,7 +33,7 @@
</el-select>
<el-select
v-model="listQuery.threadPoolKey"
placeholder="线程池标识(必填)"
:placeholder="$t('frameworkThreadPool.threadPoolIDRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -52,7 +52,7 @@
icon="el-icon-search"
@click="fetchData"
>
搜索
{{ $t('common.query') }}
</el-button>
<el-button
v-waves
@ -62,7 +62,7 @@
icon="el-icon-refresh"
@click="refreshData"
>
重置
{{ $t('common.reset') }}
</el-button>
</div>
<el-table
@ -74,32 +74,32 @@
max-height="714"
highlight-current-row
>
<el-table-column label="序号" width="95">
<el-table-column :label="$t('common.num')" fixed width="95">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="实例标识" width="260">
<el-table-column :label="$t('threadPoolInstance.instanceID')" width="260">
<template slot-scope="scope">
<el-link type="primary" :underline="false">{{ scope.row.identify }}</el-link>
</template>
</el-table-column>
<el-table-column label="Active">
<el-table-column :label="$t('threadPoolInstance.active')" width="120">
<template slot-scope="scope">
<el-tag :type="scope.row.active | statusFilter">
{{ scope.row.active }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="线程池标识">
<el-table-column :label="$t('frameworkThreadPool.threadPoolID')">
<template slot-scope="scope">
{{ scope.row.threadPoolKey }}
</template>
</el-table-column>
<el-table-column label="核心线程">
<el-table-column :label="$t('threadPool.coreSize')">
<template slot-scope="scope">
<el-link type="success" :underline="false">{{ scope.row.coreSize }}</el-link>
</template>
</el-table-column>
<el-table-column label="最大线程">
<el-table-column :label="$t('threadPool.maximumSize')" width="120">
<template slot-scope="scope">
<el-link type="danger" :underline="false">{{ scope.row.maximumSize }}</el-link>
</template>
@ -110,7 +110,7 @@
<el-table-column label="队列容量" >
<template slot-scope="scope">{{ scope.row.queueCapacity }}</template>
</el-table-column>-->
<el-table-column label="操作" width="180" class-name="small-padding fixed-width">
<el-table-column :label="$t('common.operation')" width="180" class-name="small-padding fixed-width">
<template slot-scope="{ row }">
<!--<el-dropdown trigger="click">
<span class="el-dropdown-link">
@ -121,7 +121,7 @@
<el-dropdown-item @click.native="handleUpdate(row)">编辑</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>-->
<el-button type="text" size="small" @click="handleUpdate(row)"> </el-button>
<el-button type="text" size="small" @click="handleUpdate(row)"> {{ $t('common.edit') }} </el-button>
</template>
</el-table-column>
</el-table>
@ -134,7 +134,7 @@
label-position="left"
label-width="110px"
>
<el-form-item label="核心线程" prop="coreSize">
<el-form-item :label="$t('threadPool.coreSize')" prop="coreSize">
<template>
<el-input-number
v-model="temp.coreSize"
@ -144,7 +144,7 @@
></el-input-number>
</template>
</el-form-item>
<el-form-item label="最大线程" prop="maximumSize">
<el-form-item :label="$t('threadPool.maximumSize')" prop="maximumSize">
<template>
<el-input-number
v-model="temp.maximumSize"
@ -154,13 +154,13 @@
></el-input-number>
</template>
</el-form-item>
<el-form-item label="全部修改" prop="allUpdate">
<el-form-item :label="$t('threadPoolInstance.changeAll')" prop="allUpdate">
<el-switch v-model="temp.allUpdate"></el-switch>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> 取消 </el-button>
<el-button type="primary" @click="updateData()"> </el-button>
<el-button @click="dialogFormVisible = false"> {{ $t('common.cancel') }} </el-button>
<el-button type="primary" @click="updateData()"> {{$t('common.confirm')}} </el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="dialogPluginVisible" title="Reading statistics">
@ -283,19 +283,19 @@ export default {
},
fetchData() {
if (!this.listQuery.mark) {
this.$message.warning('线程池类型不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this. $t('frameworkThreadPool.threadPoolType') }));
return;
}
if (!this.listQuery.tenantId) {
this.$message.warning('租户不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('tenantManage.tenant') }));
return;
}
if (!this.listQuery.itemId) {
this.$message.warning('项目不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('projectManage.item') }));
return;
}
if (!this.listQuery.threadPoolKey) {
this.$message.warning('线程池标识不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this. $t('frameworkThreadPool.threadPoolID') }));
return;
}
this.listLoading = true;
@ -333,7 +333,7 @@ export default {
if (valid) {
if (parseInt(this.temp.maximumSize) < parseInt(this.temp.coreSize)) {
this.$message({
message: '最大线程必须大于等于核心线程',
message: this.$t('threadPool.threadsNumErrorTip'),
type: 'warning',
});
return;
@ -381,13 +381,13 @@ export default {
})
.catch((error) => {
console.log(error);
this.$message.error('修改线程池失败');
this.$message.error(this.$t('message.updateFailure'));
});
},
openDelConfirm(name) {
return this.$confirm(`此操作将删除 ${name}, 是否继续?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
return this.$confirm(this.$t('message.deleteMessage', { name }), this.$t('common.hint'), {
confirmButtonText: this.$t('common.ok'),
cancelButtonText: this.$t('common.cancel'),
type: 'warning',
});
},
@ -493,7 +493,7 @@ export default {
})
.catch((error) => {
console.log(error);
this.$message.error('查询失败,请尝试刷新页面');
this.$message.error(this.$t('message.queryFailure'));
});
},
},

@ -3,7 +3,7 @@
<div class="filter-container">
<el-select
v-model="listQuery.tenantId"
placeholder="租户(必填)"
:placeholder="$t('tenantManage.tenantRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -18,7 +18,7 @@
</el-select>
<el-select
v-model="listQuery.itemId"
placeholder="项目(必填)"
:placeholder="$t('projectManage.itemRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -33,7 +33,7 @@
</el-select>
<el-select
v-model="listQuery.threadPoolKey"
placeholder="线程池标识(必填)"
:placeholder="$t('frameworkThreadPool.threadPoolIDRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -52,7 +52,7 @@
icon="el-icon-search"
@click="fetchData"
>
搜索
{{ $t('common.query') }}
</el-button>
<el-button
v-waves
@ -62,7 +62,7 @@
icon="el-icon-refresh"
@click="refreshData"
>
重置
{{ $t('common.reset') }}
</el-button>
</div>
<el-table
@ -74,32 +74,32 @@
max-height="714"
highlight-current-row
>
<el-table-column label="序号" width="95">
<el-table-column :label="$t('common.num')" fixed width="95">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="实例标识" width="260">
<el-table-column :label="$t('threadPoolInstance.instanceID')" width="260">
<template slot-scope="scope">
<el-link type="primary" :underline="false">{{ scope.row.identify }}</el-link>
</template>
</el-table-column>
<el-table-column label="Active">
<el-table-column :label="$t('threadPoolInstance.active')" width="120">
<template slot-scope="scope">
<el-tag :type="scope.row.active | statusFilter">
{{ scope.row.active }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="线程池标识">
<el-table-column :label="$t('frameworkThreadPool.threadPoolID')">
<template slot-scope="scope">
{{ scope.row.threadPoolKey }}
</template>
</el-table-column>
<el-table-column label="核心线程">
<el-table-column :label="$t('threadPool.coreSize')">
<template slot-scope="scope">
<el-link type="success" :underline="false">{{ scope.row.coreSize }}</el-link>
</template>
</el-table-column>
<el-table-column label="最大线程">
<el-table-column :label="$t('threadPool.maximumSize')" width="120">
<template slot-scope="scope">
<el-link type="danger" :underline="false">{{ scope.row.maximumSize }}</el-link>
</template>
@ -110,7 +110,7 @@
<el-table-column label="队列容量" >
<template slot-scope="scope">{{ scope.row.queueCapacity }}</template>
</el-table-column>-->
<el-table-column label="操作" width="180" class-name="small-padding fixed-width">
<el-table-column :label="$t('common.operation')" width="180" class-name="small-padding fixed-width">
<template slot-scope="{ row }">
<!--<el-dropdown trigger="click">
<span class="el-dropdown-link">
@ -121,7 +121,7 @@
<el-dropdown-item @click.native="handleUpdate(row)">编辑</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>-->
<el-button type="text" size="small" @click="handleUpdate(row)"> </el-button>
<el-button type="text" size="small" @click="handleUpdate(row)"> {{ $t('common.edit') }} </el-button>
</template>
</el-table-column>
</el-table>
@ -133,7 +133,7 @@
label-position="left"
label-width="110px"
>
<el-form-item label="核心线程" prop="coreSize">
<el-form-item :label="$t('threadPool.coreSize')" prop="coreSize">
<template>
<el-input-number
v-model="temp.coreSize"
@ -143,7 +143,7 @@
></el-input-number>
</template>
</el-form-item>
<el-form-item label="最大线程" prop="maximumSize">
<el-form-item :label="$t('threadPool.maximumSize')" prop="maximumSize">
<template>
<el-input-number
v-model="temp.maximumSize"
@ -153,13 +153,13 @@
></el-input-number>
</template>
</el-form-item>
<el-form-item label="全部修改" prop="allUpdate">
<el-form-item :label="$t('threadPoolInstance.changeAll')" prop="allUpdate">
<el-switch v-model="temp.allUpdate"></el-switch>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> 取消 </el-button>
<el-button type="primary" @click="updateData()"> </el-button>
<el-button @click="dialogFormVisible = false"> {{ $t('common.cancel') }} </el-button>
<el-button type="primary" @click="updateData()"> {{$t('common.confirm')}} </el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="dialogPluginVisible" title="Reading statistics">
@ -282,19 +282,19 @@ export default {
},
fetchData() {
if (!this.listQuery.mark) {
this.$message.warning('线程池类型不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this. $t('frameworkThreadPool.threadPoolType') }));
return;
}
if (!this.listQuery.tenantId) {
this.$message.warning('租户不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('tenantManage.tenant') }));
return;
}
if (!this.listQuery.itemId) {
this.$message.warning('项目不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('projectManage.item') }));
return;
}
if (!this.listQuery.threadPoolKey) {
this.$message.warning('线程池标识不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this. $t('frameworkThreadPool.threadPoolID') }));
return;
}
this.listLoading = true;
@ -332,7 +332,7 @@ export default {
if (valid) {
if (parseInt(this.temp.maximumSize) < parseInt(this.temp.coreSize)) {
this.$message({
message: '最大线程必须大于等于核心线程',
message: this.$t('threadPool.threadsNumErrorTip'),
type: 'warning',
});
return;
@ -384,13 +384,13 @@ export default {
})
.catch((error) => {
console.log(error);
this.$message.error('修改线程池失败');
this.$message.error(this.$t('message.updateFailure'));
});
},
openDelConfirm(name) {
return this.$confirm(`此操作将删除 ${name}, 是否继续?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
return this.$confirm(this.$t('message.deleteMessage', { name }), this.$t('common.hint'), {
confirmButtonText: this.$t('common.ok'),
cancelButtonText: this.$t('common.cancel'),
type: 'warning',
});
},
@ -496,7 +496,7 @@ export default {
})
.catch((error) => {
console.log(error);
this.$message.error('查询失败,请尝试刷新页面');
this.$message.error(this.$t('message.queryFailure'));
});
},
},

@ -3,7 +3,7 @@
<div class="filter-container">
<el-select
v-model="listQuery.tenantId"
placeholder="租户(必填)"
:placeholder="$t('tenantManage.tenantRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -18,7 +18,7 @@
</el-select>
<el-select
v-model="listQuery.itemId"
placeholder="项目(必填)"
:placeholder="$t('projectManage.itemRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -33,7 +33,7 @@
</el-select>
<el-select
v-model="listQuery.threadPoolKey"
placeholder="线程池标识(必填)"
:placeholder="$t('frameworkThreadPool.threadPoolIDRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -52,7 +52,7 @@
icon="el-icon-search"
@click="fetchData"
>
搜索
{{ $t('common.query') }}
</el-button>
<el-button
v-waves
@ -62,7 +62,7 @@
icon="el-icon-refresh"
@click="refreshData"
>
重置
{{ $t('common.reset') }}
</el-button>
</div>
<el-table
@ -74,32 +74,32 @@
max-height="714"
highlight-current-row
>
<el-table-column label="序号" width="95">
<el-table-column :label="$t('common.num')" fixed width="95">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="实例标识" width="260">
<el-table-column :label="$t('threadPoolInstance.instanceID')" width="260">
<template slot-scope="scope">
<el-link type="primary" :underline="false">{{ scope.row.identify }}</el-link>
</template>
</el-table-column>
<el-table-column label="Active">
<el-table-column :label="$t('threadPoolInstance.active')" width="120">
<template slot-scope="scope">
<el-tag :type="scope.row.active | statusFilter">
{{ scope.row.active }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="线程池标识">
<el-table-column :label="$t('frameworkThreadPool.threadPoolID')">
<template slot-scope="scope">
{{ scope.row.threadPoolKey }}
</template>
</el-table-column>
<el-table-column label="核心线程">
<el-table-column :label="$t('threadPool.coreSize')">
<template slot-scope="scope">
<el-link type="success" :underline="false">{{ scope.row.coreSize }}</el-link>
</template>
</el-table-column>
<el-table-column label="最大线程">
<el-table-column :label="$t('threadPool.maximumSize')" width="120">
<template slot-scope="scope">
<el-link type="danger" :underline="false">{{ scope.row.maximumSize }}</el-link>
</template>
@ -110,7 +110,7 @@
<el-table-column label="队列容量" >
<template slot-scope="scope">{{ scope.row.queueCapacity }}</template>
</el-table-column>-->
<el-table-column label="操作" width="180" class-name="small-padding fixed-width">
<el-table-column :label="$t('common.operation')" width="180" class-name="small-padding fixed-width">
<template slot-scope="{ row }">
<!--<el-dropdown trigger="click">
<span class="el-dropdown-link">
@ -121,7 +121,7 @@
<el-dropdown-item @click.native="handleUpdate(row)">编辑</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>-->
<el-button type="text" size="small" @click="handleUpdate(row)"> </el-button>
<el-button type="text" size="small" @click="handleUpdate(row)"> {{ $t('common.edit') }} </el-button>
</template>
</el-table-column>
</el-table>
@ -134,7 +134,7 @@
label-position="left"
label-width="110px"
>
<el-form-item label="核心线程" prop="coreSize">
<el-form-item :label="$t('threadPool.coreSize')" prop="coreSize">
<template>
<el-input-number
v-model="temp.coreSize"
@ -144,7 +144,7 @@
></el-input-number>
</template>
</el-form-item>
<el-form-item label="最大线程" prop="maximumSize">
<el-form-item :label="$t('threadPool.maximumSize')" prop="maximumSize">
<template>
<el-input-number
v-model="temp.maximumSize"
@ -154,13 +154,13 @@
></el-input-number>
</template>
</el-form-item>
<el-form-item label="全部修改" prop="allUpdate">
<el-form-item :label="$t('threadPoolInstance.changeAll')" prop="allUpdate">
<el-switch v-model="temp.allUpdate"></el-switch>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> 取消 </el-button>
<el-button type="primary" @click="updateData()"> </el-button>
<el-button @click="dialogFormVisible = false"> {{ $t('common.cancel') }} </el-button>
<el-button type="primary" @click="updateData()"> {{$t('common.confirm')}} </el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="dialogPluginVisible" title="Reading statistics">
@ -283,19 +283,19 @@ export default {
},
fetchData() {
if (!this.listQuery.mark) {
this.$message.warning('线程池类型不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this. $t('frameworkThreadPool.threadPoolType') }));
return;
}
if (!this.listQuery.tenantId) {
this.$message.warning('租户不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('tenantManage.tenant') }));
return;
}
if (!this.listQuery.itemId) {
this.$message.warning('项目不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('projectManage.item') }));
return;
}
if (!this.listQuery.threadPoolKey) {
this.$message.warning('线程池标识不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this. $t('frameworkThreadPool.threadPoolID') }));
return;
}
this.listLoading = true;
@ -333,7 +333,7 @@ export default {
if (valid) {
if (parseInt(this.temp.maximumSize) < parseInt(this.temp.coreSize)) {
this.$message({
message: '最大线程必须大于等于核心线程',
message: this.$t('threadPool.threadsNumErrorTip'),
type: 'warning',
});
return;
@ -385,13 +385,13 @@ export default {
})
.catch((error) => {
console.log(error);
this.$message.error('修改线程池失败');
this.$message.error(this.$t('message.updateFailure'));
});
},
openDelConfirm(name) {
return this.$confirm(`此操作将删除 ${name}, 是否继续?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
return this.$confirm(this.$t('message.deleteMessage', { name }), this.$t('common.hint'), {
confirmButtonText: this.$t('common.ok'),
cancelButtonText: this.$t('common.cancel'),
type: 'warning',
});
},
@ -497,7 +497,7 @@ export default {
})
.catch((error) => {
console.log(error);
this.$message.error('查询失败,请尝试刷新页面');
this.$message.error(this.$t('message.queryFailure'));
});
},
},

@ -3,7 +3,7 @@
<div class="filter-container">
<el-select
v-model="listQuery.tenantId"
placeholder="租户(必填)"
:placeholder="$t('tenantManage.tenantRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -18,7 +18,7 @@
</el-select>
<el-select
v-model="listQuery.itemId"
placeholder="项目(必填)"
:placeholder="$t('projectManage.itemRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -38,7 +38,7 @@
icon="el-icon-search"
@click="fetchData"
>
搜索
{{ $t('common.query') }}
</el-button>
</div>
<el-table
@ -50,55 +50,53 @@
max-height="714"
highlight-current-row
>
<el-table-column label="序号" fixed width="95">
<el-table-column :label="$t('common.num')" fixed width="95">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="实例标识" width="260">
<el-table-column :label="$t('threadPoolInstance.instanceID')" width="260">
<template slot-scope="scope">
<el-link type="primary" :underline="false">{{ scope.row.identify }}</el-link>
</template>
</el-table-column>
<el-table-column label="Active" width="120">
<el-table-column :label="$t('threadPoolInstance.active')" width="120">
<template slot-scope="scope">
<el-tag :type="scope.row.active | statusFilter">
{{ scope.row.active }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="核心线程" width="120">
<el-table-column :label="$t('threadPool.coreSize')" width="120">
<template slot-scope="scope">
<el-link type="success" :underline="false">{{ scope.row.coreSize }}</el-link>
</template>
</el-table-column>
<el-table-column label="最大线程" width="120">
<el-table-column :label="$t('threadPool.maximumSize')" width="120">
<template slot-scope="scope">
<el-link type="danger" :underline="false">{{ scope.row.maximumSize }}</el-link>
</template>
</el-table-column>
<el-table-column label="队列类型" width="260">
<el-table-column :label="$t('threadPool.queueType')" width="260">
<template slot-scope="scope">{{ scope.row.queueType }}</template>
</el-table-column>
<el-table-column label="队列容量" width="160">
<el-table-column :label="$t('threadPool.queueCapacity')" width="160">
<template slot-scope="scope">{{ scope.row.queueCapacity }}</template>
</el-table-column>
<el-table-column label="拒绝策略" width="260">
<el-table-column :label="$t('threadPool.rejectedHandler')" width="260">
<template slot-scope="scope">{{ scope.row.rejectedName }}</template>
</el-table-column>
<el-table-column label="空闲回收" width="100">
<el-table-column :label="$t('threadPool.keepAliveTime')" width="100">
<template slot-scope="scope">{{ scope.row.keepAliveTime }}</template>
</el-table-column>
<el-table-column
label="操作"
:label="$t('common.operation')"
width="90"
align="center"
fixed="right"
class-name="small-padding fixed-width"
>
<template slot-scope="{ row }">
<el-button type="text" size="small" @click="handleInfo(row)"> </el-button>
<el-button type="text" :disabled="isEditDisabled" size="small" @click="handleUpdate(row)">
编辑
</el-button>
<el-button type="text" size="small" @click="handleInfo(row)"> {{ $t('common.detail') }} </el-button>
<el-button type="text" :disabled="isEditDisabled" size="small" @click="handleUpdate(row)">{{ $t('common.edit') }} </el-button>
</template>
</el-table-column>
</el-table>
@ -108,81 +106,81 @@
width="1000px"
>
<template>
<el-descriptions class="margin-top" title="负载信息" :column="3" :size="size" border>
<el-descriptions class="margin-top" :title="$t('threadPoolInstance.LoadInformation')" :column="3" :size="size" border>
<el-descriptions-item>
<template slot="label"> 当前负载 </template>
<template slot="label"> {{ $t('threadPoolInstance.CurrentLoad') }} </template>
{{ runTimeTemp.currentLoad }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 峰值负载 </template>
<template slot="label"> {{ $t('threadPoolInstance.PeakLoad') }} </template>
{{ runTimeTemp.peakLoad }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 剩余内存 </template>
<template slot="label"> {{ $t('threadPoolInstance.RemainingMemory') }} </template>
{{ runTimeTemp.freeMemory }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 内存占比 </template>
<template slot="label"> {{ $t('threadPoolInstance.MemoryRatio') }} </template>
{{ runTimeTemp.memoryProportion }}
</el-descriptions-item>
</el-descriptions>
<br />
<br />
<el-descriptions class="margin-top" title="线程信息" :column="3" :size="size" border>
<el-descriptions class="margin-top" :title="$t('threadPoolInstance.threadInformation')" :column="3" :size="size" border>
<el-descriptions-item>
<template slot="label"> 核心线程 </template>
<template slot="label"> {{ $t('threadPool.coreSize') }} </template>
{{ runTimeTemp.coreSize }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 当前线程 </template>
<template slot="label"> {{ $t('threadPoolInstance.currentSize') }} </template>
{{ runTimeTemp.poolSize }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 最大线程 </template>
<template slot="label"> {{ $t('threadPool.maximumSize') }} </template>
{{ runTimeTemp.maximumSize }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 活跃线程 </template>
<template slot="label"> {{ $t('threadPoolInstance.activeSize') }} </template>
{{ runTimeTemp.activeSize }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 同存最大线程 </template>
<template slot="label"> {{ $t('threadPoolInstance.largestSize') }} </template>
{{ runTimeTemp.largestPoolSize }}
</el-descriptions-item>
</el-descriptions>
<br />
<br />
<el-descriptions class="margin-top" title="队列信息" :column="3" :size="size" border>
<el-descriptions class="margin-top" :title="$t('threadPoolInstance.queueInformation')" :column="3" :size="size" border>
<el-descriptions-item>
<template slot="label"> 队列容量 </template>
<template slot="label"> {{ $t('threadPool.queueCapacity') }} </template>
{{ runTimeTemp.queueCapacity }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 队列元素 </template>
<template slot="label"> {{ $t('threadPoolInstance.queueCount') }} </template>
{{ runTimeTemp.queueSize }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 队列剩余容量 </template>
<template slot="label"> {{ $t('threadPoolInstance.queueRemainingCapacity') }} </template>
{{ runTimeTemp.queueRemainingCapacity }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 阻塞队列 </template>
<template slot="label"> {{ $t('threadPoolInstance.queueType') }} </template>
{{ runTimeTemp.queueType }}
</el-descriptions-item>
</el-descriptions>
<br />
<br />
<el-descriptions class="margin-top" title="其它信息" :column="3" :size="size" border>
<el-descriptions class="margin-top" :title="$t('threadPoolInstance.otherInformation')" :column="3" :size="size" border>
<el-descriptions-item>
<template slot="label"> 任务总量 </template>
<template slot="label"> {{ $t('threadPoolInstance.totalTask') }} </template>
{{ runTimeTemp.completedTaskCount }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 最后更新时间 </template>
<template slot="label"> {{ $t('threadPoolInstance.lastUpdateTime') }} </template>
{{ runTimeTemp.clientLastRefreshTime }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 拒绝策略 </template>
<template slot="label"> {{ $t('threadPool.rejectedHandler') }} </template>
{{ runTimeTemp.rejectedName }}
</el-descriptions-item>
</el-descriptions>
@ -190,11 +188,11 @@
<div slot="footer" class="dialog-footer">
<el-button @click="instanceDialogFormVisible = false">
<i class="el-icon-close" />
{{ $t('common.close') }}
</el-button>
<el-button type="primary" @click="handleInfo()">
<i class="el-icon-refresh-right" />
{{ $t('common.refresh') }}
</el-button>
</div>
</el-dialog>
@ -206,7 +204,7 @@
label-position="left"
label-width="110px"
>
<el-form-item label="核心线程" prop="coreSize">
<el-form-item :label="$t('threadPool.coreSize')" prop="coreSize">
<template>
<el-input-number
v-model="temp.coreSize"
@ -216,7 +214,7 @@
></el-input-number>
</template>
</el-form-item>
<el-form-item label="最大线程" prop="maximumSize">
<el-form-item :label="$t('threadPool.maximumSize')" prop="maximumSize">
<template>
<el-input-number
v-model="temp.maximumSize"
@ -226,13 +224,13 @@
></el-input-number>
</template>
</el-form-item>
<el-form-item label="全部修改" prop="allUpdate">
<el-form-item :label="$t('threadPoolInstance.changeAll')" prop="allUpdate">
<el-switch v-model="temp.allUpdate"></el-switch>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> 取消 </el-button>
<el-button type="primary" @click="updateData()"> </el-button>
<el-button @click="dialogFormVisible = false"> {{ $t('common.cancel') }} </el-button>
<el-button type="primary" @click="updateData()"> {{$t('common.confirm')}} </el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="dialogPluginVisible" title="Reading statistics">
@ -352,11 +350,11 @@ export default {
},
fetchData() {
if (!this.listQuery.tenantId) {
this.$message.warning('租户不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('tenantManage.tenant') }));
return;
}
if (!this.listQuery.itemId) {
this.$message.warning('项目不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('projectManage.item') }));
return;
}
this.listLoading = true;
@ -474,7 +472,7 @@ export default {
if (valid) {
if (parseInt(this.temp.maximumSize) < parseInt(this.temp.coreSize)) {
this.$message({
message: '最大线程必须大于等于核心线程',
message: this.$t('threadPool.threadsNumErrorTip'),
type: 'warning',
});
return;
@ -482,7 +480,7 @@ export default {
const clientAddressList = [];
const tempData = {
corePoolSize: this.temp.coreSize,
itemId: this.temp.itemId,
temId: this.temp.itemId,
tenantId: this.temp.tenantId,
maximumPoolSize: this.temp.maximumSize,
keepAliveTime: this.temp.keepAliveTime,
@ -520,14 +518,14 @@ export default {
})
.catch((error) => {
console.log(error);
this.$message.error('查询失败,请尝试刷新页面');
this.$message.error(this.$t('message.queryFailure'));
});
},
openDelConfirm(name) {
return this.$confirm(`此操作将删除 ${name}, 是否继续?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
return this.$confirm(this.$t('message.deleteMessage', { name }), this.$t('common.hint'), {
confirmButtonText: this.$t('common.ok'),
cancelButtonText: this.$t('common.cancel'),
type: 'warning',
});
},
@ -634,7 +632,7 @@ export default {
})
.catch((error) => {
console.log(error);
this.$message.error('查询失败,请尝试刷新页面');
this.$message.error(this.$t('message.queryFailure'));
});
},
},

@ -3,7 +3,7 @@
<div class="filter-container">
<el-select
v-model="listQuery.tenantId"
placeholder="租户(必填)"
:placeholder="$t('tenantManage.tenantRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -18,7 +18,7 @@
</el-select>
<el-select
v-model="listQuery.itemId"
placeholder="项目(必填)"
:placeholder="$t('projectManage.itemRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -38,7 +38,7 @@
icon="el-icon-search"
@click="fetchData"
>
搜索
{{ $t('common.query') }}
</el-button>
</div>
<el-table
@ -50,53 +50,53 @@
max-height="714"
highlight-current-row
>
<el-table-column label="序号" fixed width="95">
<el-table-column :label="$t('common.num')" fixed width="95">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="实例标识" width="260">
<el-table-column :label="$t('threadPoolInstance.instanceID')" width="260">
<template slot-scope="scope">
<el-link type="primary" :underline="false">{{ scope.row.identify }}</el-link>
</template>
</el-table-column>
<el-table-column label="Active" width="120">
<el-table-column :label="$t('threadPoolInstance.active')" width="120">
<template slot-scope="scope">
<el-tag :type="scope.row.active | statusFilter">
{{ scope.row.active }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="核心线程" width="120">
<el-table-column :label="$t('threadPool.coreSize')" width="120">
<template slot-scope="scope">
<el-link type="success" :underline="false">{{ scope.row.coreSize }}</el-link>
</template>
</el-table-column>
<el-table-column label="最大线程" width="120">
<el-table-column :label="$t('threadPool.maximumSize')" width="120">
<template slot-scope="scope">
<el-link type="danger" :underline="false">{{ scope.row.maximumSize }}</el-link>
</template>
</el-table-column>
<el-table-column label="队列类型" width="260">
<el-table-column :label="$t('threadPool.queueType')" width="260">
<template slot-scope="scope">{{ scope.row.queueType }}</template>
</el-table-column>
<el-table-column label="队列容量" width="160">
<el-table-column :label="$t('threadPool.queueCapacity')" width="160">
<template slot-scope="scope">{{ scope.row.queueCapacity }}</template>
</el-table-column>
<el-table-column label="拒绝策略" width="260">
<el-table-column :label="$t('threadPool.rejectedHandler')" width="260">
<template slot-scope="scope">{{ scope.row.rejectedName }}</template>
</el-table-column>
<el-table-column label="空闲回收" width="100">
<el-table-column :label="$t('threadPool.keepAliveTime')" width="100">
<template slot-scope="scope">{{ scope.row.keepAliveTime }}</template>
</el-table-column>
<el-table-column
label="操作"
:label="$t('common.operation')"
width="90"
align="center"
fixed="right"
class-name="small-padding fixed-width"
>
<template slot-scope="{ row }">
<el-button type="text" size="small" @click="handleInfo(row)"> </el-button>
<el-button type="text" size="small" @click="handleUpdate(row)"> </el-button>
<el-button type="text" size="small" @click="handleInfo(row)"> {{ $t('common.detail') }} </el-button>
<el-button type="text" size="small" @click="handleUpdate(row)"> {{ $t('common.edit') }} </el-button>
</template>
</el-table-column>
</el-table>
@ -106,81 +106,81 @@
width="1000px"
>
<template>
<el-descriptions class="margin-top" title="负载信息" :column="3" :size="size" border>
<el-descriptions class="margin-top" :title="$t('threadPoolInstance.LoadInformation')" :column="3" :size="size" border>
<el-descriptions-item>
<template slot="label"> 当前负载 </template>
<template slot="label"> {{ $t('threadPoolInstance.CurrentLoad') }} </template>
{{ runTimeTemp.currentLoad }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 峰值负载 </template>
<template slot="label"> {{ $t('threadPoolInstance.PeakLoad') }} </template>
{{ runTimeTemp.peakLoad }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 剩余内存 </template>
<template slot="label"> {{ $t('threadPoolInstance.RemainingMemory') }} </template>
{{ runTimeTemp.freeMemory }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 内存占比 </template>
<template slot="label"> {{ $t('threadPoolInstance.MemoryRatio') }} </template>
{{ runTimeTemp.memoryProportion }}
</el-descriptions-item>
</el-descriptions>
<br />
<br />
<el-descriptions class="margin-top" title="线程信息" :column="3" :size="size" border>
<el-descriptions class="margin-top" :title="$t('threadPoolInstance.threadInformation')" :column="3" :size="size" border>
<el-descriptions-item>
<template slot="label"> 核心线程 </template>
<template slot="label"> {{ $t('threadPool.coreSize') }} </template>
{{ runTimeTemp.coreSize }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 当前线程 </template>
<template slot="label"> {{ $t('threadPoolInstance.currentSize') }} </template>
{{ runTimeTemp.poolSize }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 最大线程 </template>
<template slot="label"> {{ $t('threadPool.maximumSize') }} </template>
{{ runTimeTemp.maximumSize }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 活跃线程 </template>
<template slot="label"> {{ $t('threadPoolInstance.activeSize') }} </template>
{{ runTimeTemp.activeSize }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 同存最大线程 </template>
<template slot="label"> {{ $t('threadPoolInstance.largestSize') }} </template>
{{ runTimeTemp.largestPoolSize }}
</el-descriptions-item>
</el-descriptions>
<br />
<br />
<el-descriptions class="margin-top" title="队列信息" :column="3" :size="size" border>
<el-descriptions class="margin-top" :title="$t('threadPoolInstance.queueInformation')" :column="3" :size="size" border>
<el-descriptions-item>
<template slot="label"> 队列容量 </template>
<template slot="label"> {{ $t('threadPool.queueCapacity') }} </template>
{{ runTimeTemp.queueCapacity }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 队列元素 </template>
<template slot="label"> {{ $t('threadPoolInstance.queueCount') }} </template>
{{ runTimeTemp.queueSize }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 队列剩余容量 </template>
<template slot="label"> {{ $t('threadPoolInstance.queueRemainingCapacity') }} </template>
{{ runTimeTemp.queueRemainingCapacity }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 阻塞队列 </template>
<template slot="label"> {{ $t('threadPoolInstance.queueType') }} </template>
{{ runTimeTemp.queueType }}
</el-descriptions-item>
</el-descriptions>
<br />
<br />
<el-descriptions class="margin-top" title="其它信息" :column="3" :size="size" border>
<el-descriptions class="margin-top" :title="$t('threadPoolInstance.otherInformation')" :column="3" :size="size" border>
<el-descriptions-item>
<template slot="label"> 任务总量 </template>
<template slot="label"> {{ $t('threadPoolInstance.totalTask') }} </template>
{{ runTimeTemp.completedTaskCount }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 最后更新时间 </template>
<template slot="label"> {{ $t('threadPoolInstance.lastUpdateTime') }} </template>
{{ runTimeTemp.clientLastRefreshTime }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 拒绝策略 </template>
<template slot="label"> {{ $t('threadPool.rejectedHandler') }} </template>
{{ runTimeTemp.rejectedName }}
</el-descriptions-item>
</el-descriptions>
@ -188,11 +188,11 @@
<div slot="footer" class="dialog-footer">
<el-button @click="instanceDialogFormVisible = false">
<i class="el-icon-close" />
{{ $t('common.close') }}
</el-button>
<el-button type="primary" @click="handleInfo()">
<i class="el-icon-refresh-right" />
{{ $t('common.refresh') }}
</el-button>
</div>
</el-dialog>
@ -204,7 +204,7 @@
label-position="left"
label-width="110px"
>
<el-form-item label="核心线程" prop="coreSize">
<el-form-item :label="$t('threadPool.coreSize')" prop="coreSize">
<template>
<el-input-number
v-model="temp.coreSize"
@ -214,7 +214,7 @@
></el-input-number>
</template>
</el-form-item>
<el-form-item label="最大线程" prop="maximumSize">
<el-form-item :label="$t('threadPool.maximumSize')" prop="maximumSize">
<template>
<el-input-number
v-model="temp.maximumSize"
@ -224,7 +224,7 @@
></el-input-number>
</template>
</el-form-item>
<el-form-item label="空闲回收时间" prop="keepAliveTime">
<el-form-item :label="$t('threadPool.keepAliveTime')" prop="keepAliveTime">
<template>
<el-input-number
v-model="temp.keepAliveTime"
@ -234,13 +234,13 @@
></el-input-number>
</template>
</el-form-item>
<el-form-item label="全部修改" prop="allUpdate">
<el-form-item :label="$t('threadPoolInstance.changeAll')" prop="allUpdate">
<el-switch v-model="temp.allUpdate"></el-switch>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> 取消 </el-button>
<el-button type="primary" @click="updateData()"> </el-button>
<el-button @click="dialogFormVisible = false"> {{ $t('common.cancel') }} </el-button>
<el-button type="primary" @click="updateData()"> {{$t('common.confirm')}} </el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="dialogPluginVisible" title="Reading statistics">
@ -272,7 +272,7 @@ export default {
UAT: 'warning',
PROD: 'danger',
};
return statusMap[status];
return statusMap[status]
},
},
data() {
@ -360,11 +360,11 @@ export default {
},
fetchData() {
if (!this.listQuery.tenantId) {
this.$message.warning('租户不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('tenantManage.tenant') }));
return;
}
if (!this.listQuery.itemId) {
this.$message.warning('项目不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('projectManage.item') }));
return;
}
this.listLoading = true;
@ -482,7 +482,7 @@ export default {
if (valid) {
if (parseInt(this.temp.maximumSize) < parseInt(this.temp.coreSize)) {
this.$message({
message: '最大线程必须大于等于核心线程',
message: this.$t('threadPool.threadsNumErrorTip'),
type: 'warning',
});
return;
@ -528,14 +528,14 @@ export default {
})
.catch((error) => {
console.log(error);
this.$message.error('查询失败,请尝试刷新页面');
this.$message.error(this.$t('message.queryFailure'));
});
},
openDelConfirm(name) {
return this.$confirm(`此操作将删除 ${name}, 是否继续?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
return this.$confirm(this.$t('message.deleteMessage', { name }), this.$t('common.hint'), {
confirmButtonText: this.$t('common.ok'),
cancelButtonText: this.$t('common.cancel'),
type: 'warning',
});
},
@ -642,7 +642,7 @@ export default {
})
.catch((error) => {
console.log(error);
this.$message.error('查询失败,请尝试刷新页面');
this.$message.error(this.$t('message.queryFailure'));
});
},
},

@ -3,7 +3,7 @@
<div class="filter-container">
<el-select
v-model="listQuery.tenantId"
placeholder="租户(必填)"
:placeholder="$t('tenantManage.tenantRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -18,7 +18,7 @@
</el-select>
<el-select
v-model="listQuery.itemId"
placeholder="项目(必填)"
:placeholder="$t('projectManage.itemRequired')"
style="width: 220px"
filterable
class="filter-item"
@ -38,7 +38,7 @@
icon="el-icon-search"
@click="fetchData"
>
搜索
{{ $t('common.query') }}
</el-button>
</div>
<el-table
@ -50,55 +50,53 @@
max-height="714"
highlight-current-row
>
<el-table-column label="序号" fixed width="95">
<el-table-column :label="$t('common.num')" fixed width="95">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="实例标识" width="260">
<el-table-column :label="$t('threadPoolInstance.instanceID')" width="260">
<template slot-scope="scope">
<el-link type="primary" :underline="false">{{ scope.row.identify }}</el-link>
</template>
</el-table-column>
<el-table-column label="Active" width="120">
<el-table-column :label="$t('threadPoolInstance.active')" width="120">
<template slot-scope="scope">
<el-tag :type="scope.row.active | statusFilter">
{{ scope.row.active }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="核心线程" width="120">
<el-table-column :label="$t('threadPool.coreSize')" width="120">
<template slot-scope="scope">
<el-link type="success" :underline="false">{{ scope.row.coreSize }}</el-link>
</template>
</el-table-column>
<el-table-column label="最大线程" width="120">
<el-table-column :label="$t('threadPool.maximumSize')" width="120">
<template slot-scope="scope">
<el-link type="danger" :underline="false">{{ scope.row.maximumSize }}</el-link>
</template>
</el-table-column>
<el-table-column label="队列类型" width="260">
<el-table-column :label="$t('threadPool.queueType')" width="260">
<template slot-scope="scope">{{ scope.row.queueType }}</template>
</el-table-column>
<el-table-column label="队列容量" width="160">
<el-table-column :label="$t('threadPool.queueCapacity')" width="160">
<template slot-scope="scope">{{ scope.row.queueCapacity }}</template>
</el-table-column>
<el-table-column label="拒绝策略" width="260">
<el-table-column :label="$t('threadPool.rejectedHandler')" width="260">
<template slot-scope="scope">{{ scope.row.rejectedName }}</template>
</el-table-column>
<el-table-column label="空闲回收" width="100">
<el-table-column :label="$t('threadPool.keepAliveTime')" width="100">
<template slot-scope="scope">{{ scope.row.keepAliveTime }}</template>
</el-table-column>
<el-table-column
label="操作"
:label="$t('common.operation')"
width="90"
align="center"
fixed="right"
class-name="small-padding fixed-width"
>
<template slot-scope="{ row }">
<el-button type="text" size="small" @click="handleInfo(row)"> </el-button>
<el-button type="text" :disabled="isEditDisabled" size="small" @click="handleUpdate(row)">
编辑
</el-button>
<el-button type="text" size="small" @click="handleInfo(row)"> {{ $t('common.detail') }} </el-button>
<el-button type="text" :disabled="isEditDisabled" size="small" @click="handleUpdate(row)"> {{ $t('common.edit') }} </el-button>
</template>
</el-table-column>
</el-table>
@ -108,81 +106,81 @@
width="1000px"
>
<template>
<el-descriptions class="margin-top" title="负载信息" :column="3" :size="size" border>
<el-descriptions class="margin-top" :title="$t('threadPoolInstance.LoadInformation')" :column="3" :size="size" border>
<el-descriptions-item>
<template slot="label"> 当前负载 </template>
<template slot="label"> {{ $t('threadPoolInstance.CurrentLoad') }} </template>
{{ runTimeTemp.currentLoad }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 峰值负载 </template>
<template slot="label"> {{ $t('threadPoolInstance.PeakLoad') }} </template>
{{ runTimeTemp.peakLoad }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 剩余内存 </template>
<template slot="label"> {{ $t('threadPoolInstance.RemainingMemory') }} </template>
{{ runTimeTemp.freeMemory }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 内存占比 </template>
<template slot="label"> {{ $t('threadPoolInstance.MemoryRatio') }} </template>
{{ runTimeTemp.memoryProportion }}
</el-descriptions-item>
</el-descriptions>
<br />
<br />
<el-descriptions class="margin-top" title="线程信息" :column="3" :size="size" border>
<el-descriptions class="margin-top" :title="$t('threadPoolInstance.threadInformation')" :column="3" :size="size" border>
<el-descriptions-item>
<template slot="label"> 核心线程 </template>
<template slot="label"> {{ $t('threadPool.coreSize') }} </template>
{{ runTimeTemp.coreSize }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 当前线程 </template>
<template slot="label"> {{ $t('threadPoolInstance.currentSize') }} </template>
{{ runTimeTemp.poolSize }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 最大线程 </template>
<template slot="label"> {{ $t('threadPool.maximumSize') }} </template>
{{ runTimeTemp.maximumSize }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 活跃线程 </template>
<template slot="label"> {{ $t('threadPoolInstance.activeSize') }} </template>
{{ runTimeTemp.activeSize }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 同存最大线程 </template>
<template slot="label"> {{ $t('threadPoolInstance.largestSize') }} </template>
{{ runTimeTemp.largestPoolSize }}
</el-descriptions-item>
</el-descriptions>
<br />
<br />
<el-descriptions class="margin-top" title="队列信息" :column="3" :size="size" border>
<el-descriptions class="margin-top" :title="$t('threadPoolInstance.queueInformation')" :column="3" :size="size" border>
<el-descriptions-item>
<template slot="label"> 队列容量 </template>
<template slot="label"> {{ $t('threadPool.queueCapacity') }} </template>
{{ runTimeTemp.queueCapacity }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 队列元素 </template>
<template slot="label"> {{ $t('threadPoolInstance.queueCount') }} </template>
{{ runTimeTemp.queueSize }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 队列剩余容量 </template>
<template slot="label"> {{ $t('threadPoolInstance.queueRemainingCapacity') }} </template>
{{ runTimeTemp.queueRemainingCapacity }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 阻塞队列 </template>
<template slot="label"> {{ $t('threadPoolInstance.queueType') }} </template>
{{ runTimeTemp.queueType }}
</el-descriptions-item>
</el-descriptions>
<br />
<br />
<el-descriptions class="margin-top" title="其它信息" :column="3" :size="size" border>
<el-descriptions class="margin-top" :title="$t('threadPoolInstance.otherInformation')" :column="3" :size="size" border>
<el-descriptions-item>
<template slot="label"> 任务总量 </template>
<template slot="label"> {{ $t('threadPoolInstance.totalTask') }} </template>
{{ runTimeTemp.completedTaskCount }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 最后更新时间 </template>
<template slot="label"> {{ $t('threadPoolInstance.lastUpdateTime') }} </template>
{{ runTimeTemp.clientLastRefreshTime }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"> 拒绝策略 </template>
<template slot="label"> {{ $t('threadPool.rejectedHandler') }} </template>
{{ runTimeTemp.rejectedName }}
</el-descriptions-item>
</el-descriptions>
@ -190,11 +188,11 @@
<div slot="footer" class="dialog-footer">
<el-button @click="instanceDialogFormVisible = false">
<i class="el-icon-close" />
{{ $t('common.close') }}
</el-button>
<el-button type="primary" @click="handleInfo()">
<i class="el-icon-refresh-right" />
{{ $t('common.refresh') }}
</el-button>
</div>
</el-dialog>
@ -206,7 +204,7 @@
label-position="left"
label-width="110px"
>
<el-form-item label="核心线程" prop="coreSize">
<el-form-item :label="$t('threadPool.coreSize')" prop="coreSize">
<template>
<el-input-number
v-model="temp.coreSize"
@ -216,7 +214,7 @@
></el-input-number>
</template>
</el-form-item>
<el-form-item label="最大线程" prop="maximumSize">
<el-form-item :label="$t('threadPool.maximumSize')" prop="maximumSize">
<template>
<el-input-number
v-model="temp.maximumSize"
@ -226,7 +224,7 @@
></el-input-number>
</template>
</el-form-item>
<el-form-item label="空闲回收时间" prop="keepAliveTime">
<el-form-item :label="$t('threadPool.keepAliveTime')" prop="keepAliveTime">
<template>
<el-input-number
v-model="temp.keepAliveTime"
@ -236,13 +234,13 @@
></el-input-number>
</template>
</el-form-item>
<el-form-item label="全部修改" prop="allUpdate">
<el-form-item :label="$t('threadPoolInstance.changeAll')" prop="allUpdate">
<el-switch v-model="temp.allUpdate"></el-switch>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> 取消 </el-button>
<el-button type="primary" @click="updateData()"> </el-button>
<el-button @click="dialogFormVisible = false"> {{ $t('common.cancel') }} </el-button>
<el-button type="primary" @click="updateData()"> {{$t('common.confirm')}} </el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="dialogPluginVisible" title="Reading statistics">
@ -362,11 +360,11 @@ export default {
},
fetchData() {
if (!this.listQuery.tenantId) {
this.$message.warning('租户不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('tenantManage.tenant') }));
return;
}
if (!this.listQuery.itemId) {
this.$message.warning('项目不允许为空');
this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('projectManage.item') }));
return;
}
this.listLoading = true;
@ -484,7 +482,7 @@ export default {
if (valid) {
if (parseInt(this.temp.maximumSize) < parseInt(this.temp.coreSize)) {
this.$message({
message: '最大线程必须大于等于核心线程',
message: this.$t('threadPool.threadsNumErrorTip'),
type: 'warning',
});
return;
@ -492,7 +490,7 @@ export default {
const clientAddressList = [];
const tempData = {
corePoolSize: this.temp.coreSize,
temId: this.temp.itemId,
itemId: this.temp.itemId,
tenantId: this.temp.tenantId,
maximumPoolSize: this.temp.maximumSize,
keepAliveTime: this.temp.keepAliveTime,
@ -530,14 +528,14 @@ export default {
})
.catch((error) => {
console.log(error);
this.$message.error('查询失败,请尝试刷新页面');
this.$message.error(this.$t('message.queryFailure'));
});
},
openDelConfirm(name) {
return this.$confirm(`此操作将删除 ${name}, 是否继续?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
return this.$confirm(this.$t('message.deleteMessage', { name }), this.$t('common.hint'), {
confirmButtonText: this.$t('common.ok'),
cancelButtonText: this.$t('common.cancel'),
type: 'warning',
});
},
@ -644,7 +642,7 @@ export default {
})
.catch((error) => {
console.log(error);
this.$message.error('查询失败,请尝试刷新页面');
this.$message.error(this.$t('message.queryFailure'));
});
},
},

@ -252,6 +252,8 @@
v-model="temp.executeTimeOut"
:placeholder="$t('threadPool.executionTimeoutUnit')"
controls-position="right"
:min="-1"
:max="999999"
/>
</el-form-item>
<el-form-item :label="$t('threadPool.keepAliveTime')" prop="keepAliveTime">

@ -3,7 +3,7 @@
<div class="filter-container">
<el-input
v-model="listQuery.userName"
placeholder="用户名"
:placeholder="$t('userAuthority.userName')"
style="width: 200px"
class="filter-item"
/>
@ -14,7 +14,7 @@
icon="el-icon-search"
@click="fetchData"
>
搜索
{{ $t('common.query') }}
</el-button>
<el-button
class="filter-item"
@ -23,7 +23,7 @@
icon="el-icon-edit"
@click="handleCreate"
>
添加
{{ $t('common.insert') }}
</el-button>
</div>
<el-table
@ -34,28 +34,28 @@
border
highlight-current-row
>
<el-table-column label="序号" width="95">
<el-table-column fixed :label="$t('common.num')" width="95">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="用户名">
<el-table-column :label="$t('userAuthority.userName')">
<template slot-scope="scope">{{ scope.row.userName }}</template>
</el-table-column>
<el-table-column label="角色">
<el-table-column :label="$t('userAuthority.role')">
<template slot-scope="scope">
<span>
<el-tag :type="scope.row.role | statusFilter">{{ scope.row.role }}</el-tag>
</span>
</template>
</el-table-column>
<el-table-column label="创建时间">
<el-table-column :label="$t('common.createTime')">
<template slot-scope="scope">{{ scope.row.gmtCreate }}</template>
</el-table-column>
<el-table-column label="修改时间">
<el-table-column :label="$t('common.updateTime')">
<template slot-scope="scope">{{ scope.row.gmtModified }}</template>
</el-table-column>
<el-table-column label="操作" class-name="small-padding fixed-width">
<el-table-column :label="$t('common.operation')" class-name="small-padding fixed-width">
<template slot-scope="{ row }">
<el-button type="text" size="small" @click="handleUpdate(row)"> </el-button>
<el-button type="text" size="small" @click="handleUpdate(row)"> {{ $t('common.edit') }} </el-button>
<el-button
v-if="row.status !== 'deleted'"
size="small"
@ -63,7 +63,7 @@
:disabled="row.userName !== 'admin' ? false : true"
@click="handleDelete(row)"
>
删除
{{ $t('common.delete') }}
</el-button>
</template>
</el-table-column>
@ -85,38 +85,38 @@
label-width="100px"
style="width: 400px; margin-left: 50px"
>
<el-form-item label="用户名" prop="userName">
<el-form-item :label="$t('userAuthority.userName')" prop="userName">
<el-input
v-model="temp.userName"
:disabled="temp.userName !== 'admin' ? false : true"
placeholder="用户名"
:placeholder="$t('userAuthority.userName')"
/>
</el-form-item>
<el-form-item label="密码" prop="password">
<el-input v-model="temp.password" placeholder="密码" minlength="6" />
<el-form-item :label="$t('userAuthority.password')" prop="password">
<el-input v-model="temp.password" :placeholder="$t('userAuthority.password')" minlength="6" />
</el-form-item>
<el-form-item label="角色" prop="role">
<el-form-item :label="$t('userAuthority.role')" prop="role">
<el-select
v-model="temp.role"
class="filter-item"
:disabled="temp.userName !== 'admin' ? false : true"
placeholder="角色类型"
:placeholder="$t('userAuthority.role')"
>
<el-option v-for="item in roles" :key="item.key" :label="item" :value="item" />
</el-select>
</el-form-item>
<el-form-item label="租户" prop="tenants" v-if="temp.userName !== 'admin' ? true : false">
<el-form-item :label="$t('tenantManage.tenant')" prop="tenants" v-if="temp.userName !== 'admin' ? true : false">
<el-checkbox-group v-model="temp.tempResources">
<el-checkbox v-for="tenantKey in tenantList" :label="tenantKey" :key="tenantKey">{{
tenantKey
}}</el-checkbox>
tenantKey
}}</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> 取消 </el-button>
<el-button @click="dialogFormVisible = false"> {{ $t('common.cancel') }} </el-button>
<el-button type="primary" @click="dialogStatus === 'create' ? createData() : updateData()">
确定
{{ $t('common.confirm') }}
</el-button>
</div>
</el-dialog>
@ -168,10 +168,10 @@ export default {
create: 'Create',
},
rules: {
role: [{ required: true, message: 'role is required', trigger: 'change' }],
userName: [{ required: true, message: 'userName is required', trigger: 'blur' }],
tenants: [{ required: false, message: 'tenants is required', trigger: 'blur' }],
password: [{ required: false, message: 'password is required', trigger: 'blur' }],
role: [{ required: true, message: this.$t('message.requiredError'), trigger: 'change' }],
userName: [{ required: true, message: this.$t('message.requiredError'), trigger: 'blur' }],
tenants: [{ required: false, message: this.$t('message.requiredError'), trigger: 'blur' }],
password: [{ required: false, message: this.$t('message.requiredError'), trigger: 'blur' }],
},
temp: {
id: undefined,
@ -182,7 +182,14 @@ export default {
resources: [],
},
resetTemp() {
this.temp = this.$options.data().temp;
this.temp = {
id: undefined,
role: '',
userName: '',
password: '',
permission: '',
resources: [],
}
},
};
},
@ -222,8 +229,8 @@ export default {
this.fetchData();
this.dialogFormVisible = false;
this.$notify({
title: 'Success',
message: 'Created Successfully',
title: this.$t('message.success'),
message: this.$t('message.createdSuccess'),
type: 'success',
duration: 2000,
});
@ -256,8 +263,8 @@ export default {
this.fetchData();
this.dialogFormVisible = false;
this.$notify({
title: 'Success',
message: 'Update Successfully',
title: this.$t('message.success'),
message: this.$t('message.updateSuccess'),
type: 'success',
duration: 2000,
});
@ -266,9 +273,9 @@ export default {
});
},
openDelConfirm(name) {
return this.$confirm(`此操作将删除 ${name}, 是否继续?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
return this.$confirm(this.$t('message.deleteMessage', { name }), this.$t('common.hint'), {
confirmButtonText: this.$t('common.ok'),
cancelButtonText: this.$t('common.cancel'),
type: 'warning',
});
},
@ -277,8 +284,8 @@ export default {
user.deleteUser(row.userName).then((response) => {
this.fetchData();
this.$notify({
title: 'Success',
message: 'Delete Successfully',
title: this.$t('message.success'),
message: this.$t('message.deleteSuccess'),
type: 'success',
duration: 2000,
});

@ -3,7 +3,7 @@
<div class="filter-container">
<el-select
v-model="listQuery.tenantId"
placeholder="租户"
:placeholder="$t('tenantManage.tenant')"
style="width: 220px"
filterable
class="filter-item"
@ -18,7 +18,7 @@
</el-select>
<el-select
v-model="listQuery.itemId"
placeholder="项目"
:placeholder="$t('projectManage.item')"
style="width: 220px"
filterable
class="filter-item"
@ -38,7 +38,7 @@
icon="el-icon-search"
@click="fetchData"
>
搜索
{{ $t('common.query') }}
</el-button>
<el-button
v-waves
@ -48,7 +48,7 @@
icon="el-icon-refresh"
@click="refreshData"
>
重置
{{ $t('common.reset') }}
</el-button>
</div>
<el-table
@ -59,54 +59,54 @@
fit
highlight-current-row
>
<el-table-column fixed label="序号" width="80">
<el-table-column fixed :label="$t('common.num')" width="80">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="项目" width="260">
<el-table-column :label="$t('projectManage.item')" width="260">
<template slot-scope="scope">{{ scope.row.itemId }}</template>
</el-table-column>
<el-table-column label="线程池" width="260">
<el-table-column :label="$t('threadPool.threadPool')" width="260">
<template slot-scope="scope">{{ scope.row.tpId || '-' }}</template>
</el-table-column>
<el-table-column label="实例标识" width="280">
<el-table-column :label="$t('threadPoolInstance.instanceID')" width="280">
<template slot-scope="scope">
<el-link type="primary" :underline="false">{{ scope.row.identify || '-' }}</el-link>
</template>
</el-table-column>
<el-table-column label="变更类型" width="100">
<template slot-scope="scope"> {{ scope.row.type | modifyTypeFilter }} </template>
<el-table-column :label="$t('threadPoolAudit.changeType')" width="100">
<template slot-scope="scope"> {{ scope.row.type | modifyTypeFilter(that) }} </template>
</el-table-column>
<el-table-column label="全部修改" width="100">
<el-table-column :label="$t('threadPoolInstance.changeAll')" width="100">
<template slot-scope="scope">
<el-tag :type="scope.row.modifyAll | modifyAllTagFilter">
{{ scope.row.modifyAll | modifyAllFilter }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="修改人" width="120">
<el-table-column :label="$t('threadPoolAudit.modifiedBy')" width="120">
<template slot-scope="scope"> {{ scope.row.modifyUser }}</template>
</el-table-column>
<el-table-column label="审核状态" width="110">
<template slot-scope="scope">{{ scope.row.verifyStatus | verifyStatusFilter }}</template>
<el-table-column :label="$t('threadPoolAudit.auditStatus')" width="110">
<template slot-scope="scope">{{ scope.row.verifyStatus | verifyStatusFilter(that) }}</template>
</el-table-column>
<el-table-column label="审核人" width="120">
<el-table-column :label="$t('threadPoolAudit.reviewer')" width="120">
<template slot-scope="scope">{{ scope.row.verifyUser }}</template>
</el-table-column>
<el-table-column label="提交时间" width="180">
<el-table-column :label="$t('threadPoolAudit.submissionTime')" width="180">
<template slot-scope="scope">{{ scope.row.gmtCreate }}</template>
</el-table-column>
<el-table-column label="审核时间" width="180">
<el-table-column :label="$t('threadPoolAudit.auditTime')" width="180">
<template slot-scope="scope">{{ scope.row.gmtVerify }}</template>
</el-table-column>
<el-table-column
label="操作"
:label="$t('common.operation')"
fixed="right"
width="90"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="{ row }">
<el-button type="text" size="small" @click="applicationDetail(row)"> </el-button>
<el-button type="text" size="small" @click="applicationDetail(row)"> {{$t('common.audit')}} </el-button>
</template>
</el-table-column>
</el-table>
@ -126,38 +126,38 @@
:model="temp"
label-width="80px"
>
<el-form-item label="核心线程" prop="corePoolSize">
<el-form-item :label="$t('threadPool.coreSize')" prop="corePoolSize">
{{ detailInfo.corePoolSize }}
</el-form-item>
<el-form-item label="最大线程" prop="maxSize">
<el-form-item :label="$t('threadPool.maximumSize')" prop="maxSize">
{{ detailInfo.maximumPoolSize }}
</el-form-item>
<el-form-item label="队列类型" prop="queueType">
<el-form-item :label="$t('threadPool.queueType')" prop="queueType">
{{ detailInfo.queueType | queueTypeFilter }}
</el-form-item>
<el-form-item label="队列容量" prop="capacity">
<el-form-item :label="$t('threadPool.queueCapacity')" prop="capacity">
{{ detailInfo.capacity }}
</el-form-item>
<el-form-item label="执行超时" prop="executeTimeOut">
<el-form-item :label="$t('threadPool.executionTimeout')" prop="executeTimeOut">
{{ detailInfo.executeTimeOut }}
</el-form-item>
<el-form-item label="空闲回收" prop="keepAliveTime">
<el-form-item :label="$t('threadPool.keepAliveTime')" prop="keepAliveTime">
{{ detailInfo.keepAliveTime }}
</el-form-item>
<el-form-item label="是否超时" prop="allowCoreThreadTimeOut">
{{ detailInfo.allowCoreThreadTimeOut | enableFilter }}
<el-form-item :label="$t('threadPool.isTimeout')" prop="allowCoreThreadTimeOut">
{{ detailInfo.allowCoreThreadTimeOut | enableFilter(that) }}
</el-form-item>
<el-form-item label="是否报警" prop="isAlarm">
{{ detailInfo.isAlarm | enableFilter }}
<el-form-item :label="$t('threadPool.isAlarm')" prop="isAlarm">
{{ detailInfo.isAlarm | enableFilter(that) }}
</el-form-item>
<el-form-item label="活跃报警" prop="livenessAlarm">
<el-form-item :label="$t('threadPool.activeAlarm')" prop="livenessAlarm">
{{ detailInfo.livenessAlarm }}
</el-form-item>
<el-form-item label="容量报警" prop="capacityAlarm">
<el-form-item :label="$t('threadPool.capacityAlarm')" prop="capacityAlarm">
{{ detailInfo.capacityAlarm }}
</el-form-item>
<el-form-item label="拒绝策略" prop="rejectedType">
<el-form-item :label="$t('threadPool.rejectedHandler')" prop="rejectedType">
{{ detailInfo.rejectedType | rejectedTypeFilter }}
</el-form-item>
<!-- <el-form-item v-if="isRejectShow" label="自定义拒绝策略" prop="customRejectedType">
@ -170,14 +170,14 @@
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :disabled="detailInfo.verifyStatus != 0" @click="reject(detailInfo)">
审核拒绝
{{ $t('threadPoolAudit.auditRejection') }}
</el-button>
<el-button
:disabled="detailInfo.verifyStatus != 0"
type="primary"
@click="accept(detailInfo)"
>
审核通过
{{ $t('threadPoolAudit.auditApproved') }}
</el-button>
</div>
</el-dialog>
@ -190,44 +190,44 @@
:model="temp"
label-width="80px"
>
<el-form-item label="核心线程" prop="corePoolSize">
<el-form-item :label="$t('threadPool.coreSize')" prop="corePoolSize">
{{ detailInfo.corePoolSize }}
</el-form-item>
<el-form-item label="最大线程" prop="maximumPoolSize">
<el-form-item :label="$t('threadPool.maximumSize')" prop="maximumPoolSize">
{{ detailInfo.maximumPoolSize }}
</el-form-item>
<el-form-item label="队列类型" prop="queueType">
<el-form-item :label="$t('threadPool.queueType')" prop="queueType">
{{ detailInfo.queueType | queueTypeFilter }}
</el-form-item>
<el-form-item label="队列容量" prop="capacity">
<el-form-item :label="$t('threadPool.queueCapacity')" prop="capacity">
{{ detailInfo.capacity }}
</el-form-item>
<el-form-item label="是否超时" prop="isAlarm">
{{ detailInfo.allowCoreThreadTimeOut | enableFilter }}
<el-form-item :label="$t('threadPoolInstance.allowCoreThreadTimeOut')" prop="isAlarm">
{{ detailInfo.allowCoreThreadTimeOut | enableFilter(that) }}
</el-form-item>
<el-form-item label="执行超时" prop="executeTimeOut">
<el-form-item :label="$t('threadPool.executionTimeout')" prop="executeTimeOut">
{{ detailInfo.executeTimeOut }}
</el-form-item>
<el-form-item label="空闲回收" prop="keepAliveTime">
<el-form-item :label="$t('threadPool.keepAliveTime')" prop="keepAliveTime">
{{ detailInfo.keepAliveTime }}
</el-form-item>
<el-form-item label="拒绝策略" prop="rejectedType">
<el-form-item :label="$t('threadPool.rejectedHandler')" prop="rejectedType">
{{ detailInfo.rejectedType | rejectedTypeFilter }}
</el-form-item>
<el-form-item label="全部修改" prop="allUpdate">
<el-form-item :label="$t('threadPoolInstance.changeAll')" prop="allUpdate">
<el-switch v-model="detailInfo.modifyAll"> </el-switch>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :disabled="detailInfo.verifyStatus != 0" @click="reject(detailInfo)">
审核拒绝
{{ $t('threadPoolAudit.auditRejection') }}
</el-button>
<el-button
type="primary"
:disabled="detailInfo.verifyStatus != 0"
@click="accept(detailInfo)"
>
审核通过
{{ $t('threadPoolAudit.auditApproved') }}
</el-button>
</div>
</el-dialog>
@ -235,29 +235,29 @@
<!--web thread pool-->
<el-dialog :title="textMap[dialogStatus]" :visible.sync="webThreadPoolDialog">
<el-form ref="dataForm" :model="temp" label-position="left" label-width="110px">
<el-form-item label="核心线程" prop="corePoolSize">
<el-form-item :label="$t('threadPool.coreSize')" prop="corePoolSize">
{{ detailInfo.corePoolSize }}
</el-form-item>
<el-form-item label="最大线程" prop="maximumPoolSize">
<el-form-item :label="$t('threadPool.maximumSize')" prop="maximumPoolSize">
{{ detailInfo.maximumPoolSize }}
</el-form-item>
<el-form-item label="空闲回收时间" prop="keepAliveTime">
<el-form-item :label="$t('threadPool.keepAliveTime')" prop="keepAliveTime">
{{ detailInfo.keepAliveTime }}
</el-form-item>
<el-form-item label="全部修改" prop="modifyAll">
<el-form-item :label="$t('threadPoolInstance.changeAll')" prop="modifyAll">
<el-switch v-model="detailInfo.modifyAll"></el-switch>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :disabled="detailInfo.verifyStatus != 0" @click="reject(detailInfo)">
审核拒绝
{{ $t('threadPoolAudit.auditRejection') }}
</el-button>
<el-button
:disabled="detailInfo.verifyStatus != 0"
type="primary"
@click="accept(detailInfo)"
>
审核通过
{{ $t('threadPoolAudit.auditApproved') }}
</el-button>
</div>
</el-dialog>
@ -268,26 +268,26 @@
<el-form-item label="mark" prop="corePoolSize">
{{ detailInfo.mark }}
</el-form-item>
<el-form-item label="核心线程" prop="corePoolSize">
<el-form-item :label="$t('threadPool.coreSize')" prop="corePoolSize">
{{ detailInfo.corePoolSize }}
</el-form-item>
<el-form-item label="最大线程" prop="maximumPoolSize">
<el-form-item :label="$t('threadPool.maximumSize')" prop="maximumPoolSize">
{{ detailInfo.maximumPoolSize }}
</el-form-item>
<el-form-item label="全部修改" prop="allUpdate">
<el-form-item :label="$t('threadPoolInstance.changeAll')" prop="allUpdate">
<el-switch v-model="detailInfo.modifyAll"></el-switch>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :disabled="detailInfo.verifyStatus != 0" @click="reject(detailInfo)">
审核拒绝
{{ $t('threadPoolAudit.auditRejection') }}
</el-button>
<el-button
:disabled="detailInfo.verifyStatus != 0"
type="primary"
@click="accept(detailInfo)"
>
审核通过
{{ $t('threadPoolAudit.auditApproved') }}
</el-button>
</div>
</el-dialog>
@ -310,6 +310,8 @@ import * as tenantApi from '@/api/hippo4j-tenant';
import * as verifyApi from '@/api/verify';
import waves from '@/directive/waves';
import Pagination from '@/components/Pagination';
import * as threadPoolApi from '@/api/hippo4j-threadPool';
import * as threadPoolAdapterApi from '@/api/hippo4j-adapterThreadPool';
export default {
name: 'JobProject',
@ -329,11 +331,11 @@ export default {
}
return value;
},
enableFilter(type) {
enableFilter(type, that) {
if (1 == type) {
return '是';
return that.$t('common.yes');
} else if (0 == type) {
return '否';
return that.$t('common.no')
}
},
alarmFilter(type) {
@ -377,26 +379,27 @@ export default {
return 'CustomRejectedPolicy_' + type;
}
},
modifyTypeFilter(type) {
modifyTypeFilter(type, that) {
console.log(that)
if (1 == type) {
return '管理';
return that.$t('threadPoolAudit.manage')
} else if (2 == type) {
return '实例';
return that.$t('threadPoolAudit.instance');
} else if (3 == type) {
return '容器';
return that.$t('threadPoolAudit.container');
} else if (4 == type) {
return '框架';
return that.$t('threadPoolAudit.framework');
}
},
verifyStatusFilter(type) {
verifyStatusFilter(type, that) {
if (0 == type) {
return '待审核';
return that.$t('threadPoolAudit.unaudited')
} else if (1 == type) {
return '审核通过';
return that.$t('threadPoolAudit.auditApproved');
} else if (2 == type) {
return '审核拒绝';
return that.$t('threadPoolAudit.auditRejection');
} else if (3 == type) {
return '失效';
return that.$t('threadPoolAudit.expired');
}
},
modifyAllFilter(type) {
@ -463,10 +466,10 @@ export default {
size: 500,
dialogStatus: '',
textMap: {
1: '线程池管理',
2: '线程池实例',
3: '容器线程池',
4: '框架线程池',
1: this.$t('threadPoolAudit.threadPoolManage'),
2: this.$t('threadPoolAudit.threadPoolInstance'),
3: this.$t('threadPoolAudit.containerThreadPool'),
4: this.$t('threadPoolAudit.frameworkThreadPool'),
},
temp: {
id: undefined,
@ -478,6 +481,8 @@ export default {
maxSize: 8,
},
visible: true,
// filters使this$tthatfilters
that: this
};
},
created() {
@ -565,16 +570,16 @@ export default {
});
},
openAcceptConfitm() {
return this.$confirm(`此操作将接受线程池变更申请, 是否继续?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
return this.$confirm(this.$t('message.auditApprovedMessage'), this.$t('common.hint'), {
confirmButtonText: this.$t('common.ok'),
cancelButtonText: this.$t('common.cancel'),
type: 'warning',
});
},
openRejectConfirm() {
return this.$confirm(`此操作将拒绝线程池变更申请, 是否继续?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
return this.$confirm(this.$t('message.auditRejectionMessage'), this.$t('common.hint'), {
confirmButtonText: this.$t('common.ok'),
cancelButtonText: this.$t('common.cancel'),
type: 'warning',
});
},
@ -631,7 +636,7 @@ export default {
})
.catch((error) => {
console.log(error);
this.$message.error('查询失败,请尝试刷新页面');
this.$message.error(this.$t('message.queryFailure'));
});
},

Loading…
Cancel
Save