|
@@ -1,4 +1,4 @@
|
|
|
-import { Component, Input, OnInit } from '@angular/core';
|
|
|
+import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
|
|
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
|
import { CommonCompModule } from '../../../../services/common.modules';
|
|
|
import { Router, ActivatedRoute } from '@angular/router';
|
|
@@ -36,8 +36,9 @@ import { NzRadioModule } from 'ng-zorro-antd/radio';
|
|
|
})
|
|
|
export class ProcessCreateComponent implements OnInit {
|
|
|
timeDefaultValue = setHours(new Date(), 0);
|
|
|
+ @Output() save: EventEmitter<any> = new EventEmitter<any>();
|
|
|
|
|
|
- eduProcess: Parse.Object | undefined;
|
|
|
+ @Input('eduProcess') eduProcess: Parse.Object | undefined;
|
|
|
showProfileFrom: boolean = false;
|
|
|
@Input('isEdit') isEdit: boolean = false; //当前是否作为编辑子组件
|
|
|
profileId: string = '';
|
|
@@ -52,12 +53,11 @@ export class ProcessCreateComponent implements OnInit {
|
|
|
branch: FormControl<Array<string> | any>; //所属分类
|
|
|
startDate: FormControl<Date>; //开始时间
|
|
|
deadline: FormControl<Date>; //结束时间
|
|
|
-
|
|
|
}> = this.fb.group({
|
|
|
name: ['', [Validators.required]],
|
|
|
- desc: ['',[Validators.maxLength(500)]],
|
|
|
+ desc: ['', [Validators.maxLength(500)]],
|
|
|
code: ['', [Validators.required]],
|
|
|
- num: [0,],
|
|
|
+ num: [0],
|
|
|
branch: ['', [Validators.required]],
|
|
|
startDate: [new Date('2024/07/20'), [Validators.required]],
|
|
|
deadline: [new Date('2024/09/20'), [Validators.required]],
|
|
@@ -82,25 +82,44 @@ export class ProcessCreateComponent implements OnInit {
|
|
|
|
|
|
ngOnInit() {
|
|
|
this.activeRoute.paramMap.subscribe(async (params) => {
|
|
|
- let id = params.get('id');
|
|
|
+ this.save.emit({ isLoadling: true, save: false });
|
|
|
+ // let id = params.get('id');
|
|
|
await this.getUnitTypes();
|
|
|
- if (id) {
|
|
|
+ if (this.eduProcess?.id) {
|
|
|
this.isEdit = true;
|
|
|
- let query = new Parse.Query('EduProcess');
|
|
|
- query.include('branch', 'department','profileSubmitted');
|
|
|
- query.equalTo('objectId', id);
|
|
|
- this.eduProcess = await query.first();
|
|
|
- this.validateForm.get('name')?.setValue(this.eduProcess?.get('name') || '')
|
|
|
- this.validateForm.get('desc')?.setValue(this.eduProcess?.get('desc') || '')
|
|
|
- this.validateForm.get('code')?.setValue(this.eduProcess?.get('code') || '')
|
|
|
- this.validateForm.get('num')?.setValue(this.eduProcess?.get('num') ?? 0)
|
|
|
- this.validateForm.get('branch')?.setValue(this.eduProcess?.get('branch')?.id || '')
|
|
|
- this.validateForm.get('startDate')?.setValue(this.eduProcess?.get('startDate')
|
|
|
+ // let query = new Parse.Query('EduProcess');
|
|
|
+ // query.include('branch', 'department','profileSubmitted');
|
|
|
+ // query.equalTo('objectId', id);
|
|
|
+ // this.eduProcess = await query.first();
|
|
|
+ this.validateForm
|
|
|
+ .get('name')
|
|
|
+ ?.setValue(this.eduProcess?.get('name') || '');
|
|
|
+ this.validateForm
|
|
|
+ .get('desc')
|
|
|
+ ?.setValue(this.eduProcess?.get('desc') || '');
|
|
|
+ this.validateForm
|
|
|
+ .get('code')
|
|
|
+ ?.setValue(this.eduProcess?.get('code') || '');
|
|
|
+ this.validateForm
|
|
|
+ .get('num')
|
|
|
+ ?.setValue(this.eduProcess?.get('num') ?? 0);
|
|
|
+ this.validateForm
|
|
|
+ .get('branch')
|
|
|
+ ?.setValue(this.eduProcess?.get('branch')?.id || '');
|
|
|
+ this.validateForm
|
|
|
+ .get('startDate')
|
|
|
+ ?.setValue(
|
|
|
+ this.eduProcess?.get('startDate')
|
|
|
? this.eduProcess?.get('startDate')
|
|
|
- : '')
|
|
|
- this.validateForm.get('deadline')?.setValue( this.eduProcess?.get('deadline')
|
|
|
+ : ''
|
|
|
+ );
|
|
|
+ this.validateForm
|
|
|
+ .get('deadline')
|
|
|
+ ?.setValue(
|
|
|
+ this.eduProcess?.get('deadline')
|
|
|
? this.eduProcess?.get('deadline')
|
|
|
- : '')
|
|
|
+ : ''
|
|
|
+ );
|
|
|
// this.validateForm = this.fb.group({
|
|
|
// name: [this.eduProcess?.get('name') || '', [Validators.required]],
|
|
|
// desc: [this.eduProcess?.get('desc') || '',[Validators.maxLength(100)]],
|
|
@@ -126,6 +145,7 @@ export class ProcessCreateComponent implements OnInit {
|
|
|
}
|
|
|
this.profileId = this.eduProcess?.get('profileSubmitted')?.id || '';
|
|
|
this.department = this.eduProcess?.get('department')?.id || '';
|
|
|
+ this.save.emit({ isLoadling: false, save: false });
|
|
|
});
|
|
|
}
|
|
|
async getUnitTypes() {
|
|
@@ -134,7 +154,7 @@ export class ProcessCreateComponent implements OnInit {
|
|
|
query.equalTo('parent', undefined);
|
|
|
query.notEqualTo('isDeleted', true);
|
|
|
query.select('name');
|
|
|
- query.descending('createdAt')
|
|
|
+ query.descending('createdAt');
|
|
|
let r = await query.find();
|
|
|
r.forEach((item) => {
|
|
|
this.unitTypes.push({ id: item.id, name: item.get('name') });
|
|
@@ -167,6 +187,7 @@ export class ProcessCreateComponent implements OnInit {
|
|
|
}
|
|
|
console.log('submit', this.validateForm.value);
|
|
|
if (this.validateForm.valid) {
|
|
|
+ this.save.emit({ isLoadling: true, save: false });
|
|
|
let params = this.validateForm.value;
|
|
|
this.saveEduCollection(params);
|
|
|
} else {
|
|
@@ -204,7 +225,7 @@ export class ProcessCreateComponent implements OnInit {
|
|
|
this.eduProcess?.set('name', params.name);
|
|
|
this.eduProcess?.set('desc', params.desc);
|
|
|
this.eduProcess?.set('code', params.code);
|
|
|
- typeof(params.num) == 'number' && this.eduProcess?.set('num', params.num);
|
|
|
+ typeof params.num == 'number' && this.eduProcess?.set('num', params.num);
|
|
|
this.eduProcess?.set('startDate', params.startDate);
|
|
|
this.eduProcess?.set('deadline', params.deadline);
|
|
|
if (!this.eduProcess?.get('profileSubmitted')) {
|
|
@@ -219,10 +240,12 @@ export class ProcessCreateComponent implements OnInit {
|
|
|
this.eduProcess = await this.eduProcess?.save();
|
|
|
this.msg.success(this.isEdit ? '已保存' : '已创建');
|
|
|
this.showProfileFrom = false;
|
|
|
- this.router.navigate([
|
|
|
- '/nav-admin/manage/process/page',
|
|
|
- { id: this.eduProcess?.id },
|
|
|
- ]);
|
|
|
+ !this.isEdit &&
|
|
|
+ this.router.navigate(
|
|
|
+ ['/nav-admin/manage/process/page', { id: this.eduProcess?.id }],
|
|
|
+ { replaceUrl: true }
|
|
|
+ );
|
|
|
+ this.save.emit({ isLoadling: true, save: true });
|
|
|
}
|
|
|
//选择部门
|
|
|
async showModalDepart() {
|
|
@@ -251,7 +274,7 @@ export class ProcessCreateComponent implements OnInit {
|
|
|
query.equalTo('objectId', id);
|
|
|
query.select('parent', 'name');
|
|
|
let r = await query.first();
|
|
|
- if(!r?.get('parent')){
|
|
|
+ if (!r?.get('parent')) {
|
|
|
arr.push({
|
|
|
title: r?.get('name'),
|
|
|
id: r?.id,
|
|
@@ -263,11 +286,11 @@ export class ProcessCreateComponent implements OnInit {
|
|
|
}
|
|
|
//选择联系人
|
|
|
onShowCheck() {
|
|
|
- if(!this.eduProcess?.get('department')?.id){
|
|
|
- this.msg.error('请先选择申报单位')
|
|
|
- return
|
|
|
+ if (!this.eduProcess?.get('department')?.id) {
|
|
|
+ this.msg.error('请先选择申报单位');
|
|
|
+ return;
|
|
|
}
|
|
|
- if(this.profileId)return
|
|
|
+ if (this.profileId) return;
|
|
|
this.showProfileFrom = true;
|
|
|
}
|
|
|
//获取联系人
|
|
@@ -316,13 +339,13 @@ export class ProcessCreateComponent implements OnInit {
|
|
|
: null
|
|
|
);
|
|
|
await this.eduProcess?.save();
|
|
|
- if(this.profileId){
|
|
|
- this.msg.success('成功设置联系人')
|
|
|
- }else{
|
|
|
- this.msg.success('已删除联系人,请重新选择')
|
|
|
+ if (this.profileId) {
|
|
|
+ this.msg.success('成功设置联系人');
|
|
|
+ } else {
|
|
|
+ this.msg.success('已删除联系人,请重新选择');
|
|
|
}
|
|
|
this.ngOnInit();
|
|
|
- this.showProfileFrom = false
|
|
|
+ this.showProfileFrom = false;
|
|
|
}
|
|
|
onCheck(e: any) {
|
|
|
console.log(e);
|
|
@@ -350,7 +373,7 @@ export class ProcessCreateComponent implements OnInit {
|
|
|
});
|
|
|
await this.eduProcess?.save();
|
|
|
this.ngOnInit();
|
|
|
- this.msg.success('申报单位设置成功')
|
|
|
+ this.msg.success('申报单位设置成功');
|
|
|
this.isVisible = false;
|
|
|
}
|
|
|
}
|