|
- import eventManager from "@/event/manager";
- import { CancelError, Message } from "@/exception";
- import { ErrorDialog } from "@/middleware/swal";
- import bulkRequest from "@/rest-api/bulk";
-
- export const apptemplate = (
- callback: (options: {
- setEvent: (event: Event) => void;
- needReloadAtEnd: (need: boolean) => void;
- }) => Promise<void>
- ) => {
- return async () => {
- try {
- const events: Event[] = [];
- let needReloadAtEnd = false;
-
- await callback({
- setEvent: (event: Event) => {
- events.push(event);
- },
- needReloadAtEnd: (need: boolean) => {
- needReloadAtEnd = need;
- },
- });
-
- // 保存処理
- if (!bulkRequest.isSaved()) {
- await bulkRequest.save();
- }
-
- // イベント処理
- if (events.length !== 0) {
- console.log("イベント発生");
- eventManager.init();
- for (const [index, event] of events.entries()) {
- window.dispatchEvent(event);
- }
- await eventManager.waitEnd();
- console.log("イベント処理終了");
- }
-
- // 保存処理
- if (!bulkRequest.isSaved()) {
- await bulkRequest.save();
- }
-
- // 再読込
- if (needReloadAtEnd) {
- location.reload();
- }
- } catch (e) {
- if (e instanceof CancelError) {
- console.log("canceled");
- return;
- } else if (e instanceof Message) {
- ErrorDialog.fire({
- text: e.message,
- });
- return;
- }
- ErrorDialog.fire();
- throw e;
- }
- };
- };
-
- export const eventHnalder = (
- callback: (
- event: any,
- options: { setEvent: (event: Event) => void }
- ) => Promise<any>
- ) => {
- return async (event: any) => {
- try {
- const events: Event[] = [];
- const ret = await callback(event, {
- setEvent: (event: Event) => {
- events.push(event);
- },
- });
-
- // 保存処理
- if (!bulkRequest.isSaved()) {
- await bulkRequest.save();
- }
-
- // イベント処理
- if (events.length !== 0) {
- console.log("イベント発生");
- eventManager.init();
- for (const [index, event] of events.entries()) {
- window.dispatchEvent(event);
- }
- await eventManager.waitEnd();
- console.log("イベント処理終了");
- }
-
- // 保存処理
- if (!bulkRequest.isSaved()) {
- await bulkRequest.save();
- }
- return ret;
- } catch (e) {
- if (e instanceof CancelError) {
- console.log("canceled");
- return false;
- } else if (e instanceof Message) {
- console.error("message", e.message);
- ErrorDialog.fire({
- text: e.message,
- });
- return false;
- }
- ErrorDialog.fire();
- console.error(e);
- return false;
- }
- };
- };
|