diff --git a/src/common/TableAddRowHelper.ts b/src/common/TableAddRowHelper.ts new file mode 100644 index 0000000..b6977ad --- /dev/null +++ b/src/common/TableAddRowHelper.ts @@ -0,0 +1,37 @@ +export interface ShowProupParam { + refs: any; + ref_name: string; + delay: number; + count: number; + max_count: number; +} + +export class TableAddRowHelper { + private timer_handler: any = null; + + showProup(param: ShowProupParam) { + if (this.timer_handler) { + clearTimeout(this.timer_handler); + this.timer_handler = null; + } + this.show_proup(param); + } + + private show_proup = (param: ShowProupParam) => { + this.timer_handler = setTimeout(() => { + param.count += param.delay; + if (param.count > param.max_count) { + console.log("errrrrrrrrr"); + return; + } + if (param.refs) { + const dom = param.refs[param.ref_name]; + if (dom) { + dom.show(); + } else { + this.show_proup(param); + } + } + }, param.delay); + }; +} diff --git a/src/components/PlanDialog.vue b/src/components/PlanDialog.vue index 41fcc30..21856e4 100644 --- a/src/components/PlanDialog.vue +++ b/src/components/PlanDialog.vue @@ -146,7 +146,10 @@ {{ props.pageIndex + 1 }}
- + {{ $t("delete row") }} - + {{ $t("add row") }} @@ -406,14 +416,18 @@ import { useI18n } from "vue-i18n"; import { StringKeyValueEntity } from "src/entities/StringKeyValueEntity"; import { PlanEntity } from "src/entities/PlanEntity"; import { EWeekDays } from "src/entities/EWeekDays"; +import { TableAddRowHelper } from "src/common/TableAddRowHelper"; const __MIN_DELAY = 10; +const __DEFAULT_DELAY = 60; class TableRow { uuid = ""; delay = __MIN_DELAY; } +const table_add_row_helper = new TableAddRowHelper(); + export default defineComponent({ name: "ComponentPlanDialog", @@ -729,13 +743,19 @@ export default defineComponent({ addRow(insert_flag: boolean = false) { const item = { uuid: GlobalData.getInstance().modes[0].uuid, - delay: __MIN_DELAY, + delay: __DEFAULT_DELAY, }; - if (insert_flag) { datas.value.splice(current_index + 1, 0, item); } else { datas.value.push(item); + table_add_row_helper.showProup({ + refs: (this).$refs, + ref_name: "popup_edit" + (datas.value.length - 1), + delay: 5, + count: 0, + max_count: 5000, + }); } }, onContextMenu( diff --git a/src/components/PollingSettingDialog.vue b/src/components/PollingSettingDialog.vue index 84c12ba..d50f5c7 100644 --- a/src/components/PollingSettingDialog.vue +++ b/src/components/PollingSettingDialog.vue @@ -72,6 +72,7 @@ :rows-per-page-options="[0]" :virtual-scroll-sticky-size-start="48" @row-contextmenu="onContextMenu" + ref="polling_table" >