首页 > 解决方案 > 如何让弹出窗口仅从我从编辑按钮加载的表单中加载?

问题描述

我正在尝试放置一个弹出窗口,在其中写入在表单中所做的更改,此弹出窗口仅在我单击加载编辑表单的编辑按钮时才会出现,因为“Nueva Actividad”按钮会加载 resgitre 表单它有一些会更新的元素,所以如果我使用表单类型进行操作,弹出窗口也会出现在注册表单中 我怎样才能让弹出窗口仅从我从编辑按钮加载的表单中加载?

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

按钮“Guardar”代码

 handleSave = () => {
    ValidateFormFields(this.form);
    if (!this.form.valid) {
      return;
    }
    const { id, formType } = this.store.selectSnapshot(CONTAINER_STATE_TOKEN);

    
    const fechaEvento = this.form.get('fechaEvento').value.format("M")
    const fecha = new Date();
    const mesActual = fecha.getMonth() + 1;
    const hoy = fecha.getDate();
 
    if (fechaEvento > mesActual) {
      if (hoy > 15) {
        console.log("puedess regitrar")
        ValidateFormFields(this.form);
        if (!this.form.valid) {
          return;
        }
        this.alertService.confirm(MESSAGES.CONFIRM_GUARDAR_GENERAL).subscribe(result => {
          if (result.confirm) {
            const { session } = this.store.selectSnapshot(APP_STATE_TOKEN);
            const { value: formValue } = this.form;



            const horaEvento = moment(formValue.fechaEvento.format(CONSTANTS.DATE_FORMAT) + ' ' + formValue.horaEvento, `${CONSTANTS.DATE_FORMAT} hh:mm a`);

            const data = {
              ...formValue,
              idLinea: session.session.lineaid,
              idSolicitante: session.session.personid,
              idUsuarioRegistra: session.session.userid,
              idTipoSolicitud: TipoSolicitudEnum.ACTIVIDAD,
              horaEvento
            };

            const { id, formType } = this.store.selectSnapshot(CONTAINER_STATE_TOKEN);
      
            if (formType == FormType.EDITAR) {

           

              this.store.dispatch(new ContainerActions.ActualizarFormulario({
                id,
                data
              })).subscribe(() => {
                this.toastService.success(MESSAGES.GUARDAR_SOLICITUD_DATOS_GENERALES_SUCCESS);
              });

            
            } else {
              this.store.dispatch(new ContainerActions.GuardarFormulario({ data })).subscribe(() => {
                this.toastService.success(MESSAGES.GUARDAR_SOLICITUD_DATOS_GENERALES_SUCCESS);
                const { id } = this.store.selectSnapshot(CONTAINER_STATE_TOKEN);
                this.location.go(ROUTES_URL.SOLICITUDES.EDITAR(id));
              });
            }

          }
        });
      }

表格 HTML

<ng-container *ngIf="state$ | async as state">

  <app-page-title-bar [text]="state.title"></app-page-title-bar>

  <app-form-buscar-solicitud></app-form-buscar-solicitud>

  <div class="m-t-10 m-b-10">Resultados de la búsqueda</div>

  <ng-container *ngTemplateOutlet="tplButtons; context: {$implicit: state.loading}"></ng-container>

  <lib-grid
    [loading]="state.loading"
    [source]="state.gridSource"
    [definition]="state.gridDefinition">
    <ng-template libTemplate="tipo-actividad">
      {{TipoSolicitudDescripcionEnum.ACTIVIDAD}}
    </ng-template>
    <ng-template
      libTemplate="tpl-opciones"
      let-data>
      <button
        matTooltip="Editar Actividad"
        class="mini-icon-button"
        mat-icon-button
        color="primary"
        (click)="handleClickEdit(data)">
        <mat-icon>edit</mat-icon>
      </button>

      <button
        matTooltip="Eliminar Actividad"
        class="mini-icon-button"
        mat-icon-button
        color="primary"
        (click)="handleClickDelete(data)">
        <mat-icon>delete</mat-icon>
      </button>

    </ng-template>
  </lib-grid>

</ng-container>

<ng-template
  #tplButtons
  let-loading>
  <div>
    <button
      class="m-r-5"
      color="primary"
      mat-flat-button
      (click)="handleClickNuevo()"
      [disabled]="loading">
      <mat-icon>add</mat-icon>
      Nueva Actividad
    </button>
  </div>
</ng-template>

标签: angulartypescript

解决方案


推荐阅读