xll 8 月之前
父節點
當前提交
e52e2a68b6

+ 5 - 3
projects/textbook/src/modules/nav-author/components/attachment/attachment.component.ts

@@ -259,14 +259,16 @@ export class AttachmentComponent implements OnInit {
       authorList:this.authorList
       // unitMaterial: this.unitMaterial,
     }
+    
     let isPageNull = this.examineNull()//检查本页空项
     let isIgnoreFiled = this.isIgnoreFiledNull()//检查数据空项
-    // console.log(isPageNull, isIgnoreFiled);
+    await this.saveEduTextbook(params, (!isPageNull && !isIgnoreFiled));
+
     if (event == 'pre') {//上一步
       this.state.emit({ type: 'pre' });
       return;
-    }
-    await this.saveEduTextbook(params, (!isPageNull && !isIgnoreFiled));
+    }else
+    // await this.saveEduTextbook(params, (!isPageNull && !isIgnoreFiled));
     if (event == 'complete') {
       this.state.emit({ type: 'complete', textBook: this.eduTextbook });
       if (isPageNull || isIgnoreFiled) {

+ 7 - 50
projects/textbook/src/modules/nav-author/components/basic-in/basic-in.component.ts

@@ -88,7 +88,7 @@ export class BasicInComponent implements OnInit {
     }
   validateForm: FormGroup<{
     title: FormControl<string>; //申报教材名称
-    ISBN: FormControl<string>; //国际标准书号
+    ISBN: FormControl<any>; //国际标准书号
     author: FormControl<string>; //第一主编(作者)
     unit: FormControl<string>; //第一主编(作者)单位
     unitType:FormControl<string>//第一主编(作者)单位类型
@@ -121,7 +121,7 @@ export class BasicInComponent implements OnInit {
     // remember: FormControl<boolean>;
   }> = this.fb.group({
     title: ['', [Validators.required]],
-    ISBN: ['', [Validators.required]],
+    ISBN: [null, [Validators.required]],
     author: ['', [Validators.required]],
     unit: ['', [Validators.required]],
     type: ['', [Validators.required]],
@@ -260,7 +260,7 @@ export class BasicInComponent implements OnInit {
     if(this.eduTextbook?.get('editionUnit')){
       this.isShowChooseEU=false
     }
-    this.importantProject = this.eduTextbook.get('importantProject')||[]
+    this.importantProject = this.eduTextbook?.get('importantProject')||[]
     if(this.importantProject?.length>0){
       for(let i in this.importantProjectList){
         if(this.importantProject.indexOf(this.importantProjectList[i].value)!=-1){
@@ -269,13 +269,13 @@ export class BasicInComponent implements OnInit {
       }
     }
  
-    this.approvedImgList[0].url = this.eduTextbook.get('approvedImgUrl')
+    this.approvedImgList[0].url = this.eduTextbook?.get('approvedImgUrl')
     this.typeNumber = this.eduTextbook?.get('typeNumber') || 2
     // console.log(this.approvedImgList)
     console.log(this.eduTextbook);
     this.validateForm = this.fb.group({
       title: [this.eduTextbook?.get('title') || '', [Validators.required]],
-      ISBN: [this.eduTextbook?.get('ISBN') || '', [Validators.required]],
+      ISBN: [parseInt(this.eduTextbook?.get('ISBN')||'')||null, [Validators.required]],
       author: [this.eduTextbook?.get('author') || '', [Validators.required]],
       unit: [this.eduTextbook?.get('unit') || '', [Validators.required]],
       type: [this.eduTextbook?.get('type') || '', [Validators.required]],
@@ -303,40 +303,7 @@ export class BasicInComponent implements OnInit {
       // CIPImgUrl: [this.eduTextbook?.get('CIPImgUrl') || '', [Validators.required]],
     });
   }
-  //校验各项是否需填
-  required(){
-    // if (this.validateForm.value.importantProject != '其他省部级及以上项目') {
-    //校验其他省部级及以上项目是否需填
-    if (!this.importantProjectList[4].checked) {
-      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();
-    
-    //校验全册册数是否需填
-    // if (this.validateForm.value.type == '单册') {
-    //   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();
-
-    //校验教材获批截图是否需填
-    if (!this.validateForm.value.approval || this.validateForm.value.approval == '否') {
-      this.validateForm.controls.approvedImgUrl.clearValidators();
-      this.validateForm.controls.approvedImgUrl.markAsPristine();
-    } else {
-      this.validateForm.controls.approvedImgUrl.setValidators(Validators.required);
-      this.validateForm.controls.approvedImgUrl.markAsDirty();
-    }
-    this.validateForm.controls.approvedImgUrl.updateValueAndValidity();
-  }
-
+  
   upload(e: any, type:string) {
     console.log(e);
     let file = e[0];
@@ -347,7 +314,6 @@ export class BasicInComponent implements OnInit {
     console.log(this.validateForm.value)
   }
   async submitForm(event?: string): Promise<void> {
-    // this.required()
     console.log(this.validateForm.value);
     console.log(this.validateForm.valid);
     if (this.validateForm.valid) {
@@ -372,15 +338,6 @@ export class BasicInComponent implements OnInit {
         await this.saveEduTextbook(params, this.validateForm.valid)
         this.state.emit({type:'next',textBook:this.eduTextbook});
       }
-      // 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
@@ -414,7 +371,7 @@ export class BasicInComponent implements OnInit {
       objectId: this.tbookSer.company,
     });
     this.eduTextbook?.set('title', params.title);
-    this.eduTextbook?.set('ISBN', params.ISBN);
+    this.eduTextbook?.set('ISBN', (params.ISBN||0).toString());
     this.eduTextbook?.set('author', params.author);
     this.eduTextbook?.set('unit', params.unit);
     this.eduTextbook?.set('type', params.type);

+ 17 - 25
projects/textbook/src/modules/nav-author/components/faith/faith.component.html

@@ -25,41 +25,33 @@
         </nz-form-control>
       </nz-form-item>
     </div> -->
-
+  <form nz-form [formGroup]="validateForm" nzLayout="vertical">
     <div class="author-content">
       <div class="nav"><b>教材作者诚信承诺</b></div>
+      <p>输入诚信承诺:本人自愿参加此次申报,已认真填写并检查以上材料,保证内容真实。</p>
+      <nz-form-item>
+        <nz-form-control>
+            <input formControlName="accept" nz-input placeholder="请输入承诺内容" />
+        </nz-form-control>
+      </nz-form-item>
+    </div>
+    <div class="author-content">
+      <div class="nav"><b>申报单位承诺意见</b></div>
       <div class="text">
-        请输入承诺内容,导出函报文件后加入所有作者签名(或电子签名):本人自愿参加此次申报,已认真填写并检查以上材料,保证内容真实。
+        高校主管领导输入以下承诺:已对教材有关信息及填报的内容进行核实,保证真实性。经对该教材评审评价,同意该教材申报。并在导出函报文件后签字加盖高校公章;
+        <br> 出版单位主管领导输入以下承诺:已核实该教材未通过其他渠道申报,
+        对教材有关信息及填报的内容进行了核实,保证真实性。经对该教材评审评价,同意该教材申报。并在导出函报文件后签字加盖出版单位公章。
+        <!-- <a (click)="downloadFile('申报单位承诺意见.docx')">下载模板</a> -->
       </div>
-      <input nz-input placeholder="请输入诚信承诺内容" [(ngModel)]="value" type="number" />
-
-    </div>
-
-
-  <div class="author-content">
-    <div class="nav"><b>申报单位承诺意见</b></div>
-    <div class="text">
-      高校主管领导输入以下承诺:已对教材有关信息及填报的内容进行核实,保证真实性。经对该教材评审评价,同意该教材申报。并在导出函报文件后签字加盖高校公章;
-      <br> 出版单位主管领导输入以下承诺:已核实该教材未通过其他渠道申报,
-      对教材有关信息及填报的内容进行了核实,保证真实性。经对该教材评审评价,同意该教材申报。并在导出函报文件后签字加盖出版单位公章。
-      <a (click)="downloadFile('申报单位承诺意见.docx')">下载模板</a>
-    </div>
-    <form nz-form [formGroup]="form" nzLayout="vertical">
       <nz-form-item>
         <nz-form-control>
           <nz-textarea-count [nzMaxCharacterCount]="200">
-            <textarea maxlength="200" rows="4" formControlName="comment" nz-input></textarea>
+            <textarea maxlength="200" rows="4" formControlName="unitMaterial" nz-input></textarea>
           </nz-textarea-count>
         </nz-form-control>
       </nz-form-item>
-    </form>
-  </div>
-
-
-
-
-
-
+    </div>
+  </form>
 </div>
 <div class="footer">
   <button nz-button nzType="default" style="margin-right: 20px" (click)="submitForm('save')">

+ 28 - 11
projects/textbook/src/modules/nav-author/components/faith/faith.component.ts

@@ -67,26 +67,36 @@ export class FaithComponent  implements OnInit {
     private modal: NzModalService,
     private http: HttpClient,
     private router: Router,
-    private formBuilder: FormBuilder
+    private formBuilder: FormBuilder,
+    private fb: NonNullableFormBuilder,
   ) { }
   ngOnInit() {
     if (this.eduTextbook.id) {
-      this.unitMaterial = this.eduTextbook?.get('unitMaterial') || this.unitMaterial
+      this.validateForm = this.fb.group({
+        unitMaterial: [this.eduTextbook.get('unitMaterial')?.text||'' , [Validators.maxLength(200)]],
+        accept: [this.eduTextbook.get('accept') || '', [Validators.required]],
+      });
     }
   }
   value:string=''
 
 
   async submitForm(event?: string): Promise<void> {
-    let params = {
-      unitMaterial: this.unitMaterial,
-    }
+
+    let params: any = this.validateForm.value;
+    console.log(params)//=================================写到这===============
+    await this.saveEduTextbook(params);
+
+    // if (this.validateForm.valid) {//表单审核
+   
+   
+    // }
+
     if (event == 'pre') {//上一步
       this.state.emit({ type: 'pre' });
       return;
     }
-    await this.saveEduTextbook(params);
-    if(event == 'next'){
+    if(event == 'next'){//下一步
       this.state.emit({type:'next',textBook:this.eduTextbook});
     }
     else if (event == 'save') {
@@ -97,6 +107,8 @@ export class FaithComponent  implements OnInit {
       });
       return;
     }
+
+    
   }
 
   async saveEduTextbook(params: any) {
@@ -111,7 +123,9 @@ export class FaithComponent  implements OnInit {
       objectId: this.tbookSer.company,
     });
     params.unitMaterial &&
-      this.eduTextbook?.set('unitMaterial', params.unitMaterial);
+      this.eduTextbook?.set('unitMaterial',{text:params.unitMaterial} );
+      params.accept &&
+      this.eduTextbook?.set('accept', params.accept);
     await this.eduTextbook?.save();
     return;
   }
@@ -154,10 +168,13 @@ export class FaithComponent  implements OnInit {
   }
 
 
-  form: FormGroup<{
-    comment: FormControl<string | null>;
+  validateForm: FormGroup<{
+    unitMaterial: FormControl<string | null>;
+    accept: FormControl<string | null>;
   }> = this.formBuilder.group({
-    comment: ['', [Validators.maxLength(100)]]
+    unitMaterial: ['', [Validators.maxLength(200)]],
+    accept: ['', [Validators.maxLength(100)]]
+
   });
 
 }

+ 2 - 2
projects/textbook/src/modules/nav-author/components/textbook-pertain/textbook-pertain.component.html

@@ -192,8 +192,8 @@
           }
         </tbody>
       </nz-table>
-      <p>输入诚信承诺:本人自愿参加此次申报,已认真填写并检查以上材料,保证内容真实。</p>
-      <input formControlName="accept" nz-input placeholder="请输入承诺内容" />
+      <!-- <p>输入诚信承诺:本人自愿参加此次申报,已认真填写并检查以上材料,保证内容真实。</p>
+      <input formControlName="accept" nz-input placeholder="请输入承诺内容" /> -->
     </div>
     <div class="author-content">
       <div class="nav">第一主编(作者)情况</div>

+ 84 - 66
projects/textbook/src/modules/nav-author/components/textbook-pertain/textbook-pertain.component.ts

@@ -212,66 +212,85 @@ export class TextbookPertainComponent implements OnInit {
     }
   }
   async submitForm(event?: string): Promise<void> {
-    if (event == 'pre') {
-      this.state.emit({ type: 'pre' });
-      return
-    }
-    let authorListVrifly = !this.authorList.some(item => Object.values(item).some(val => val == '' || val == undefined))
-    let achievementOptionsVrifly = !this.achievementOptions.some(item => Object.values(item).some(val => val == '' || val == undefined))
-
-    if (this.validateForm.valid) {
-      let params: any = this.validateForm.value;
-      if (event == 'next') {
-        if (!authorListVrifly) {
-          this.msg.warning('作者信息填写不完整')
-          return
-        } else if (!achievementOptionsVrifly) {
-          this.msg.warning('相关科学研究项目、成果或论文专著填写不完整')
-          return
-        }
-        await this.saveEduTextbook(params, true);
-        this.state.emit({ type: 'next', textBook: this.eduTextbook });
-      }
-    } else {
-      if (event == 'save') {
-        let params: any = this.validateForm.value;
-        await this.saveEduTextbook(params, (this.validateForm.valid && authorListVrifly && achievementOptionsVrifly));
-        this.modal.success({
-          nzTitle: '保存成功',
-          nzContent: '<p>已保存并且至空间</p>',
-          nzOnOk: () => console.log('Info OK'),
-        });
-        return;
-      }
-      if (event == 'next') {
-        // if(!authorListVrifly){
-        //   this.msg.warning('作者信息填写不完整')
-        //   return
-        // }else if(!achievementOptionsVrifly){
-        //   this.msg.warning('相关科学研究项目、成果或论文专著填写不完整')
-        //   return
-        // }
         let params: any = this.validateForm.value;
         await this.saveEduTextbook(params, false);
-        this.state.emit({ type: 'next', textBook: this.eduTextbook });
-      }
-      // Object.values(this.validateForm.controls).forEach((control) => {
-      //   if (control.invalid) {
-      //     control.markAsDirty();
-      //     control.updateValueAndValidity({ onlySelf: true });
-      //   }
-      // });
-      // this.msg.warning('请填写完整信息');
-    }
-    if (event == 'save') {
-      let params = this.validateForm.value;
-      await this.saveEduTextbook(params, (this.validateForm.valid && authorListVrifly && achievementOptionsVrifly));
-      this.modal.success({
-        nzTitle: '保存成功',
-        nzContent: '<p>已保存并且至空间</p>',
-        nzOnOk: () => console.log('Info OK'),
-      });
-    }
+        if (event == 'pre') {
+          this.state.emit({ type: 'pre' });
+          return
+        }
+        if (event == 'next') {
+          this.state.emit({ type: 'next', textBook: this.eduTextbook });
+        }
+        if (event == 'save') {
+          this.modal.success({
+            nzTitle: '保存成功',
+            nzContent: '<p>已保存并且至空间</p>',
+            nzOnOk: () => console.log('Info OK'),
+          });
+          return;
+        }
+
+
+    // if (event == 'pre') {
+    //   this.state.emit({ type: 'pre' });
+    //   return
+    // }
+    // let authorListVrifly = !this.authorList.some(item => Object.values(item).some(val => val == '' || val == undefined))
+    // let achievementOptionsVrifly = !this.achievementOptions.some(item => Object.values(item).some(val => val == '' || val == undefined))
+
+    // if (this.validateForm.valid) {
+    //   let params: any = this.validateForm.value;
+    //   if (event == 'next') {
+    //     if (!authorListVrifly) {
+    //       this.msg.warning('作者信息填写不完整')
+    //       return
+    //     } else if (!achievementOptionsVrifly) {
+    //       this.msg.warning('相关科学研究项目、成果或论文专著填写不完整')
+    //       return
+    //     }
+    //     await this.saveEduTextbook(params, true);
+    //     this.state.emit({ type: 'next', textBook: this.eduTextbook });
+    //   }
+    // } else {
+    //   if (event == 'save') {
+    //     let params: any = this.validateForm.value;
+    //     await this.saveEduTextbook(params, (this.validateForm.valid && authorListVrifly && achievementOptionsVrifly));
+    //     this.modal.success({
+    //       nzTitle: '保存成功',
+    //       nzContent: '<p>已保存并且至空间</p>',
+    //       nzOnOk: () => console.log('Info OK'),
+    //     });
+    //     return;
+    //   }
+    //   if (event == 'next') {
+    //     // if(!authorListVrifly){
+    //     //   this.msg.warning('作者信息填写不完整')
+    //     //   return
+    //     // }else if(!achievementOptionsVrifly){
+    //     //   this.msg.warning('相关科学研究项目、成果或论文专著填写不完整')
+    //     //   return
+    //     // }
+    //     let params: any = this.validateForm.value;
+    //     await this.saveEduTextbook(params, false);
+    //     this.state.emit({ type: 'next', textBook: this.eduTextbook });
+    //   }
+    //   // Object.values(this.validateForm.controls).forEach((control) => {
+    //   //   if (control.invalid) {
+    //   //     control.markAsDirty();
+    //   //     control.updateValueAndValidity({ onlySelf: true });
+    //   //   }
+    //   // });
+    //   // this.msg.warning('请填写完整信息');
+    // }
+    // if (event == 'save') {
+    //   let params = this.validateForm.value;
+    //   await this.saveEduTextbook(params, (this.validateForm.valid && authorListVrifly && achievementOptionsVrifly));
+    //   this.modal.success({
+    //     nzTitle: '保存成功',
+    //     nzContent: '<p>已保存并且至空间</p>',
+    //     nzOnOk: () => console.log('Info OK'),
+    //   });
+    // }
   }
   changeCode() { }
   getCode(e: any) { }
@@ -365,13 +384,13 @@ export class TextbookPertainComponent implements OnInit {
       // let obj = Parse.Object.extend('EduTextbook');
       // this.eduTextbook = new obj();
     }
-    //如果填写未完整,仅保存,状态修改待完善101
-    if (this.eduTextbook.get('status') == '102' && !isComplete) {
-      this.eduTextbook?.set('status', '101');
-      this.eduTextbook.set('complete', false)
-    } else if (!this.eduTextbook.get('status')) {
-      this.eduTextbook?.set('status', '101');
-    }
+    // //如果填写未完整,仅保存,状态修改待完善101
+    // if (this.eduTextbook.get('status') == '102' && !isComplete) {
+    //   this.eduTextbook?.set('status', '101');
+    //   this.eduTextbook.set('complete', false)
+    // } else if (!this.eduTextbook.get('status')) {
+    //   this.eduTextbook?.set('status', '101');
+    // }
     this.eduTextbook?.set('user', Parse.User.current()?.toPointer());
     this.eduTextbook?.set('company', {
       __type: 'Pointer',
@@ -392,7 +411,6 @@ export class TextbookPertainComponent implements OnInit {
     await this.eduTextbook?.save();
     return;
   }
-  // http://hep-textbook.oss-cn-beijing.aliyuncs.com/66988340e4964b67e5c0d7b4/2024-7-19/1721355300725-%E5%A4%9A%E8%82%89.jpg
 
   /**获取文件名 */
   getFileName(url: string) {