Merge branch 'lichang' into lite
This commit is contained in:
@@ -5,13 +5,11 @@ import zhCN from 'ant-design-vue/es/locale/zh_CN';
|
||||
import enUS from 'ant-design-vue/es/locale/en_US';
|
||||
import { usePrefersColorScheme, viewTransitionTheme } from 'antdv-pro-layout';
|
||||
import dayjs from 'dayjs';
|
||||
import advancedFormat from 'dayjs/plugin/advancedFormat';
|
||||
import useLayoutStore from '@/store/modules/layout';
|
||||
import useAppStore from '@/store/modules/app';
|
||||
import useI18n from '@/hooks/useI18n';
|
||||
const { t, currentLocale } = useI18n();
|
||||
const { themeConfig, initPrimaryColor, changeConf } = useLayoutStore();
|
||||
dayjs.extend(advancedFormat);
|
||||
// dayjs.locale('zh-cn'); // 默认中文
|
||||
let locale = ref(enUS); // 国际化初始中文
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ import useAlarmStore from '@/store/modules/alarm';
|
||||
import { getServerTime } from '@/api';
|
||||
import { MENU_PATH_INLINE } from '@/constants/menu-constants';
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import { parseDateToStr } from '@/utils/date-utils';
|
||||
import { getTimezoneOffset, parseDateUTCToStr } from '@/utils/date-utils';
|
||||
import { parseUrlPath } from '@/plugins/file-static-url';
|
||||
const { proConfig, waterMarkContent } = useLayoutStore();
|
||||
const { t, currentLocale } = useI18n();
|
||||
@@ -196,6 +196,7 @@ onMounted(() => {
|
||||
// ==== 服务器时间显示 start
|
||||
let serverTimeInterval: any = null;
|
||||
let serverTime = 0;
|
||||
let serverTimeZone = getTimezoneOffset();
|
||||
|
||||
// 获取服务器时间
|
||||
function fnGetServerTime() {
|
||||
@@ -204,12 +205,16 @@ function fnGetServerTime() {
|
||||
clearInterval(serverTimeInterval);
|
||||
serverTimeInterval = null;
|
||||
serverTime = res.data.timestamp;
|
||||
serverTimeZone = res.data.timezone;
|
||||
// 用DOM直接修改
|
||||
const serverTimeDom = document.getElementById('serverTimeDom');
|
||||
serverTimeInterval = setInterval(() => {
|
||||
serverTime += 1000;
|
||||
if (serverTimeDom) {
|
||||
serverTimeDom.innerText = parseDateToStr(serverTime);
|
||||
serverTimeDom.innerText = parseDateUTCToStr(
|
||||
serverTime,
|
||||
serverTimeZone
|
||||
);
|
||||
} else {
|
||||
clearInterval(serverTimeInterval);
|
||||
serverTimeInterval = null;
|
||||
|
||||
@@ -1,27 +1,19 @@
|
||||
// 依赖来源 https://github.com/iamkun/dayjs
|
||||
import dayjs from 'dayjs';
|
||||
|
||||
import utc from 'dayjs/plugin/utc';
|
||||
import timezone from 'dayjs/plugin/timezone';
|
||||
dayjs.extend(utc);
|
||||
dayjs.extend(timezone);
|
||||
// 导入本地化语言并设为默认使用,只需要全局有引入就行
|
||||
// import('dayjs/locale/zh-cn');
|
||||
// dayjs.locale('zh-cn');
|
||||
|
||||
/**年 列如:2022 */
|
||||
export const YYYY = 'YYYY';
|
||||
|
||||
/**年-月 列如:2022-12 */
|
||||
export const YYYY_MM = 'YYYY-MM';
|
||||
|
||||
/**年-月-日 列如:2022-12-30 */
|
||||
export const YYYY_MM_DD = 'YYYY-MM-DD';
|
||||
|
||||
/**年月日时分秒 列如:20221230010159 */
|
||||
export const YYYYMMDDHHMMSS = 'YYYYMMDDHHmmss';
|
||||
|
||||
/**年-月-日 时:分:秒 列如:2022-12-30 01:01:59 */
|
||||
export const YYYY_MM_DD_HH_MM_SS = 'YYYY-MM-DD HH:mm:ss';
|
||||
|
||||
/**国际时间 列如:2022-12-30T01:01:59+08:00 */
|
||||
export const RFC3339 = 'YYYY-MM-DDTHH:mm:ssZ';
|
||||
|
||||
/**国际时间 列如:Thu, Nov 14 2024 10:19 GMT+08:00 */
|
||||
export const RFC822Z = 'ddd, MMM DD YYYY HH:mm [GMT]Z';
|
||||
|
||||
@@ -52,13 +44,34 @@ export function parseDateToStr(
|
||||
}
|
||||
|
||||
/**
|
||||
* 格式时间成日期路径
|
||||
*
|
||||
* 年/月 列如:2022/12
|
||||
* @returns 时间格式字符串 YYYY/MM
|
||||
* 格式时间
|
||||
* @param date 可转的Date对象
|
||||
* @param offset 时间格式 默认 RFC3339
|
||||
* @returns 时间格式字符串
|
||||
*/
|
||||
export function parseDatePath(date: number | Date = Date.now()): string {
|
||||
return dayjs(date).format('YYYY/MM');
|
||||
export function parseDateUTCToStr(
|
||||
date: string | number | Date,
|
||||
offset: string = '+0000'
|
||||
): string {
|
||||
// 将时间戳转换为 UTC 时间
|
||||
const utcTime = dayjs.utc(date);
|
||||
// 使用自定义时区偏移格式化时间
|
||||
return utcTime.format(`YYYY-MM-DD HH:mm:ss [UTC${offset}]`);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取时区偏移量
|
||||
* @returns +0800格式
|
||||
*/
|
||||
export function getTimezoneOffset(): string {
|
||||
const offset = new Date().getTimezoneOffset();
|
||||
const hours = Math.abs(Math.floor(offset / 60));
|
||||
const minutes = Math.abs(offset % 60);
|
||||
const sign = offset <= 0 ? '+' : '-';
|
||||
return `${sign}${String(hours).padStart(2, '0')}${String(minutes).padStart(
|
||||
2,
|
||||
'0'
|
||||
)}`;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -20,6 +20,7 @@ import useTabsStore from '@/store/modules/tabs';
|
||||
import useDictStore from '@/store/modules/dict';
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import useI18n from '@/hooks/useI18n';
|
||||
import type { Dayjs } from 'dayjs';
|
||||
const { t } = useI18n();
|
||||
const tabsStore = useTabsStore();
|
||||
const { getDict } = useDictStore();
|
||||
@@ -40,8 +41,8 @@ let dict: {
|
||||
sysCommonStatus: [],
|
||||
});
|
||||
|
||||
/**记录开始结束时间 */
|
||||
let queryRangePicker = ref<[string, string]>(['', '']);
|
||||
/**开始结束时间 */
|
||||
let queryRangePicker = ref<[Dayjs, Dayjs] | undefined>(undefined);
|
||||
|
||||
/**查询参数 */
|
||||
let queryParams = reactive({
|
||||
@@ -54,9 +55,9 @@ let queryParams = reactive({
|
||||
/**执行状态 */
|
||||
statusFlag: undefined,
|
||||
/**记录开始时间 */
|
||||
beginTime: '',
|
||||
beginTime: undefined as number | undefined,
|
||||
/**记录结束时间 */
|
||||
endTime: '',
|
||||
endTime: undefined as number | undefined,
|
||||
/**当前页数 */
|
||||
pageNum: 1,
|
||||
/**每页条数 */
|
||||
@@ -68,8 +69,8 @@ function fnQueryReset() {
|
||||
if (jobId && jobId !== '0') {
|
||||
queryParams = Object.assign(queryParams, {
|
||||
statusFlag: undefined,
|
||||
beginTime: '',
|
||||
endTime: '',
|
||||
beginTime: undefined,
|
||||
endTime: undefined,
|
||||
pageNum: 1,
|
||||
pageSize: 20,
|
||||
});
|
||||
@@ -85,7 +86,7 @@ function fnQueryReset() {
|
||||
pageSize: 20,
|
||||
});
|
||||
}
|
||||
queryRangePicker.value = ['', ''];
|
||||
queryRangePicker.value = undefined;
|
||||
tablePagination.current = 1;
|
||||
tablePagination.pageSize = 20;
|
||||
fnGetList();
|
||||
@@ -361,11 +362,17 @@ function fnGetList(pageNum?: number) {
|
||||
if (pageNum) {
|
||||
queryParams.pageNum = pageNum;
|
||||
}
|
||||
if (!queryRangePicker.value) {
|
||||
queryRangePicker.value = ['', ''];
|
||||
// 时间范围
|
||||
if (
|
||||
Array.isArray(queryRangePicker.value) &&
|
||||
queryRangePicker.value.length > 0
|
||||
) {
|
||||
queryParams.beginTime = queryRangePicker.value[0].valueOf();
|
||||
queryParams.endTime = queryRangePicker.value[1].valueOf();
|
||||
} else {
|
||||
queryParams.beginTime = undefined;
|
||||
queryParams.endTime = undefined;
|
||||
}
|
||||
queryParams.beginTime = queryRangePicker.value[0];
|
||||
queryParams.endTime = queryRangePicker.value[1];
|
||||
listJobLog(toRaw(queryParams)).then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
// 取消勾选
|
||||
@@ -475,12 +482,11 @@ onMounted(() => {
|
||||
>
|
||||
<a-range-picker
|
||||
v-model:value="queryRangePicker"
|
||||
allow-clear
|
||||
bordered
|
||||
:bordered="true"
|
||||
:allow-clear="true"
|
||||
style="width: 100%"
|
||||
:show-time="{ format: 'HH:mm:ss' }"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="x"
|
||||
style="width: 100%"
|
||||
></a-range-picker>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
@@ -7,30 +7,29 @@ import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import useI18n from '@/hooks/useI18n';
|
||||
import {
|
||||
YYYY_MM_DD_HH_MM_SS,
|
||||
parseDateToStr,
|
||||
parseDateWithoutYear,
|
||||
parseStrToDate,
|
||||
} from '@/utils/date-utils';
|
||||
import { parseSizeFromKBs } from '@/utils/parse-utils';
|
||||
import dayjs, { Dayjs } from 'dayjs';
|
||||
import dayjs, { type Dayjs } from 'dayjs';
|
||||
const { t } = useI18n();
|
||||
|
||||
/**开始结束时间类型 */
|
||||
type RangePickerType = {
|
||||
placeholder: [string, string];
|
||||
ranges: Record<string, [Dayjs, Dayjs]>;
|
||||
presets: { label: string; value: Dayjs[] }[] | undefined;
|
||||
/**全局时间 */
|
||||
all: [string, string];
|
||||
all: [Dayjs, Dayjs] | undefined;
|
||||
/**平均负载 */
|
||||
load: [string, string];
|
||||
load: [Dayjs, Dayjs] | undefined;
|
||||
/**CPU */
|
||||
cpu: [string, string];
|
||||
cpu: [Dayjs, Dayjs] | undefined;
|
||||
/**内存 */
|
||||
memory: [string, string];
|
||||
memory: [Dayjs, Dayjs] | undefined;
|
||||
/**磁盘 */
|
||||
io: [string, string];
|
||||
io: [Dayjs, Dayjs] | undefined;
|
||||
/**网络 */
|
||||
network: [string, string];
|
||||
network: [Dayjs, Dayjs] | undefined;
|
||||
};
|
||||
|
||||
/**开始结束时间 */
|
||||
@@ -39,42 +38,54 @@ let rangePicker = reactive<RangePickerType>({
|
||||
t('views.monitor.monitor.startTime'),
|
||||
t('views.monitor.monitor.endTime'),
|
||||
],
|
||||
ranges: {
|
||||
[t('views.monitor.monitor.yesterday')]: [
|
||||
dayjs().subtract(1, 'day').startOf('day'),
|
||||
dayjs().subtract(1, 'day').endOf('day'),
|
||||
],
|
||||
[t('views.monitor.monitor.today')]: [dayjs().startOf('day'), dayjs()],
|
||||
[t('views.monitor.monitor.week')]: [
|
||||
dayjs().startOf('week'),
|
||||
dayjs().endOf('week'),
|
||||
],
|
||||
[t('views.monitor.monitor.month')]: [
|
||||
dayjs().startOf('month'),
|
||||
dayjs().endOf('month'),
|
||||
],
|
||||
},
|
||||
all: ['', ''],
|
||||
load: ['', ''],
|
||||
cpu: ['', ''],
|
||||
memory: ['', ''],
|
||||
io: ['', ''],
|
||||
network: ['', ''],
|
||||
presets: [
|
||||
{
|
||||
label: t('views.monitor.monitor.yesterday'),
|
||||
value: [
|
||||
dayjs().subtract(1, 'day').startOf('day'),
|
||||
dayjs().subtract(1, 'day').endOf('day'),
|
||||
],
|
||||
},
|
||||
{
|
||||
label: t('views.monitor.monitor.today'),
|
||||
value: [dayjs().startOf('day'), dayjs()],
|
||||
},
|
||||
{
|
||||
label: t('views.monitor.monitor.week'),
|
||||
value: [dayjs().startOf('week'), dayjs().endOf('week')],
|
||||
},
|
||||
{
|
||||
label: t('views.monitor.monitor.month'),
|
||||
value: [dayjs().startOf('month'), dayjs().endOf('month')],
|
||||
},
|
||||
],
|
||||
all: [dayjs().subtract(2, 'hour'), dayjs().endOf('hour')],
|
||||
load: undefined,
|
||||
cpu: undefined,
|
||||
memory: undefined,
|
||||
io: undefined,
|
||||
network: undefined,
|
||||
});
|
||||
|
||||
/**查询全部资源数据列表 */
|
||||
function fnGetList() {
|
||||
let beginTime = null;
|
||||
let endTime = null;
|
||||
const dateNumber = rangePicker.all;
|
||||
if (dateNumber[0]) {
|
||||
beginTime = dateNumber[0];
|
||||
endTime = dateNumber[1];
|
||||
// 时间范围
|
||||
if (Array.isArray(rangePicker.all) && rangePicker.all.length > 0) {
|
||||
beginTime = rangePicker.all[0].valueOf();
|
||||
endTime = rangePicker.all[1].valueOf();
|
||||
// 设置初始时间段
|
||||
const initRangePicker = rangePicker.all;
|
||||
rangePicker.all = initRangePicker;
|
||||
rangePicker.load = initRangePicker;
|
||||
rangePicker.cpu = initRangePicker;
|
||||
rangePicker.memory = initRangePicker;
|
||||
rangePicker.io = initRangePicker;
|
||||
rangePicker.network = initRangePicker;
|
||||
} else {
|
||||
const now = new Date();
|
||||
now.setHours(0, 0, 0, 0);
|
||||
beginTime = `${now.getTime()}`;
|
||||
endTime = `${new Date().getTime()}`;
|
||||
beginTime = undefined;
|
||||
endTime = undefined;
|
||||
}
|
||||
|
||||
getLoad({
|
||||
@@ -92,15 +103,6 @@ function fnGetList() {
|
||||
fnNetworkChart(res.data.network);
|
||||
}
|
||||
});
|
||||
|
||||
// 设置初始时间段
|
||||
const initRangePicker: [string, string] = [beginTime, endTime];
|
||||
rangePicker.all = initRangePicker;
|
||||
rangePicker.load = initRangePicker;
|
||||
rangePicker.cpu = initRangePicker;
|
||||
rangePicker.memory = initRangePicker;
|
||||
rangePicker.io = initRangePicker;
|
||||
rangePicker.network = initRangePicker;
|
||||
}
|
||||
|
||||
/**图表显示数据 */
|
||||
@@ -350,19 +352,14 @@ function fnNetworkChart(data: Record<string, any>[]) {
|
||||
}
|
||||
|
||||
/**查询数据-平均负载/CPU/内存 */
|
||||
function fnGetQuery(
|
||||
type: 'load' | 'cpu' | 'memory',
|
||||
dateString: [string, string]
|
||||
) {
|
||||
if (!dateString[0]) {
|
||||
function fnGetQuery(type: 'load' | 'cpu' | 'memory', v: [Dayjs, Dayjs]) {
|
||||
if (!Array.isArray(v) || v.length <= 0) {
|
||||
return;
|
||||
}
|
||||
const beginTime = parseStrToDate(dateString[0], YYYY_MM_DD_HH_MM_SS);
|
||||
const endTime = parseStrToDate(dateString[1], YYYY_MM_DD_HH_MM_SS);
|
||||
getLoad({
|
||||
type: type,
|
||||
beginTime: beginTime.getTime(),
|
||||
endTime: endTime.getTime(),
|
||||
beginTime: v[0].valueOf(),
|
||||
endTime: v[1].valueOf(),
|
||||
neType: '#',
|
||||
neId: '#',
|
||||
}).then(res => {
|
||||
@@ -381,16 +378,14 @@ function fnGetQuery(
|
||||
}
|
||||
|
||||
/**查询数据-IO */
|
||||
function fnGetQueryIO(v: any, dateString: [string, string]) {
|
||||
if (!v) {
|
||||
function fnGetQueryIO(v: [string, string] | [Dayjs, Dayjs]) {
|
||||
if (!Array.isArray(v) || v.length <= 0) {
|
||||
return;
|
||||
}
|
||||
const beginTime = parseStrToDate(dateString[0], YYYY_MM_DD_HH_MM_SS);
|
||||
const endTime = parseStrToDate(dateString[1], YYYY_MM_DD_HH_MM_SS);
|
||||
getLoad({
|
||||
type: 'io',
|
||||
beginTime: beginTime.getTime(),
|
||||
endTime: endTime.getTime(),
|
||||
beginTime: v[0].valueOf(),
|
||||
endTime: v[1].valueOf(),
|
||||
neType: '#',
|
||||
neId: '#',
|
||||
}).then(res => {
|
||||
@@ -401,16 +396,15 @@ function fnGetQueryIO(v: any, dateString: [string, string]) {
|
||||
}
|
||||
|
||||
/**查询数据-Network */
|
||||
function fnGetQueryNetwork(v: any, dateString: [string, string]) {
|
||||
if (!v) {
|
||||
function fnGetQueryNetwork(v: [string, string] | [Dayjs, Dayjs]) {
|
||||
console.log(v);
|
||||
if (!Array.isArray(v) || v.length <= 0) {
|
||||
return;
|
||||
}
|
||||
const beginTime = parseStrToDate(dateString[0], YYYY_MM_DD_HH_MM_SS);
|
||||
const endTime = parseStrToDate(dateString[1], YYYY_MM_DD_HH_MM_SS);
|
||||
getLoad({
|
||||
type: 'network',
|
||||
beginTime: beginTime.getTime(),
|
||||
endTime: endTime.getTime(),
|
||||
beginTime: v[0].valueOf(),
|
||||
endTime: v[1].valueOf(),
|
||||
neType: '#',
|
||||
neId: '#',
|
||||
}).then(res => {
|
||||
@@ -441,14 +435,13 @@ onMounted(() => {
|
||||
>
|
||||
<a-range-picker
|
||||
v-model:value="rangePicker.all"
|
||||
:placeholder="rangePicker.placeholder"
|
||||
:presets="rangePicker.presets"
|
||||
:bordered="true"
|
||||
:allow-clear="false"
|
||||
bordered
|
||||
style="width: 100%"
|
||||
:show-time="{ format: 'HH:mm:ss' }"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="x"
|
||||
:placeholder="rangePicker.placeholder"
|
||||
:ranges="rangePicker.ranges"
|
||||
style="width: 100%"
|
||||
></a-range-picker>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -479,10 +472,9 @@ onMounted(() => {
|
||||
bordered
|
||||
:show-time="{ format: 'HH:mm:ss' }"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="x"
|
||||
:placeholder="rangePicker.placeholder"
|
||||
style="width: 100%"
|
||||
@change="(_:any, d:[string,string]) => fnGetQuery('load', d)"
|
||||
@change="(v:any) => fnGetQuery('load', v)"
|
||||
></a-range-picker>
|
||||
</template>
|
||||
|
||||
@@ -509,10 +501,9 @@ onMounted(() => {
|
||||
bordered
|
||||
:show-time="{ format: 'HH:mm:ss' }"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="x"
|
||||
:placeholder="rangePicker.placeholder"
|
||||
style="width: 100%"
|
||||
@change="(_:any, d:[string,string]) => fnGetQuery('cpu', d)"
|
||||
@change="(v:any) => fnGetQuery('cpu', v)"
|
||||
></a-range-picker>
|
||||
</template>
|
||||
|
||||
@@ -537,10 +528,9 @@ onMounted(() => {
|
||||
bordered
|
||||
:show-time="{ format: 'HH:mm:ss' }"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="x"
|
||||
:placeholder="rangePicker.placeholder"
|
||||
style="width: 100%"
|
||||
@change="(_:any, d:[string,string]) => fnGetQuery('memory', d)"
|
||||
@change="(v:any) => fnGetQuery('memory', v)"
|
||||
></a-range-picker>
|
||||
</template>
|
||||
|
||||
@@ -567,7 +557,6 @@ onMounted(() => {
|
||||
bordered
|
||||
:show-time="{ format: 'HH:mm:ss' }"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="x"
|
||||
:placeholder="rangePicker.placeholder"
|
||||
style="width: 100%"
|
||||
@change="fnGetQueryIO"
|
||||
@@ -595,10 +584,9 @@ onMounted(() => {
|
||||
bordered
|
||||
:show-time="{ format: 'HH:mm:ss' }"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="x"
|
||||
:placeholder="rangePicker.placeholder"
|
||||
style="width: 100%"
|
||||
@change="fnGetQueryNetwork"
|
||||
@ok="fnGetQueryNetwork"
|
||||
></a-range-picker>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ import { parseDateToStr } from '@/utils/date-utils';
|
||||
import useDictStore from '@/store/modules/dict';
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import useI18n from '@/hooks/useI18n';
|
||||
import type { Dayjs } from 'dayjs';
|
||||
const { t } = useI18n();
|
||||
const { getDict } = useDictStore();
|
||||
|
||||
@@ -32,7 +33,7 @@ let dict: {
|
||||
});
|
||||
|
||||
/**开始结束时间 */
|
||||
let queryRangePicker = ref<[string, string]>(['', '']);
|
||||
let queryRangePicker = ref<[Dayjs, Dayjs] | undefined>(undefined);
|
||||
|
||||
/**查询参数 */
|
||||
let queryParams = reactive({
|
||||
@@ -43,9 +44,9 @@ let queryParams = reactive({
|
||||
/**系统内置 */
|
||||
configType: undefined,
|
||||
/**记录开始时间 */
|
||||
beginTime: '',
|
||||
beginTime: undefined as number | undefined,
|
||||
/**记录结束时间 */
|
||||
endTime: '',
|
||||
endTime: undefined as number | undefined,
|
||||
/**当前页数 */
|
||||
pageNum: 1,
|
||||
/**每页条数 */
|
||||
@@ -58,12 +59,12 @@ function fnQueryReset() {
|
||||
configName: '',
|
||||
configKey: '',
|
||||
configType: undefined,
|
||||
beginTime: '',
|
||||
endTime: '',
|
||||
beginTime: undefined,
|
||||
endTime: undefined,
|
||||
pageNum: 1,
|
||||
pageSize: 20,
|
||||
});
|
||||
queryRangePicker.value = ['', ''];
|
||||
queryRangePicker.value = undefined;
|
||||
tablePagination.current = 1;
|
||||
tablePagination.pageSize = 20;
|
||||
fnGetList();
|
||||
@@ -439,13 +440,21 @@ function fnGetList(pageNum?: number) {
|
||||
if (pageNum) {
|
||||
queryParams.pageNum = pageNum;
|
||||
}
|
||||
if (!queryRangePicker.value) {
|
||||
queryRangePicker.value = ['', ''];
|
||||
|
||||
// 时间范围
|
||||
if (
|
||||
Array.isArray(queryRangePicker.value) &&
|
||||
queryRangePicker.value.length > 0
|
||||
) {
|
||||
queryParams.beginTime = queryRangePicker.value[0].valueOf();
|
||||
queryParams.endTime = queryRangePicker.value[1].valueOf();
|
||||
} else {
|
||||
queryParams.beginTime = undefined;
|
||||
queryParams.endTime = undefined;
|
||||
}
|
||||
queryParams.beginTime = queryRangePicker.value[0];
|
||||
queryParams.endTime = queryRangePicker.value[1];
|
||||
|
||||
listConfig(toRaw(queryParams)).then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
// 取消勾选
|
||||
if (tableState.selectedRowKeys.length > 0) {
|
||||
tableState.selectedRowKeys = [];
|
||||
@@ -533,12 +542,11 @@ onMounted(() => {
|
||||
>
|
||||
<a-range-picker
|
||||
v-model:value="queryRangePicker"
|
||||
allow-clear
|
||||
bordered
|
||||
:bordered="true"
|
||||
:allow-clear="true"
|
||||
style="width: 100%"
|
||||
:show-time="{ format: 'HH:mm:ss' }"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="x"
|
||||
style="width: 100%"
|
||||
></a-range-picker>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
@@ -22,6 +22,7 @@ import useDictStore from '@/store/modules/dict';
|
||||
import { MENU_PATH_INLINE } from '@/constants/menu-constants';
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import useI18n from '@/hooks/useI18n';
|
||||
import type { Dayjs } from 'dayjs';
|
||||
const { t } = useI18n();
|
||||
const { getDict } = useDictStore();
|
||||
const router = useRouter();
|
||||
@@ -37,7 +38,7 @@ let dict: {
|
||||
});
|
||||
|
||||
/**开始结束时间 */
|
||||
let queryRangePicker = ref<[string, string]>(['', '']);
|
||||
let queryRangePicker = ref<[Dayjs, Dayjs] | undefined>(undefined);
|
||||
|
||||
/**查询参数 */
|
||||
let queryParams = reactive({
|
||||
@@ -48,9 +49,9 @@ let queryParams = reactive({
|
||||
/**字典状态 */
|
||||
statusFlag: undefined,
|
||||
/**记录开始时间 */
|
||||
beginTime: '',
|
||||
beginTime: undefined as number | undefined,
|
||||
/**记录结束时间 */
|
||||
endTime: '',
|
||||
endTime: undefined as number | undefined,
|
||||
/**当前页数 */
|
||||
pageNum: 1,
|
||||
/**每页条数 */
|
||||
@@ -63,12 +64,12 @@ function fnQueryReset() {
|
||||
dictName: '',
|
||||
dictType: '',
|
||||
statusFlag: undefined,
|
||||
beginTime: '',
|
||||
endTime: '',
|
||||
beginTime: undefined,
|
||||
endTime: undefined,
|
||||
pageNum: 1,
|
||||
pageSize: 20,
|
||||
});
|
||||
queryRangePicker.value = ['', ''];
|
||||
queryRangePicker.value = undefined;
|
||||
tablePagination.current = 1;
|
||||
tablePagination.pageSize = 20;
|
||||
fnGetList();
|
||||
@@ -440,13 +441,19 @@ function fnGetList(pageNum?: number) {
|
||||
if (pageNum) {
|
||||
queryParams.pageNum = pageNum;
|
||||
}
|
||||
if (!queryRangePicker.value) {
|
||||
queryRangePicker.value = ['', ''];
|
||||
// 时间范围
|
||||
if (
|
||||
Array.isArray(queryRangePicker.value) &&
|
||||
queryRangePicker.value.length > 0
|
||||
) {
|
||||
queryParams.beginTime = queryRangePicker.value[0].valueOf();
|
||||
queryParams.endTime = queryRangePicker.value[1].valueOf();
|
||||
} else {
|
||||
queryParams.beginTime = undefined;
|
||||
queryParams.endTime = undefined;
|
||||
}
|
||||
queryParams.beginTime = queryRangePicker.value[0];
|
||||
queryParams.endTime = queryRangePicker.value[1];
|
||||
listType(toRaw(queryParams)).then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
// 取消勾选
|
||||
if (tableState.selectedRowKeys.length > 0) {
|
||||
tableState.selectedRowKeys = [];
|
||||
@@ -531,12 +538,11 @@ onMounted(() => {
|
||||
>
|
||||
<a-range-picker
|
||||
v-model:value="queryRangePicker"
|
||||
allow-clear
|
||||
bordered
|
||||
:bordered="true"
|
||||
:allow-clear="true"
|
||||
style="width: 100%"
|
||||
:show-time="{ format: 'HH:mm:ss' }"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="x"
|
||||
style="width: 100%"
|
||||
></a-range-picker>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -671,7 +677,10 @@ onMounted(() => {
|
||||
>
|
||||
<template #bodyCell="{ column, record }">
|
||||
<template v-if="column.key === 'statusFlag'">
|
||||
<DictTag :options="dict.sysNormalDisable" :value="record.statusFlag" />
|
||||
<DictTag
|
||||
:options="dict.sysNormalDisable"
|
||||
:value="record.statusFlag"
|
||||
/>
|
||||
</template>
|
||||
<template v-if="column.key === 'dictId'">
|
||||
<a-space :size="8" align="center">
|
||||
@@ -741,7 +750,10 @@ onMounted(() => {
|
||||
<a-form-item :label="t('views.system.dict.dictType')" name="dictType">
|
||||
{{ modalState.from.dictType }}
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('views.system.dict.dictSatus')" name="statusFlag">
|
||||
<a-form-item
|
||||
:label="t('views.system.dict.dictSatus')"
|
||||
name="statusFlag"
|
||||
>
|
||||
<DictTag
|
||||
:options="dict.sysNormalDisable"
|
||||
:value="modalState.from.statusFlag"
|
||||
@@ -801,7 +813,10 @@ onMounted(() => {
|
||||
allow-clear
|
||||
></a-input>
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('views.system.dict.dictSatus')" name="statusFlag">
|
||||
<a-form-item
|
||||
:label="t('views.system.dict.dictSatus')"
|
||||
name="statusFlag"
|
||||
>
|
||||
<a-select
|
||||
v-model:value="modalState.from.statusFlag"
|
||||
default-value="0"
|
||||
|
||||
@@ -17,6 +17,7 @@ import { parseDateToStr } from '@/utils/date-utils';
|
||||
import useDictStore from '@/store/modules/dict';
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import useI18n from '@/hooks/useI18n';
|
||||
import type { Dayjs } from 'dayjs';
|
||||
const { t } = useI18n();
|
||||
const { getDict } = useDictStore();
|
||||
|
||||
@@ -29,7 +30,7 @@ let dict: {
|
||||
});
|
||||
|
||||
/**开始结束时间 */
|
||||
let queryRangePicker = ref<[string, string]>(['', '']);
|
||||
let queryRangePicker = ref<[Dayjs, Dayjs] | undefined>(undefined);
|
||||
|
||||
/**查询参数 */
|
||||
let queryParams = reactive({
|
||||
@@ -39,10 +40,10 @@ let queryParams = reactive({
|
||||
userName: '',
|
||||
/**登录状态 */
|
||||
statusFlag: undefined,
|
||||
/**开始时间 */
|
||||
beginTime: '',
|
||||
/**结束时间 */
|
||||
endTime: '',
|
||||
/**记录开始时间 */
|
||||
beginTime: undefined as number | undefined,
|
||||
/**记录结束时间 */
|
||||
endTime: undefined as number | undefined,
|
||||
/**当前页数 */
|
||||
pageNum: 1,
|
||||
/**每页条数 */
|
||||
@@ -55,12 +56,12 @@ function fnQueryReset() {
|
||||
loginIp: '',
|
||||
userName: '',
|
||||
statusFlag: undefined,
|
||||
beginTime: '',
|
||||
endTime: '',
|
||||
beginTime: undefined,
|
||||
endTime: undefined,
|
||||
pageNum: 1,
|
||||
pageSize: 20,
|
||||
});
|
||||
queryRangePicker.value = ['', ''];
|
||||
queryRangePicker.value = undefined;
|
||||
tablePagination.current = 1;
|
||||
tablePagination.pageSize = 20;
|
||||
fnGetList();
|
||||
@@ -325,13 +326,21 @@ function fnGetList(pageNum?: number) {
|
||||
if (pageNum) {
|
||||
queryParams.pageNum = pageNum;
|
||||
}
|
||||
if (!queryRangePicker.value) {
|
||||
queryRangePicker.value = ['', ''];
|
||||
|
||||
// 时间范围
|
||||
if (
|
||||
Array.isArray(queryRangePicker.value) &&
|
||||
queryRangePicker.value.length > 0
|
||||
) {
|
||||
queryParams.beginTime = queryRangePicker.value[0].valueOf();
|
||||
queryParams.endTime = queryRangePicker.value[1].valueOf();
|
||||
} else {
|
||||
queryParams.beginTime = undefined;
|
||||
queryParams.endTime = undefined;
|
||||
}
|
||||
queryParams.beginTime = queryRangePicker.value[0];
|
||||
queryParams.endTime = queryRangePicker.value[1];
|
||||
|
||||
listSysLogLogin(toRaw(queryParams)).then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
// 取消勾选
|
||||
if (tableState.selectedRowKeys.length > 0) {
|
||||
tableState.selectedRowKeys = [];
|
||||
@@ -424,12 +433,11 @@ onMounted(() => {
|
||||
>
|
||||
<a-range-picker
|
||||
v-model:value="queryRangePicker"
|
||||
allow-clear
|
||||
bordered
|
||||
:bordered="true"
|
||||
:allow-clear="true"
|
||||
style="width: 100%"
|
||||
:show-time="{ format: 'HH:mm:ss' }"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="x"
|
||||
style="width: 100%"
|
||||
></a-range-picker>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -543,7 +551,10 @@ onMounted(() => {
|
||||
>
|
||||
<template #bodyCell="{ column, record }">
|
||||
<template v-if="column.key === 'statusFlag'">
|
||||
<DictTag :options="dict.sysCommonStatus" :value="record.statusFlag" />
|
||||
<DictTag
|
||||
:options="dict.sysCommonStatus"
|
||||
:value="record.statusFlag"
|
||||
/>
|
||||
</template>
|
||||
</template>
|
||||
</a-table>
|
||||
|
||||
@@ -17,6 +17,7 @@ import { parseDateToStr } from '@/utils/date-utils';
|
||||
import useDictStore from '@/store/modules/dict';
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import useI18n from '@/hooks/useI18n';
|
||||
import type { Dayjs } from 'dayjs';
|
||||
const { t } = useI18n();
|
||||
const { getDict } = useDictStore();
|
||||
|
||||
@@ -32,7 +33,7 @@ let dict: {
|
||||
});
|
||||
|
||||
/**开始结束时间 */
|
||||
let queryRangePicker = ref<[string, string]>(['', '']);
|
||||
let queryRangePicker = ref<[Dayjs, Dayjs] | undefined>(undefined);
|
||||
|
||||
/**查询参数 */
|
||||
let queryParams = reactive({
|
||||
@@ -44,10 +45,10 @@ let queryParams = reactive({
|
||||
businessType: undefined,
|
||||
/**操作状态 */
|
||||
statusFlag: undefined,
|
||||
/**开始时间 */
|
||||
beginTime: '',
|
||||
/**结束时间 */
|
||||
endTime: '',
|
||||
/**记录开始时间 */
|
||||
beginTime: undefined as number | undefined,
|
||||
/**记录结束时间 */
|
||||
endTime: undefined as number | undefined,
|
||||
/**当前页数 */
|
||||
pageNum: 1,
|
||||
/**每页条数 */
|
||||
@@ -61,12 +62,12 @@ function fnQueryReset() {
|
||||
operaBy: '',
|
||||
businessType: undefined,
|
||||
statusFlag: undefined,
|
||||
beginTime: '',
|
||||
endTime: '',
|
||||
beginTime: undefined,
|
||||
endTime: undefined,
|
||||
pageNum: 1,
|
||||
pageSize: 20,
|
||||
});
|
||||
queryRangePicker.value = ['', ''];
|
||||
queryRangePicker.value = undefined;
|
||||
tablePagination.current = 1;
|
||||
tablePagination.pageSize = 20;
|
||||
fnGetList();
|
||||
@@ -349,11 +350,17 @@ function fnGetList(pageNum?: number) {
|
||||
if (pageNum) {
|
||||
queryParams.pageNum = pageNum;
|
||||
}
|
||||
if (!queryRangePicker.value) {
|
||||
queryRangePicker.value = ['', ''];
|
||||
// 时间范围
|
||||
if (
|
||||
Array.isArray(queryRangePicker.value) &&
|
||||
queryRangePicker.value.length > 0
|
||||
) {
|
||||
queryParams.beginTime = queryRangePicker.value[0].valueOf();
|
||||
queryParams.endTime = queryRangePicker.value[1].valueOf();
|
||||
} else {
|
||||
queryParams.beginTime = undefined;
|
||||
queryParams.endTime = undefined;
|
||||
}
|
||||
queryParams.beginTime = queryRangePicker.value[0];
|
||||
queryParams.endTime = queryRangePicker.value[1];
|
||||
listSysLogOperate(toRaw(queryParams)).then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
// 取消勾选
|
||||
@@ -456,12 +463,11 @@ onMounted(() => {
|
||||
>
|
||||
<a-range-picker
|
||||
v-model:value="queryRangePicker"
|
||||
allow-clear
|
||||
bordered
|
||||
:bordered="true"
|
||||
:allow-clear="true"
|
||||
style="width: 100%"
|
||||
:show-time="{ format: 'HH:mm:ss' }"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="x"
|
||||
style="width: 100%"
|
||||
></a-range-picker>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
@@ -33,6 +33,7 @@ import { MENU_PATH_INLINE } from '@/constants/menu-constants';
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import useI18n from '@/hooks/useI18n';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
import type { Dayjs } from 'dayjs';
|
||||
const { t } = useI18n();
|
||||
const { getDict } = useDictStore();
|
||||
const userStore = useUserStore();
|
||||
@@ -49,7 +50,7 @@ let dict: {
|
||||
});
|
||||
|
||||
/**开始结束时间 */
|
||||
let queryRangePicker = ref<[string, string]>(['', '']);
|
||||
let queryRangePicker = ref<[Dayjs, Dayjs] | undefined>(undefined);
|
||||
|
||||
/**查询参数 */
|
||||
let queryParams = reactive({
|
||||
@@ -60,9 +61,9 @@ let queryParams = reactive({
|
||||
/**角色状态 */
|
||||
statusFlag: undefined,
|
||||
/**记录开始时间 */
|
||||
beginTime: '',
|
||||
beginTime: undefined as number | undefined,
|
||||
/**记录结束时间 */
|
||||
endTime: '',
|
||||
endTime: undefined as number | undefined,
|
||||
/**当前页数 */
|
||||
pageNum: 1,
|
||||
/**每页条数 */
|
||||
@@ -75,12 +76,12 @@ function fnQueryReset() {
|
||||
roleName: '',
|
||||
roleKey: '',
|
||||
statusFlag: undefined,
|
||||
beginTime: '',
|
||||
endTime: '',
|
||||
beginTime: undefined,
|
||||
endTime: undefined,
|
||||
pageNum: 1,
|
||||
pageSize: 20,
|
||||
});
|
||||
queryRangePicker.value = ['', ''];
|
||||
queryRangePicker.value = undefined;
|
||||
tablePagination.current = 1;
|
||||
tablePagination.pageSize = 20;
|
||||
fnGetList();
|
||||
@@ -728,11 +729,17 @@ function fnGetList(pageNum?: number) {
|
||||
if (pageNum) {
|
||||
queryParams.pageNum = pageNum;
|
||||
}
|
||||
if (!queryRangePicker.value) {
|
||||
queryRangePicker.value = ['', ''];
|
||||
// 时间范围
|
||||
if (
|
||||
Array.isArray(queryRangePicker.value) &&
|
||||
queryRangePicker.value.length > 0
|
||||
) {
|
||||
queryParams.beginTime = queryRangePicker.value[0].valueOf();
|
||||
queryParams.endTime = queryRangePicker.value[1].valueOf();
|
||||
} else {
|
||||
queryParams.beginTime = undefined;
|
||||
queryParams.endTime = undefined;
|
||||
}
|
||||
queryParams.beginTime = queryRangePicker.value[0];
|
||||
queryParams.endTime = queryRangePicker.value[1];
|
||||
listRole(toRaw(queryParams)).then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
// 取消勾选
|
||||
@@ -816,12 +823,11 @@ onMounted(() => {
|
||||
>
|
||||
<a-range-picker
|
||||
v-model:value="queryRangePicker"
|
||||
allow-clear
|
||||
bordered
|
||||
:bordered="true"
|
||||
:allow-clear="true"
|
||||
style="width: 100%"
|
||||
:show-time="{ format: 'HH:mm:ss' }"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="x"
|
||||
style="width: 100%"
|
||||
></a-range-picker>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
|
||||
@@ -35,6 +35,7 @@ import useUserStore from '@/store/modules/user';
|
||||
import { DataNode } from 'ant-design-vue/es/tree';
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import { uploadFile } from '@/api/tool/file';
|
||||
import type { Dayjs } from 'dayjs';
|
||||
const { getDict } = useDictStore();
|
||||
const userStore = useUserStore();
|
||||
const { t } = useI18n();
|
||||
@@ -51,7 +52,7 @@ let dict: {
|
||||
});
|
||||
|
||||
/**开始结束时间 */
|
||||
let queryRangePicker = ref<[string, string]>(['', '']);
|
||||
let queryRangePicker = ref<[Dayjs, Dayjs] | undefined>(undefined);
|
||||
|
||||
/**查询参数 */
|
||||
let queryParams = reactive({
|
||||
@@ -64,9 +65,9 @@ let queryParams = reactive({
|
||||
/**用户状态 */
|
||||
statusFlag: undefined,
|
||||
/**记录开始时间 */
|
||||
beginTime: '',
|
||||
beginTime: undefined as number | undefined,
|
||||
/**记录结束时间 */
|
||||
endTime: '',
|
||||
endTime: undefined as number | undefined,
|
||||
/**当前页数 */
|
||||
pageNum: 1,
|
||||
/**每页条数 */
|
||||
@@ -80,12 +81,12 @@ function fnQueryReset() {
|
||||
phone: '',
|
||||
deptId: undefined,
|
||||
statusFlag: undefined,
|
||||
beginTime: '',
|
||||
endTime: '',
|
||||
beginTime: undefined,
|
||||
endTime: undefined,
|
||||
pageNum: 1,
|
||||
pageSize: 20,
|
||||
});
|
||||
queryRangePicker.value = ['', ''];
|
||||
queryRangePicker.value = undefined;
|
||||
tablePagination.current = 1;
|
||||
tablePagination.pageSize = 20;
|
||||
fnGetList();
|
||||
@@ -747,11 +748,19 @@ function fnGetList(pageNum?: number) {
|
||||
if (pageNum) {
|
||||
queryParams.pageNum = pageNum;
|
||||
}
|
||||
if (!queryRangePicker.value) {
|
||||
queryRangePicker.value = ['', ''];
|
||||
|
||||
// 时间范围
|
||||
if (
|
||||
Array.isArray(queryRangePicker.value) &&
|
||||
queryRangePicker.value.length > 0
|
||||
) {
|
||||
queryParams.beginTime = queryRangePicker.value[0].valueOf();
|
||||
queryParams.endTime = queryRangePicker.value[1].valueOf();
|
||||
} else {
|
||||
queryParams.beginTime = undefined;
|
||||
queryParams.endTime = undefined;
|
||||
}
|
||||
queryParams.beginTime = queryRangePicker.value[0];
|
||||
queryParams.endTime = queryRangePicker.value[1];
|
||||
|
||||
listUser(toRaw(queryParams)).then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
// 取消勾选
|
||||
@@ -1061,7 +1070,10 @@ onMounted(() => {
|
||||
<template #icon><FormOutlined /></template>
|
||||
</a-button>
|
||||
</a-tooltip>
|
||||
<a-tooltip placement="topLeft" v-if="record.userId != userStore.userId">
|
||||
<a-tooltip
|
||||
placement="topLeft"
|
||||
v-if="record.userId != userStore.userId"
|
||||
>
|
||||
<template #title>{{ t('common.deleteText') }}</template>
|
||||
<a-button
|
||||
type="link"
|
||||
@@ -1071,7 +1083,10 @@ onMounted(() => {
|
||||
<template #icon><DeleteOutlined /></template>
|
||||
</a-button>
|
||||
</a-tooltip>
|
||||
<a-tooltip placement="topLeft" v-if="record.userId != userStore.userId">
|
||||
<a-tooltip
|
||||
placement="topLeft"
|
||||
v-if="record.userId != userStore.userId"
|
||||
>
|
||||
<template #title>
|
||||
{{ t('views.system.user.resetPwd') }}
|
||||
</template>
|
||||
|
||||
Reference in New Issue
Block a user