ng-devui-materials
Version:
Materials of DevUI Admin
188 lines (181 loc) • 6.15 kB
HTML
<da-layout-row [daGutter]="[24, 24]">
<da-col-item [daSpan]="24" [daXs]="24">
<div class="da-basic-form">
<form
dForm
ngForm
[dValidateRules]="{
message: 'The form verification failed, please check.'
}"
[layout]="verticalLayout"
#projectForm="dValidateRules"
(dSubmit)="submitProjectForm($event)"
autocomplete="off"
>
<d-form-item>
<d-form-label
[required]="true"
[hasHelp]="true"
[helpTips]="'This is the project name.'"
>Project Name</d-form-label
>
<d-form-control>
<input
dTextInput
autocomplete="off"
name="projectName"
placeholder="Name"
[(ngModel)]="projectFormData.projectName"
[dValidateRules]="{
validators: [{ required: true }],
asyncValidators: [
{
sameName: this.checkName.bind(this),
message: 'Duplicate name.'
}
]
}"
/>
</d-form-control>
</d-form-item>
<d-form-item>
<d-form-label
[required]="true"
[hasHelp]="true"
[helpTips]="'Owner of each project.'"
>Owner</d-form-label
>
<d-form-control>
<d-select
[options]="OwnerOptions"
[(ngModel)]="projectFormData.projectOwner"
[multiple]="true"
[extraConfig]="{
labelization: { enable: true, overflow: 'multiple-line' }
}"
[name]="'projectOwner'"
[placeholder]="'Select Owner'"
[filterKey]="'name'"
[allowClear]="true"
[dValidateRules]="[{ required: true }]"
></d-select>
</d-form-control>
</d-form-item>
<d-form-item>
<d-form-label
[required]="true"
[hasHelp]="true"
[helpTips]="'Executor of each project.'"
>Executor</d-form-label
>
<d-form-control>
<d-select
[options]="ExecutorOptions"
[(ngModel)]="projectFormData.projectExecutor"
[name]="'projectExecutor'"
[placeholder]="'Select Executor'"
[filterKey]="'name'"
[allowClear]="true"
[dValidateRules]="[{ required: true }]"
></d-select>
</d-form-control>
</d-form-item>
<d-form-item>
<d-form-label [required]="true">Project Cycle</d-form-label>
<d-form-control>
<div class="devui-input-group devui-dropdown-origin">
<input
class="devui-input devui-form-control"
placeholder="y/MM/dd - y/MM/dd"
name="dp"
[(ngModel)]="projectFormData.projectCycleTime"
(click)="dateRangePicker.toggle()"
autocomplete="off"
dDateRangePicker
#dateRangePicker="dateRangePicker"
(selectedRangeChange)="getValue($event)"
[hideOnRangeSelected]="true"
[dValidateRules]="[{ required: true }]"
/>
<div
*ngIf="everyRange(projectFormData.projectCycleTime)"
class="devui-input-group-addon close-icon-wrapper"
(click)="dateRangePicker.clearAll()"
>
<i class="icon icon-close"></i>
</div>
<div
class="devui-input-group-addon"
(click)="dateRangePicker.toggle()"
>
<i class="icon icon-calendar"></i>
</div>
</div>
</d-form-control>
</d-form-item>
<d-form-item>
<d-form-label>Description</d-form-label>
<d-form-control>
<textarea
dTextarea
resize="vertical"
autocomplete="off"
name="projectDescription"
placeholder="Description"
[(ngModel)]="projectFormData.projectDescription"
[dValidateRules]="[{ maxlength: 256 }]"
></textarea>
</d-form-control>
</d-form-item>
<d-form-item [dHasFeedback]="true">
<d-form-label
[required]="true"
[hasHelp]="true"
[helpTips]="'whether project is disclosure.'"
>Disclosure</d-form-label
>
<d-form-control>
<d-radio-group
[name]="'city'"
[values]="securityValue"
[cssStyle]="'row'"
[(ngModel)]="projectFormData.projectSecurity"
>
</d-radio-group>
</d-form-control>
</d-form-item>
<d-form-item [dHasFeedback]="true">
<d-form-label [required]="true">Execution Time</d-form-label>
<d-form-control>
<d-checkbox-group
[options]="checkboxOptions"
[(ngModel)]="projectFormData.projectExerciseDate"
[name]="'projectExerciseDate'"
[direction]="'row'"
[filterKey]="'label'"
[isShowTitle]="true"
[dValidateRules]="{
validators: [{ required: true }],
asyncValidators: [{ canChoose: validateDate }]
}"
></d-checkbox-group>
</d-form-control>
</d-form-item>
<d-form-operation>
<d-button
dLoading
class="mr-element-spacing"
[title]="projectForm.errorMessage || ''"
circled="true"
style="margin-right: 8px"
[showLoading]="projectForm.pending"
dFormSubmit
[dFormSubmitData]="'submit-button'"
>
Submit
</d-button>
</d-form-operation>
</form>
</div>
</da-col-item>
</da-layout-row>