textbook-details.component.ts 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. import { Component, OnInit, ViewChild } from '@angular/core';
  2. import { CommonCompModule } from '../../../services/common.modules';
  3. import { Router, ActivatedRoute } from '@angular/router';
  4. import { ReactiveFormsModule } from '@angular/forms';
  5. import { NzAnchorModule } from 'ng-zorro-antd/anchor';
  6. import { DatePipe } from '@angular/common';
  7. import Parse from 'parse';
  8. import { NzCollapseModule } from 'ng-zorro-antd/collapse';
  9. import { BrowserModule } from '@angular/platform-browser';
  10. import { CommonModule } from '@angular/common';
  11. import { NzTabsModule } from 'ng-zorro-antd/tabs';
  12. import { NzTableModule } from 'ng-zorro-antd/table';
  13. import { textbookServer } from '../../../services/textbook';
  14. import * as compute from '../../../services/compute';
  15. @Component({
  16. selector: 'app-textbook-details',
  17. imports: [
  18. CommonCompModule,
  19. ReactiveFormsModule,
  20. NzAnchorModule,
  21. DatePipe,
  22. NzCollapseModule,
  23. CommonModule,
  24. NzTabsModule,
  25. NzTableModule,
  26. ],
  27. standalone: true,
  28. templateUrl: './textbook-details.component.html',
  29. styleUrls: ['./textbook-details.component.scss'],
  30. providers: [DatePipe],
  31. })
  32. export class TextbookDetailsComponent implements OnInit {
  33. @ViewChild('templ1') templ1: any;
  34. user?: Parse.Object;
  35. textBook: object | any = {};
  36. active:number = 0
  37. /**扩展表记录 */
  38. eduTextbookVolumeList: Array<any> = [];
  39. /** 册数*/
  40. typeNumber: any;
  41. /** 申报类型*/
  42. type: any;
  43. get total():number{
  44. let num = 0
  45. this.reviewList.forEach(item=>{
  46. num = compute.addNum(
  47. item?.get('score'),
  48. num
  49. );
  50. })
  51. return num
  52. }
  53. constructor(
  54. public tbookSer: textbookServer,
  55. private router: Router,
  56. private activeRoute: ActivatedRoute
  57. ) {}
  58. ngOnInit() {
  59. this.activeRoute.paramMap.subscribe(async (params) => {
  60. this.user = Parse.User.current();
  61. let id = params.get('id');
  62. console.log(id);
  63. if (id) {
  64. let query = new Parse.Query('EduTextbook');
  65. query.equalTo('objectId', id);
  66. query.include('childrens');
  67. let r = await query.first();
  68. this.textBook = r?.toJSON();
  69. console.log(this.textBook);
  70. this.eduTextbookVolumeList = this.textBook?.childrens;
  71. this.getExpertGroup();
  72. this.getEduReview();
  73. }
  74. });
  75. }
  76. handleClick(e: string): void {
  77. console.log(e);
  78. }
  79. back() {
  80. history.back();
  81. }
  82. edit() {
  83. this.router?.navigate(
  84. ['/nav-author/manage/apply', { id: this.textBook.objectId }],
  85. { replaceUrl: true }
  86. );
  87. }
  88. openFile(url: string) {
  89. console.log(url);
  90. window.open(url);
  91. }
  92. /**锚点 */
  93. herfLink(domId: string) {
  94. console.log(domId);
  95. let topEle = document.getElementById(domId);
  96. if (topEle) {
  97. topEle.scrollIntoView({ behavior: 'smooth' });
  98. }
  99. }
  100. groupLogin: boolean = true;
  101. reviewLogin: boolean = true;
  102. groupList: Array<Parse.Object> = [];
  103. /**获取本教材评审组 */
  104. async getExpertGroup() {
  105. let groupQuery = new Parse.Query('ExpertGroup');
  106. groupQuery.notEqualTo('isDeleted', true);
  107. let bookQuery = new Parse.Query('EduTextbook');
  108. bookQuery.equalTo('objectId', this.textBook?.objectId);
  109. groupQuery.matchesQuery('textbookList', bookQuery);
  110. this.groupList = await groupQuery.find();
  111. console.log(this.groupList);
  112. this.groupLogin = false;
  113. }
  114. reviewList: Array<Parse.Object> = [];
  115. /**获取本教程评分 */
  116. async getEduReview() {
  117. let query = new Parse.Query('EduReview');
  118. query.notEqualTo('isDeleted', true);
  119. query.equalTo('eduTextbook', this.textBook?.objectId);
  120. query.include('profile', 'profile.user');
  121. query.equalTo('verify',true)
  122. this.reviewList = await query.find();
  123. console.log(this.reviewList);
  124. this.reviewLogin = false;
  125. }
  126. }