|
@@ -8,7 +8,8 @@ import { NzUploadModule } from 'ng-zorro-antd/upload';
|
|
|
import { NzMessageService } from 'ng-zorro-antd/message';
|
|
|
import { NzUploadChangeParam } from 'ng-zorro-antd/upload';
|
|
|
import { NzModalService } from 'ng-zorro-antd/modal';
|
|
|
-
|
|
|
+import { textbookServer } from '../../../../services/textbook'
|
|
|
+import Parse from 'parse';
|
|
|
import {
|
|
|
FormControl,
|
|
|
FormGroup,
|
|
@@ -29,6 +30,7 @@ import {
|
|
|
styleUrls: ['./basic-in.component.scss'],
|
|
|
})
|
|
|
export class BasicInComponent implements OnInit {
|
|
|
+ @Input('eduTextbook') eduTextbook: Parse.Object|any;
|
|
|
@Input('editFrom') editFrom: any;
|
|
|
@Output() state: EventEmitter<any> = new EventEmitter<any>();
|
|
|
@Output() save: EventEmitter<any> = new EventEmitter<any>();
|
|
@@ -46,7 +48,7 @@ export class BasicInComponent implements OnInit {
|
|
|
authors: FormControl<string>; //其他主编姓名
|
|
|
editor: FormControl<string>; //其他编者姓名
|
|
|
|
|
|
- approval: FormControl<string>; //是否为重点立项教材
|
|
|
+ approval: FormControl<boolean>; //是否为重点立项教材
|
|
|
editionUnit: FormControl<string>; //出版单位
|
|
|
editionFirst: FormControl<Date>; //初版时间
|
|
|
carrierShape: FormControl<string>; //载体形式
|
|
@@ -71,13 +73,12 @@ export class BasicInComponent implements OnInit {
|
|
|
author: ['', [Validators.required]],
|
|
|
unit: ['', [Validators.required]],
|
|
|
type: ['', [Validators.required]],
|
|
|
- typeNumber: ['', [Validators.required]],
|
|
|
-
|
|
|
+ typeNumber: [''],
|
|
|
majorPoniter: ['', [Validators.required]],
|
|
|
lang: ['', [Validators.required]],
|
|
|
authors: ['', [Validators.required]],
|
|
|
editor: ['', [Validators.required]],
|
|
|
- approval: ['', [Validators.required]],
|
|
|
+ approval: [false],
|
|
|
editionUnit: ['', [Validators.required]],
|
|
|
editionFirst: [new Date(), [Validators.required]],
|
|
|
carrierShape: ['', [Validators.required]],
|
|
@@ -87,9 +88,9 @@ export class BasicInComponent implements OnInit {
|
|
|
printNumber: [0, [Validators.required]],
|
|
|
printSum: [0, [Validators.required]],
|
|
|
importantProject: ['', [Validators.required]],
|
|
|
- importantProjectOther: ['', [Validators.required]],
|
|
|
- copyrightImgUrl: ['', [Validators.required]],
|
|
|
- CIPImgUrl: ['', [Validators.required]],
|
|
|
+ importantProjectOther: [''],
|
|
|
+ copyrightImgUrl: ['https://www.jyvtc.edu.cn/yssj/resource/cms/2022/01/2022010610314324023.pdf'],
|
|
|
+ CIPImgUrl: ['https://www.jyvtc.edu.cn/yssj/resource/cms/2022/01/2022010610314324023.pdf'],
|
|
|
// remember: [true],
|
|
|
});
|
|
|
//教材应用对象及所诉学科专业类
|
|
@@ -109,21 +110,6 @@ export class BasicInComponent implements OnInit {
|
|
|
];
|
|
|
//语言选择
|
|
|
selectLang: Array<any> = languages.options;
|
|
|
- //重点项目选择
|
|
|
- directorys: Array<any> = [
|
|
|
- {
|
|
|
- name: '电气设计原理',
|
|
|
- code: 'T001',
|
|
|
- },
|
|
|
- {
|
|
|
- name: '微生物学',
|
|
|
- code: 'T002',
|
|
|
- },
|
|
|
- {
|
|
|
- name: '细胞学',
|
|
|
- code: 'T003',
|
|
|
- },
|
|
|
- ];
|
|
|
//载体形式
|
|
|
carrierOptions: Array<any> = [
|
|
|
{
|
|
@@ -161,21 +147,66 @@ export class BasicInComponent implements OnInit {
|
|
|
// return this.importantProjectList.some((item:any)=> item.value == this.validateForm.value.importantProject)
|
|
|
// }
|
|
|
constructor(
|
|
|
+ public tbookSer: textbookServer,
|
|
|
private fb: NonNullableFormBuilder,
|
|
|
private modal: NzModalService,
|
|
|
private msg: NzMessageService
|
|
|
- ) {}
|
|
|
-
|
|
|
- ngOnInit() {}
|
|
|
+ ) {
|
|
|
+ }
|
|
|
|
|
|
- changeMajor() {}
|
|
|
- getMajor(e: any) {
|
|
|
- console.log(e);
|
|
|
+ ngOnInit() {
|
|
|
+ console.log(this.eduTextbook);
|
|
|
+ this.validateForm = this.fb.group({
|
|
|
+ title: [this.eduTextbook?.get('title') || '', [Validators.required]],
|
|
|
+ ISBN: [this.eduTextbook?.get('ISBN') || '', [Validators.required]],
|
|
|
+ author: [this.eduTextbook?.get('author') || '', [Validators.required]],
|
|
|
+ unit: [this.eduTextbook?.get('unit') || '', [Validators.required]],
|
|
|
+ type: [this.eduTextbook?.get('type') || '', [Validators.required]],
|
|
|
+ typeNumber: [this.eduTextbook?.get('typeNumber') || '', [Validators.required]],
|
|
|
+
|
|
|
+ majorPoniter: [this.eduTextbook?.get('majorPoniter') || '', [Validators.required]],
|
|
|
+ lang: [this.eduTextbook?.get('lang') || '', [Validators.required]],
|
|
|
+ authors: [this.eduTextbook?.get('authors') || '', [Validators.required]],
|
|
|
+ editor: [this.eduTextbook?.get('editor') || '', [Validators.required]],
|
|
|
+ approval: [this.eduTextbook?.get('approval') || false, [Validators.required]],
|
|
|
+ editionUnit: [this.eduTextbook?.get('editionUnit') || '', [Validators.required]],
|
|
|
+ editionFirst: [this.eduTextbook?.get('editionFirst') || new Date(), [Validators.required]],
|
|
|
+ carrierShape: [this.eduTextbook?.get('carrierShape') || '', [Validators.required]],
|
|
|
+ editionDate: [this.eduTextbook?.get('editionDate') || new Date(), [Validators.required]],
|
|
|
+ editionNumber: [this.eduTextbook?.get('editionNumber') || 0, [Validators.required]],
|
|
|
+ printDate: [this.eduTextbook?.get('printDate') || new Date(), [Validators.required]],
|
|
|
+ printNumber: [this.eduTextbook?.get('printNumber') || 0, [Validators.required]],
|
|
|
+ printSum: [this.eduTextbook?.get('printSum') || 0, [Validators.required]],
|
|
|
+ importantProject: [this.eduTextbook?.get('importantProject') || '', [Validators.required]],
|
|
|
+ importantProjectOther: [this.eduTextbook?.get('importantProjectOther') || '', [Validators.required]],
|
|
|
+ copyrightImgUrl: [this.eduTextbook?.get('copyrightImgUrl') || 'https://www.jyvtc.edu.cn/yssj/resource/cms/2022/01/2022010610314324023.pdf', [Validators.required]],
|
|
|
+ CIPImgUrl: [this.eduTextbook?.get('CIPImgUrl') || 'https://www.jyvtc.edu.cn/yssj/resource/cms/2022/01/2022010610314324023.pdf', [Validators.required]],
|
|
|
+ // remember: [true],
|
|
|
+ });
|
|
|
+ }
|
|
|
+ //校验其他省部级及以上项目是否需填
|
|
|
+ onChangeRadio(){
|
|
|
+ if (this.validateForm.value.importantProject != '其他省部级及以上项目') {
|
|
|
+ this.validateForm.controls.importantProjectOther.clearValidators();
|
|
|
+ this.validateForm.controls.importantProjectOther.markAsPristine();
|
|
|
+ } else {
|
|
|
+ this.validateForm.controls.importantProjectOther.setValidators(Validators.required);
|
|
|
+ this.validateForm.controls.importantProjectOther.markAsDirty();
|
|
|
+ }
|
|
|
+ this.validateForm.controls.importantProjectOther.updateValueAndValidity();
|
|
|
}
|
|
|
- onChange(e: any) {
|
|
|
- console.log(e);
|
|
|
- console.log(this.validateForm);
|
|
|
+ //校验全册册数是否需填
|
|
|
+ requiredTypeNumber(e:boolean){
|
|
|
+ if (e) {
|
|
|
+ this.validateForm.controls.typeNumber.clearValidators();
|
|
|
+ this.validateForm.controls.typeNumber.markAsPristine();
|
|
|
+ } else {
|
|
|
+ this.validateForm.controls.typeNumber.setValidators(Validators.required);
|
|
|
+ this.validateForm.controls.typeNumber.markAsDirty();
|
|
|
+ }
|
|
|
+ this.validateForm.controls.typeNumber.updateValueAndValidity();
|
|
|
}
|
|
|
+
|
|
|
handleChange(info: NzUploadChangeParam): void {
|
|
|
if (info.file.status !== 'uploading') {
|
|
|
console.log(info.file, info.fileList);
|
|
@@ -187,29 +218,113 @@ export class BasicInComponent implements OnInit {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- submitForm(event?: string): void {
|
|
|
+ async submitForm(event?: string): Promise<void> {
|
|
|
console.log(this.validateForm.value);
|
|
|
if (this.validateForm.valid) {
|
|
|
- console.log(this.validateForm.value);
|
|
|
+ // console.log(this.validateForm.value);
|
|
|
+ // let {
|
|
|
+ // title,
|
|
|
+ // ISBN,
|
|
|
+ // author,
|
|
|
+ // unit,
|
|
|
+ // type,
|
|
|
+ // typeNumber,
|
|
|
+ // majorPoniter,
|
|
|
+ // lang,
|
|
|
+ // authors,
|
|
|
+ // editor,
|
|
|
+ // approval,
|
|
|
+ // editionUnit,
|
|
|
+ // editionFirst,
|
|
|
+ // carrierShape,
|
|
|
+ // editionDate,
|
|
|
+ // editionNumber,
|
|
|
+ // printDate,
|
|
|
+ // printNumber,
|
|
|
+ // printSum,
|
|
|
+ // importantProject,
|
|
|
+ // importantProjectOther,
|
|
|
+ // copyrightImgUrl,
|
|
|
+ // CIPImgUrl,
|
|
|
+ // } = this.validateForm.value
|
|
|
+ let params = this.validateForm.value
|
|
|
+ if(event == 'next'){
|
|
|
+ await this.saveEduTextbook(params, this.validateForm.valid)
|
|
|
+ this.state.emit({type:'next',textBook:this.eduTextbook});
|
|
|
+ }
|
|
|
} else {
|
|
|
+ if(event == 'save'){
|
|
|
+ let params = this.validateForm.value
|
|
|
+ await this.saveEduTextbook(params, this.validateForm.valid)
|
|
|
+ this.modal.success({
|
|
|
+ nzTitle: '保存成功',
|
|
|
+ nzContent: '<p>已保存并且至空间</p>',
|
|
|
+ nzOnOk: () => console.log('Info OK')
|
|
|
+ });
|
|
|
+ return
|
|
|
+ }
|
|
|
Object.values(this.validateForm.controls).forEach((control) => {
|
|
|
if (control.invalid) {
|
|
|
control.markAsDirty();
|
|
|
control.updateValueAndValidity({ onlySelf: true });
|
|
|
}
|
|
|
});
|
|
|
+ this.msg.warning('请填写完整的内容')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(event == 'save'){
|
|
|
+ let params = this.validateForm.value
|
|
|
+ await this.saveEduTextbook(params, this.validateForm.valid)
|
|
|
+ this.modal.success({
|
|
|
+ nzTitle: '保存成功',
|
|
|
+ nzContent: '<p>已保存并且至空间</p>',
|
|
|
+ nzOnOk: () => console.log('Info OK')
|
|
|
+ });
|
|
|
}
|
|
|
- if (event == 'pre') {
|
|
|
- this.state.emit('pre');
|
|
|
+ }
|
|
|
+
|
|
|
+ async saveEduTextbook(params: any, isComplete:boolean){
|
|
|
+ console.log(params);
|
|
|
+ if(!this.eduTextbook){
|
|
|
+ let obj = Parse.Object.extend('EduTextbook');
|
|
|
+ this.eduTextbook = new obj();
|
|
|
}
|
|
|
- if (event == 'next') {
|
|
|
- this.state.emit('next');
|
|
|
+ //如果填写未完整,仅保存,状态修改待完善101
|
|
|
+ if(this.eduTextbook.get('status') == '102' && !isComplete){
|
|
|
+ this.eduTextbook?.set('status', '101');
|
|
|
+ }else if(!this.eduTextbook.get('status')){
|
|
|
+ this.eduTextbook?.set('status', '101');
|
|
|
}
|
|
|
- if(event == 'save')
|
|
|
- this.modal.success({
|
|
|
- nzTitle: '保存成功',
|
|
|
- nzContent: '<p>已保存并且至空间</p>',
|
|
|
- nzOnOk: () => console.log('Info OK')
|
|
|
+ this.eduTextbook?.set('user', Parse.User.current()?.toPointer());
|
|
|
+ this.eduTextbook?.set('company', {
|
|
|
+ __type: 'Pointer',
|
|
|
+ className: 'Company',
|
|
|
+ objectId: this.tbookSer.company,
|
|
|
});
|
|
|
+ this.eduTextbook?.set('title', params.title);
|
|
|
+ this.eduTextbook?.set('ISBN', params.ISBN);
|
|
|
+ this.eduTextbook?.set('author', params.author);
|
|
|
+ this.eduTextbook?.set('unit', params.unit);
|
|
|
+ this.eduTextbook?.set('type', params.type);
|
|
|
+ this.eduTextbook?.set('typeNumber', params.typeNumber);
|
|
|
+ this.eduTextbook?.set('majorPoniter', params.majorPoniter);
|
|
|
+ this.eduTextbook?.set('lang', params.lang);
|
|
|
+ this.eduTextbook?.set('authors', params.authors);
|
|
|
+ this.eduTextbook?.set('editor', params.editor);
|
|
|
+ this.eduTextbook?.set('approval', params.approval);
|
|
|
+ this.eduTextbook?.set('editionUnit', params.editionUnit);
|
|
|
+ this.eduTextbook?.set('editionFirst', params.editionFirst);
|
|
|
+ this.eduTextbook?.set('carrierShape', params.carrierShape);
|
|
|
+ this.eduTextbook?.set('editionDate', params.editionDate);
|
|
|
+ this.eduTextbook?.set('editionNumber', params.editionNumber);
|
|
|
+ this.eduTextbook?.set('printDate', params.printDate);
|
|
|
+ this.eduTextbook?.set('printNumber', params.printNumber);
|
|
|
+ this.eduTextbook?.set('printSum', params.printSum);
|
|
|
+ this.eduTextbook?.set('importantProject', params.importantProject);
|
|
|
+ this.eduTextbook?.set('importantProjectOther', params.importantProjectOther);
|
|
|
+ this.eduTextbook?.set('copyrightImgUrl', params.copyrightImgUrl);
|
|
|
+ this.eduTextbook?.set('CIPImgUrl', params.CIPImgUrl);
|
|
|
+ await this.eduTextbook?.save();
|
|
|
+ return
|
|
|
}
|
|
|
}
|