mirror of
https://github.com/cuigh/swirl
synced 2025-06-26 18:16:50 +00:00
Refactor code
This commit is contained in:
@@ -20,8 +20,8 @@ export interface Chart {
|
||||
top: number;
|
||||
bottom: number;
|
||||
};
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
createdAt: number;
|
||||
updatedAt: number;
|
||||
createdBy: {
|
||||
id: string;
|
||||
name: string;
|
||||
|
||||
@@ -8,7 +8,7 @@ export interface Event {
|
||||
name: string;
|
||||
userId: string;
|
||||
username: string;
|
||||
time: string;
|
||||
time: number;
|
||||
}
|
||||
|
||||
export interface SearchArgs {
|
||||
|
||||
@@ -6,8 +6,8 @@ export interface Registry {
|
||||
url: string;
|
||||
username: string;
|
||||
password: string;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
createdAt: number;
|
||||
updatedAt: number;
|
||||
createdBy: {
|
||||
id: string;
|
||||
name: string;
|
||||
|
||||
@@ -5,8 +5,8 @@ export interface Role {
|
||||
name: string;
|
||||
desc: string;
|
||||
perms: string[];
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
createdAt: number;
|
||||
updatedAt: number;
|
||||
createdBy: {
|
||||
id: string;
|
||||
name: string;
|
||||
|
||||
@@ -6,8 +6,8 @@ export interface Stack {
|
||||
content: string;
|
||||
services?: string[];
|
||||
internal: boolean;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
createdAt: number;
|
||||
updatedAt: number;
|
||||
createdBy: {
|
||||
id: string;
|
||||
name: string;
|
||||
|
||||
@@ -17,8 +17,8 @@ export interface User {
|
||||
status: number;
|
||||
email: string;
|
||||
roles: string[];
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
createdAt: number;
|
||||
updatedAt: number;
|
||||
createdBy: {
|
||||
id: string;
|
||||
name: string;
|
||||
|
||||
@@ -394,6 +394,7 @@ export default {
|
||||
"1002": "Account is disabled",
|
||||
"1003": "Old password is incorrect",
|
||||
"1004": "Can not deploy external stack",
|
||||
"1005": "system was already initialized",
|
||||
},
|
||||
"copyright": "© 2017-2021 cuigh. All rights reserved.",
|
||||
}
|
||||
@@ -394,6 +394,7 @@ export default {
|
||||
"1002": "账户已禁用",
|
||||
"1003": "旧密码不正确",
|
||||
"1004": "不能发布外部编排",
|
||||
"1005": "系统已经初始化",
|
||||
},
|
||||
"copyright": "© 2017-2021 cuigh. 保留所有权利。",
|
||||
}
|
||||
@@ -68,7 +68,7 @@ import XCode from "@/components/Code.vue";
|
||||
import XIcon from "@/components/Icon.vue";
|
||||
import chartApi from "@/api/chart";
|
||||
import type { Chart } from "@/api/chart";
|
||||
import { renderButtons, renderLink, renderTag } from "@/utils/render";
|
||||
import { renderButtons, renderLink, renderTag, renderTime } from "@/utils/render";
|
||||
import { useDataTable } from "@/utils/data-table";
|
||||
import { toTitle } from "@/utils";
|
||||
import { useI18n } from 'vue-i18n'
|
||||
@@ -119,7 +119,8 @@ const columns = [
|
||||
},
|
||||
{
|
||||
title: t('fields.updated_at'),
|
||||
key: "updatedAt"
|
||||
key: "updatedAt",
|
||||
render: (c: Chart) => renderTime(c.updatedAt),
|
||||
},
|
||||
{
|
||||
title: t('fields.actions'),
|
||||
@@ -175,7 +176,7 @@ function importChart() {
|
||||
}
|
||||
|
||||
function exportChart(c: Chart) {
|
||||
const { id, createdAt, updatedAt, ...chart } = c
|
||||
const { id, createdAt, updatedAt, createdBy, updatedBy, ...chart } = c
|
||||
window.dialog.success({
|
||||
showIcon: false,
|
||||
title: t('dialogs.export_chart.title'),
|
||||
|
||||
@@ -57,11 +57,15 @@
|
||||
<x-description-item :label="t('fields.created_by')">
|
||||
<x-anchor :url="`/system/users/${model.createdBy?.id}`">{{ model.createdBy?.name }}</x-anchor>
|
||||
</x-description-item>
|
||||
<x-description-item :label="t('fields.created_at')">{{ model.createdAt }}</x-description-item>
|
||||
<x-description-item :label="t('fields.created_at')">
|
||||
<n-time :time="model.createdAt" format="y-MM-dd HH:mm:ss" />
|
||||
</x-description-item>
|
||||
<x-description-item :label="t('fields.updated_by')">
|
||||
<x-anchor :url="`/system/users/${model.updatedBy?.id}`">{{ model.updatedBy?.name }}</x-anchor>
|
||||
</x-description-item>
|
||||
<x-description-item :label="t('fields.updated_at')">{{ model.updatedAt }}</x-description-item>
|
||||
<x-description-item :label="t('fields.updated_at')">
|
||||
<n-time :time="model.updatedAt" format="y-MM-dd HH:mm:ss" />
|
||||
</x-description-item>
|
||||
</x-description>
|
||||
<x-panel :title="t('fields.metrics')">
|
||||
<n-table size="small" :bordered="true" :single-line="false">
|
||||
@@ -89,6 +93,7 @@ import {
|
||||
NSpace,
|
||||
NIcon,
|
||||
NTable,
|
||||
NTime,
|
||||
} from "naive-ui";
|
||||
import { ArrowBackCircleOutline as BackIcon } from "@vicons/ionicons5";
|
||||
import XPageHeader from "@/components/PageHeader.vue";
|
||||
|
||||
@@ -59,7 +59,7 @@ import XPageHeader from "@/components/PageHeader.vue";
|
||||
import eventApi from "@/api/event";
|
||||
import type { Event } from "@/api/event";
|
||||
import { useDataTable } from "@/utils/data-table";
|
||||
import { renderLink, renderTag } from "@/utils/render";
|
||||
import { renderLink, renderTag, renderTime } from "@/utils/render";
|
||||
import { useI18n } from 'vue-i18n'
|
||||
|
||||
const { t } = useI18n()
|
||||
@@ -186,7 +186,8 @@ const columns = [
|
||||
},
|
||||
{
|
||||
title: t('fields.time'),
|
||||
key: "time"
|
||||
key: "time",
|
||||
render: (e: Event) => renderTime(e.time),
|
||||
},
|
||||
];
|
||||
const { state, pagination, fetchData, changePageSize } = useDataTable(eventApi.search, filter)
|
||||
|
||||
@@ -30,8 +30,12 @@
|
||||
</td>
|
||||
<td>{{ r.url }}</td>
|
||||
<td>{{ r.username }}</td>
|
||||
<td>{{ r.createdAt }}</td>
|
||||
<td>{{ r.updatedAt }}</td>
|
||||
<td>
|
||||
<n-time :time="r.createdAt" format="y-MM-dd HH:mm:ss" />
|
||||
</td>
|
||||
<td>
|
||||
<n-time :time="r.updatedAt" format="y-MM-dd HH:mm:ss" />
|
||||
</td>
|
||||
<td>
|
||||
<n-button
|
||||
size="tiny"
|
||||
@@ -60,6 +64,7 @@ import {
|
||||
NTable,
|
||||
NPopconfirm,
|
||||
NIcon,
|
||||
NTime,
|
||||
} from "naive-ui";
|
||||
import { AddOutline as AddIcon } from "@vicons/ionicons5";
|
||||
import XPageHeader from "@/components/PageHeader.vue";
|
||||
|
||||
@@ -25,11 +25,15 @@
|
||||
<x-description-item :label="t('fields.created_by')">
|
||||
<x-anchor :url="`/system/users/${model.createdBy?.id}`">{{ model.createdBy?.name }}</x-anchor>
|
||||
</x-description-item>
|
||||
<x-description-item :label="t('fields.created_at')">{{ model.createdAt }}</x-description-item>
|
||||
<x-description-item :label="t('fields.created_at')">
|
||||
<n-time :time="model.createdAt" format="y-MM-dd HH:mm:ss" />
|
||||
</x-description-item>
|
||||
<x-description-item :label="t('fields.updated_by')">
|
||||
<x-anchor :url="`/system/users/${model.updatedBy?.id}`">{{ model.updatedBy?.name }}</x-anchor>
|
||||
</x-description-item>
|
||||
<x-description-item :label="t('fields.updated_at')">{{ model.updatedAt }}</x-description-item>
|
||||
<x-description-item :label="t('fields.updated_at')">
|
||||
<n-time :time="model.updatedAt" format="y-MM-dd HH:mm:ss" />
|
||||
</x-description-item>
|
||||
</x-description>
|
||||
</n-space>
|
||||
</template>
|
||||
@@ -40,6 +44,7 @@ import {
|
||||
NButton,
|
||||
NSpace,
|
||||
NIcon,
|
||||
NTime,
|
||||
} from "naive-ui";
|
||||
import { ArrowBackCircleOutline as BackIcon } from "@vicons/ionicons5";
|
||||
import XPageHeader from "@/components/PageHeader.vue";
|
||||
|
||||
@@ -33,7 +33,9 @@
|
||||
</td>
|
||||
<td>{{ r.name }}</td>
|
||||
<td>{{ r.desc }}</td>
|
||||
<td>{{ r.updatedAt }}</td>
|
||||
<td>
|
||||
<n-time :time="r.updatedAt" format="y-MM-dd HH:mm:ss" />
|
||||
</td>
|
||||
<td>
|
||||
<n-popconfirm :show-icon="false" @positive-click="deleteRole(r, index)">
|
||||
<template #trigger>
|
||||
@@ -63,6 +65,7 @@ import {
|
||||
NIcon,
|
||||
NTable,
|
||||
NPopconfirm,
|
||||
NTime,
|
||||
} from "naive-ui";
|
||||
import {
|
||||
AddOutline as AddIcon,
|
||||
|
||||
@@ -24,11 +24,15 @@
|
||||
<x-description-item :label="t('fields.created_by')">
|
||||
<x-anchor :url="`/system/users/${model.createdBy?.id}`">{{ model.createdBy?.name }}</x-anchor>
|
||||
</x-description-item>
|
||||
<x-description-item :label="t('fields.created_at')">{{ model.createdAt }}</x-description-item>
|
||||
<x-description-item :label="t('fields.created_at')">
|
||||
<n-time :time="model.createdAt" format="y-MM-dd HH:mm:ss" />
|
||||
</x-description-item>
|
||||
<x-description-item :label="t('fields.updated_by')">
|
||||
<x-anchor :url="`/system/users/${model.updatedBy?.id}`">{{ model.updatedBy?.name }}</x-anchor>
|
||||
</x-description-item>
|
||||
<x-description-item :label="t('fields.updated_at')">{{ model.updatedAt }}</x-description-item>
|
||||
<x-description-item :label="t('fields.updated_at')">
|
||||
<n-time :time="model.updatedAt" format="y-MM-dd HH:mm:ss" />
|
||||
</x-description-item>
|
||||
<x-description-item :span="2" :label="t('fields.perms')">
|
||||
<n-grid cols="1 480:2 960:3 1440:4" x-gap="6">
|
||||
<n-gi span="1" v-for="g in ps">
|
||||
@@ -48,6 +52,7 @@ import {
|
||||
NIcon,
|
||||
NGrid,
|
||||
NGi,
|
||||
NTime,
|
||||
} from "naive-ui";
|
||||
import { useRoute } from "vue-router";
|
||||
import { ArrowBackCircleOutline as BackIcon } from "@vicons/ionicons5";
|
||||
|
||||
@@ -152,6 +152,7 @@ async function fetchData() {
|
||||
if (name) {
|
||||
let tr = await stackApi.find(name);
|
||||
model.value = tr.data as Stack;
|
||||
model.value.id = model.value.name
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -38,8 +38,12 @@
|
||||
</n-tag>
|
||||
</n-space>
|
||||
</td>
|
||||
<td>{{ r.createdAt }}</td>
|
||||
<td>{{ r.updatedAt }}</td>
|
||||
<td>
|
||||
<n-time :time="r.createdAt" format="y-MM-dd HH:mm:ss" />
|
||||
</td>
|
||||
<td>
|
||||
<n-time :time="r.updatedAt" format="y-MM-dd HH:mm:ss" />
|
||||
</td>
|
||||
<td>
|
||||
<n-button
|
||||
size="tiny"
|
||||
@@ -86,6 +90,7 @@ import {
|
||||
NTable,
|
||||
NPopconfirm,
|
||||
NTag,
|
||||
NTime,
|
||||
} from "naive-ui";
|
||||
import { AddOutline as AddIcon } from "@vicons/ionicons5";
|
||||
import XPageHeader from "@/components/PageHeader.vue";
|
||||
|
||||
@@ -23,11 +23,15 @@
|
||||
<x-description-item :label="t('fields.created_by')">
|
||||
<x-anchor :url="`/system/users/${model.createdBy?.id}`">{{ model.createdBy?.name }}</x-anchor>
|
||||
</x-description-item>
|
||||
<x-description-item :label="t('fields.created_at')">{{ model.createdAt }}</x-description-item>
|
||||
<x-description-item :label="t('fields.created_at')">
|
||||
<n-time :time="model.createdAt" format="y-MM-dd HH:mm:ss" />
|
||||
</x-description-item>
|
||||
<x-description-item :label="t('fields.updated_by')">
|
||||
<x-anchor :url="`/system/users/${model.updatedBy?.id}`">{{ model.updatedBy?.name }}</x-anchor>
|
||||
</x-description-item>
|
||||
<x-description-item :label="t('fields.updated_at')">{{ model.updatedAt }}</x-description-item>
|
||||
<x-description-item :label="t('fields.updated_at')">
|
||||
<n-time :time="model.updatedAt" format="y-MM-dd HH:mm:ss" />
|
||||
</x-description-item>
|
||||
</x-description>
|
||||
<x-panel :title="t('fields.content')">
|
||||
<x-code :code="model.content" language="yaml" />
|
||||
@@ -42,6 +46,7 @@ import {
|
||||
NButton,
|
||||
NSpace,
|
||||
NIcon,
|
||||
NTime,
|
||||
} from "naive-ui";
|
||||
import { ArrowBackCircleOutline as BackIcon } from "@vicons/ionicons5";
|
||||
import XPageHeader from "@/components/PageHeader.vue";
|
||||
|
||||
@@ -70,7 +70,7 @@ import XPageHeader from "@/components/PageHeader.vue";
|
||||
import userApi from "@/api/user";
|
||||
import type { User } from "@/api/user";
|
||||
import { useDataTable } from "@/utils/data-table";
|
||||
import { renderButtons, renderLink, renderTag } from "@/utils/render";
|
||||
import { renderButtons, renderLink, renderTag, renderTime } from "@/utils/render";
|
||||
import { useI18n } from 'vue-i18n'
|
||||
|
||||
const { t } = useI18n()
|
||||
@@ -114,6 +114,7 @@ const columns = [
|
||||
{
|
||||
title: t('fields.updated_at'),
|
||||
key: "updatedAt",
|
||||
render: (row: User) => renderTime(row.updatedAt),
|
||||
},
|
||||
{
|
||||
title: t('fields.actions'),
|
||||
|
||||
@@ -48,13 +48,17 @@
|
||||
:url="`/system/users/${model.user.createdBy?.id}`"
|
||||
>{{ model.user.createdBy?.name }}</x-anchor>
|
||||
</x-description-item>
|
||||
<x-description-item :label="t('fields.created_at')">{{ model.user.createdAt }}</x-description-item>
|
||||
<x-description-item :label="t('fields.created_at')">
|
||||
<n-time :time="model.user.createdAt" format="y-MM-dd HH:mm:ss" />
|
||||
</x-description-item>
|
||||
<x-description-item :label="t('fields.updated_by')">
|
||||
<x-anchor
|
||||
:url="`/system/users/${model.user.updatedBy?.id}`"
|
||||
>{{ model.user.updatedBy?.name }}</x-anchor>
|
||||
</x-description-item>
|
||||
<x-description-item :label="t('fields.updated_at')">{{ model.user.updatedAt }}</x-description-item>
|
||||
<x-description-item :label="t('fields.updated_at')">
|
||||
<n-time :time="model.user.updatedAt" format="y-MM-dd HH:mm:ss" />
|
||||
</x-description-item>
|
||||
<x-description-item
|
||||
:label="t('objects.role', 2)"
|
||||
:span="2"
|
||||
@@ -80,6 +84,7 @@ import {
|
||||
NTag,
|
||||
NSpace,
|
||||
NIcon,
|
||||
NTime,
|
||||
} from "naive-ui";
|
||||
import { useRoute } from "vue-router";
|
||||
import { ArrowBackCircleOutline as BackIcon } from "@vicons/ionicons5";
|
||||
|
||||
Reference in New Issue
Block a user