The 'thread pool instance' module is translated (#1014)

* feat: Run the report module to change internationalization

* fix: Internationalize the tenant management page

* fix: Internationalize the tenant management page

* feat: Continue to refine the 'internationalization' configuration file

* feat: The 'Tenant Management' module has been translated

* feat: Complete the text translation of the 'Project management' module

* feat: The 'Thread Pool Management' module completes internationalization

* feat: The 'Thread Pool Management' module completes internationalization

* feat: The 'thread pool instance' module is translated

Co-authored-by: 冯建军 <fengjj@data4truth.com>
pull/1018/head
FengXiaoJian 3 years ago committed by GitHub
parent 4bd1bb388e
commit 5f9f26df39
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -16,7 +16,9 @@ export default {
deleteSuccess: 'Delete Successfully', deleteSuccess: 'Delete Successfully',
deleteMessage: 'This action will delete {name}, Do you want to continue?', deleteMessage: 'This action will delete {name}, Do you want to continue?',
selectMessage: 'Please select a {target}', selectMessage: 'Please select a {target}',
NoDeletionPermissionTip: 'Contact the administrator to delete it' NoDeletionPermissionTip: 'Contact the administrator to delete it',
emptyWarning: "The '{name}' cannot be empty",
queryFailure: 'The query fails. Please refresh the page'
}, },
// 公共 // 公共
@ -27,13 +29,18 @@ export default {
create: 'Create', create: 'Create',
edit: 'Edit', edit: 'Edit',
delete: 'Delete', delete: 'Delete',
detail: 'Detail',
cancel: 'Cancel', cancel: 'Cancel',
confirm: 'Confirm', confirm: 'Confirm',
reset: 'Reset',
ok: 'Ok', ok: 'Ok',
num: 'Num', num: 'Num',
close: 'Close',
refresh: 'Refresh',
createTime: 'Create Time', createTime: 'Create Time',
updateTime: 'Update Time', updateTime: 'Update Time',
hint: 'Warning', hint: 'Warning',
info: 'Info'
}, },
// 运行报表 // 运行报表
@ -47,6 +54,7 @@ export default {
// 租户管理 // 租户管理
tenantManage: { tenantManage: {
tenant: 'Tenant', tenant: 'Tenant',
tenantRequired: 'Tenant(Required)',
tenantName: 'Tenant Name', tenantName: 'Tenant Name',
owner: 'Owner', owner: 'Owner',
tenantIntro: 'Tenant Intro' tenantIntro: 'Tenant Intro'
@ -55,6 +63,7 @@ export default {
// 项目管理 // 项目管理
projectManage: { projectManage: {
item: 'Item', item: 'Item',
itemRequired: 'Item(Required)',
itemName: 'Item Name', itemName: 'Item Name',
owner: 'Owner', owner: 'Owner',
itemIntro: 'Item Intro' itemIntro: 'Item Intro'
@ -63,6 +72,7 @@ export default {
// 线程池管理 // 线程池管理
threadPool: { threadPool: {
threadPool: 'Thread Pool', threadPool: 'Thread Pool',
threadPoolRequired: 'ThreadPool(Required)',
coreSize: 'Core Size', coreSize: 'Core Size',
maximumSize: 'Maximum Size', maximumSize: 'Maximum Size',
queueType: 'Queue Type', queueType: 'Queue Type',
@ -83,6 +93,37 @@ export default {
customRejectedHandler: 'Custom Rejected Handler', customRejectedHandler: 'Custom Rejected Handler',
customRejectedHandlerTip: 'Please enter a custom SPI Deny Policy ID', customRejectedHandlerTip: 'Please enter a custom SPI Deny Policy ID',
threadsNumErrorTip: 'The maximum thread must be greater than or equal to the core thread' threadsNumErrorTip: 'The maximum thread must be greater than or equal to the core thread'
},
// 线程池实例
threadPoolInstance: {
instanceID: 'Instance ID',
active: 'Active',
stack: 'Stack',
basicInformation: 'Basic Information',
runningState: 'Running state',
activeID: 'Active',
instanceHost: 'Instance Host',
threadPoolID: 'ThreadPool ID',
LoadInformation: 'Load Information',
CurrentLoad: 'Current Load',
PeakLoad: 'Peak Load',
RemainingMemory: 'Remaining Memory',
MemoryRatio: 'Memory Ratio',
threadInformation: 'Thread Information',
currentSize: 'Current Size',
activeSize: 'Active Size',
largestSize: 'Largest Size',
queueInformation: 'Queue Information',
queueCount: 'Queue Count',
queueRemainingCapacity: 'Queue Remaining Capacity',
queueType: 'Queue Type',
otherInformation: 'Other Information',
totalTask: 'Total Task',
totalRejection: 'Total Rejection',
lastUpdateTime: 'Last update time',
allowCoreThreadTimeOut: 'Allow Core Thread Time Out',
changeAll: 'Change All',
stackRequestFail: 'The current thread pool has no stack information'
} }
} }

@ -16,7 +16,9 @@ export default {
deleteSuccess: '删除成功', deleteSuccess: '删除成功',
deleteMessage: '此操作将删除 {name}, 是否继续?', deleteMessage: '此操作将删除 {name}, 是否继续?',
selectMessage: '请选择{target}', selectMessage: '请选择{target}',
NoDeletionPermissionTip: '请联系管理员删除' NoDeletionPermissionTip: '请联系管理员删除',
emptyWarning: "{name}不允许为空",
queryFailure: '查询失败,请尝试刷新页面'
}, },
// 公共 // 公共
@ -27,13 +29,18 @@ export default {
create: '创建', create: '创建',
edit: '编辑', edit: '编辑',
delete: '删除', delete: '删除',
detail: '查看',
cancel: '取消', cancel: '取消',
confirm: '确认', confirm: '确认',
reset: '重置',
close: '关闭',
refresh: '刷新',
ok: '确定', ok: '确定',
num: '序号', num: '序号',
createTime: '创建时间', createTime: '创建时间',
updateTime: '修改时间', updateTime: '修改时间',
hint: '提示' hint: '提示',
info: '详情'
}, },
// 运行报表 // 运行报表
@ -47,6 +54,7 @@ export default {
// 租户管理 // 租户管理
tenantManage: { tenantManage: {
tenant: '租户', tenant: '租户',
tenantRequired: '租户(必填)',
tenantName: '租户名称', tenantName: '租户名称',
owner: '负责人', owner: '负责人',
tenantIntro: '租户简介' tenantIntro: '租户简介'
@ -55,6 +63,7 @@ export default {
// 项目管理 // 项目管理
projectManage: { projectManage: {
item: '项目', item: '项目',
itemRequired: '项目(必填)',
itemName: '项目名称', itemName: '项目名称',
owner: '负责人', owner: '负责人',
itemIntro: '项目简介' itemIntro: '项目简介'
@ -63,6 +72,7 @@ export default {
// 线程池管理 // 线程池管理
threadPool: { threadPool: {
threadPool: '线程池', threadPool: '线程池',
threadPoolRequired: '线程池(必填)',
coreSize: '核心线程', coreSize: '核心线程',
maximumSize: '最大线程', maximumSize: '最大线程',
queueType: '队列类型', queueType: '队列类型',
@ -83,5 +93,38 @@ export default {
customRejectedHandler: '自定义拒绝策略', customRejectedHandler: '自定义拒绝策略',
customRejectedHandlerTip: '请输入自定义 SPI 拒绝策略标识', customRejectedHandlerTip: '请输入自定义 SPI 拒绝策略标识',
threadsNumErrorTip: '最大线程必须大于等于核心线程' threadsNumErrorTip: '最大线程必须大于等于核心线程'
},
// 线程池实例
threadPoolInstance: {
instanceID: '实例标识',
active: 'Active',
stack: '堆栈',
basicInformation: '基础信息',
runningState: '运行状态',
activeID: '环境标识',
instanceHost: '实例Host',
threadPoolID: '线程池',
LoadInformation: '负载信息',
CurrentLoad: '当前负载',
PeakLoad: '峰值负载',
RemainingMemory: '剩余内存',
MemoryRatio: '内存占比',
threadInformation: '线程信息',
currentSize: '当前线程',
activeSize: '活跃线程',
largestSize: '同存最大线程',
queueInformation: '队列信息',
queueCount: '队列元素',
queueRemainingCapacity: '队列剩余容量',
queueType: '阻塞队列',
otherInformation: '其它信息',
totalTask: '任务总量',
totalRejection: '拒绝次数',
lastUpdateTime: '最后更新时间',
allowCoreThreadTimeOut: '线程超时',
changeAll: '全部修改',
stackRequestFail: '当前线程池暂无堆栈信息'
} }
} }

@ -3,7 +3,7 @@
<div class="filter-container"> <div class="filter-container">
<el-select <el-select
v-model="listQuery.tenantId" v-model="listQuery.tenantId"
placeholder="租户(必填)" :placeholder="$t('tenantManage.tenantRequired')"
style="width: 220px" style="width: 220px"
filterable filterable
class="filter-item" class="filter-item"
@ -18,7 +18,7 @@
</el-select> </el-select>
<el-select <el-select
v-model="listQuery.itemId" v-model="listQuery.itemId"
placeholder="项目 (必填)" :placeholder="$t('projectManage.itemRequired')"
style="width: 220px" style="width: 220px"
filterable filterable
class="filter-item" class="filter-item"
@ -33,7 +33,7 @@
</el-select> </el-select>
<el-select <el-select
v-model="listQuery.tpId" v-model="listQuery.tpId"
placeholder="线程池 (必填)" :placeholder="$t('threadPool.threadPoolRequired')"
style="width: 220px" style="width: 220px"
filterable filterable
class="filter-item" class="filter-item"
@ -54,7 +54,7 @@
icon="el-icon-search" icon="el-icon-search"
@click="fetchData" @click="fetchData"
> >
搜索 {{ $t('common.query') }}
</el-button> </el-button>
<el-button <el-button
v-waves v-waves
@ -64,7 +64,7 @@
icon="el-icon-refresh" icon="el-icon-refresh"
@click="refreshData" @click="refreshData"
> >
重置 {{ $t('common.reset') }}
</el-button> </el-button>
</div> </div>
@ -73,51 +73,52 @@
border border
:data="list" :data="list"
element-loading-text="Loading" element-loading-text="Loading"
fit :fit="true"
max-height="714" max-height="714"
highlight-current-row highlight-current-row
header-row-name="headerRowName"
> >
<el-table-column label="序号" fixed width="95"> <el-table-column :label="$t('common.num')" fixed="left" width="95">
<template slot-scope="scope">{{ scope.$index + 1 }}</template> <template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column> </el-table-column>
<el-table-column label="实例标识" width="260"> <el-table-column :label="$t('threadPoolInstance.instanceID')" width="260">
<template slot-scope="scope"> <template slot-scope="scope">
<el-link type="primary" :underline="false">{{ scope.row.identify }}</el-link> <el-link type="primary" :underline="false">{{ scope.row.identify }}</el-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="Active" width="120"> <el-table-column :label="$t('threadPoolInstance.active')" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag :type="scope.row.active | statusFilter"> <el-tag :type="scope.row.active | statusFilter">
{{ scope.row.active }} {{ scope.row.active }}
</el-tag> </el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="核心线程" width="100"> <el-table-column :label="$t('threadPool.coreSize')" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-link type="success" :underline="false">{{ scope.row.coreSize }}</el-link> <el-link type="success" :underline="false">{{ scope.row.coreSize }}</el-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="最大线程" width="100"> <el-table-column :label="$t('threadPool.maximumSize')" :width="$langMatch({ zh: '100', en: '150' }, 'auto')">
<template slot-scope="scope"> <template slot-scope="scope">
<el-link type="danger" :underline="false">{{ scope.row.maxSize }}</el-link> <el-link type="danger" :underline="false">{{ scope.row.maxSize }}</el-link>
</template> </template>
</el-table-column> </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 | queueFilter }}</template> <template slot-scope="scope">{{ scope.row.queueType | queueFilter }}</template>
</el-table-column> </el-table-column>
<el-table-column label="队列容量" width="100"> <el-table-column :label="$t('threadPool.queueCapacity')" :width="$langMatch({ zh: '100', en: '160' }, 'auto')">
<template slot-scope="scope">{{ scope.row.capacity }}</template> <template slot-scope="scope">{{ scope.row.capacity }}</template>
</el-table-column> </el-table-column>
<el-table-column label="拒绝策略" width="260"> <el-table-column :label="$t('threadPool.rejectedHandler')" width="260">
<template slot-scope="scope">{{ scope.row.rejectedType | rejectedFilter }}</template> <template slot-scope="scope">{{ scope.row.rejectedType | rejectedFilter }}</template>
</el-table-column> </el-table-column>
<el-table-column label="执行超时" width="100"> <el-table-column :label="$t('threadPool.executionTimeout')" :width="$langMatch({ zh: '100', en: '160' }, 'auto')">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.executeTimeOut }} {{ scope.row.executeTimeOut }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="空闲回收" width="100"> <el-table-column :label="$t('threadPool.keepAliveTime')" :width="$langMatch({ zh: '100', en: '160' }, 'auto')">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.keepAliveTime }} {{ scope.row.keepAliveTime }}
</template> </template>
@ -129,7 +130,7 @@
</template> </template>
</el-table-column>--> </el-table-column>-->
<el-table-column <el-table-column
label="操作" :label="$t('common.operation')"
fixed="right" fixed="right"
width="120" width="120"
align="center" align="center"
@ -148,9 +149,9 @@
</el-dropdown> </el-dropdown>
</template>--> </template>-->
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<el-button type="text" size="small" @click="handleInfo(row)"> </el-button> <el-button type="text" size="small" @click="handleInfo(row)"> {{ $t('common.detail') }} </el-button>
<el-button type="text" size="small" @click="handleShowStack(row)"> </el-button> <el-button type="text" size="small" @click="handleShowStack(row)"> {{ $t('common.stack') }} </el-button>
<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> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -168,111 +169,111 @@
width="1000px" width="1000px"
> >
<template> <template>
<el-descriptions class="margin-top" title="基础信息" :column="3" :size="size" border> <el-descriptions class="margin-top" :title="$t('threadPoolInstance.basicInformation')" :column="3" :size="size" border>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> 线程池 </template> <template slot="label"> {{ $t('threadPoolInstance.threadPoolID') }} </template>
{{ runTimeTemp.tpId }} {{ runTimeTemp.tpId }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> 环境标识 </template> <template slot="label"> {{ $t('threadPoolInstance.activeID') }} </template>
<el-tag :type="runTimeTemp.active | statusFilter"> <el-tag :type="runTimeTemp.active | statusFilter">
{{ runTimeTemp.active }} {{ runTimeTemp.active }}
</el-tag> </el-tag>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> 运行状态 </template> <template slot="label"> {{ $t('threadPoolInstance.runningState') }} </template>
<el-tag>{{ runTimeTemp.state }}</el-tag> <el-tag>{{ runTimeTemp.state }}</el-tag>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> 实例Host </template> <template slot="label"> {{ $t('threadPoolInstance.instanceHost') }} </template>
{{ runTimeTemp.host }} {{ runTimeTemp.host }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> 实例标识 </template> <template slot="label"> {{ $t('threadPoolInstance.instanceID') }} </template>
{{ runTimeTemp.identify }} {{ runTimeTemp.identify }}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<br /> <br />
<br /> <br />
<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> <el-descriptions-item>
<template slot="label"> 当前负载 </template> <template slot="label"> {{ $t('threadPoolInstance.CurrentLoad') }} </template>
{{ runTimeTemp.currentLoad }} {{ runTimeTemp.currentLoad }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> 峰值负载 </template> <template slot="label"> {{ $t('threadPoolInstance.PeakLoad') }} </template>
{{ runTimeTemp.peakLoad }} {{ runTimeTemp.peakLoad }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> 剩余内存 </template> <template slot="label"> {{ $t('threadPoolInstance.RemainingMemory') }} </template>
{{ runTimeTemp.freeMemory }} {{ runTimeTemp.freeMemory }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> 内存占比 </template> <template slot="label"> {{ $t('threadPoolInstance.MemoryRatio') }} </template>
{{ runTimeTemp.memoryProportion }} {{ runTimeTemp.memoryProportion }}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<br /> <br />
<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> <el-descriptions-item>
<template slot="label"> 核心线程 </template> <template slot="label"> {{ $t('threadPool.coreSize') }} </template>
{{ runTimeTemp.coreSize }} {{ runTimeTemp.coreSize }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> 当前线程 </template> <template slot="label"> {{ $t('threadPoolInstance.currentSize') }} </template>
{{ runTimeTemp.poolSize }} {{ runTimeTemp.poolSize }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> 最大线程 </template> <template slot="label"> {{ $t('threadPool.maximumSize') }} </template>
{{ runTimeTemp.maximumSize }} {{ runTimeTemp.maximumSize }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> 活跃线程 </template> <template slot="label"> {{ $t('threadPoolInstance.activeSize') }} </template>
{{ runTimeTemp.activeSize }} {{ runTimeTemp.activeSize }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> 同存最大线程 </template> <template slot="label"> {{ $t('threadPoolInstance.largestSize') }} </template>
{{ runTimeTemp.largestPoolSize }} {{ runTimeTemp.largestPoolSize }}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<br /> <br />
<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> <el-descriptions-item>
<template slot="label"> 队列容量 </template> <template slot="label"> {{ $t('threadPool.queueCapacity') }} </template>
{{ runTimeTemp.queueCapacity }} {{ runTimeTemp.queueCapacity }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> 队列元素 </template> <template slot="label"> {{ $t('threadPoolInstance.queueCount') }} </template>
{{ runTimeTemp.queueSize }} {{ runTimeTemp.queueSize }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> 队列剩余容量 </template> <template slot="label"> {{ $t('threadPoolInstance.queueRemainingCapacity') }} </template>
{{ runTimeTemp.queueRemainingCapacity }} {{ runTimeTemp.queueRemainingCapacity }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> 阻塞队列 </template> <template slot="label"> {{ $t('threadPoolInstance.queueType') }} </template>
{{ runTimeTemp.queueType }} {{ runTimeTemp.queueType }}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<br /> <br />
<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> <el-descriptions-item>
<template slot="label"> 任务总量 </template> <template slot="label"> {{ $t('threadPoolInstance.totalTask') }} </template>
{{ runTimeTemp.completedTaskCount }} {{ runTimeTemp.completedTaskCount }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> 拒绝次数 </template> <template slot="label"> {{ $t('threadPoolInstance.totalRejection') }} </template>
<el-link type="danger" :underline="false">{{ runTimeTemp.rejectCount }}</el-link> <el-link type="danger" :underline="false">{{ runTimeTemp.rejectCount }}</el-link>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> 最后更新时间 </template> <template slot="label"> {{ $t('threadPoolInstance.lastUpdateTime') }} </template>
{{ runTimeTemp.clientLastRefreshTime }} {{ runTimeTemp.clientLastRefreshTime }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> 拒绝策略 </template> <template slot="label"> {{ $t('threadPool.rejectedHandler') }} </template>
{{ runTimeTemp.rejectedName }} {{ runTimeTemp.rejectedName }}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
@ -280,11 +281,11 @@
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="instanceDialogFormVisible = false"> <el-button @click="instanceDialogFormVisible = false">
<i class="el-icon-close" /> <i class="el-icon-close" />
{{ $t('common.close') }}
</el-button> </el-button>
<el-button type="primary" @click="handleInfo()"> <el-button type="primary" @click="handleInfo()">
<i class="el-icon-refresh-right" /> <i class="el-icon-refresh-right" />
{{ $t('common.refresh') }}
</el-button> </el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -295,31 +296,31 @@
style="width: 500px; margin-left: 50px" style="width: 500px; margin-left: 50px"
:rules="rules" :rules="rules"
:model="temp" :model="temp"
label-width="80px" :label-width="$langMatch({ zh: '80px', en: '150px' })"
> >
<el-form-item label="核心线程" prop="coreSize"> <el-form-item :label="$t('threadPool.coreSize')" prop="coreSize">
<el-input-number <el-input-number
v-model="temp.coreSize" v-model="temp.coreSize"
placeholder="核心线程" :placeholder="$t('threadPool.coreSize')"
controls-position="right" controls-position="right"
:min="1" :min="1"
:max="9999" :max="9999"
></el-input-number> ></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label="最大线程" prop="maxSize"> <el-form-item :label="$t('threadPool.maximumSize')" prop="maxSize">
<el-input-number <el-input-number
v-model="temp.maxSize" v-model="temp.maxSize"
placeholder="最大线程" :placeholder="$t('threadPool.maximumSize')"
controls-position="right" controls-position="right"
:min="1" :min="1"
:max="9999" :max="9999"
/> />
</el-form-item> </el-form-item>
<el-form-item label="队列类型" prop="queueType"> <el-form-item :label="$t('threadPool.queueType')" prop="queueType">
<el-select <el-select
v-model="temp.queueType" v-model="temp.queueType"
placeholder="队列类型" :placeholder="$t('threadPool.queueType')"
:disabled="true" :disabled="true"
style="display: block" style="display: block"
@change="selectQueueType" @change="selectQueueType"
@ -332,49 +333,49 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="队列容量" prop="capacity"> <el-form-item :label="$t('threadPool.queueCapacity')" prop="capacity">
<el-input-number <el-input-number
v-model="temp.capacity" v-model="temp.capacity"
placeholder="队列容量" :placeholder="$t('threadPool.queueCapacity')"
controls-position="right" controls-position="right"
:min="0" :min="0"
:max="2147483647" :max="2147483647"
:disabled="temp.queueType === 9 ? false : true" :disabled="temp.queueType === 9 ? false : true"
/> />
</el-form-item> </el-form-item>
<el-form-item label="线程超时" prop="isAlarm"> <el-form-item :label="$t('threadPoolInstance.allowCoreThreadTimeOut')" prop="isAlarm">
<template> <template>
<div> <div>
<el-radio-group v-model="temp.allowCoreThreadTimeOut"> <el-radio-group v-model="temp.allowCoreThreadTimeOut">
<el-radio-button :label="1">超时</el-radio-button> <el-radio-button :label="1">{{ $t('threadPool.timeout') }}</el-radio-button>
<el-radio-button :label="0">不超时</el-radio-button> <el-radio-button :label="0">{{ $t('threadPool.noTimeout') }}</el-radio-button>
</el-radio-group> </el-radio-group>
</div> </div>
</template> </template>
</el-form-item> </el-form-item>
<el-form-item label="执行超时" prop="executeTimeOut"> <el-form-item :label="$t('threadPool.executionTimeout')" prop="executeTimeOut">
<el-input-number <el-input-number
v-model="temp.executeTimeOut" v-model="temp.executeTimeOut"
placeholder="执行超时(毫秒)" :placeholder="$t('threadPool.executionTimeoutUnit')"
controls-position="right" controls-position="right"
:min="0" :min="0"
:max="999999" :max="999999"
/> />
</el-form-item> </el-form-item>
<el-form-item label="空闲回收" prop="keepAliveTime"> <el-form-item :label="$t('threadPool.keepAliveTime')" prop="keepAliveTime">
<el-input-number <el-input-number
v-model="temp.keepAliveTime" v-model="temp.keepAliveTime"
placeholder="空闲回收(秒)" :placeholder="$t('threadPool.keepAliveTimeUnit')"
controls-position="right" controls-position="right"
:min="1" :min="1"
:max="999999" :max="999999"
/> />
</el-form-item> </el-form-item>
<el-form-item label="拒绝策略" prop="rejectedType"> <el-form-item :label="$t('threadPool.rejectedHandler')" prop="rejectedType">
<el-select <el-select
v-model="temp.rejectedType" v-model="temp.rejectedType"
style="display: block" style="display: block"
placeholder="拒绝策略" :placeholder="$t('threadPool.rejectedHandler')"
@change="selectRejectedType" @change="selectRejectedType"
> >
<el-option <el-option
@ -385,21 +386,21 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item v-if="isRejectShow" label="自定义拒绝策略" prop="customRejectedType"> <el-form-item v-if="isRejectShow" :label="$t('threadPool.customRejectedHandler')" prop="customRejectedType">
<el-input <el-input
v-model="temp.customRejectedType" v-model="temp.customRejectedType"
placeholder="请输入自定义 SPI 拒绝策略标识" :placeholder="$t('threadPool.customRejectedHandlerTip')"
@input="onInput()" @input="onInput()"
/> />
</el-form-item> </el-form-item>
<el-form-item label="全部修改" prop="allUpdate"> <el-form-item :label="$t('threadPoolInstance.changeAll')" prop="allUpdate">
<el-switch v-model="allUpdate"> </el-switch> <el-switch v-model="allUpdate"> </el-switch>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <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()"> <el-button type="primary" @click="dialogStatus === 'create' ? createData() : updateData()">
确认 {{ $t('common.confirm') }}
</el-button> </el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -409,7 +410,7 @@
<el-table-column prop="pv" label="Pv" /> <el-table-column prop="pv" label="Pv" />
</el-table> </el-table>
<span slot="footer" class="dialog-footer"> <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> </span>
</el-dialog> </el-dialog>
<el-dialog title="Stack Info" :visible.sync="isStackShow" width="60%"> <el-dialog title="Stack Info" :visible.sync="isStackShow" width="60%">
@ -425,10 +426,10 @@
</li> </li>
</ul> </ul>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="isStackShow = false"> <i class="el-icon-close" /> </el-button> <el-button @click="isStackShow = false"> <i class="el-icon-close" />{{ $t('common.close') }}</el-button>
<el-button type="primary" @click="handleStackInfo"> <el-button type="primary" @click="handleStackInfo">
<i class="el-icon-refresh-right" /> <i class="el-icon-refresh-right" />
{{ $t('common.refresh') }}
</el-button> </el-button>
</span> </span>
</el-dialog> </el-dialog>
@ -564,9 +565,9 @@ export default {
}, },
dialogStatus: '', dialogStatus: '',
textMap: { textMap: {
update: 'Edit', update: this.$t('common.edit'),
create: 'Create', create: this.$t('common.create'),
info: 'Info', info: this.$t('common.info'),
}, },
allUpdate: false, allUpdate: false,
temp: { temp: {
@ -592,15 +593,15 @@ export default {
}, },
fetchData() { fetchData() {
if (!this.listQuery.tenantId) { if (!this.listQuery.tenantId) {
this.$message.warning('租户不允许为空'); this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('tenantManage.tenant') }));
return; return;
} }
if (!this.listQuery.itemId) { if (!this.listQuery.itemId) {
this.$message.warning('项目不允许为空'); this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('projectManage.item') }));
return; return;
} }
if (!this.listQuery.tpId) { if (!this.listQuery.tpId) {
this.$message.warning('线程池不允许为空'); this.$message.warning(this.$t('message.emptyWarning', { name: this.$t('threadPool.threadPool') }));
return; return;
} }
this.listLoading = true; this.listLoading = true;
@ -658,8 +659,8 @@ export default {
this.fetchData(); this.fetchData();
this.dialogFormVisible = false; this.dialogFormVisible = false;
this.$notify({ this.$notify({
title: 'Success', title: this.$t('message.success'),
message: 'Created Successfully', message: this.$t('message.createdSuccess'),
type: 'success', type: 'success',
duration: 2000, duration: 2000,
}); });
@ -728,7 +729,7 @@ export default {
}) })
.catch((error) => { .catch((error) => {
console.log(error); console.log(error);
this.$message.error('查询失败,请尝试刷新页面'); this.$message.error(this.$t('message.queryFailure'));
}); });
}, },
handleShowStack(row) { handleShowStack(row) {
@ -748,12 +749,12 @@ export default {
this.stackInfo = data; this.stackInfo = data;
this.isStackShow = true; this.isStackShow = true;
} else { } else {
this.$message.warning('当前线程池暂无堆栈信息'); this.$message.warning(this.$t('threadPoolInstance.stackRequestFail'));
} }
}) })
.catch((error) => { .catch((error) => {
console.log(error); console.log(error);
this.$message.error('查询失败,请尝试刷新页面'); this.$message.error(this.$t('message.queryFailure'));
}); });
}, },
// //
@ -762,7 +763,7 @@ export default {
if (valid) { if (valid) {
if (parseInt(this.temp.maxSize) < parseInt(this.temp.coreSize)) { if (parseInt(this.temp.maxSize) < parseInt(this.temp.coreSize)) {
this.$message({ this.$message({
message: '最大线程必须大于等于核心线程', message: this.$t('threadPool.threadsNumErrorTip'),
type: 'warning', type: 'warning',
}); });
return; return;
@ -783,8 +784,8 @@ export default {
.then(() => { .then(() => {
this.dialogFormVisible = false; this.dialogFormVisible = false;
this.$notify({ this.$notify({
title: 'Success', title: this.$t('message.success'),
message: 'Update Successfully', message: this.$t('message.updateSuccess'),
type: 'success', type: 'success',
duration: 2000, duration: 2000,
}); });
@ -853,6 +854,9 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.headerRowName{
}
/* 滚动槽 */ /* 滚动槽 */
::-webkit-scrollbar { ::-webkit-scrollbar {
width: 8px; width: 8px;

Loading…
Cancel
Save