Browse Source

新增页面

cehn 7 months ago
parent
commit
4bc0c52300

+ 7 - 28
projects/textbook/src/app/comp-manage/comp-manage.component.ts

@@ -62,24 +62,6 @@ export class CompManageComponent implements OnInit {
           },
         ]
       },
-      // {
-      //   name:'品牌化',
-      //   id:'3',
-      //   child:[
-      //     {
-      //       name:'登录框',
-      //       id:'3-1',
-      //     },
-      //     {
-      //       name:'消息设置',
-      //       id:'3-2',
-      //     },
-      //   ]
-      // },
-      // {
-      //   name:'字段管理',
-      //   id:'4',
-      // },
     ],
     "工作联系人":[
       {
@@ -156,15 +138,15 @@ export class CompManageComponent implements OnInit {
     ],
     "评审专家":[
       {
-        name:'报送流程',
+        name:'评审活动',
         id:'1',
-        path: '/nav-review/home/apply',
-      },
-      {
-        name:'个人信息',
-        id:'2',
-        path: '/nav-review/profile',
+        path: '/nav-review/manage/apply',
       },
+      // {
+      //   name:'个人信息',
+      //   id:'2',
+      //   path: '/nav-review/profile',
+      // },
     ],
     "教师":[
       {
@@ -176,9 +158,6 @@ export class CompManageComponent implements OnInit {
         name: '回收站',
         id: '2',
         path: '/nav-author/manage/recycle',
-        // params: {
-        //   isDeleted: true,
-        // },
       },
     ],
   } 

+ 5 - 9
projects/textbook/src/app/textbook/textbook.component.ts

@@ -159,7 +159,7 @@ export class TextbookComponent implements OnInit {
   setOfCheckedId = new Set<string>();
   searchValue: string = '';
   manage: boolean = false;
-  calc: number = 120;
+  calc: number = 150;
 
   showLoading: boolean = false; //全局
   /* 格式化拓展表字段 */
@@ -168,7 +168,7 @@ export class TextbookComponent implements OnInit {
     let isDate = false
     list.forEach((item:Parse.Object)=>{
       // arr.add(item.get(filed))
-     if(Object.prototype.toString.call(item.get(filed)).indexOf('Date') != -1 || isDate){
+     if(isDate || Object.prototype.toString.call(item.get(filed)).indexOf('Date') != -1){
         arr.push(this.datePipe.transform(item.get(filed), 'yyyy-MM'))
         isDate = true
       }else{
@@ -194,7 +194,9 @@ export class TextbookComponent implements OnInit {
   ngOnInit() {
     this.activeRoute.paramMap.subscribe(async (params) => {
       // this.eduProcessId = params.get('id');
-      this.calc += Object.values(this.filterObj?.btns).length * 70;
+       Object.keys(this.filterObj?.btns).forEach((key)=> {
+        if(this.filterObj[key] && key != 'review' && key != 'verify') this.calc += 70;
+      })
       this.getTextbook();
       if (Object.values(this.filterObj?.btns).some((item) => item)) {
         this.manage = true;
@@ -215,8 +217,6 @@ export class TextbookComponent implements OnInit {
   }
   async getTextbook(val?: string, exported?: boolean): Promise<any[] | void> {
     this.loading = true;
-    // let query = new Parse.Query('EduTextbook');
-    // if (val) {
     let queryParams:any = {
       where: {
         $or: [
@@ -255,9 +255,7 @@ export class TextbookComponent implements OnInit {
           queryParams2['where']['childrens']= {
             '$inQuery':{
               'where': {
-                // '$or':[
                   [key]: { $in: element.value }
-                // ]
               },
               className: 'EduTextbookVolume',
             }
@@ -268,7 +266,6 @@ export class TextbookComponent implements OnInit {
       }else if(element.value?.length > 0 && element.type == 'EduTextbook'){
           queryParams2['where'][key] = { $in: element.value }
       }
-      // query.containedIn(key, element.value);
     }
     let vrifly = Object.keys(queryParams2['where']).some(item=> Object.values(item).length > 0)
     if(vrifly){
@@ -309,7 +306,6 @@ export class TextbookComponent implements OnInit {
     query.notEqualTo('isDeleted', true);
     if (!this.uid && !this.filterObj.team) {
       query.equalTo('render', true);
-      // query.containedIn('status', ['200', '400']);
     }
     if (this.filterObj?.status?.length > 0) {
       query.containedIn('status', this.filterObj?.status);

+ 1 - 1
projects/textbook/src/modules/nav-admin/page-process/process-create/process-create.component.ts

@@ -93,7 +93,7 @@ export class ProcessCreateComponent implements OnInit {
         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') || this.eduProcess?.get('num') == 0 ? this.eduProcess?.get('num') : 0)
+        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')

+ 21 - 0
projects/textbook/src/modules/nav-province-contact/activity/activity.component.html

@@ -0,0 +1,21 @@
+<nz-page-header>
+  <nz-breadcrumb nz-page-header-breadcrumb>
+    <div class="back" (click)="back()">
+      <span nz-icon nzType="left" nzTheme="outline"></span>返回
+    </div>
+  </nz-breadcrumb>
+  <nz-page-header-title
+    >{{ eduProcess?.get("name") }}评委活动
+  </nz-page-header-title>
+</nz-page-header>
+<div class="edit-content">
+  <nz-tabset [(nzSelectedIndex)]="active">
+    <nz-tab nzTitle="活动规则设置">
+      @if (active == 0) {
+      }
+    </nz-tab>
+    <nz-tab nzTitle="评审明细">
+      
+    </nz-tab>
+  </nz-tabset>
+</div>

+ 36 - 0
projects/textbook/src/modules/nav-province-contact/activity/activity.component.scss

@@ -0,0 +1,36 @@
+.back {
+  font-family: PingFang SC;
+  font-size: 14px;
+  font-weight: 400;
+  line-height: 22px;
+  text-align: left;
+  cursor: pointer;
+}
+.edit-content {
+  margin: 0 0 20px;
+  padding: 0 24px;
+  height: calc(100vh - 250px);
+  .title {
+    font-family: PingFang SC;
+    font-size: 20px;
+    font-weight: 500;
+    line-height: 32px;
+    text-align: left;
+    margin-bottom: 16px;
+  }
+}
+::ng-deep .ant-page-header-heading-title {
+  white-space: normal;
+}
+::ng-deep .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn {
+  color: #c6233f;
+}
+::ng-deep .ant-tabs-ink-bar {
+  background: #c6233f;
+}
+::ng-deep .ant-tabs-tab:hover {
+  color: #e97488;
+}
+::ng-deep .ant-tabs-tab-btn:active {
+  color: #e97488;
+}

+ 24 - 0
projects/textbook/src/modules/nav-province-contact/activity/activity.component.spec.ts

@@ -0,0 +1,24 @@
+import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
+import { IonicModule } from '@ionic/angular';
+
+import { ActivityComponent } from './activity.component';
+
+describe('ActivityComponent', () => {
+  let component: ActivityComponent;
+  let fixture: ComponentFixture<ActivityComponent>;
+
+  beforeEach(waitForAsync(() => {
+    TestBed.configureTestingModule({
+      declarations: [ ActivityComponent ],
+      imports: [IonicModule.forRoot()]
+    }).compileComponents();
+
+    fixture = TestBed.createComponent(ActivityComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  }));
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

+ 56 - 0
projects/textbook/src/modules/nav-province-contact/activity/activity.component.ts

@@ -0,0 +1,56 @@
+import { Component, Input, OnInit } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { NzSpaceModule } from 'ng-zorro-antd/space';
+import { CommonCompModule } from '../../../services/common.modules';
+import { NzTabsModule } from 'ng-zorro-antd/tabs';
+import { ActivatedRoute, Router } from '@angular/router';
+import Parse from 'parse';
+import { TextbookComponent } from '../../../app/textbook/textbook.component';
+import { textbookServer } from '../../../services/textbook';
+@Component({
+  selector: 'app-activity',
+  templateUrl: './activity.component.html',
+  styleUrls: ['./activity.component.scss'],
+  imports: [
+    CommonModule,
+    NzSpaceModule,
+    CommonCompModule,
+    NzTabsModule,
+    TextbookComponent,
+  ],
+  standalone: true,
+})
+export class ActivityComponent  implements OnInit {
+  active: number = 0;
+  eduProcess: Parse.Object | undefined;
+  constructor(
+    private activeRoute: ActivatedRoute,
+    public tbookSer: textbookServer,
+    private router: Router
+  ) { }
+
+  ngOnInit() {
+    this.activeRoute.paramMap.subscribe(async (params) => {
+      let id = params.get('id');
+      if (id) {
+        let query = new Parse.Query('EduProcess');
+        query.include('branch', 'department');
+        query.equalTo('objectId', id);
+        query.notEqualTo('isDeleted', true);
+        let res = await query.first();
+        if (res?.id) {
+          let vrifly = await this.tbookSer.getEduProcess(
+            res.get('department').id
+          );
+        }
+        this.eduProcess = res;
+      }
+    });
+  }
+  back() {
+    history.back();
+    // this.router.navigate(['/nav-admin/manage/user'], {
+    //   queryParams: { page: this.activeRoute.snapshot.queryParamMap.get('page') },
+    // });
+  }
+}

+ 7 - 0
projects/textbook/src/modules/nav-province-contact/modules.routes.ts

@@ -8,7 +8,9 @@ import { PageRoleComponent } from "./page-role/page-role.component";
 import { PageTextbookComponent } from "./page-textbook/page-textbook.component";
 import { SubmittedComponent } from "./submitted/submitted.component";
 import { AuthGuard } from "./auth.guard";
+import { ActivityComponent } from "./activity/activity.component";
 // import { PageTextbookComponent } from "./page-textbook/page-textbook.component";
+
 const routes: Routes = [
   {
     path: '',
@@ -47,6 +49,11 @@ const routes: Routes = [
         path: 'submitted/:id', //组织列表
         component: SubmittedComponent,
       },
+      {
+        path: 'activity/:id', //评审活动
+        component: ActivityComponent,
+      },
+      
     ]
   }
 ];

+ 154 - 105
projects/textbook/src/modules/nav-province-contact/page-process/process-list/process-list.component.html

@@ -1,6 +1,5 @@
 @if (!editLoading && eduProcessList.length > 0) {
 <nz-page-header>
-  <!--title-->
   <nz-page-header-title
     >申报流程
     <br />
@@ -8,14 +7,14 @@
       统一管理各类教材推荐流程和限额,设置各个流程开始和结束时间、查看各流程工作进度
     </div>
   </nz-page-header-title>
-
-  <!--extra-->
   <nz-page-header-extra> </nz-page-header-extra>
 </nz-page-header>
 <div class="edit-content">
-  <div class="tool">
-    <div class="tool-left">
-      <!-- <div class="search">
+  <nz-tabset [(nzSelectedIndex)]="active">
+    <nz-tab nzTitle="待评审教材">
+      <div class="tool">
+        <div class="tool-left">
+          <!-- <div class="search">
           <nz-input-group style="width: 210px" [nzPrefix]="prefixTemplateUser">
             <input
               type="text"
@@ -29,49 +28,52 @@
             ><span nz-icon nzType="search"></span
           ></ng-template>
         </div> -->
-      <div class="">
-        <nz-input-group style="width: 210px" [nzPrefix]="prefixTemplateUser">
-          <input
-            type="text"
-            nz-input
-            placeholder="搜索流程名称 / 流程 code"
-            [(ngModel)]="searchValuePro"
-            (ngModelChange)="onSearchPro($event)"
-          />
-        </nz-input-group>
-        <ng-template #prefixTemplateUser
-          ><span nz-icon nzType="search"></span
-        ></ng-template>
+          <div class="">
+            <nz-input-group
+              style="width: 210px"
+              [nzPrefix]="prefixTemplateUser"
+            >
+              <input
+                type="text"
+                nz-input
+                placeholder="搜索流程名称 / 流程 code"
+                [(ngModel)]="searchValuePro"
+                (ngModelChange)="onSearchPro($event)"
+              />
+            </nz-input-group>
+            <ng-template #prefixTemplateUser
+              ><span nz-icon nzType="search"></span
+            ></ng-template>
+          </div>
+        </div>
+        <div class="tool-right"></div>
       </div>
-    </div>
-    <div class="tool-right"></div>
-  </div>
-  <div class="layout" #maxWidth>
-    <!-- <div class="sider" #sider>
+      <div class="layout" #maxWidth>
+        <!-- <div class="sider" #sider>
         <ul nz-menu>
           @for (item of nodes; track $index) {
           <li nz-menu-item (click)="changeDepart(item)">{{ item.title }}</li>
           }
         </ul>
       </div> -->
-    <div class="breadcrumb">
-      <nz-table
-        #tableData
-        [nzData]="eduProcessList"
-        [nzTotal]="eduProcessLength"
-        [nzPageSize]="pageSize"
-        [nzPageIndex]="pageIndex"
-        style="margin: 10px 0"
-        [nzLoading]="loading"
-        nzSize="middle"
-        [nzNoResult]="emptyResult"
-        nzTableLayout="fixed"
-        [nzFrontPagination]="false"
-        (nzPageIndexChange)="pageIndexChange($event)"
-      >
-        <thead>
-          <tr>
-            <!-- <th
+        <div class="breadcrumb">
+          <nz-table
+            #tableData
+            [nzData]="eduProcessList"
+            [nzTotal]="eduProcessLength"
+            [nzPageSize]="pageSize"
+            [nzPageIndex]="pageIndex"
+            style="margin: 10px 0"
+            [nzLoading]="loading"
+            nzSize="middle"
+            [nzNoResult]="emptyResult"
+            nzTableLayout="fixed"
+            [nzFrontPagination]="false"
+            (nzPageIndexChange)="pageIndexChange($event)"
+          >
+            <thead>
+              <tr>
+                <!-- <th
                 nzEllipsis
                 nzWidth="50px"
                 nzLeft
@@ -80,59 +82,60 @@
                 nzLabel="Select all"
                 (nzCheckedChange)="onAllChecked($event)"
               ></th> -->
-            <th nzEllipsis nzWidth="120px" nzLeft>流程名称</th>
-            <!-- <th nzEllipsis nzWidth="120px">流程code</th> -->
-            <th nzEllipsis nzWidth="120px">流程描述</th>
-            <th nzEllipsis nzWidth="80px">申报限额</th>
-            <th nzEllipsis nzWidth="120px">流程联系人</th>
-            <th nzEllipsis nzWidth="80px">流程状态</th>
-            <!-- <th nzEllipsis nzWidth="50px" nzRight>操作</th> -->
-          </tr>
-        </thead>
-        <tbody>
-          @for (data of tableData.data; track data.id) {
-          <tr>
-            <!-- <td
+                <th nzEllipsis nzWidth="120px" nzLeft>流程名称</th>
+                <!-- <th nzEllipsis nzWidth="120px">流程code</th> -->
+                <th nzEllipsis nzWidth="120px">流程描述</th>
+                <th nzEllipsis nzWidth="80px">申报限额</th>
+                <th nzEllipsis nzWidth="120px">流程联系人</th>
+                <th nzEllipsis nzWidth="80px">流程状态</th>
+                <!-- <th nzEllipsis nzWidth="50px" nzRight>操作</th> -->
+              </tr>
+            </thead>
+            <tbody>
+              @for (data of tableData.data; track data.id) {
+              <tr>
+                <!-- <td
                 nzEllipsis
                 nzLeft
                 [nzChecked]="setOfCheckedId.has(data.id)"
                 (nzCheckedChange)="onItemChecked(data.id, $event)"
               ></td> -->
-            <td
-              nzEllipsis
-              (click)="
-                toUrl('/nav-province-contact/manage/process/page', {
-                  id: data?.id
-                })
-              "
-              class="activeTd"
-            >
-              {{ data?.get("name") || "-" }}
-            </td>
-            <!-- <td nzEllipsis>
+                <td
+                  nzEllipsis
+                  (click)="
+                    toUrl('/nav-province-contact/manage/process/page', {
+                      id: data?.id
+                    })
+                  "
+                  class="activeTd"
+                >
+                  {{ data?.get("name") || "-" }}
+                </td>
+                <!-- <td nzEllipsis>
                 {{ data?.get("code") || "-" }}
               </td> -->
-            <td nzEllipsis>
-              {{ data?.get("desc") || "-" }}
-            </td>
-            <td nzEllipsis>
-              {{
-                data?.get("num") || data?.get("num") == 0
-                  ? data?.get("num")
-                  : "-"
-              }}
-            </td>
-            <td nzEllipsis>
-              {{
-                data?.get("profileSubmitted")?.get("user").get("name") || "-"
-              }}
-            </td>
-            <td nzEllipsis>
-              <nz-tag [nzColor]="statusMap[data.id].color">
-                {{ statusMap[data.id].title }}</nz-tag
-              >
-            </td>
-            <!-- <td nzEllipsis nzRight>
+                <td nzEllipsis>
+                  {{ data?.get("desc") || "-" }}
+                </td>
+                <td nzEllipsis>
+                  {{
+                    data?.get("num") || data?.get("num") == 0
+                      ? data?.get("num")
+                      : "-"
+                  }}
+                </td>
+                <td nzEllipsis>
+                  {{
+                    data?.get("profileSubmitted")?.get("user").get("name") ||
+                      "-"
+                  }}
+                </td>
+                <td nzEllipsis>
+                  <nz-tag [nzColor]="statusMap[data.id].color">
+                    {{ statusMap[data.id].title }}</nz-tag
+                  >
+                </td>
+                <!-- <td nzEllipsis nzRight>
                 <button
                   nz-button
                   nz-dropdown
@@ -192,15 +195,60 @@
                   </ul>
                 </nz-dropdown-menu>
               </td> -->
-          </tr>
-          }
-        </tbody>
-      </nz-table>
-      <ng-template #emptyResult>
-        <nz-empty nzNotFoundImage="/img/group-empty.png"></nz-empty>
-      </ng-template>
-    </div>
-  </div>
+              </tr>
+              }
+            </tbody>
+          </nz-table>
+          <ng-template #emptyResult>
+            <nz-empty nzNotFoundImage="/img/group-empty.png"></nz-empty>
+          </ng-template>
+        </div>
+      </div>
+    </nz-tab>
+    <nz-tab nzTitle="评审活动">
+      <div class="examine">
+        <div class="title">北京市评审活动</div>
+        <div class="row">
+          <div class="lable">开始时间:</div>
+          <div class="val">未设置</div>
+        </div>
+        <div class="row">
+          <div class="lable">结束时间:</div>
+          <div class="val">未设置</div>
+        </div>
+        <div class="row">
+          <div class="lable">评审数量:</div>
+          <div class="val">未设置</div>
+        </div>
+        <!-- <div class="examine-fonter">
+          <button
+            style="background: #3e49b3; border: 1px #3e49b3; margin-right: 50px"
+            nz-button
+            nzType="primary"
+          >
+            启动
+          </button>
+          <button
+            style="background: #a2a2a2; border: 1px #a2a2a2; margin-right: 50px"
+            nz-button
+            nzType="primary"
+            (click)="
+              toUrl('/nav-province-contact/manage/activity/'+eduProcessList[0]?.id)
+            "
+          >
+            编辑
+          </button>
+          <button
+            style="background: #c6233f; border: 1px #3e49b3"
+            nz-button
+            nzType="primary"
+          >
+            计算平均分
+          </button>
+        </div> -->
+      </div>
+    </nz-tab>
+  </nz-tabset>
 </div>
 <!-- 全选操作:批量操作 -->
 <!-- <div class="batch-toolbar-modal" *ngIf="setOfCheckedId?.size">
@@ -234,12 +282,13 @@
       </div>
     </div>
   </div> -->
+} @else if (editLoading) {
+<div class="loading">
+  <nz-spin nzSimple [nzSize]="'large'"></nz-spin>
+</div>
+} @else {
+<nz-empty
+  style="margin: 100px auto"
+  nzNotFoundContent="暂未绑定对应单位管理员,请联系工作人员"
+></nz-empty>
 }
-@else if (editLoading) {
-  <div class="loading">
-    <nz-spin nzSimple [nzSize]="'large'"></nz-spin>
-  </div>
-}
-@else {
-  <nz-empty style="margin: 100px auto;" nzNotFoundContent="暂未绑定对应单位管理员,请联系工作人员"></nz-empty> 
-}

+ 23 - 0
projects/textbook/src/modules/nav-province-contact/page-process/process-list/process-list.component.scss

@@ -72,6 +72,29 @@
       }
     }
   }
+  .examine{
+    border: 1px solid #e4e4e4d9;
+    padding: 20px;
+    .title{
+      font-weight: 600;
+      font-size: 18px;
+      line-height: 32px;
+    }
+    .row{
+      width: 200px;
+      display: flex;
+      justify-content: space-between;
+      margin-top: 10px;
+      color: rgba(0, 0, 0, 0.4509803922);
+      font-size: 14px;
+      font-weight: normal;
+      line-height: 1.5715;
+    }
+    .examine-fonter{
+      display: flex;
+      margin: 20px auto;
+    }
+  }
 }
 .depart-modal{
   .row{

+ 4 - 1
projects/textbook/src/modules/nav-province-contact/page-process/process-list/process-list.component.ts

@@ -22,6 +22,8 @@ import { NzRadioModule } from 'ng-zorro-antd/radio';
 import { NzMessageService } from 'ng-zorro-antd/message';
 import { NzModalService } from 'ng-zorro-antd/modal';
 import { textbookServer } from '../../../../services/textbook';
+import { NzTabsModule } from 'ng-zorro-antd/tabs';
+
 interface nodes {
   title: string;
   key: string;
@@ -53,7 +55,7 @@ interface depart {
     NzCheckboxModule,
     NzEmptyModule,
     NzModalModule,
-    NzRadioModule,
+    NzRadioModule,NzTabsModule
   ],
   standalone: true,
 })
@@ -178,6 +180,7 @@ export class ProcessListComponent implements OnInit {
     return;
   };
   editLoading:boolean = true
+  active: number = 0;
 
   constructor(
     public tbookSer: textbookServer,

+ 1 - 1
projects/textbook/src/modules/nav-province-contact/page-textbook/page-textbook.component.html

@@ -1,7 +1,7 @@
 @if (!editLoading && eduProcess?.id) {
   <nz-page-header>
     <nz-page-header-title
-      >全部教材
+      >测试评审活动
       <br />
       <div class="subtitle">
         查看全部申报流程所提交的教材推荐表

+ 31 - 15
projects/textbook/src/modules/nav-review/approve/approve.component.html

@@ -1,16 +1,32 @@
-<nz-page-header class="site-page-header" nzTitle="" nzSubtitle="">
-  <nz-breadcrumb nz-page-header-breadcrumb>
-    <nz-breadcrumb-item>报送流程</nz-breadcrumb-item>
-    <nz-breadcrumb-item>
-      <a>待审批材料列表</a>
-    </nz-breadcrumb-item>
-  </nz-breadcrumb>
+<nz-page-header>
+  <!--title-->
+  <nz-page-header-title
+    >全部教材<nz-tag style="margin-left: 10px;" [nzColor]="'blue'">
+      评审中</nz-tag
+    >
+    <br />
+    <div class="subtitle">
+      查看全部申报流程所提交的教材推荐表
+    </div>
+  </nz-page-header-title>
 </nz-page-header>
-<comp-table-list
-  #list
-  [schema]="EduTextbook"
-  *ngIf="className && fieldsArray"
-  [className]="className"
-  [fieldsArray]="fieldsArray"
-  [queryParams]="queryParams"
-></comp-table-list>
+
+<div class="conetent">
+  <nz-tabset [(nzSelectedIndex)]="active">
+    <nz-tab nzTitle="待评审教材">
+      @if (!active) {
+        <app-textbook
+        [filterObj]="beforeFilterObj"
+      ></app-textbook>
+      }
+    </nz-tab>
+    <nz-tab nzTitle="推荐教材">
+      @if (active) {
+        <!-- <app-textbook
+        [filterObj]="afterFilterObj"
+        [recommend]="true"
+        ></app-textbook> -->
+      }
+    </nz-tab>
+  </nz-tabset>
+</div>

+ 41 - 0
projects/textbook/src/modules/nav-review/approve/approve.component.scss

@@ -0,0 +1,41 @@
+.subtitle{
+  margin-right: 12px;
+  color: #00000073;
+  font-size: 14px;
+  font-weight: normal;
+  line-height: 1.5715;
+  // overflow: hidden;
+  // white-space: nowrap;
+  // text-overflow: ellipsis;
+}
+.conetent{
+  margin: 0 0 20px;
+  padding: 0 24px;
+}
+::ng-deep .ant-page-header-heading-title {
+  white-space: normal;
+}
+::ng-deep .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn {
+  color: #c6233f;
+}
+::ng-deep .ant-tabs-ink-bar {
+  background: #c6233f;
+}
+::ng-deep .ant-tabs-tab:hover {
+  color: #e97488;
+}
+::ng-deep .ant-tabs-tab-btn:active {
+  color: #e97488;
+}
+.loading{
+  position: fixed;
+  top: 0;
+  left: 0;
+  width: 100vw;
+  text-align: center;
+  height: 100vh;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  background: rgb(0 0 0 / 30%);
+}

+ 42 - 20
projects/textbook/src/modules/nav-review/approve/approve.component.ts

@@ -1,41 +1,63 @@
-import { Component, OnInit, ViewChild } from '@angular/core';
-import { RouterOutlet } from '@angular/router';
-import { CommonCompModule } from '../../../services/common.modules';
-import { CompTableListComponent } from '../../../app/comp-table/comp-table-list/comp-table-list.component';
+import { Component, OnInit, ViewChild, Input } from '@angular/core';
+import { ActivatedRoute, RouterOutlet, Router } from '@angular/router';
+// import { CompTableListComponent } from '../../../app/comp-table/comp-table-list/comp-table-list.component';
 import { EduTextbook } from '../../../schemas/EduTextbook';
+import { NzPageHeaderModule } from 'ng-zorro-antd/page-header';
+import { NzBreadCrumbModule } from 'ng-zorro-antd/breadcrumb';
 import * as Parse from 'parse';
 import { CommonModule } from '@angular/common';
-
+import { textbookServer } from '../../../services/textbook';
+import { TextbookComponent } from '../../../app/textbook/textbook.component';
+import { NzSpaceModule } from 'ng-zorro-antd/space';
+import { CommonCompModule } from '../../../services/common.modules';
+import { NzTabsModule } from 'ng-zorro-antd/tabs';
+import { NzMessageService } from 'ng-zorro-antd/message';
 @Component({
   selector: 'app-approve',
   imports: [
-    CommonCompModule,
     CommonModule,
     RouterOutlet,
-    CompTableListComponent,
+    TextbookComponent,
+    // CompTableListComponent,
+    NzPageHeaderModule,
+    CommonCompModule,
+    NzBreadCrumbModule,
+    NzSpaceModule,
+    NzTabsModule,
   ],
   standalone: true,
   templateUrl: './approve.component.html',
   styleUrls: ['./approve.component.scss'],
 })
 export class ApproveComponent implements OnInit {
-  @ViewChild(CompTableListComponent) list: CompTableListComponent | undefined;
-
-  EduTextbook = EduTextbook;
+  // @ViewChild(CompTableListComponent) list: CompTableListComponent | undefined;
+  active: number = 0;
   user: Parse.User | undefined;
-  className: string | undefined;
-  queryParams: any | undefined;
-  fieldsArray: Array<any> | undefined;
+
+  //待审核
+  beforeFilterObj: any = {
+    showMore: true, //显示更多字段
+    isCheck: true,
+    noStared: true,
+    status: ['200'],
+    btns: {
+      review:true,
+      export: true,
+    },
+  };
+  //已加入推荐
+  afterFilterObj: any = {
+    showMore: true, //显示更多字段
+    isCheck: true,
+    status: ['200', '201', '400'],
+    btns: {
+      review:true,
+      export: true,
+    },
+  };
 
   constructor() {
     this.user = Parse.User.current();
-    this.className = this.EduTextbook.className;
-    this.fieldsArray = this.EduTextbook.fieldsArray;
-    this.queryParams = {
-      where: {
-        isDeleted: { $ne: true },
-      },
-    };
   }
 
   ngOnInit() {}

+ 2 - 2
server/db/schemas/Review.js

@@ -20,10 +20,10 @@ export const Review = {
     "score": {//最终分数
       "type": "Number"
     },
-    "expect":{//预估分
+    "num":{//预估分
       "type": "Number"
     },
-    "verify":{
+    "verify":{//是否完成
       "type": "Boolean"
     }
   },