This commit is contained in:
lai
2024-01-10 17:02:43 +08:00
17 changed files with 622 additions and 402 deletions

View File

@@ -876,10 +876,10 @@ export default {
io: 'Disk', io: 'Disk',
network: 'Network', network: 'Network',
loadDetail: "Load Factor", loadDetail: "Load Factor",
resourceUsage: "Resource utilization rate", resourceUsage: "Usage Rate",
read: 'Read', read: 'Read',
write: 'Write', write: 'Write',
readWriteCount: 'Number of reads and writes', readWriteCount: 'Read/Write Count',
count: 'Substandard', count: 'Substandard',
readWriteTime: 'Read/Write Delay', readWriteTime: 'Read/Write Delay',
up: 'Uplink', up: 'Uplink',
@@ -1243,7 +1243,7 @@ export default {
userTop:'User profile', userTop:'User profile',
sex:'User Gender', sex:'User Gender',
email:'E-mail', email:'E-mail',
fromClass:'DEPARTMENT', fromClass:'Department',
userWork:'User position', userWork:'User position',
userWorkPlease: 'Please select user post', userWorkPlease: 'Please select user post',
userTip:'User Description', userTip:'User Description',
@@ -1390,7 +1390,6 @@ export default {
open:'Exhibition', open:'Exhibition',
close:'Fold', close:'Fold',
addClass:'Add new sub-department', addClass:'Add new sub-department',
showSort:'Show Sort',
admin:'Principal', admin:'Principal',
phone:'Contact Number', phone:'Contact Number',
email:'Mail', email:'Mail',

View File

@@ -1390,7 +1390,6 @@ export default {
open:'展', open:'展',
close:'折', close:'折',
addClass:'新增子部门', addClass:'新增子部门',
showSort:'显示排序',
admin:'负责人', admin:'负责人',
phone:'联系电话', phone:'联系电话',
email:'邮箱', email:'邮箱',

View File

@@ -66,49 +66,49 @@ let tableColumns: ColumnsType = [
{ {
title: t('common.rowId'), title: t('common.rowId'),
dataIndex: 'id', dataIndex: 'id',
align: 'center', align: 'left',
width: 2, width: 100,
}, },
{ {
title: t('views.logManage.mml.account'), title: t('views.logManage.mml.account'),
dataIndex: 'user', dataIndex: 'user',
align: 'center', align: 'left',
width: 3, width: 100,
}, },
{ {
title: t('views.logManage.mml.ip'), title: t('views.logManage.mml.ip'),
dataIndex: 'ip', dataIndex: 'ip',
align: 'center', align: 'left',
width: 3, width: 100,
}, },
{ {
title: t('views.logManage.mml.type'), title: t('views.logManage.mml.type'),
dataIndex: 'neType', dataIndex: 'neType',
align: 'center', align: 'left',
width: 3, width: 100,
}, },
{ {
title: t('views.logManage.mml.neId'), title: t('views.logManage.mml.neId'),
dataIndex: 'neId', dataIndex: 'neId',
align: 'center', align: 'left',
width: 3, width: 100,
},
{
title: t('views.logManage.mml.logTime'),
dataIndex: 'logTime',
align: 'left',
width: 150,
customRender(opt) {
if (!opt.value) return '';
return parseDateToStr(opt.value);
},
}, },
{ {
title: t('views.logManage.mml.MML'), title: t('views.logManage.mml.MML'),
dataIndex: 'mml', dataIndex: 'mml',
key: 'mml', key: 'mml',
align: 'left', align: 'left',
width: 5, width: 200,
},
{
title: t('views.logManage.mml.logTime'),
dataIndex: 'logTime',
align: 'center',
customRender(opt) {
if (!opt.value) return '';
return parseDateToStr(opt.value);
},
width: 3,
}, },
]; ];
@@ -149,7 +149,7 @@ function fnTableSize({ key }: MenuInfo) {
function fnGetList(pageNum?: number) { function fnGetList(pageNum?: number) {
if (tableState.loading) return; if (tableState.loading) return;
tableState.loading = true; tableState.loading = true;
if(pageNum){ if (pageNum) {
queryParams.pageNum = pageNum; queryParams.pageNum = pageNum;
} }
if (!queryRangePicker.value) { if (!queryRangePicker.value) {
@@ -183,7 +183,10 @@ onMounted(() => {
<a-form :model="queryParams" name="queryParams" layout="horizontal"> <a-form :model="queryParams" name="queryParams" layout="horizontal">
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="6" :md="12" :xs="24"> <a-col :lg="6" :md="12" :xs="24">
<a-form-item :label="t('views.logManage.mml.account')" name="accountName"> <a-form-item
:label="t('views.logManage.mml.account')"
name="accountName"
>
<a-input <a-input
v-model:value="queryParams.accountName" v-model:value="queryParams.accountName"
:allow-clear="true" :allow-clear="true"
@@ -191,7 +194,10 @@ onMounted(() => {
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :lg="8" :md="12" :xs="24"> <a-col :lg="8" :md="12" :xs="24">
<a-form-item :label="t('views.logManage.mml.logTime')" name="queryRangePicker"> <a-form-item
:label="t('views.logManage.mml.logTime')"
name="queryRangePicker"
>
<a-range-picker <a-range-picker
v-model:value="queryRangePicker" v-model:value="queryRangePicker"
allow-clear allow-clear
@@ -280,7 +286,7 @@ onMounted(() => {
:data-source="tableState.data" :data-source="tableState.data"
:size="tableState.size" :size="tableState.size"
:pagination="tablePagination" :pagination="tablePagination"
:scroll="{ x: 1000, y: 400 }" :scroll="{ x: tableColumns.length * 100 }"
> >
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.key === 'mml'"> <template v-if="column.key === 'mml'">

View File

@@ -86,7 +86,7 @@ let cacheKeyTableColumns: ColumnsType = [
/**键名列表表格数据 */ /**键名列表表格数据 */
let cacheKeyTable = reactive({ let cacheKeyTable = reactive({
loading: true, loading: false,
data: [], data: [],
/**当前键名列表的缓存名称 */ /**当前键名列表的缓存名称 */
cacheName: '', cacheName: '',
@@ -309,7 +309,7 @@ onMounted(() => {
:columns="cacheNameTableColumns" :columns="cacheNameTableColumns"
:data-source="cacheNameTable.data" :data-source="cacheNameTable.data"
:loading="cacheNameTable.loading" :loading="cacheNameTable.loading"
:scroll="{ y: 1200 }" :scroll="{ y: 'calc(100vh - 350px)' }"
:pagination="false" :pagination="false"
:row-selection="{ :row-selection="{
type: 'radio', type: 'radio',
@@ -396,7 +396,7 @@ onMounted(() => {
:columns="cacheKeyTableColumns" :columns="cacheKeyTableColumns"
:data-source="cacheKeyTable.data" :data-source="cacheKeyTable.data"
:loading="cacheKeyTable.loading" :loading="cacheKeyTable.loading"
:scroll="{ y: 1200 }" :scroll="{ y: 'calc(100vh - 350px)' }"
:pagination="false" :pagination="false"
:row-selection="{ :row-selection="{
type: 'radio', type: 'radio',
@@ -484,7 +484,7 @@ onMounted(() => {
<a-typography-paragraph> <a-typography-paragraph>
<a-textarea <a-textarea
:value="cacheKeyInfo.data.cacheValue" :value="cacheKeyInfo.data.cacheValue"
:auto-size="{ minRows: 4, maxRows: 10 }" :auto-size="{ minRows: 4, maxRows: 20 }"
:maxlength="4000" :maxlength="4000"
:disabled="true" :disabled="true"
/> />

View File

@@ -109,39 +109,45 @@ let tableColumns: ColumnsType = [
title: t('views.monitor.job.jobName'), title: t('views.monitor.job.jobName'),
dataIndex: 'jobName', dataIndex: 'jobName',
align: 'left', align: 'left',
width: 200,
}, },
{ {
title: t('views.monitor.job.jobGroup'), title: t('views.monitor.job.jobGroup'),
dataIndex: 'jobGroup', dataIndex: 'jobGroup',
key: 'jobGroup', key: 'jobGroup',
align: 'center', align: 'center',
width: 100,
}, },
{ {
title: t('views.monitor.job.invokeTarget'), title: t('views.monitor.job.invokeTarget'),
dataIndex: 'invokeTarget', dataIndex: 'invokeTarget',
align: 'left', align: 'left',
width: 100,
}, },
{ {
title: t('views.monitor.job.cronExpression'), title: t('views.monitor.job.cronExpression'),
dataIndex: 'cronExpression', dataIndex: 'cronExpression',
align: 'left', align: 'left',
width: 100,
}, },
{ {
title: t('views.monitor.job.status'), title: t('views.monitor.job.status'),
dataIndex: 'status', dataIndex: 'status',
key: 'status', key: 'status',
align: 'center', align: 'center',
width: 100,
}, },
{ {
title: t('views.monitor.job.saveLog'), title: t('views.monitor.job.saveLog'),
dataIndex: 'saveLog', dataIndex: 'saveLog',
key: 'saveLog', key: 'saveLog',
align: 'center', align: 'center',
width: 100,
}, },
{ {
title: t('common.operate'), title: t('common.operate'),
key: 'jobId', key: 'jobId',
align: 'center', align: 'left',
}, },
]; ];
@@ -756,7 +762,7 @@ onMounted(() => {
:size="tableState.size" :size="tableState.size"
:row-class-name="fnTableStriped" :row-class-name="fnTableStriped"
:pagination="tablePagination" :pagination="tablePagination"
:scroll="{ x: true }" :scroll="{ x: tableColumns.length * 120 }"
:row-selection="{ :row-selection="{
type: 'checkbox', type: 'checkbox',
selectedRowKeys: tableState.selectedRowKeys, selectedRowKeys: tableState.selectedRowKeys,
@@ -769,16 +775,15 @@ onMounted(() => {
</template> </template>
<template v-if="column.key === 'status'"> <template v-if="column.key === 'status'">
<a-switch <a-switch
v-if="hasPermissions(['monitor:job:changeStatus'])" v-if="
dict.sysJobStatus.length > 0 &&
hasPermissions(['monitor:job:changeStatus'])
"
v-model:checked="record.status" v-model:checked="record.status"
checked-value="1" checked-value="1"
:checked-children=" :checked-children="dict.sysJobStatus[0].label"
dict.sysJobStatus.find(s => s.value === '1')?.label
"
un-checked-value="0" un-checked-value="0"
:un-checked-children=" :un-checked-children="dict.sysJobStatus[1].label"
dict.sysJobStatus.find(s => s.value === '0')?.label
"
size="small" size="small"
@change="fnRecordStatus(record)" @change="fnRecordStatus(record)"
/> />
@@ -856,7 +861,7 @@ onMounted(() => {
:title="modalState.title" :title="modalState.title"
@cancel="fnModalCancel" @cancel="fnModalCancel"
> >
<a-form layout="horizontal"> <a-form layout="horizontal" :label-col="{ span: 6 }" :label-wrap="true">
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item :label="t('views.monitor.job.jobName')" name="jobName"> <a-form-item :label="t('views.monitor.job.jobName')" name="jobName">
@@ -871,33 +876,6 @@ onMounted(() => {
}} }}
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :lg="6" :md="6" :xs="24" v-if="false">
<a-form-item
:label="t('views.monitor.job.misfirePolicy')"
name="misfirePolicy"
>
{{
[
t('views.monitor.job.misfirePolicy1'),
t('views.monitor.job.misfirePolicy2'),
t('views.monitor.job.misfirePolicy3'),
][+modalState.from.misfirePolicy - 1]
}}
</a-form-item>
</a-col>
<a-col :lg="6" :md="6" :xs="24" v-if="false">
<a-form-item
:label="t('views.monitor.job.concurrent')"
name="concurrent"
>
{{
[
t('views.monitor.job.concurrent0'),
t('views.monitor.job.concurrent1'),
][+modalState.from.concurrent]
}}
</a-form-item>
</a-col>
</a-row> </a-row>
<a-row :gutter="16"> <a-row :gutter="16">
@@ -946,6 +924,8 @@ onMounted(() => {
<a-form-item <a-form-item
:label="t('views.monitor.job.createTime')" :label="t('views.monitor.job.createTime')"
name="createTime" name="createTime"
:label-col="{ span: 3 }"
:label-wrap="true"
> >
<span v-if="+modalState.from.createTime > 0"> <span v-if="+modalState.from.createTime > 0">
{{ parseDateToStr(+modalState.from.createTime) }} {{ parseDateToStr(+modalState.from.createTime) }}
@@ -955,12 +935,27 @@ onMounted(() => {
<a-form-item <a-form-item
:label="t('views.monitor.job.targetParams')" :label="t('views.monitor.job.targetParams')"
name="targetParams" name="targetParams"
:label-col="{ span: 3 }"
:label-wrap="true"
> >
{{ modalState.from.targetParams }} <a-textarea
v-model:value="modalState.from.targetParams"
:auto-size="{ minRows: 2, maxRows: 6 }"
:disabled="true"
/>
</a-form-item> </a-form-item>
<a-form-item :label="t('views.monitor.job.remark')" name="remark"> <a-form-item
{{ modalState.from.remark }} :label="t('views.monitor.job.remark')"
name="remark"
:label-col="{ span: 3 }"
:label-wrap="true"
>
<a-textarea
v-model:value="modalState.from.remark"
:auto-size="{ minRows: 2, maxRows: 6 }"
:disabled="true"
/>
</a-form-item> </a-form-item>
</a-form> </a-form>
<template #footer> <template #footer>
@@ -981,7 +976,12 @@ onMounted(() => {
@ok="fnModalOk" @ok="fnModalOk"
@cancel="fnModalCancel" @cancel="fnModalCancel"
> >
<a-form name="modalStateFrom" layout="horizontal"> <a-form
name="modalStateFrom"
layout="horizontal"
:label-col="{ span: 6 }"
:label-wrap="true"
>
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item <a-form-item
@@ -1007,74 +1007,9 @@ onMounted(() => {
</a-select> </a-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :lg="6" :md="6" :xs="24" v-if="false">
<a-form-item
:label="t('views.monitor.job.misfirePolicy')"
name="misfirePolicy"
>
<a-select
:disabled="true"
v-model:value="modalState.from.misfirePolicy"
default-value="3"
:placeholder="t('common.selectPlease')"
>
<a-select-option key="1" value="1">
{{ t('views.monitor.job.misfirePolicy1') }}
</a-select-option>
<a-select-option key="2" value="2">
{{ t('views.monitor.job.misfirePolicy2') }}
</a-select-option>
<a-select-option key="3" value="3">
{{ t('views.monitor.job.misfirePolicy3') }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :lg="6" :md="6" :xs="24" v-if="false">
<a-form-item
:label="t('views.monitor.job.concurrent')"
name="concurrent"
>
<a-select
:disabled="true"
v-model:value="modalState.from.concurrent"
default-value="0"
:placeholder="t('common.selectPlease')"
>
<a-select-option key="1" value="1">
{{ t('views.monitor.job.concurrent1') }}
</a-select-option>
<a-select-option key="0" value="0">
{{ t('views.monitor.job.concurrent0') }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
</a-row> </a-row>
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24">
<a-form-item
:label="t('views.monitor.job.invokeTarget')"
name="invokeTarget"
v-bind="modalStateFrom.validateInfos.invokeTarget"
>
<a-input
v-model:value="modalState.from.invokeTarget"
allow-clear
:placeholder="t('views.monitor.job.invokeTargetPlease')"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
<div>{{ t('views.monitor.job.invokeTargetTip') }}</div>
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input>
</a-form-item>
</a-col>
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item <a-form-item
:label="t('views.monitor.job.jobGroup')" :label="t('views.monitor.job.jobGroup')"
@@ -1089,46 +1024,7 @@ onMounted(() => {
</a-select> </a-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> <a-col :lg="12" :md="12" :xs="24">
<a-row :gutter="16">
<a-col :lg="16" :md="16" :xs="24">
<a-form-item
:label="t('views.monitor.job.cronExpression')"
name="cronExpression"
:label-col="{ span: 4 }"
v-bind="modalStateFrom.validateInfos.cronExpression"
>
<a-input
v-model:value="modalState.from.cronExpression"
allow-clear
:placeholder="t('views.monitor.job.cronExpressionPlease')"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
<div>
{{ t('views.monitor.job.cronExpressionTip') }}<br />
{{ t('views.monitor.job.cronExpressionTip1') }}
</div>
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
<template #addonAfter>
<a-button
type="text"
size="small"
@click.prevent="fnModalCron(true)"
>
<template #icon><FieldTimeOutlined /></template>
{{ t('views.monitor.job.cronExpressionNew') }}
</a-button>
</template>
</a-input>
</a-form-item>
</a-col>
<a-col :lg="8" :md="8" :xs="24">
<a-form-item :label="t('views.monitor.job.saveLog')" name="saveLog"> <a-form-item :label="t('views.monitor.job.saveLog')" name="saveLog">
<a-select <a-select
v-model:value="modalState.from.saveLog" v-model:value="modalState.from.saveLog"
@@ -1141,10 +1037,70 @@ onMounted(() => {
</a-col> </a-col>
</a-row> </a-row>
<a-form-item
:label="t('views.monitor.job.invokeTarget')"
name="invokeTarget"
v-bind="modalStateFrom.validateInfos.invokeTarget"
:label-col="{ span: 3 }"
:label-wrap="true"
>
<a-input
v-model:value="modalState.from.invokeTarget"
allow-clear
:placeholder="t('views.monitor.job.invokeTargetPlease')"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
<div>{{ t('views.monitor.job.invokeTargetTip') }}</div>
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input>
</a-form-item>
<a-form-item
:label="t('views.monitor.job.cronExpression')"
name="cronExpression"
v-bind="modalStateFrom.validateInfos.cronExpression"
:label-col="{ span: 3 }"
:label-wrap="true"
>
<a-input
v-model:value="modalState.from.cronExpression"
allow-clear
:placeholder="t('views.monitor.job.cronExpressionPlease')"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
<div>
{{ t('views.monitor.job.cronExpressionTip') }}<br />
{{ t('views.monitor.job.cronExpressionTip1') }}
</div>
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
<template #addonAfter>
<a-button
type="text"
size="small"
@click.prevent="fnModalCron(true)"
>
<template #icon><FieldTimeOutlined /></template>
{{ t('views.monitor.job.cronExpressionNew') }}
</a-button>
</template>
</a-input>
</a-form-item>
<a-form-item <a-form-item
:label="t('views.monitor.job.targetParams')" :label="t('views.monitor.job.targetParams')"
name="targetParams" name="targetParams"
:label-col="{ span: 4 }" :label-col="{ span: 3 }"
:label-wrap="true"
> >
<a-textarea <a-textarea
v-model:value="modalState.from.targetParams" v-model:value="modalState.from.targetParams"
@@ -1157,7 +1113,8 @@ onMounted(() => {
<a-form-item <a-form-item
:label="t('views.monitor.job.remark')" :label="t('views.monitor.job.remark')"
name="remark" name="remark"
:label-col="{ span: 4 }" :label-col="{ span: 3 }"
:label-wrap="true"
> >
<a-textarea <a-textarea
v-model:value="modalState.from.remark" v-model:value="modalState.from.remark"

View File

@@ -44,6 +44,8 @@ let queryRangePicker = ref<[string, string]>(['', '']);
/**查询参数 */ /**查询参数 */
let queryParams = reactive({ let queryParams = reactive({
/**任务ID */
jobId: '',
/**任务名称 */ /**任务名称 */
jobName: '', jobName: '',
/**任务组名 */ /**任务组名 */
@@ -72,6 +74,7 @@ function fnQueryReset() {
}); });
} else { } else {
queryParams = Object.assign(queryParams, { queryParams = Object.assign(queryParams, {
jobId: '',
jobName: '', jobName: '',
jobGroup: undefined, jobGroup: undefined,
status: undefined, status: undefined,
@@ -124,28 +127,33 @@ let tableColumns: ColumnsType = [
title: t('views.monitor.jobLog.jobName'), title: t('views.monitor.jobLog.jobName'),
dataIndex: 'jobName', dataIndex: 'jobName',
align: 'left', align: 'left',
width: 200,
}, },
{ {
title: t('views.monitor.jobLog.jobGroup'), title: t('views.monitor.jobLog.jobGroup'),
dataIndex: 'jobGroup', dataIndex: 'jobGroup',
key: 'jobGroup', key: 'jobGroup',
align: 'center', align: 'center',
width: 100,
}, },
{ {
title: t('views.monitor.jobLog.invokeTarget'), title: t('views.monitor.jobLog.invokeTarget'),
dataIndex: 'invokeTarget', dataIndex: 'invokeTarget',
align: 'left', align: 'left',
width: 100,
}, },
{ {
title: t('views.monitor.jobLog.status'), title: t('views.monitor.jobLog.status'),
dataIndex: 'status', dataIndex: 'status',
key: 'status', key: 'status',
align: 'center', align: 'center',
width: 100,
}, },
{ {
title: t('views.monitor.jobLog.createTime'), title: t('views.monitor.jobLog.createTime'),
dataIndex: 'createTime', dataIndex: 'createTime',
align: 'center', align: 'center',
width: 150,
customRender(opt) { customRender(opt) {
if (+opt.value <= 0) return ''; if (+opt.value <= 0) return '';
return parseDateToStr(+opt.value); return parseDateToStr(+opt.value);
@@ -155,7 +163,8 @@ let tableColumns: ColumnsType = [
title: t('views.monitor.jobLog.costTime'), title: t('views.monitor.jobLog.costTime'),
dataIndex: 'costTime', dataIndex: 'costTime',
key: 'costTime', key: 'costTime',
align: 'center', align: 'right',
width: 100,
customRender(opt) { customRender(opt) {
return `${opt.value} ms`; return `${opt.value} ms`;
}, },
@@ -163,7 +172,7 @@ let tableColumns: ColumnsType = [
{ {
title: t('common.operate'), title: t('common.operate'),
key: 'jobLogId', key: 'jobLogId',
align: 'center', align: 'left',
}, },
]; ];
@@ -393,6 +402,7 @@ onMounted(() => {
if (jobId && jobId !== '0') { if (jobId && jobId !== '0') {
getJob(jobId).then(res => { getJob(jobId).then(res => {
if (res.code === RESULT_CODE_SUCCESS) { if (res.code === RESULT_CODE_SUCCESS) {
queryParams.jobId = res.data.jobId;
queryParams.jobName = res.data.jobName; queryParams.jobName = res.data.jobName;
queryParams.jobGroup = res.data.jobGroup; queryParams.jobGroup = res.data.jobGroup;
fnGetList(); fnGetList();
@@ -415,14 +425,13 @@ onMounted(() => {
<!-- 表格搜索栏 --> <!-- 表格搜索栏 -->
<a-form :model="queryParams" name="queryParams" layout="horizontal"> <a-form :model="queryParams" name="queryParams" layout="horizontal">
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="6" :md="12" :xs="24"> <a-col :lg="6" :md="12" :xs="24" v-if="jobId !== '0'">
<a-form-item <a-form-item
:label="t('views.monitor.jobLog.jobName')" :label="t('views.monitor.jobLog.jobName')"
name="jobName" name="jobName"
> >
<a-input <a-input
v-model:value="queryParams.jobName" v-model:value="queryParams.jobName"
:allow-clear="jobId === '0'"
:disabled="jobId !== '0'" :disabled="jobId !== '0'"
:placeholder="t('common.inputPlease')" :placeholder="t('common.inputPlease')"
></a-input> ></a-input>
@@ -589,7 +598,7 @@ onMounted(() => {
:data-source="tableState.data" :data-source="tableState.data"
:size="tableState.size" :size="tableState.size"
:row-class-name="fnTableStriped" :row-class-name="fnTableStriped"
:scroll="{ x: true }" :scroll="{ x: tableColumns.length * 120 }"
:pagination="tablePagination" :pagination="tablePagination"
:row-selection="{ :row-selection="{
type: 'checkbox', type: 'checkbox',
@@ -636,7 +645,7 @@ onMounted(() => {
:title="modalState.title" :title="modalState.title"
@cancel="fnModalCancel" @cancel="fnModalCancel"
> >
<a-form layout="horizontal"> <a-form layout="horizontal" :label-col="{ span: 6 }" :label-wrap="true">
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item :label="t('common.rowId')" name="jobLogId"> <a-form-item :label="t('common.rowId')" name="jobLogId">
@@ -703,6 +712,8 @@ onMounted(() => {
<a-form-item <a-form-item
:label="t('views.monitor.jobLog.targetParams')" :label="t('views.monitor.jobLog.targetParams')"
name="targetParams" name="targetParams"
:label-col="{ span: 3 }"
:label-wrap="true"
> >
<a-textarea <a-textarea
v-model:value="modalState.from.targetParams" v-model:value="modalState.from.targetParams"
@@ -710,7 +721,12 @@ onMounted(() => {
:disabled="true" :disabled="true"
/> />
</a-form-item> </a-form-item>
<a-form-item :label="t('views.monitor.jobLog.jobMsg')" name="jobMsg"> <a-form-item
:label="t('views.monitor.jobLog.jobMsg')"
name="jobMsg"
:label-col="{ span: 3 }"
:label-wrap="true"
>
<a-textarea <a-textarea
v-model:value="modalState.from.jobMsg" v-model:value="modalState.from.jobMsg"
:auto-size="{ minRows: 2, maxRows: 6 }" :auto-size="{ minRows: 2, maxRows: 6 }"

View File

@@ -291,7 +291,7 @@ onMounted(() => {
:size="tableState.size" :size="tableState.size"
:row-class-name="fnTableStriped" :row-class-name="fnTableStriped"
:pagination="tablePagination" :pagination="tablePagination"
:scroll="{ y: 450 }" :scroll="{ y: 'calc(100vh - 480px)' }"
> >
</a-table> </a-table>
</a-card> </a-card>

View File

@@ -99,33 +99,38 @@ let tableColumns: ColumnsType = [
{ {
title: t('common.rowId'), title: t('common.rowId'),
dataIndex: 'configId', dataIndex: 'configId',
align: 'center', align: 'left',
}, },
{ {
title: t('views.system.config.configName'), title: t('views.system.config.configName'),
dataIndex: 'configName', dataIndex: 'configName',
align: 'left', align: 'left',
width: 200,
}, },
{ {
title: t('views.system.config.configKey'), title: t('views.system.config.configKey'),
dataIndex: 'configKey', dataIndex: 'configKey',
align: 'left', align: 'left',
width: 200,
}, },
{ {
title: t('views.system.config.configValue'), title: t('views.system.config.configValue'),
dataIndex: 'configValue', dataIndex: 'configValue',
align: 'left', align: 'left',
width: 200,
}, },
{ {
title: t('views.system.config.configType'), title: t('views.system.config.configType'),
dataIndex: 'configType', dataIndex: 'configType',
key: 'configType', key: 'configType',
align: 'center', align: 'center',
width: 100,
}, },
{ {
title: t('views.system.config.createTime'), title: t('views.system.config.createTime'),
dataIndex: 'createTime', dataIndex: 'createTime',
align: 'center', align: 'center',
width: 150,
customRender(opt) { customRender(opt) {
if (+opt.value <= 0) return ''; if (+opt.value <= 0) return '';
return parseDateToStr(+opt.value); return parseDateToStr(+opt.value);
@@ -134,7 +139,7 @@ let tableColumns: ColumnsType = [
{ {
title: t('common.operate'), title: t('common.operate'),
key: 'configId', key: 'configId',
align: 'center', align: 'left',
}, },
]; ];
@@ -655,7 +660,7 @@ onMounted(() => {
:size="tableState.size" :size="tableState.size"
:row-class-name="fnTableStriped" :row-class-name="fnTableStriped"
:pagination="tablePagination" :pagination="tablePagination"
:scroll="{ x: true }" :scroll="{ x: tableColumns.length * 120 }"
:row-selection="{ :row-selection="{
type: 'checkbox', type: 'checkbox',
selectedRowKeys: tableState.selectedRowKeys, selectedRowKeys: tableState.selectedRowKeys,
@@ -711,7 +716,7 @@ onMounted(() => {
:title="modalState.title" :title="modalState.title"
@cancel="fnModalCancel" @cancel="fnModalCancel"
> >
<a-form layout="horizontal"> <a-form layout="horizontal" :label-col="{ span: 6 }" :label-wrap="true">
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item <a-form-item
@@ -751,8 +756,17 @@ onMounted(() => {
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
<a-form-item :label="t('views.system.config.remark')" name="remark"> <a-form-item
{{ modalState.from.remark }} :label="t('views.system.config.remark')"
name="remark"
:label-col="{ span: 3 }"
:label-wrap="true"
>
<a-textarea
v-model:value="modalState.from.remark"
:auto-size="{ minRows: 2, maxRows: 6 }"
:disabled="true"
/>
</a-form-item> </a-form-item>
</a-form> </a-form>
<template #footer> <template #footer>
@@ -773,7 +787,12 @@ onMounted(() => {
@ok="fnModalOk" @ok="fnModalOk"
@cancel="fnModalCancel" @cancel="fnModalCancel"
> >
<a-form name="modalStateFrom" layout="horizontal"> <a-form
name="modalStateFrom"
layout="horizontal"
:label-col="{ span: 6 }"
:label-wrap="true"
>
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item <a-form-item
@@ -833,7 +852,12 @@ onMounted(() => {
</a-col> </a-col>
</a-row> </a-row>
<a-form-item :label="t('views.system.config.remark')" name="remark"> <a-form-item
:label="t('views.system.config.remark')"
name="remark"
:label-col="{ span: 3 }"
:label-wrap="true"
>
<a-textarea <a-textarea
v-model:value="modalState.from.remark" v-model:value="modalState.from.remark"
:auto-size="{ minRows: 4, maxRows: 6 }" :auto-size="{ minRows: 4, maxRows: 6 }"

View File

@@ -84,28 +84,33 @@ let tableColumns: ColumnsType = [
{ {
title: t('views.system.dept.className'), title: t('views.system.dept.className'),
dataIndex: 'deptName', dataIndex: 'deptName',
align: 'center', align: 'left',
width: 300,
}, },
{ {
title: t('views.system.dept.classId'), title: t('views.system.dept.classId'),
dataIndex: 'deptId', dataIndex: 'deptId',
align: 'center', align: 'left',
width: 150,
}, },
{ {
title: t('views.system.dept.className'), title: t('views.system.dept.classSort'),
dataIndex: 'orderNum', dataIndex: 'orderNum',
align: 'center', align: 'left',
width: 200,
}, },
{ {
title: t('views.system.dept.status'), title: t('views.system.dept.status'),
dataIndex: 'status', dataIndex: 'status',
key: 'status', key: 'status',
align: 'center', align: 'center',
width: 150,
}, },
{ {
title: t('views.system.dept.createTime'), title: t('views.system.dept.createTime'),
dataIndex: 'createTime', dataIndex: 'createTime',
align: 'center', align: 'center',
width: 150,
customRender(opt) { customRender(opt) {
if (+opt.value <= 0) return ''; if (+opt.value <= 0) return '';
return parseDateToStr(+opt.value); return parseDateToStr(+opt.value);
@@ -114,7 +119,7 @@ let tableColumns: ColumnsType = [
{ {
title: t('common.operate'), title: t('common.operate'),
key: 'deptId', key: 'deptId',
align: 'center', align: 'left',
}, },
]; ];
@@ -553,7 +558,7 @@ onMounted(() => {
:size="tableState.size" :size="tableState.size"
:row-class-name="fnTableStriped" :row-class-name="fnTableStriped"
:pagination="false" :pagination="false"
:scroll="{ x: true }" :scroll="{ x: tableColumns.length * 120 }"
children-column-name="children" children-column-name="children"
:expanded-row-keys="tableState.expandedRowKeys" :expanded-row-keys="tableState.expandedRowKeys"
@expandedRowsChange="fnTableExpandedRowsChange" @expandedRowsChange="fnTableExpandedRowsChange"
@@ -594,7 +599,7 @@ onMounted(() => {
<template #icon><DeleteOutlined /></template> <template #icon><DeleteOutlined /></template>
</a-button> </a-button>
</a-tooltip> </a-tooltip>
<a-tooltip v-if="record.status !== '0'"> <a-tooltip placement="topRight" v-if="record.status !== '0'">
<template #title>{{ <template #title>{{
t('views.system.dept.addClass') t('views.system.dept.addClass')
}}</template> }}</template>
@@ -653,7 +658,7 @@ onMounted(() => {
</a-col> </a-col>
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item <a-form-item
:label="t('views.system.dept.showSort')" :label="t('views.system.dept.classSort')"
name="orderNum" name="orderNum"
> >
{{ modalState.from.orderNum }} {{ modalState.from.orderNum }}
@@ -727,6 +732,8 @@ onMounted(() => {
:label="t('views.system.dept.highClass')" :label="t('views.system.dept.highClass')"
name="parentId" name="parentId"
v-bind="modalStateFrom.validateInfos.parentId" v-bind="modalStateFrom.validateInfos.parentId"
:label-col="{ span: 3 }"
:labelWrap="true"
> >
<a-tree-select <a-tree-select
v-model:value="modalState.from.parentId" v-model:value="modalState.from.parentId"
@@ -750,6 +757,8 @@ onMounted(() => {
:label="t('views.system.dept.className')" :label="t('views.system.dept.className')"
name="deptName" name="deptName"
v-bind="modalStateFrom.validateInfos.deptName" v-bind="modalStateFrom.validateInfos.deptName"
:label-col="{ span: 3 }"
:labelWrap="true"
> >
<a-input <a-input
v-model:value="modalState.from.deptName" v-model:value="modalState.from.deptName"
@@ -771,7 +780,7 @@ onMounted(() => {
</a-col> </a-col>
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item <a-form-item
:label="t('views.system.dept.showSort')" :label="t('views.system.dept.classSort')"
name="orderNum" name="orderNum"
> >
<a-input-number <a-input-number

View File

@@ -148,32 +148,38 @@ let tableColumns: ColumnsType = [
title: t('views.system.dictData.dictCode'), title: t('views.system.dictData.dictCode'),
dataIndex: 'dictCode', dataIndex: 'dictCode',
align: 'left', align: 'left',
width: 100,
}, },
{ {
title: t('views.system.dictData.dictLabel'), title: t('views.system.dictData.dictLabel'),
dataIndex: 'dictLabel', dataIndex: 'dictLabel',
align: 'left', align: 'left',
width: 200,
}, },
{ {
title: t('views.system.dictData.dictValue'), title: t('views.system.dictData.dictValue'),
dataIndex: 'dictValue', dataIndex: 'dictValue',
align: 'left', align: 'left',
width: 200,
}, },
{ {
title: t('views.system.dictData.dictSort'), title: t('views.system.dictData.dictSort'),
dataIndex: 'dictSort', dataIndex: 'dictSort',
align: 'left', align: 'left',
width: 100,
}, },
{ {
title: t('views.system.dictData.status'), title: t('views.system.dictData.status'),
dataIndex: 'status', dataIndex: 'status',
key: 'status', key: 'status',
align: 'left', align: 'left',
width: 100,
}, },
{ {
title: t('views.system.dictData.createTime'), title: t('views.system.dictData.createTime'),
dataIndex: 'createTime', dataIndex: 'createTime',
align: 'left', align: 'left',
width: 150,
customRender(opt) { customRender(opt) {
if (+opt.value <= 0) return ''; if (+opt.value <= 0) return '';
return parseDateToStr(+opt.value); return parseDateToStr(+opt.value);
@@ -182,7 +188,7 @@ let tableColumns: ColumnsType = [
{ {
title: t('common.operate'), title: t('common.operate'),
key: 'dictCode', key: 'dictCode',
align: 'center', align: 'left',
}, },
]; ];
@@ -513,14 +519,13 @@ onMounted(() => {
<!-- 表格搜索栏 --> <!-- 表格搜索栏 -->
<a-form :model="queryParams" name="queryParams" layout="horizontal"> <a-form :model="queryParams" name="queryParams" layout="horizontal">
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="6" :md="12" :xs="24"> <a-col :lg="6" :md="12" :xs="24" v-if="dictId !== '0'">
<a-form-item <a-form-item
:label="t('views.system.dictData.dictType')" :label="t('views.system.dictData.dictType')"
name="dictType" name="dictType"
> >
<a-select <a-select
v-model:value="queryParams.dictType" v-model:value="queryParams.dictType"
:allow-clear="dictId === '0'"
:disabled="dictId !== '0'" :disabled="dictId !== '0'"
:placeholder="t('common.selectPlease')" :placeholder="t('common.selectPlease')"
:options="dict.sysDictType" :options="dict.sysDictType"
@@ -672,7 +677,7 @@ onMounted(() => {
:data-source="tableState.data" :data-source="tableState.data"
:size="tableState.size" :size="tableState.size"
:row-class-name="fnTableStriped" :row-class-name="fnTableStriped"
:scroll="{ x: true }" :scroll="{ x: tableColumns.length * 120 }"
:pagination="tablePagination" :pagination="tablePagination"
:row-selection="{ :row-selection="{
type: 'checkbox', type: 'checkbox',
@@ -729,7 +734,7 @@ onMounted(() => {
:title="modalState.title" :title="modalState.title"
@cancel="fnModalCancel" @cancel="fnModalCancel"
> >
<a-form layout="horizontal"> <a-form layout="horizontal" :label-col="{ span: 6 }" :label-wrap="true">
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item <a-form-item
@@ -835,8 +840,17 @@ onMounted(() => {
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
<a-form-item :label="t('views.system.dictData.remark')" name="remark"> <a-form-item
{{ modalState.from.remark }} :label="t('views.system.dictData.remark')"
name="remark"
:label-col="{ span: 3 }"
:label-wrap="true"
>
<a-textarea
v-model:value="modalState.from.remark"
:auto-size="{ minRows: 2, maxRows: 6 }"
:disabled="true"
/>
</a-form-item> </a-form-item>
</a-form> </a-form>
<template #footer> <template #footer>
@@ -857,7 +871,12 @@ onMounted(() => {
@ok="fnModalOk" @ok="fnModalOk"
@cancel="fnModalCancel" @cancel="fnModalCancel"
> >
<a-form name="modalStateFrom" layout="horizontal"> <a-form
name="modalStateFrom"
layout="horizontal"
:label-col="{ span: 6 }"
:label-wrap="true"
>
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item <a-form-item
@@ -934,6 +953,7 @@ onMounted(() => {
type="color" type="color"
allow-clear allow-clear
:placeholder="t('common.inputPlease')" :placeholder="t('common.inputPlease')"
size="small"
></a-input> ></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
@@ -979,7 +999,12 @@ onMounted(() => {
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
<a-form-item :label="t('views.system.dictData.remark')" name="remark"> <a-form-item
:label="t('views.system.dictData.remark')"
name="remark"
:label-col="{ span: 3 }"
:label-wrap="true"
>
<a-textarea <a-textarea
v-model:value="modalState.from.remark" v-model:value="modalState.from.remark"
:auto-size="{ minRows: 4, maxRows: 6 }" :auto-size="{ minRows: 4, maxRows: 6 }"

View File

@@ -104,28 +104,32 @@ let tableColumns: ColumnsType = [
{ {
title: t('views.system.dict.dictId'), title: t('views.system.dict.dictId'),
dataIndex: 'dictId', dataIndex: 'dictId',
align: 'center', align: 'left',
}, },
{ {
title: t('views.system.dict.dictName'), title: t('views.system.dict.dictName'),
dataIndex: 'dictName', dataIndex: 'dictName',
align: 'left', align: 'left',
width: 200,
}, },
{ {
title: t('views.system.dict.dictType'), title: t('views.system.dict.dictType'),
dataIndex: 'dictType', dataIndex: 'dictType',
align: 'left', align: 'left',
width: 200,
}, },
{ {
title: t('views.system.dict.dictSatus'), title: t('views.system.dict.dictSatus'),
dataIndex: 'status', dataIndex: 'status',
key: 'status', key: 'status',
align: 'center', align: 'center',
width: 100,
}, },
{ {
title: t('views.system.dict.createTime'), title: t('views.system.dict.createTime'),
dataIndex: 'createTime', dataIndex: 'createTime',
align: 'center', align: 'center',
width: 150,
customRender(opt) { customRender(opt) {
if (+opt.value <= 0) return ''; if (+opt.value <= 0) return '';
return parseDateToStr(+opt.value); return parseDateToStr(+opt.value);
@@ -134,7 +138,7 @@ let tableColumns: ColumnsType = [
{ {
title: t('common.operate'), title: t('common.operate'),
key: 'dictId', key: 'dictId',
align: 'center', align: 'left',
}, },
]; ];
@@ -347,7 +351,7 @@ function fnRecordDelete(dictId: string = '0') {
} }
Modal.confirm({ Modal.confirm({
title: t('common.tipTitle'), title: t('common.tipTitle'),
content: t('views.system.dict.dictType', { dictId }), content: t('views.system.dict.delSure', { dictId }),
onOk() { onOk() {
const key = 'delType'; const key = 'delType';
message.loading({ content: t('common.loading'), key }); message.loading({ content: t('common.loading'), key });
@@ -663,7 +667,7 @@ onMounted(() => {
:size="tableState.size" :size="tableState.size"
:row-class-name="fnTableStriped" :row-class-name="fnTableStriped"
:pagination="tablePagination" :pagination="tablePagination"
:scroll="{ x: true }" :scroll="{ x: tableColumns.length * 120 }"
:row-selection="{ :row-selection="{
type: 'checkbox', type: 'checkbox',
selectedRowKeys: tableState.selectedRowKeys, selectedRowKeys: tableState.selectedRowKeys,
@@ -731,33 +735,28 @@ onMounted(() => {
:title="modalState.title" :title="modalState.title"
@cancel="fnModalCancel" @cancel="fnModalCancel"
> >
<a-form layout="horizontal"> <a-form layout="horizontal" :label-col="{ span: 3 }" :label-wrap="true">
<a-row :gutter="16"> <a-form-item :label="t('views.system.dict.dictId')" name="dictId">
<a-col :lg="12" :md="12" :xs="24"> {{ modalState.from.dictId }}
<a-form-item :label="t('views.system.dict.dictId')" name="dictId"> </a-form-item>
{{ modalState.from.dictId }}
</a-form-item>
</a-col>
<a-col :lg="12" :md="12" :xs="24">
<a-form-item
:label="t('views.system.dict.dictSatus')"
name="status"
>
<DictTag
:options="dict.sysNormalDisable"
:value="modalState.from.status"
/>
</a-form-item>
</a-col>
</a-row>
<a-form-item :label="t('views.system.dict.dictName')" name="dictName"> <a-form-item :label="t('views.system.dict.dictName')" name="dictName">
{{ modalState.from.dictName }} {{ modalState.from.dictName }}
</a-form-item> </a-form-item>
<a-form-item :label="t('views.system.dict.dictType')" name="dictType"> <a-form-item :label="t('views.system.dict.dictType')" name="dictType">
{{ modalState.from.dictType }} {{ modalState.from.dictType }}
</a-form-item> </a-form-item>
<a-form-item :label="t('views.system.dict.dictSatus')" name="status">
<DictTag
:options="dict.sysNormalDisable"
:value="modalState.from.status"
/>
</a-form-item>
<a-form-item :label="t('views.system.dict.mark')" name="remark"> <a-form-item :label="t('views.system.dict.mark')" name="remark">
{{ modalState.from.remark }} <a-textarea
v-model:value="modalState.from.remark"
:auto-size="{ minRows: 2, maxRows: 6 }"
:disabled="true"
/>
</a-form-item> </a-form-item>
</a-form> </a-form>
<template #footer> <template #footer>
@@ -778,46 +777,40 @@ onMounted(() => {
@ok="fnModalOk" @ok="fnModalOk"
@cancel="fnModalCancel" @cancel="fnModalCancel"
> >
<a-form name="modalStateFrom" layout="horizontal"> <a-form
<a-row :gutter="16"> name="modalStateFrom"
<a-col :lg="18" :md="18" :xs="24"> layout="horizontal"
<a-form-item :label-col="{ span: 3 }"
:label="t('views.system.dict.dictName')" :label-wrap="true"
name="dictName" >
v-bind="modalStateFrom.validateInfos.dictName" <a-form-item
> :label="t('views.system.dict.dictName')"
<a-input name="dictName"
v-model:value="modalState.from.dictName" v-bind="modalStateFrom.validateInfos.dictName"
allow-clear >
></a-input> <a-input
</a-form-item> v-model:value="modalState.from.dictName"
</a-col> allow-clear
<a-col :lg="6" :md="6" :xs="24"> ></a-input>
<a-form-item </a-form-item>
:label="t('views.system.dict.dictSatus')" <a-form-item
name="status" :label="t('views.system.dict.dictType')"
> name="dictType"
<a-select v-bind="modalStateFrom.validateInfos.dictType"
v-model:value="modalState.from.status" >
default-value="0" <a-input
:options="dict.sysNormalDisable" v-model:value="modalState.from.dictType"
> allow-clear
</a-select> ></a-input>
</a-form-item> </a-form-item>
</a-col> <a-form-item :label="t('views.system.dict.dictSatus')" name="status">
<a-col :lg="18" :md="18" :xs="24"> <a-select
<a-form-item v-model:value="modalState.from.status"
:label="t('views.system.dict.dictType')" default-value="0"
name="dictType" :options="dict.sysNormalDisable"
v-bind="modalStateFrom.validateInfos.dictType" >
> </a-select>
<a-input </a-form-item>
v-model:value="modalState.from.dictType"
allow-clear
></a-input>
</a-form-item>
</a-col>
</a-row>
<a-form-item :label="t('views.system.dict.mark')" name="remark"> <a-form-item :label="t('views.system.dict.mark')" name="remark">
<a-textarea <a-textarea

View File

@@ -100,53 +100,62 @@ let tableColumns: ColumnsType = [
{ {
title: t('views.system.log.login.operId'), title: t('views.system.log.login.operId'),
dataIndex: 'loginId', dataIndex: 'loginId',
align: 'center', align: 'left',
width: 100,
}, },
{ {
title: t('views.system.log.login.account'), title: t('views.system.log.login.account'),
dataIndex: 'userName', dataIndex: 'userName',
align: 'center', align: 'left',
width: 150,
}, },
{ {
title: t('views.system.log.login.loginIp'), title: t('views.system.log.login.loginIp'),
dataIndex: 'ipaddr', dataIndex: 'ipaddr',
align: 'center', align: 'left',
width: 150,
}, },
{ {
title: t('views.system.log.login.loginLoc'), title: t('views.system.log.login.loginLoc'),
dataIndex: 'loginLocation', dataIndex: 'loginLocation',
align: 'center', align: 'left',
width: 150,
}, },
{ {
title: t('views.system.log.login.os'), title: t('views.system.log.login.os'),
dataIndex: 'os', dataIndex: 'os',
align: 'center', align: 'left',
width: 200,
}, },
{ {
title: t('views.system.log.login.browser'), title: t('views.system.log.login.browser'),
dataIndex: 'browser', dataIndex: 'browser',
align: 'center', align: 'left',
width: 200,
}, },
{ {
title: t('views.system.log.login.status'), title: t('views.system.log.login.status'),
dataIndex: 'status', dataIndex: 'status',
key: 'status', key: 'status',
align: 'center', align: 'center',
}, width: 100,
{
title: t('views.system.log.login.info'),
dataIndex: 'msg',
align: 'center',
}, },
{ {
title: t('views.system.log.login.loginTime'), title: t('views.system.log.login.loginTime'),
dataIndex: 'loginTime', dataIndex: 'loginTime',
align: 'center', align: 'center',
width: 200,
customRender(opt) { customRender(opt) {
if (+opt.value <= 0) return ''; if (+opt.value <= 0) return '';
return parseDateToStr(+opt.value); return parseDateToStr(+opt.value);
}, },
}, },
{
title: t('views.system.log.login.info'),
dataIndex: 'msg',
align: 'left',
width: 200,
},
]; ];
/**表格分页器参数 */ /**表格分页器参数 */
@@ -541,7 +550,7 @@ onMounted(() => {
:data-source="tableState.data" :data-source="tableState.data"
:size="tableState.size" :size="tableState.size"
:row-class-name="fnTableStriped" :row-class-name="fnTableStriped"
:scroll="{ x: true }" :scroll="{ x: tableColumns.length * 150 }"
:pagination="tablePagination" :pagination="tablePagination"
:row-selection="{ :row-selection="{
type: 'checkbox', type: 'checkbox',

View File

@@ -103,43 +103,51 @@ let tableColumns: ColumnsType = [
title: t('views.system.log.operate.operId'), title: t('views.system.log.operate.operId'),
dataIndex: 'operId', dataIndex: 'operId',
align: 'center', align: 'center',
width: 100,
}, },
{ {
title: t('views.system.log.operate.moduleName'), title: t('views.system.log.operate.moduleName'),
dataIndex: 'title', dataIndex: 'title',
align: 'center', align: 'left',
width: 200,
}, },
{ {
title: t('views.system.log.operate.workType'), title: t('views.system.log.operate.workType'),
dataIndex: 'businessType', dataIndex: 'businessType',
key: 'businessType', key: 'businessType',
align: 'center', align: 'left',
width: 120,
}, },
{ {
title: t('views.system.log.operate.operUser'), title: t('views.system.log.operate.operUser'),
dataIndex: 'operName', dataIndex: 'operName',
align: 'center', align: 'left',
width: 120,
}, },
{ {
title: t('views.system.log.operate.requestMe'), title: t('views.system.log.operate.requestMe'),
dataIndex: 'requestMethod', dataIndex: 'requestMethod',
align: 'center', align: 'left',
width: 150,
}, },
{ {
title: t('views.system.log.operate.host'), title: t('views.system.log.operate.host'),
dataIndex: 'operIp', dataIndex: 'operIp',
align: 'center', align: 'center',
width: 150,
}, },
{ {
title: t('views.system.log.operate.operStatus'), title: t('views.system.log.operate.operStatus'),
dataIndex: 'status', dataIndex: 'status',
key: 'status', key: 'status',
align: 'center', align: 'center',
width: 150,
}, },
{ {
title: t('views.system.log.operate.operDate'), title: t('views.system.log.operate.operDate'),
dataIndex: 'operTime', dataIndex: 'operTime',
align: 'center', align: 'center',
width: 150,
customRender(opt) { customRender(opt) {
if (+opt.value <= 0) return ''; if (+opt.value <= 0) return '';
return parseDateToStr(+opt.value); return parseDateToStr(+opt.value);
@@ -149,7 +157,8 @@ let tableColumns: ColumnsType = [
title: t('views.system.log.operate.useTime'), title: t('views.system.log.operate.useTime'),
dataIndex: 'costTime', dataIndex: 'costTime',
key: 'costTime', key: 'costTime',
align: 'center', align: 'right',
width: 150,
customRender(opt) { customRender(opt) {
return `${opt.value} ms`; return `${opt.value} ms`;
}, },
@@ -157,7 +166,7 @@ let tableColumns: ColumnsType = [
{ {
title: t('common.operate'), title: t('common.operate'),
key: 'operId', key: 'operId',
align: 'center', align: 'left',
}, },
]; ];
@@ -568,7 +577,7 @@ onMounted(() => {
:data-source="tableState.data" :data-source="tableState.data"
:size="tableState.size" :size="tableState.size"
:row-class-name="fnTableStriped" :row-class-name="fnTableStriped"
:scroll="{ x: true }" :scroll="{ x: tableColumns.length * 150 }"
:pagination="tablePagination" :pagination="tablePagination"
:row-selection="{ :row-selection="{
type: 'checkbox', type: 'checkbox',
@@ -611,24 +620,38 @@ onMounted(() => {
:title="modalState.title" :title="modalState.title"
@cancel="fnModalCancel" @cancel="fnModalCancel"
> >
<a-form layout="horizontal"> <a-form layout="horizontal" :label-col="{ span: 6 }" :label-wrap="true">
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item :label="t('views.system.log.operate.operId')" name="operId"> <a-form-item
:label="t('views.system.log.operate.operId')"
name="operId"
>
{{ modalState.from.operId }} {{ modalState.from.operId }}
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item :label="t('views.system.log.operate.operStatus')" name="status"> <a-form-item
:label="t('views.system.log.operate.operStatus')"
name="status"
>
<a-tag :color="+modalState.from.status ? 'success' : 'error'"> <a-tag :color="+modalState.from.status ? 'success' : 'error'">
{{ [t('views.system.log.operate.fail'),t('views.system.log.operate.suss')][+modalState.from.status] }} {{
[
t('views.system.log.operate.fail'),
t('views.system.log.operate.suss'),
][+modalState.from.status]
}}
</a-tag> </a-tag>
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item :label="t('views.system.log.operate.workType')" name="businessType"> <a-form-item
:label="t('views.system.log.operate.workType')"
name="businessType"
>
{{ modalState.from.title }} / {{ modalState.from.title }} /
<DictTag <DictTag
:options="dict.sysBusinessType" :options="dict.sysBusinessType"
@@ -637,7 +660,10 @@ onMounted(() => {
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item :label="t('views.system.log.operate.operUser')" name="operName"> <a-form-item
:label="t('views.system.log.operate.operUser')"
name="operName"
>
{{ modalState.from.operName }} / {{ modalState.from.operIp }} / {{ modalState.from.operName }} / {{ modalState.from.operIp }} /
{{ modalState.from.operLocation }} {{ modalState.from.operLocation }}
</a-form-item> </a-form-item>
@@ -645,13 +671,19 @@ onMounted(() => {
</a-row> </a-row>
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item :label="t('views.system.log.operate.RequestIp')" name="operUrl"> <a-form-item
:label="t('views.system.log.operate.RequestIp')"
name="operUrl"
>
{{ modalState.from.requestMethod }} - {{ modalState.from.requestMethod }} -
{{ modalState.from.operUrl }} {{ modalState.from.operUrl }}
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item :label="t('views.system.log.operate.operTime')" name="operTime"> <a-form-item
:label="t('views.system.log.operate.operTime')"
name="operTime"
>
<span v-if="+modalState.from.operTime > 0"> <span v-if="+modalState.from.operTime > 0">
{{ parseDateToStr(+modalState.from.operTime) }} {{ parseDateToStr(+modalState.from.operTime) }}
</span> </span>
@@ -660,24 +692,40 @@ onMounted(() => {
</a-row> </a-row>
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item :label="t('views.system.log.operate.useTime')" name="costTime"> <a-form-item
:label="t('views.system.log.operate.useTime')"
name="costTime"
>
{{ modalState.from.costTime }} ms {{ modalState.from.costTime }} ms
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item :label="t('views.system.log.operate.operMe')" name="method"> <!-- <a-form-item
:label="t('views.system.log.operate.operMe')"
name="method"
>
{{ modalState.from.method }} {{ modalState.from.method }}
</a-form-item> </a-form-item> -->
</a-col> </a-col>
</a-row> </a-row>
<a-form-item :label="t('views.system.log.operate.reqParam')" name="operParam"> <a-form-item
:label="t('views.system.log.operate.reqParam')"
name="operParam"
:label-col="{ span: 3 }"
:label-wrap="true"
>
<a-textarea <a-textarea
v-model:value="modalState.from.operParam" v-model:value="modalState.from.operParam"
:auto-size="{ minRows: 2, maxRows: 6 }" :auto-size="{ minRows: 2, maxRows: 6 }"
:disabled="true" :disabled="true"
/> />
</a-form-item> </a-form-item>
<a-form-item :label="t('views.system.log.operate.operInfo')" name="operMsg"> <a-form-item
:label="t('views.system.log.operate.operInfo')"
name="operMsg"
:label-col="{ span: 3 }"
:label-wrap="true"
>
<a-textarea <a-textarea
v-model:value="modalState.from.operMsg" v-model:value="modalState.from.operMsg"
:auto-size="{ minRows: 2, maxRows: 6 }" :auto-size="{ minRows: 2, maxRows: 6 }"
@@ -686,7 +734,9 @@ onMounted(() => {
</a-form-item> </a-form-item>
</a-form> </a-form>
<template #footer> <template #footer>
<a-button key="cancel" @click="fnModalCancel">{{t('common.cancel')}}</a-button> <a-button key="cancel" @click="fnModalCancel">
{{ t('common.cancel') }}
</a-button>
</template> </template>
</a-modal> </a-modal>
</PageContainer> </PageContainer>

View File

@@ -97,49 +97,58 @@ let tableColumns: ColumnsType = [
title: t('views.system.menu.menuName'), title: t('views.system.menu.menuName'),
dataIndex: 'menuName', dataIndex: 'menuName',
align: 'left', align: 'left',
width: 200,
}, },
{ {
title: t('views.system.menu.menuId'), title: t('views.system.menu.menuId'),
dataIndex: 'menuId', dataIndex: 'menuId',
align: 'center', align: 'left',
width: 120,
}, },
{ {
title: t('views.system.menu.menuSort'), title: t('views.system.menu.menuSort'),
dataIndex: 'menuSort', dataIndex: 'menuSort',
align: 'center', align: 'left',
width: 100,
}, },
{ {
title: t('views.system.menu.menuTitle'), title: t('views.system.menu.menuTitle'),
dataIndex: 'icon', dataIndex: 'icon',
key: 'icon', key: 'icon',
align: 'center', align: 'center',
width: 100,
}, },
{ {
title: t('views.system.menu.perId'), title: t('views.system.menu.perId'),
dataIndex: 'perms', dataIndex: 'perms',
align: 'left', align: 'left',
width: 200,
}, },
{ {
title: t('views.system.menu.formLoc'), title: t('views.system.menu.formLoc'),
dataIndex: 'component', dataIndex: 'component',
align: 'left', align: 'left',
width: 200,
}, },
{ {
title: t('views.system.menu.status'), title: t('views.system.menu.status'),
dataIndex: 'visible', dataIndex: 'visible',
key: 'visible', key: 'visible',
align: 'center', align: 'center',
width: 120,
}, },
{ {
title: t('views.system.menu.menuStatus'), title: t('views.system.menu.menuStatus'),
dataIndex: 'status', dataIndex: 'status',
key: 'status', key: 'status',
align: 'center', align: 'center',
width: 120,
}, },
{ {
title: t('views.system.menu.createTime'), title: t('views.system.menu.createTime'),
dataIndex: 'createTime', dataIndex: 'createTime',
align: 'center', align: 'center',
width: 150,
customRender(opt) { customRender(opt) {
if (+opt.value <= 0) return ''; if (+opt.value <= 0) return '';
return parseDateToStr(+opt.value); return parseDateToStr(+opt.value);
@@ -148,7 +157,7 @@ let tableColumns: ColumnsType = [
{ {
title: t('common.operate'), title: t('common.operate'),
key: 'menuId', key: 'menuId',
align: 'center', align: 'left',
}, },
]; ];
@@ -419,7 +428,7 @@ function fnModalCancel() {
function fnRecordDelete(menuId: string | number) { function fnRecordDelete(menuId: string | number) {
Modal.confirm({ Modal.confirm({
title: t('common.tipTitle'), title: t('common.tipTitle'),
content: t('views.system.menu.menuInfo', { menuId }), content: t('views.system.menu.delSure', { menuId }),
onOk() { onOk() {
const key = 'delMenu'; const key = 'delMenu';
message.loading({ content: t('common.loading'), key }); message.loading({ content: t('common.loading'), key });
@@ -634,7 +643,7 @@ onMounted(() => {
:size="tableState.size" :size="tableState.size"
:row-class-name="fnTableStriped" :row-class-name="fnTableStriped"
:pagination="false" :pagination="false"
:scroll="{ x: true }" :scroll="{ x: tableColumns.length * 150 }"
children-column-name="children" children-column-name="children"
:expanded-row-keys="tableState.expandedRowKeys" :expanded-row-keys="tableState.expandedRowKeys"
@expandedRowsChange="fnTableExpandedRowsChange" @expandedRowsChange="fnTableExpandedRowsChange"
@@ -719,34 +728,42 @@ onMounted(() => {
:title="modalState.title" :title="modalState.title"
@cancel="fnModalCancel" @cancel="fnModalCancel"
> >
<a-form layout="horizontal"> <a-form layout="horizontal" :label-col="{ span: 6 }" :label-wrap="true">
<a-form-item
:label="t('views.system.menu.highMenu')"
name="parentId"
:label-col="{ span: 3 }"
:label-wrap="true"
>
<a-tree-select
:value="modalState.from.parentId"
disabled
:tree-data="modalState.treeData"
:field-names="{
children: 'children',
label: 'menuName',
value: 'menuId',
}"
tree-node-label-prop="menuName"
>
<template #suffixIcon></template>
</a-tree-select>
</a-form-item>
<a-form-item
:label="t('views.system.menu.menuName')"
name="menuName"
:label-col="{ span: 3 }"
:label-wrap="true"
>
{{ modalState.from.menuName }}
</a-form-item>
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item
:label="t('views.system.menu.highMenu')"
name="parentId"
>
<a-tree-select
:value="modalState.from.parentId"
disabled
:tree-data="modalState.treeData"
:field-names="{
children: 'children',
label: 'menuName',
value: 'menuId',
}"
tree-node-label-prop="menuName"
>
<template #suffixIcon></template>
</a-tree-select>
</a-form-item>
</a-col>
<a-col :lg="6" :md="6" :xs="24">
<a-form-item :label="t('views.system.menu.menuId')" name="menuId"> <a-form-item :label="t('views.system.menu.menuId')" name="menuId">
{{ modalState.from.menuId }} {{ modalState.from.menuId }}
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :lg="6" :md="6" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item <a-form-item
:label="t('views.system.menu.menuSort')" :label="t('views.system.menu.menuSort')"
name="menuSort" name="menuSort"
@@ -757,14 +774,6 @@ onMounted(() => {
</a-row> </a-row>
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item
:label="t('views.system.menu.menuName')"
name="menuName"
>
{{ modalState.from.menuName }}
</a-form-item>
</a-col>
<a-col :lg="6" :md="6" :xs="24">
<a-form-item <a-form-item
:label="t('views.system.menu.menuType')" :label="t('views.system.menu.menuType')"
name="menuType" name="menuType"
@@ -789,7 +798,7 @@ onMounted(() => {
</a-tag> </a-tag>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :lg="6" :md="6" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item :label="t('views.system.menu.menuTitle')" name="icon"> <a-form-item :label="t('views.system.menu.menuTitle')" name="icon">
<IconFont <IconFont
:type="modalState.from.icon || '#'" :type="modalState.from.icon || '#'"
@@ -829,7 +838,7 @@ onMounted(() => {
:gutter="16" :gutter="16"
v-if="modalState.from.menuType !== MENU_TYPE_BUTTON" v-if="modalState.from.menuType !== MENU_TYPE_BUTTON"
> >
<a-col :lg="6" :md="6" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item :label="t('views.system.menu.local')" name="isFrame"> <a-form-item :label="t('views.system.menu.local')" name="isFrame">
<a-tag color="default"> <a-tag color="default">
{{ {{
@@ -840,7 +849,7 @@ onMounted(() => {
</a-tag> </a-tag>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :lg="6" :md="6" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item <a-form-item
:label="t('views.system.menu.pageCache')" :label="t('views.system.menu.pageCache')"
name="isCache" name="isCache"
@@ -855,7 +864,7 @@ onMounted(() => {
</a-tag> </a-tag>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :lg="6" :md="6" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item :label="t('views.system.menu.status')" name="visible"> <a-form-item :label="t('views.system.menu.status')" name="visible">
<a-tag color="default"> <a-tag color="default">
{{ {{
@@ -866,7 +875,7 @@ onMounted(() => {
</a-tag> </a-tag>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :lg="6" :md="6" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item <a-form-item
:label="t('views.system.menu.menuStatus')" :label="t('views.system.menu.menuStatus')"
name="status" name="status"
@@ -882,12 +891,19 @@ onMounted(() => {
<a-form-item <a-form-item
:label="t('views.system.menu.perId')" :label="t('views.system.menu.perId')"
name="perms" name="perms"
:label-col="{ span: 3 }"
:label-wrap="true"
v-if="modalState.from.menuType !== MENU_TYPE_DIR" v-if="modalState.from.menuType !== MENU_TYPE_DIR"
> >
{{ modalState.from.perms }} {{ modalState.from.perms }}
</a-form-item> </a-form-item>
<a-form-item :label="t('views.system.menu.mark')" name="remark"> <a-form-item
:label="t('views.system.menu.mark')"
name="remark"
:label-col="{ span: 3 }"
:label-wrap="true"
>
{{ modalState.from.remark }} {{ modalState.from.remark }}
</a-form-item> </a-form-item>
</a-form> </a-form>
@@ -909,11 +925,18 @@ onMounted(() => {
@ok="fnModalOk" @ok="fnModalOk"
@cancel="fnModalCancel" @cancel="fnModalCancel"
> >
<a-form name="modalStateFrom" layout="horizontal"> <a-form
name="modalStateFrom"
layout="horizontal"
:label-col="{ span: 6 }"
:label-wrap="true"
>
<a-form-item <a-form-item
:label="t('views.system.menu.highMenu')" :label="t('views.system.menu.highMenu')"
name="parentId" name="parentId"
v-bind="modalStateFrom.validateInfos.parentId" v-bind="modalStateFrom.validateInfos.parentId"
:label-col="{ span: 3 }"
:label-wrap="true"
> >
<a-tree-select <a-tree-select
v-model:value="modalState.from.parentId" v-model:value="modalState.from.parentId"
@@ -962,7 +985,12 @@ onMounted(() => {
</a-col> </a-col>
</a-row> </a-row>
<a-form-item :label="t('views.system.menu.menuType')" name="menuType"> <a-form-item
:label="t('views.system.menu.menuType')"
name="menuType"
:label-col="{ span: 3 }"
:label-wrap="true"
>
<a-radio-group v-model:value="modalState.from.menuType"> <a-radio-group v-model:value="modalState.from.menuType">
<a-radio <a-radio
:key="MENU_TYPE_DIR" :key="MENU_TYPE_DIR"
@@ -1105,6 +1133,8 @@ onMounted(() => {
:label="t('views.system.menu.formLoc')" :label="t('views.system.menu.formLoc')"
name="component" name="component"
v-bind="modalStateFrom.validateInfos.component" v-bind="modalStateFrom.validateInfos.component"
:label-col="{ span: 3 }"
:label-wrap="true"
v-if="modalState.from.menuType === MENU_TYPE_MENU" v-if="modalState.from.menuType === MENU_TYPE_MENU"
> >
<a-input v-model:value="modalState.from.component" allow-clear> <a-input v-model:value="modalState.from.component" allow-clear>
@@ -1126,6 +1156,8 @@ onMounted(() => {
name="perms" name="perms"
v-if="modalState.from.menuType !== MENU_TYPE_DIR" v-if="modalState.from.menuType !== MENU_TYPE_DIR"
v-bind="modalStateFrom.validateInfos.perms" v-bind="modalStateFrom.validateInfos.perms"
:label-col="{ span: 3 }"
:label-wrap="true"
> >
<a-input v-model:value="modalState.from.perms" allow-clear> <a-input v-model:value="modalState.from.perms" allow-clear>
<template #prefix> <template #prefix>
@@ -1141,7 +1173,12 @@ onMounted(() => {
</a-input> </a-input>
</a-form-item> </a-form-item>
<a-form-item :label="t('views.system.menu.mark')" name="remark"> <a-form-item
:label="t('views.system.menu.mark')"
name="remark"
:label-col="{ span: 3 }"
:label-wrap="true"
>
<a-textarea <a-textarea
v-model:value="modalState.from.remark" v-model:value="modalState.from.remark"
:auto-size="{ minRows: 4, maxRows: 6 }" :auto-size="{ minRows: 4, maxRows: 6 }"

View File

@@ -88,33 +88,39 @@ let tableColumns: ColumnsType = [
{ {
title: t('views.system.post.positionId'), title: t('views.system.post.positionId'),
dataIndex: 'postId', dataIndex: 'postId',
align: 'center', align: 'left',
width: 150,
}, },
{ {
title: t('views.system.post.positionName'), title: t('views.system.post.positionName'),
dataIndex: 'postName', dataIndex: 'postName',
align: 'left', align: 'left',
width: 200,
}, },
{ {
title: t('views.system.post.positionCode'), title: t('views.system.post.positionCode'),
dataIndex: 'postCode', dataIndex: 'postCode',
align: 'left', align: 'left',
width: 200,
}, },
{ {
title: t('views.system.post.positionSort'), title: t('views.system.post.positionSort'),
dataIndex: 'postSort', dataIndex: 'postSort',
align: 'left', align: 'left',
width: 150,
}, },
{ {
title: t('views.system.post.positionStatus'), title: t('views.system.post.positionStatus'),
dataIndex: 'status', dataIndex: 'status',
key: 'status', key: 'status',
align: 'center', align: 'center',
width: 150,
}, },
{ {
title: t('views.system.post.createTime'), title: t('views.system.post.createTime'),
dataIndex: 'createTime', dataIndex: 'createTime',
align: 'center', align: 'center',
width: 150,
customRender(opt) { customRender(opt) {
if (+opt.value <= 0) return ''; if (+opt.value <= 0) return '';
return parseDateToStr(+opt.value); return parseDateToStr(+opt.value);
@@ -123,7 +129,7 @@ let tableColumns: ColumnsType = [
{ {
title: t('common.operate'), title: t('common.operate'),
key: 'postId', key: 'postId',
align: 'center', align: 'left',
}, },
]; ];
@@ -585,7 +591,7 @@ onMounted(() => {
:size="tableState.size" :size="tableState.size"
:row-class-name="fnTableStriped" :row-class-name="fnTableStriped"
:pagination="tablePagination" :pagination="tablePagination"
:scroll="{ x: true }" :scroll="{ x: tableColumns.length * 120 }"
:row-selection="{ :row-selection="{
type: 'checkbox', type: 'checkbox',
selectedRowKeys: tableState.selectedRowKeys, selectedRowKeys: tableState.selectedRowKeys,
@@ -641,7 +647,7 @@ onMounted(() => {
:title="modalState.title" :title="modalState.title"
@cancel="fnModalCancel" @cancel="fnModalCancel"
> >
<a-form layout="horizontal"> <a-form layout="horizontal" :label-col="{ span: 6 }" :label-wrap="true">
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item <a-form-item
@@ -701,8 +707,17 @@ onMounted(() => {
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
<a-form-item :label="t('views.system.post.positionMark')" name="remark"> <a-form-item
{{ modalState.from.remark }} :label="t('views.system.post.positionMark')"
name="remark"
:label-col="{ span: 3 }"
:label-wrap="true"
>
<a-textarea
v-model:value="modalState.from.remark"
:auto-size="{ minRows: 2, maxRows: 6 }"
:disabled="true"
/>
</a-form-item> </a-form-item>
</a-form> </a-form>
<template #footer> <template #footer>
@@ -723,7 +738,12 @@ onMounted(() => {
@ok="fnModalOk" @ok="fnModalOk"
@cancel="fnModalCancel" @cancel="fnModalCancel"
> >
<a-form name="modalStateFrom" layout="horizontal"> <a-form
name="modalStateFrom"
layout="horizontal"
:label-col="{ span: 6 }"
:label-wrap="true"
>
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item <a-form-item
@@ -780,7 +800,12 @@ onMounted(() => {
</a-col> </a-col>
</a-row> </a-row>
<a-form-item :label="t('views.system.post.positionMark')" name="remark"> <a-form-item
:label="t('views.system.post.positionMark')"
name="remark"
:label-col="{ span: 3 }"
:label-wrap="true"
>
<a-textarea <a-textarea
v-model:value="modalState.from.remark" v-model:value="modalState.from.remark"
:auto-size="{ minRows: 4, maxRows: 6 }" :auto-size="{ minRows: 4, maxRows: 6 }"

View File

@@ -110,33 +110,39 @@ let tableColumns: ColumnsType = [
{ {
title: t('views.system.role.roleId'), title: t('views.system.role.roleId'),
dataIndex: 'roleId', dataIndex: 'roleId',
align: 'center', align: 'left',
width: 100,
}, },
{ {
title: t('views.system.role.roleName'), title: t('views.system.role.roleName'),
dataIndex: 'roleName', dataIndex: 'roleName',
align: 'left', align: 'left',
width: 200,
}, },
{ {
title: t('views.system.role.roleKey'), title: t('views.system.role.roleKey'),
dataIndex: 'roleKey', dataIndex: 'roleKey',
align: 'left', align: 'left',
width: 200,
}, },
{ {
title: t('views.system.role.roleSort'), title: t('views.system.role.roleSort'),
dataIndex: 'roleSort', dataIndex: 'roleSort',
align: 'left', align: 'left',
width: 100,
}, },
{ {
title: t('views.system.role.roleStatus'), title: t('views.system.role.roleStatus'),
dataIndex: 'status', dataIndex: 'status',
key: 'status', key: 'status',
align: 'center', align: 'center',
width: 100,
}, },
{ {
title: t('views.system.role.createTime'), title: t('views.system.role.createTime'),
dataIndex: 'createTime', dataIndex: 'createTime',
align: 'center', align: 'center',
width: 150,
customRender(opt) { customRender(opt) {
if (+opt.value <= 0) return ''; if (+opt.value <= 0) return '';
return parseDateToStr(+opt.value); return parseDateToStr(+opt.value);
@@ -145,7 +151,7 @@ let tableColumns: ColumnsType = [
{ {
title: t('common.operate'), title: t('common.operate'),
key: 'roleId', key: 'roleId',
align: 'center', align: 'left',
}, },
]; ];
@@ -909,7 +915,7 @@ onMounted(() => {
:size="tableState.size" :size="tableState.size"
:row-class-name="fnTableStriped" :row-class-name="fnTableStriped"
:pagination="tablePagination" :pagination="tablePagination"
:scroll="{ x: true }" :scroll="{ x: tableColumns.length * 120 }"
:row-selection="{ :row-selection="{
type: 'checkbox', type: 'checkbox',
selectedRowKeys: tableState.selectedRowKeys, selectedRowKeys: tableState.selectedRowKeys,
@@ -920,13 +926,15 @@ onMounted(() => {
<template v-if="column.key === 'status'"> <template v-if="column.key === 'status'">
<a-switch <a-switch
v-if=" v-if="
record.roleId !== '1' && hasPermissions(['system:role:edit']) dict.sysNormalDisable.length > 0 &&
record.roleId !== '1' &&
hasPermissions(['system:role:edit'])
" "
v-model:checked="record.status" v-model:checked="record.status"
checked-value="1" checked-value="1"
:checked-children="t('views.system.role.normal')" :checked-children="dict.sysNormalDisable[0].label"
un-checked-value="0" un-checked-value="0"
:un-checked-children="t('views.system.role.stop')" :un-checked-children="dict.sysNormalDisable[1].label"
size="small" size="small"
@change="fnRecordStatus(record)" @change="fnRecordStatus(record)"
/> />
@@ -968,7 +976,7 @@ onMounted(() => {
<template #icon><DeleteOutlined /></template> <template #icon><DeleteOutlined /></template>
</a-button> </a-button>
</a-tooltip> </a-tooltip>
<a-tooltip v-if="record.roleId !== '1'"> <a-tooltip placement="topRight" v-if="record.roleId !== '1'">
<template #title>{{ <template #title>{{
t('views.system.role.distribute') t('views.system.role.distribute')
}}</template> }}</template>
@@ -980,7 +988,7 @@ onMounted(() => {
<template #icon><SecurityScanOutlined /></template> <template #icon><SecurityScanOutlined /></template>
</a-button> </a-button>
</a-tooltip> </a-tooltip>
<a-tooltip v-if="record.roleId !== '1'"> <a-tooltip placement="topRight" v-if="record.roleId !== '1'">
<template #title>{{ <template #title>{{
t('views.system.role.distributeUser') t('views.system.role.distributeUser')
}}</template> }}</template>
@@ -1005,7 +1013,7 @@ onMounted(() => {
:title="modalState.title" :title="modalState.title"
@cancel="fnModalCancel" @cancel="fnModalCancel"
> >
<a-form layout="horizontal"> <a-form layout="horizontal" :label-col="{ span: 6 }" :label-wrap="true">
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item :label="t('views.system.role.roleId')" name="roleId"> <a-form-item :label="t('views.system.role.roleId')" name="roleId">
@@ -1056,13 +1064,24 @@ onMounted(() => {
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
<a-form-item :label="t('views.system.role.roleMark')" name="remark"> <a-form-item
{{ modalState.from.remark }} :label="t('views.system.role.roleMark')"
name="remark"
:label-col="{ span: 3 }"
:label-wrap="true"
>
<a-textarea
v-model:value="modalState.from.remark"
:auto-size="{ minRows: 2, maxRows: 6 }"
:disabled="true"
/>
</a-form-item> </a-form-item>
<a-form-item <a-form-item
:label="t('views.system.role.menu')" :label="t('views.system.role.menu')"
name="menuCheckStrictly" name="menuCheckStrictly"
:label-col="{ span: 3 }"
:label-wrap="true"
> >
<a-tree <a-tree
disabled disabled
@@ -1097,7 +1116,12 @@ onMounted(() => {
@ok="fnModalOk" @ok="fnModalOk"
@cancel="fnModalCancel" @cancel="fnModalCancel"
> >
<a-form name="modalStateFromByEdit" layout="horizontal"> <a-form
name="modalStateFromByEdit"
layout="horizontal"
:label-col="{ span: 6 }"
:label-wrap="true"
>
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item <a-form-item
@@ -1162,7 +1186,12 @@ onMounted(() => {
</a-col> </a-col>
</a-row> </a-row>
<a-form-item :label="t('views.system.role.roleMark')" name="remark"> <a-form-item
:label="t('views.system.role.roleMark')"
name="remark"
:label-col="{ span: 3 }"
:label-wrap="true"
>
<a-textarea <a-textarea
v-model:value="modalState.from.remark" v-model:value="modalState.from.remark"
:auto-size="{ minRows: 4, maxRows: 6 }" :auto-size="{ minRows: 4, maxRows: 6 }"
@@ -1174,6 +1203,8 @@ onMounted(() => {
<a-form-item <a-form-item
:label="t('views.system.role.menu')" :label="t('views.system.role.menu')"
name="menuCheckStrictly" name="menuCheckStrictly"
:label-col="{ span: 3 }"
:label-wrap="true"
> >
<a-space :size="12" align="center"> <a-space :size="12" align="center">
<a-checkbox <a-checkbox
@@ -1228,7 +1259,12 @@ onMounted(() => {
@ok="fnModalOkDataScope" @ok="fnModalOkDataScope"
@cancel="fnModalCancel" @cancel="fnModalCancel"
> >
<a-form name="modalStateFromByDataScope" layout="horizontal"> <a-form
name="modalStateFromByDataScope"
layout="horizontal"
:label-col="{ span: 6 }"
:label-wrap="true"
>
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item :label="t('views.system.role.roleId')" name="roleId"> <a-form-item :label="t('views.system.role.roleId')" name="roleId">
@@ -1282,11 +1318,25 @@ onMounted(() => {
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
<a-form-item :label="t('views.system.role.roleMark')" name="remark"> <a-form-item
{{ modalState.from.remark }} :label="t('views.system.role.roleMark')"
name="remark"
:label-col="{ span: 3 }"
:label-wrap="true"
>
<a-textarea
v-model:value="modalState.from.remark"
:auto-size="{ minRows: 2, maxRows: 6 }"
:disabled="true"
/>
</a-form-item> </a-form-item>
<a-form-item :label="t('views.system.role.preScope')" name="dataScope"> <a-form-item
:label="t('views.system.role.preScope')"
name="dataScope"
:label-col="{ span: 3 }"
:label-wrap="true"
>
<a-select <a-select
v-model:value="modalState.from.dataScope" v-model:value="modalState.from.dataScope"
default-value="5" default-value="5"
@@ -1297,6 +1347,8 @@ onMounted(() => {
<a-form-item <a-form-item
:label="t('views.system.role.dataPer')" :label="t('views.system.role.dataPer')"
name="deptCheckStrictly" name="deptCheckStrictly"
:label-col="{ span: 3 }"
:label-wrap="true"
v-show="modalState.from.dataScope === '2'" v-show="modalState.from.dataScope === '2'"
> >
<a-space :size="12" align="center"> <a-space :size="12" align="center">

View File

@@ -120,39 +120,46 @@ let tableColumns: ColumnsType = [
{ {
title: t('views.system.user.userNum'), title: t('views.system.user.userNum'),
dataIndex: 'userId', dataIndex: 'userId',
align: 'center', align: 'left',
width: 120,
}, },
{ {
title: t('views.system.user.account'), title: t('views.system.user.account'),
dataIndex: 'userName', dataIndex: 'userName',
align: 'center', align: 'left',
width: 150,
}, },
{ {
title: t('views.system.user.userName'), title: t('views.system.user.userName'),
dataIndex: 'nickName', dataIndex: 'nickName',
align: 'center', align: 'left',
width: 150,
}, },
{ {
title: t('views.system.user.permission'), title: t('views.system.user.permission'),
key: 'roles', key: 'roles',
align: 'left', align: 'left',
width: 200,
}, },
{ {
title: t('views.system.user.className'), title: t('views.system.user.className'),
dataIndex: 'deptId', dataIndex: 'deptId',
key: 'deptId', key: 'deptId',
align: 'center', align: 'left',
width: 200,
}, },
{ {
title: t('views.system.user.loginIp'), title: t('views.system.user.loginIp'),
dataIndex: 'loginIp', dataIndex: 'loginIp',
key: 'loginIp', key: 'loginIp',
align: 'center', align: 'left',
width: 120,
}, },
{ {
title: t('views.system.user.loginTime'), title: t('views.system.user.loginTime'),
dataIndex: 'loginDate', dataIndex: 'loginDate',
align: 'center', align: 'left',
width: 150,
customRender(opt) { customRender(opt) {
if (+opt.value <= 0) return ''; if (+opt.value <= 0) return '';
return parseDateToStr(+opt.value); return parseDateToStr(+opt.value);
@@ -162,12 +169,13 @@ let tableColumns: ColumnsType = [
title: t('views.system.user.status'), title: t('views.system.user.status'),
dataIndex: 'status', dataIndex: 'status',
key: 'status', key: 'status',
align: 'center', align: 'left',
width: 100,
}, },
{ {
title: t('common.operate'), title: t('common.operate'),
key: 'userId', key: 'userId',
align: 'center', align: 'left',
}, },
]; ];
@@ -991,7 +999,7 @@ onMounted(() => {
:size="tableState.size" :size="tableState.size"
:row-class-name="fnTableStriped" :row-class-name="fnTableStriped"
:pagination="tablePagination" :pagination="tablePagination"
:scroll="{ x: true }" :scroll="{ x: tableColumns.length * 150 }"
:row-selection="{ :row-selection="{
type: 'checkbox', type: 'checkbox',
selectedRowKeys: tableState.selectedRowKeys, selectedRowKeys: tableState.selectedRowKeys,
@@ -1020,9 +1028,9 @@ onMounted(() => {
v-perms:has="['system:user:edit']" v-perms:has="['system:user:edit']"
v-model:checked="record.status" v-model:checked="record.status"
checked-value="1" checked-value="1"
:checked-children="t('views.system.user.normalcy')" :checked-children="dict.sysNormalDisable[0].label"
un-checked-value="0" un-checked-value="0"
:un-checked-children="t('views.system.user.deactivate')" :un-checked-children="dict.sysNormalDisable[1].label"
size="small" size="small"
@change="fnRecordStatus(record)" @change="fnRecordStatus(record)"
/> />
@@ -1084,7 +1092,7 @@ onMounted(() => {
:title="modalState.title" :title="modalState.title"
@cancel="fnModalCancel" @cancel="fnModalCancel"
> >
<a-form layout="horizontal"> <a-form layout="horizontal" :label-col="{ span: 6 }" :label-wrap="true">
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item :label="t('views.system.user.userNum')" name="userId"> <a-form-item :label="t('views.system.user.userNum')" name="userId">
@@ -1130,6 +1138,7 @@ onMounted(() => {
></a-avatar> ></a-avatar>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :lg="12" :md="12" :xs="24"> </a-col>
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item <a-form-item
:label="t('views.system.user.account')" :label="t('views.system.user.account')"
@@ -1138,8 +1147,6 @@ onMounted(() => {
{{ modalState.from.userName }} {{ modalState.from.userName }}
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row>
<a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item <a-form-item
:label="t('views.system.user.userName')" :label="t('views.system.user.userName')"
@@ -1148,7 +1155,9 @@ onMounted(() => {
{{ modalState.from.nickName }} {{ modalState.from.nickName }}
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :lg="6" :md="6" :xs="24"> </a-row>
<a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24">
<a-form-item :label="t('views.system.user.sex')" name="sex"> <a-form-item :label="t('views.system.user.sex')" name="sex">
<DictTag <DictTag
:options="dict.sysUserSex" :options="dict.sysUserSex"
@@ -1156,7 +1165,7 @@ onMounted(() => {
/> />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :lg="6" :md="6" :xs="24"> <a-col :lg="12" :md="12" :xs="24">
<a-form-item :label="t('views.system.user.status')" name="status"> <a-form-item :label="t('views.system.user.status')" name="status">
<DictTag <DictTag
:options="dict.sysNormalDisable" :options="dict.sysNormalDisable"
@@ -1182,7 +1191,12 @@ onMounted(() => {
</a-col> </a-col>
</a-row> </a-row>
<a-form-item :label="t('views.system.user.fromClass')" name="deptId"> <a-form-item
:label="t('views.system.user.fromClass')"
name="deptId"
:label-col="{ span: 3 }"
:label-wrap="true"
>
<a-tree-select <a-tree-select
:value="modalState.from.deptId" :value="modalState.from.deptId"
disabled disabled
@@ -1236,7 +1250,12 @@ onMounted(() => {
</a-col> </a-col>
</a-row> </a-row>
<a-form-item :label="t('views.system.user.userTip')" name="remark"> <a-form-item
:label="t('views.system.user.userTip')"
name="remark"
:label-col="{ span: 3 }"
:label-wrap="true"
>
{{ modalState.from.remark }} {{ modalState.from.remark }}
</a-form-item> </a-form-item>
</a-form> </a-form>