
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { STColumn, STComponent, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema } from '@delon/form';
import { NzModalService } from 'ng-zorro-antd/modal';
import { SystemService } from '../../services/system.service';

@Component({
  selector: 'app-sms-template',
  templateUrl: './sms-template.component.html',
  styleUrls: ['./sms-template.component.less']
})
export class SmsTemplateComponent implements OnInit {
  @ViewChild('st', { static: true })
  st!: STComponent;
  @ViewChild('sf', { static: false })
  sf!: SFComponent;
  @ViewChild('sfEdit', { static: false })
  sfEdit!: SFComponent;
  visible = false;
  isVisible = false;
  tempData = {};

  searchSchema: SFSchema = {
    properties: {
      templateCode: {
        type: 'string',
        title: '模板编码',
        ui: { placeholder: '请输入模板编码' }
      },
      templateContent: {
        type: 'string',
        title: '模板内容',
        ui: { placeholder: '请输入模板内容' }
      }
    }
  };

  editSchema: SFSchema = {
    properties: {
      templateCode: {
        type: 'string',
        title: '模板编码',
        ui: { placeholder: '请输入模板编码' }
      },
      templateContent: {
        type: 'string',
        title: '模板内容',
        ui: { placeholder: '请输入模板内容' }
      },
      templateName: {
        type: 'string',
        title: '模板名称',
        ui: { placeholder: '请输入模板名称' }
      }
    }
  }

  columns: STColumn[] = [
    { title: '模板编码', className: 'text-center', index: 'templateCode' },
    { title: '模板内容', className: 'text-center', index: 'templateContent' },
    // {
    //   title: '创建人', className: 'text-center', index: 'content',
    // },
    {
      title: '更新时间',
      index: 'modifyTime',
      type: 'date',
      className: 'text-center'
    },
    {
      title: '操作',
      buttons: [
        {
          text: '编辑',
          click: i => this.edit(i),
        }
      ]
    }
  ];

  constructor(public service: SystemService, private nzModalService: NzModalService, private route: ActivatedRoute) {
  }

  ngOnInit(): void { }

  beforeReq = (requestOptions: STRequestOptions) => {
    if (this.sf) {
      Object.assign(requestOptions.body, { ...this.sf.value });
    }
    return requestOptions;
  };

  edit(item: any) {
    // console.log(item);
    this.tempData = item;
    this.isVisible = true;
  }

  search() {
    this.st.reload(1);
    this.visible = false;
  }

  open(): void {
    this.visible = true;
  }

  close(): void {
    this.visible = false;
  }

  handleOk(): void {
    const value = this.sfEdit.value;
    const { id, templateCode, templateName, templateContent } = value
    const params = {
      id,
      templateCode,
      templateName,
      templateContent
    }

    this.service.request(this.service.$api_smsTemplate_edit, params).subscribe(res => {
      // console.log(res);
      if (res) {
        this.isVisible = false;
        this.st.reload();
      }
    })

  }

  handleCancel(): void {
    this.isVisible = false;
  }

  /**
   * 重置表单
   */
  resetSF() {
    this.sf.reset();
  }
}
