diff --git a/packages/ui/certd-client/src/components/cron-editor/index.vue b/packages/ui/certd-client/src/components/cron-editor/index.vue
index 0540a6d0..3b2956a2 100644
--- a/packages/ui/certd-client/src/components/cron-editor/index.vue
+++ b/packages/ui/certd-client/src/components/cron-editor/index.vue
@@ -16,6 +16,7 @@
import parser from "cron-parser";
import { computed, ref } from "vue";
import dayjs from "dayjs";
+import { getCronNextTimes } from "/@/components/cron-editor/utils";
defineOptions({
name: "CronEditor",
});
@@ -84,10 +85,10 @@ const nextTime = computed(() => {
if (props.modelValue == null) {
return "请先设置正确的cron表达式";
}
+
try {
- const interval = parser.parseExpression(props.modelValue);
- const next = interval.next().getTime();
- return dayjs(next).format("YYYY-MM-DD HH:mm:ss");
+ const nextTimes = getCronNextTimes(props.modelValue, 2);
+ return nextTimes.join(",");
} catch (e) {
console.log(e);
return "请先设置正确的cron表达式";
diff --git a/packages/ui/certd-client/src/components/cron-editor/utils.ts b/packages/ui/certd-client/src/components/cron-editor/utils.ts
new file mode 100644
index 00000000..7a2be77e
--- /dev/null
+++ b/packages/ui/certd-client/src/components/cron-editor/utils.ts
@@ -0,0 +1,15 @@
+import parser from "cron-parser";
+import dayjs from "dayjs";
+
+export function getCronNextTimes(cron: string, count: number = 1) {
+ if (cron == null) {
+ return [];
+ }
+ const nextTimes = [];
+ const interval = parser.parseExpression(cron);
+ for (let i = 0; i < count; i++) {
+ const next = interval.next().getTime();
+ nextTimes.push(dayjs(next).format("YYYY-MM-DD HH:mm:ss"));
+ }
+ return nextTimes;
+}
diff --git a/packages/ui/certd-client/src/components/editable.vue b/packages/ui/certd-client/src/components/editable.vue
index 7f6ae803..71de7608 100644
--- a/packages/ui/certd-client/src/components/editable.vue
+++ b/packages/ui/certd-client/src/components/editable.vue
@@ -76,7 +76,7 @@ export default {
.text-editable {
flex: 1;
line-height: 34px;
-
+ overflow: hidden;
span.fs-iconify {
display: inline-flex;
justify-content: center;
diff --git a/packages/ui/certd-client/src/views/certd/pipeline/crud.tsx b/packages/ui/certd-client/src/views/certd/pipeline/crud.tsx
index 21c09f75..50c5f064 100644
--- a/packages/ui/certd-client/src/views/certd/pipeline/crud.tsx
+++ b/packages/ui/certd-client/src/views/certd/pipeline/crud.tsx
@@ -5,17 +5,15 @@ import { useRouter } from "vue-router";
import { AddReq, CreateCrudOptionsProps, CreateCrudOptionsRet, DelReq, dict, EditReq, UserPageQuery, UserPageRes, useUi } from "@fast-crud/fast-crud";
import { statusUtil } from "/@/views/certd/pipeline/pipeline/utils/util.status";
import { Modal, notification } from "ant-design-vue";
-import { env } from "/@/utils/util.env";
import { useUserStore } from "/@/store/user";
import dayjs from "dayjs";
import { useSettingStore } from "/@/store/settings";
import { cloneDeep } from "lodash-es";
-import { useModal } from "/@/use/use-modal";
-import CertView from "./cert-view.vue";
import { eachStages } from "./utils";
import { setRunnableIds, useCertPipelineCreator } from "/@/views/certd/pipeline/certd-form/use";
import { useCertUpload } from "/@/views/certd/pipeline/cert-upload/use";
import GroupSelector from "/@/views/certd/pipeline/group/group-selector.vue";
+import { useCertViewer } from "/@/views/certd/pipeline/use";
export default function ({ crudExpose, context: { groupDictRef, selectedRowKeys } }: CreateCrudOptionsProps): CreateCrudOptionsRet {
const router = useRouter();
@@ -61,59 +59,7 @@ export default function ({ crudExpose, context: { groupDictRef, selectedRowKeys
return res;
};
- const model = useModal();
- const viewCert = async (row: any) => {
- const cert = await api.GetCert(row.id);
- if (!cert) {
- notification.error({ message: "请先运行一次流水线" });
- return;
- }
-
- model.success({
- title: "查看证书",
- maskClosable: true,
- okText: "关闭",
- width: 800,
- content: () => {
- return