import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core'; import { languages } from '../../../../services/languages.map'; import { CommonCompModule } from '../../../../services/common.modules'; import { NzSelectModule } from 'ng-zorro-antd/select'; import { ReactiveFormsModule } from '@angular/forms'; import { NzRadioModule } from 'ng-zorro-antd/radio'; import { NzUploadModule } from 'ng-zorro-antd/upload'; import { NzMessageService } from 'ng-zorro-antd/message'; import { NzUploadChangeParam } from 'ng-zorro-antd/upload'; import { FormControl, FormGroup, NonNullableFormBuilder, Validators, } from '@angular/forms'; @Component({ selector: 'app-basic', imports: [ CommonCompModule, ReactiveFormsModule, NzSelectModule, NzRadioModule, NzUploadModule, ], standalone: true, templateUrl: './basic-in.component.html', styleUrls: ['./basic-in.component.scss'], }) export class BasicInComponent implements OnInit { @Input('editFrom') editFrom: any; @Output() next: EventEmitter = new EventEmitter(); @Output() save: EventEmitter = new EventEmitter(); validateForm: FormGroup<{ name: FormControl; //申报教材名称 ISBN: FormControl; //国际标准书号 author: FormControl; //第一主编(作者) unit: FormControl; //第一主编(作者)单位 type: FormControl; //申报类型 typeNumber: FormControl; //全册次数 majorPoniter: FormControl; //教材应用对象及所诉学科专业类 lang: FormControl; //教材主要语种类型 authors: FormControl; //其他主编姓名 editor: FormControl; //其他编者姓名 approval: FormControl; //是否重点立项教材 edition: FormControl; //出版单位 editionFirst: FormControl; //初版时间 carrierShape: FormControl; //载体形式 editionDate: FormControl; //出版时间 editionNumber: FormControl; //出版版次 printDate: FormControl; //最新印次时间 printNumber: FormControl; //最新印次 printSum: FormControl; //初版以来合计印次 importantProject: FormControl; //初版以来是否列为重点项目 importantProjectOther: FormControl; //其他省部级及以上项目 copyrightImgUrl: FormControl; //版权页截图 CIPImgUrl: FormControl; //中国版本图书馆CIP查询截图 // remember: FormControl; }> = this.fb.group({ name: ['', [Validators.required]], ISBN: ['', [Validators.required]], author: ['', [Validators.required]], unit: ['', [Validators.required]], type: ['', [Validators.required]], typeNumber: ['', [Validators.required]], majorPoniter: ['', [Validators.required]], lang: ['', [Validators.required]], authors: ['', [Validators.required]], editor: ['', [Validators.required]], approval: ['', [Validators.required]], edition: ['', [Validators.required]], editionFirst: [new Date(), [Validators.required]], carrierShape: ['', [Validators.required]], editionDate: [new Date(), [Validators.required]], editionNumber: [0, [Validators.required]], printDate: [new Date(), [Validators.required]], printNumber: [0, [Validators.required]], printSum: [0, [Validators.required]], importantProject: ['', [Validators.required]], importantProjectOther: ['', [Validators.required]], copyrightImgUrl: ['', [Validators.required]], CIPImgUrl: ['', [Validators.required]], // remember: [true], }); //教材应用对象及所诉学科专业类 selectList: Array = [ { name: '机械与工程', code: 'M001', }, { name: '软件工程', code: 'M002', }, { name: '生物工程学', code: 'M003', }, ]; //语言选择 selectLang: Array = languages.options; //重点项目选择 directorys: Array = [ { name: '电气设计原理', code: 'T001', }, { name: '微生物学', code: 'T002', }, { name: '细胞学', code: 'T003', }, ]; //载体形式 carrierOptions: Array = [ { name: '载体一', code: 'Z001', }, { name: '载体二', code: 'Z002', }, { name: '载体三', code: 'Z003', }, ]; importantProjectList: Array = [ { title: '“十二五”普通高等教育本科国家级规划教材', value: '“十二五”普通高等教育本科国家级规划教材', }, { title: '“十二五”以来省级优秀教材', value: '“十二五”以来省级优秀教材', }, { title: '“十二五”以来省级规划教材', value: '“十二五”以来省级规划教材', }, { title: '其他省部级及以上项目', value: '其他省部级及以上项目', }, ]; // get importantProjectState(){ // return this.importantProjectList.some((item:any)=> item.value == this.validateForm.value.importantProject) // } constructor( private fb: NonNullableFormBuilder, private msg: NzMessageService ) {} ngOnInit() {} changeMajor() {} getMajor(e: any) { console.log(e); } onChange(e: any) { console.log(e); console.log(this.validateForm); } handleChange(info: NzUploadChangeParam): void { if (info.file.status !== 'uploading') { console.log(info.file, info.fileList); } if (info.file.status === 'done') { this.msg.success(`${info.file.name} file uploaded successfully`); } else if (info.file.status === 'error') { this.msg.error(`${info.file.name} file upload failed.`); } } submitForm(event?: string): void { console.log(this.validateForm.value); if (this.validateForm.valid) { console.log(this.validateForm.value); } else { Object.values(this.validateForm.controls).forEach((control) => { if (control.invalid) { control.markAsDirty(); control.updateValueAndValidity({ onlySelf: true }); } }); } if (event == 'next') { this.next.emit(); } } }