沈斌
2017-12-15 f9b157566af34b8dc28ba10b34d025ac04f3168b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
import { Component, OnInit } from '@angular/core';
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
import { TransferService } from './transfer.service';
 
@Component({
    selector: 'app-step1',
    template: `
    <form nz-form [formGroup]="form" (ngSubmit)="_submitForm()">
        <div nz-form-item nz-row>
            <div nz-form-label nz-col [nzSm]="4">
                <label for="pay_account" nz-form-item-required>付款账户</label>
            </div>
            <div nz-form-control nz-col [nzSm]="20">
                <nz-select formControlName="pay_account" nzSize="large" nzId="pay_account">
                    <nz-option [nzLabel]="item.pay_account" [nzValue]="item.pay_account"></nz-option>
                </nz-select>
            </div>
        </div>
        <div nz-form-item nz-row>
            <div nz-form-label nz-col [nzSm]="4">
                <label for="receiver_account" nz-form-item-required>收款账户</label>
            </div>
            <div nz-form-control nz-col [nzSm]="20" nzHasFeedback [nzValidateStatus]="receiver_account">
                <nz-input-group [nzCompact]="true">
                    <nz-select formControlName="receiver_type" nzSize="large" style="width: 25%;">
                        <nz-option [nzLabel]="'支付宝'" [nzValue]="'alipay'"></nz-option>
                        <nz-option [nzLabel]="'银行账号'" [nzValue]="'bank'"></nz-option>
                    </nz-select>
                    <input formControlName="receiver_account" nzSize="large" id="'receiver_account'" nz-input style="width: 75%;">
                </nz-input-group>
                <p nz-form-explain *ngIf="(receiver_account.dirty || receiver_account.touched) && receiver_account.errors?.required">
                    请输入收款账户
                </p>
            </div>
        </div>
        <div nz-form-item nz-row>
            <div nz-form-label nz-col [nzSm]="4">
                <label for="receiver_name" nz-form-item-required>收款姓名</label>
            </div>
            <div nz-form-control nz-col [nzSm]="20" nzHasFeedback [nzValidateStatus]="receiver_name">
                <nz-input formControlName="receiver_name" nzSize="large" [nzId]="'receiver_name'"></nz-input>
                <ng-container *ngIf="receiver_name.dirty || receiver_name.touched">
                    <p nz-form-explain *ngIf="receiver_name.errors?.required">请输入收款姓名</p>
                    <p nz-form-explain *ngIf="receiver_name.errors?.minlength">至少2个字符以上</p>
                </ng-container>
            </div>
        </div>
        <div nz-form-item nz-row>
            <div nz-form-label nz-col [nzSm]="4">
                <label for="amount" nz-form-item-required>转账金额</label>
            </div>
            <div nz-form-control nz-col [nzSm]="20" nzHasFeedback [nzValidateStatus]="amount">
                <nz-input formControlName="amount" nzSize="large" [nzId]="'amount'">
                    <ng-template #prefix>¥</ng-template>
                </nz-input>
                <ng-container *ngIf="amount.dirty || amount.touched">
                    <p nz-form-explain *ngIf="amount.errors?.required">请输入转账金额</p>
                    <p nz-form-explain *ngIf="amount.errors?.pattern">金额只能是正整数</p>
                    <p nz-form-explain *ngIf="amount.errors?.min">金额最少1元以上</p>
                    <p nz-form-explain *ngIf="amount.errors?.max">金额最多100万以内</p>
                </ng-container>
            </div>
        </div>
        <div nz-form-item nz-row>
            <div nz-form-control nz-col [nzSpan]="20" [nzOffset]="4">
                <button nz-button [nzType]="'primary'" nzSize="large" [disabled]="form.invalid">下一步</button>
            </div>
        </div>
    </form>
    <div class="border-top-1 mt-lg px-lg text-grey-dark">
        <h3 class="h3 my-md">说明</h3>
        <h4 class="h4 mb-sm">转账到支付宝账户</h4>
        <p class="mb-sm">如果需要,这里可以放一些关于产品的常见问题说明。如果需要,这里可以放一些关于产品的常见问题说明。如果需要,这里可以放一些关于产品的常见问题说明。</p>
        <h4 class="h4 mb-sm">转账到银行卡</h4>
        <p>如果需要,这里可以放一些关于产品的常见问题说明。如果需要,这里可以放一些关于产品的常见问题说明。如果需要,这里可以放一些关于产品的常见问题说明。</p>
    </div>
    `
})
export class Step1Component implements OnInit {
    form: FormGroup;
 
    constructor(private fb: FormBuilder, public item: TransferService) {}
 
    ngOnInit() {
        this.form = this.fb.group({
            pay_account: [null, Validators.compose([Validators.required, Validators.email])],
            receiver_type: [null, [Validators.required]],
            receiver_account: [null, [Validators.required]],
            receiver_name: [null, Validators.compose([Validators.required, Validators.minLength(2)])],
            amount: [null, Validators.compose([Validators.required, Validators.pattern(`[0-9]+`), Validators.min(1), Validators.max(10000 * 100)])]
        });
        this.form.patchValue(this.item);
    }
 
    //#region get form fields
    get pay_account() { return this.form.controls['pay_account']; }
    get receiver_type() { return this.form.controls['receiver_type']; }
    get receiver_account() { return this.form.controls['receiver_account']; }
    get receiver_name() { return this.form.controls['receiver_name']; }
    get amount() { return this.form.controls['amount']; }
    //#endregion
 
    _submitForm() {
        this.item = Object.assign(this.item, this.form.value);
        ++this.item.step;
    }
}