Pārlūkot izejas kodu

update 个人提交教材

warrior 9 mēneši atpakaļ
vecāks
revīzija
def5542f1a

+ 26 - 1
projects/textbook/src/app/textbook/textbook.component.html

@@ -485,6 +485,19 @@
                 </button>
               </li>
               }
+              @if(filterObj.btns.restore){
+                <li nz-menu-item>
+                  <button
+                    (click)="restore(data)"
+                    nz-button
+                    nzType="link"
+                    style="color: #231c1f"
+                  >
+                    <span nz-icon nzType="undo" nzTheme="outline"></span
+                    >恢复教材
+                  </button>
+                </li>
+                }
             </ul>
           </nz-dropdown-menu>
           } @else { - }
@@ -558,7 +571,7 @@
       <div class="ant-space ant-space-horizontal ant-space-align-center">
         <div class="ant-space-item" style="margin-right: 16px">
           <button nz-button nzType="text" (click)="del()">
-            <span nz-icon nzType="delete" nzType="outline"></span>
+            <span nz-icon nzType="delete" nzTheme="outline"></span>
             删除
           </button>
         </div>
@@ -572,6 +585,18 @@
       </button>
     </div>
     }
+    @if(filterObj.btns.restore){
+      <div class="batch-toolbar-actions">
+        <div class="ant-space ant-space-horizontal ant-space-align-center">
+          <div class="ant-space-item" style="margin-right: 16px">
+            <button nz-button nzType="text" (click)="restore()">
+              <span nz-icon nzType="undo" nzTheme="outline"></span>
+              恢复教材
+            </button>
+          </div>
+        </div>
+      </div>
+      } 
     <div class="styles_cancel__AARoT">
       <button nz-button nzType="text" (click)="onAllChecked(false)">
         取消选中

+ 40 - 3
projects/textbook/src/app/textbook/textbook.component.ts

@@ -64,6 +64,7 @@ export class TextbookComponent implements OnInit {
       submit: false, //提交
       export:false,
       verify: false, //提交推荐权限
+      restore:false, //恢复教材
     },
   };
   listOfColumns: any = {
@@ -312,9 +313,10 @@ export class TextbookComponent implements OnInit {
       this.setOfCheckedId.has(item.id)
     );
   }
+  //退回
   reject(data?: Parse.Object) {
     this.modal.confirm({
-      nzTitle: '批量退回',
+      nzTitle: '退回教材',
       nzContent: `确定退回吗?`,
       nzOkText: '确认',
       nzOkType: 'primary',
@@ -357,7 +359,7 @@ export class TextbookComponent implements OnInit {
       nzOkDanger: true,
       nzOnOk: async () => {
         if (data?.id) {
-          data.set('isdeleted', true);
+          data.set('discard', true);
           await data.save();
         } else {
           let selectedList = this.textbookList.filter((item: any) =>
@@ -365,7 +367,7 @@ export class TextbookComponent implements OnInit {
           );
           let deletePromiseList = selectedList.map((item: any) => {
             return new Promise((resolve) => {
-              item.set('isdeleted', true);
+              item.set('discard', true);
               item.save().then(() => resolve(true));
             });
           });
@@ -504,6 +506,41 @@ export class TextbookComponent implements OnInit {
       nzOnCancel: () => console.log('Cancel'),
     });
   }
+  //恢复
+  restore(data?: Parse.Object) {
+    this.modal.confirm({
+      nzTitle: '恢复教材',
+      nzContent: `确定恢复吗?`,
+      nzOkText: '确认',
+      nzOkType: 'primary',
+      nzOkDanger: true,
+      nzOnOk: async () => {
+        if (data?.id) {
+          data.set('discard', null);
+          data.set('code', null);
+          await data.save();
+        } else {
+          let selectedList = this.textbookList.filter((item: any) =>
+            this.setOfCheckedId.has(item?.id)
+          );
+          let deletePromiseList = selectedList.map((item: any) => {
+            return new Promise((resolve) => {
+              item.set('discard', null);
+              item.set('code', null);
+              item.save().then(() => resolve(true));
+            });
+          });
+          try {
+            await Promise.all(deletePromiseList);
+          } catch (err) {}
+        }
+        this.getTextbook();
+        this.onAllChecked(false);
+      },
+      nzCancelText: '取消',
+      nzOnCancel: () => console.log('Cancel'),
+    });
+  }
   async getEduProcess(id: string): Promise<string | undefined> {
     if (!id) return;
     let query = new Parse.Query('EduProcess');

+ 1 - 0
projects/textbook/src/modules/nav-author/recycle/recycle.component.html

@@ -11,6 +11,7 @@
   <div class="space-content">
     <!-- <app-page-textbook [discard]="true"></app-page-textbook> -->
     <app-textbook
+    [filterObj]="filterObj"
       [uid]="user?.id"
       path="/nav-author/manage/details"
       [discard]="true"

+ 7 - 1
projects/textbook/src/modules/nav-author/recycle/recycle.component.ts

@@ -15,7 +15,13 @@ import { TextbookComponent } from '../../../app/textbook/textbook.component';
 export class RecycleComponent  implements OnInit {
   user: Parse.Object | any = Parse.User.current();
   constructor(private router: Router) {}
-
+  filterObj:any = {
+    isCheck: true,
+    btns: {
+      review: true, //预览
+      restore:true
+    }
+  }
   ngOnInit() {}
 
   goUrl(url:string,params?:object|any){

+ 1 - 1
server/db/schemas/EduTextbook.js

@@ -2,7 +2,7 @@ export const EduTextbook = {
     "className": "EduTextbook",
     "fields": {
         "status": {
-            //状态 101:待完善资料 102:可提交状态 200:已提交遴选中 300:被打回 400:已通过
+            //状态 101:待完善资料 102:可提交状态 200:已提交遴选中 201:公示中 300:被打回 400:已通过
             "type": "String",
             "required": false
         },