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 }}
-
+
{
props.row.uuid = prop.node.item_data.uuid;
- $refs.popup_edit.hide();
+ $refs[
+ 'popup_edit' + props.pageIndex
+ ]?.hide();
}
"
:style="{
@@ -343,7 +348,7 @@
no-caps
:label="$t('add row')"
color="primary"
- @click="addRow"
+ @click="addRow(false)"
/>
{{ $t("delete row") }}
- addRow()">
+ addRow(true)"
+ >
{{ $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"
>
@@ -82,7 +83,10 @@
{{ props.pageIndex + 1 }}
-
+
{
props.row.uuid = prop.node.uuid;
- $refs.popup_edit.hide();
+ $refs[
+ 'popup_edit' + props.pageIndex
+ ]?.hide();
}
"
:style="{
@@ -221,7 +227,12 @@
/>
{{ $t("delete row") }}
- addRow(true)">
+ addRow(true)"
+ >
{{ $t("add row") }}
@@ -250,14 +261,18 @@ import { useQuasar } from "quasar";
import { useI18n } from "vue-i18n";
import { StringKeyValueEntity } from "src/entities/StringKeyValueEntity";
import { Common } from "src/common/Common";
+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: "ComponentPollingSettingDialog",
@@ -269,6 +284,8 @@ export default defineComponent({
const min_delay = ref(__MIN_DELAY);
let show_dialog = ref(false);
+ const polling_table: Ref = ref(null);
+
let loading = ref(false);
let datas: Ref = ref([]);
let signals = ref(GlobalData.getInstance().signal_source);
@@ -307,6 +324,7 @@ export default defineComponent({
return {
show_dialog,
+ polling_table,
min_delay,
loading,
datas,
@@ -380,12 +398,20 @@ export default defineComponent({
addRow(insert_flag: boolean = false) {
const item = {
uuid: GlobalData.getInstance().signal_source[0].uuid,
- delay: __MIN_DELAY,
+ delay: __DEFAULT_DELAY,
};
if (insert_flag) {
datas.value.splice(current_index + 1, 0, item);
+ (this).$refs["popup_edit" + current_index]?.show();
} 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,
+ });
}
signals.value = GlobalData.getInstance().signal_source;