perf: 优化定时器

This commit is contained in:
xiaojunnuo
2023-05-24 15:41:35 +08:00
parent 6f6606d76d
commit 3751fcd4c9
29 changed files with 381 additions and 163 deletions
@@ -2,28 +2,28 @@ import * as api from "./api";
import { useI18n } from "vue-i18n";
import { ref, shallowRef } from "vue";
import { useRouter } from "vue-router";
import { dict } from "@fast-crud/fast-crud";
import { AddReq, CreateCrudOptionsProps, CreateCrudOptionsRet, DelReq, DialogOpenOption, dict, EditReq, UserPageQuery, UserPageRes } from "@fast-crud/fast-crud";
import { statusUtil } from "/@/views/certd/pipeline/pipeline/utils/util.status";
import { nanoid } from "nanoid";
import { message } from "ant-design-vue";
export default function ({ expose, certdFormRef }) {
export default function ({ crudExpose, context: { certdFormRef } }: CreateCrudOptionsProps): CreateCrudOptionsRet {
const router = useRouter();
const { t } = useI18n();
const lastResRef = ref();
const pageRequest = async (query) => {
const pageRequest = async (query: UserPageQuery): Promise<UserPageRes> => {
return await api.GetList(query);
};
const editRequest = async ({ form, row }) => {
const editRequest = async ({ form, row }: EditReq) => {
form.id = row.id;
const res = await api.UpdateObj(form);
lastResRef.value = res;
return res;
};
const delRequest = async ({ row }) => {
const delRequest = async ({ row }: DelReq) => {
return await api.DelObj(row.id);
};
const addRequest = async ({ form }) => {
const addRequest = async ({ form }: AddReq) => {
form.content = JSON.stringify({
title: form.title
});
@@ -32,7 +32,7 @@ export default function ({ expose, certdFormRef }) {
return res;
};
function addCertdPipeline() {
certdFormRef.value.open(async ({ form }) => {
certdFormRef.value.open(async ({ form }: any) => {
// 添加certd pipeline
const pipeline = {
title: form.domains[0] + "证书自动化",
@@ -176,8 +176,8 @@ export default function ({ expose, certdFormRef }) {
type: "dict-switch",
dict: dict({
data: [
{ value: true, label: "用" },
{ value: false, label: "用" }
{ value: false, label: "用" },
{ value: true, label: "用" }
]
}),
form: {
@@ -9,9 +9,9 @@
</fs-page>
</template>
<script>
<script lang="ts">
import { defineComponent, ref, onMounted } from "vue";
import { useCrud } from "@fast-crud/fast-crud";
import { useCrud, useFs } from "@fast-crud/fast-crud";
import createCrudOptions from "./crud";
import { useExpose } from "@fast-crud/fast-crud";
import PiCertdForm from "./certd-form/index.vue";
@@ -20,25 +20,14 @@ export default defineComponent({
components: { PiCertdForm },
setup() {
const certdFormRef = ref();
// crud组件的ref
const crudRef = ref();
// crud 配置的ref
const crudBinding = ref();
// 暴露的方法
const { expose } = useExpose({ crudRef, crudBinding });
// 你的crud配置
const { crudOptions } = createCrudOptions({ expose, certdFormRef });
// 初始化crud配置
// eslint-disable-next-line @typescript-eslint/no-unused-vars,no-unused-vars
const { resetCrudOptions } = useCrud({ expose, crudOptions });
// 你可以调用此方法,重新初始化crud配置
// resetCrudOptions(options)
const context: any = {
certdFormRef
};
const { crudBinding, crudRef, crudExpose } = useFs({ createCrudOptions, context });
// 页面打开后获取列表数据
onMounted(() => {
expose.doRefresh();
crudExpose.doRefresh();
});
return {
@@ -16,7 +16,7 @@ export default defineComponent({
name: "PiStatusShow",
props: {
status: {
type: String,
type: [String, Number],
default: ""
},
type: {
@@ -1,4 +1,15 @@
const StatusEnum = {
export type StatusEnumItem = {
value: string;
label: string;
color: string;
icon: string;
spin?: boolean;
};
export type StatusEnumType = {
[key: string]: StatusEnumItem;
};
const StatusEnum: StatusEnumType = {
success: {
value: "success",
label: "成功",