Browse Source

feat: new page user & edit test ok

ryanemax 8 tháng trước cách đây
mục cha
commit
7490570ba8

+ 3 - 2
projects/textbook/src/app/comp-table/comp-edit-object/comp-edit-object.component.ts

@@ -40,9 +40,9 @@ export class CompEditObjectComponent {
   ){
     // 设置数据校验
     this.data?.fieldsArray?.forEach(field=>{
-      this.formControlMap[field?.key] = new FormControl(field?.key)
+      this.formControlMap[field?.key] = new FormControl({value:field?.key,disabled:field?.isDisabled||false})
       if(field?.require){
-        this.formControlMap[field?.key] = new FormControl(field?.key, [Validators.required]);
+        this.formControlMap[field?.key] = new FormControl({value:field?.key,disabled:field?.isDisabled||false}, [Validators.required]);
       }
     })
     if(this.data.object?.toJSON()){
@@ -87,6 +87,7 @@ export class CompEditObjectComponent {
     delete this.jsonData.objectId
     delete this.jsonData.updatedAt
     delete this.jsonData.createdAt
+    delete this.jsonData.sessionToken
     delete this.jsonData.ACL
     this.data?.object?.set(this.jsonData);
 

+ 5 - 0
projects/textbook/src/modules/nav-admin/modules.routes.ts

@@ -2,6 +2,7 @@ import { NgModule } from "@angular/core";
 import { RouterModule, Routes } from "@angular/router";
 import { PageHomeComponent } from './page-home/page-home.component';
 import { PageRoleComponent } from "./page-role/page-role.component";
+import { PageUserComponent } from "./page-user/page-user.component";
 const routes: Routes = [
   {
     path: 'home',
@@ -18,6 +19,10 @@ const routes: Routes = [
     path: 'manage',
     component: PageHomeComponent,
     children:[
+      {
+        path: 'user',//列表
+        component: PageUserComponent,
+      },
       {
         path: 'role',//列表
         component: PageRoleComponent,

+ 7 - 2
projects/textbook/src/modules/nav-admin/page-home/page-home.component.ts

@@ -32,13 +32,18 @@ export class PageHomeComponent  implements OnInit {
       id:'2',
       child:[
         {
-          name:'用户列表',
+          name:'用户审核',
           id:'2-1',
         },
+        {
+          name:'注册账户',
+          path:"/nav-admin/manage/user",
+          id:'2-2',
+        },
         {
           name:'用户组管理',
           path:"/nav-admin/manage/role",
-          id:'2-2',
+          id:'2-3',
         },
       ]
     },

+ 8 - 0
projects/textbook/src/modules/nav-admin/page-user/page-user.component.html

@@ -0,0 +1,8 @@
+<comp-table-list
+  #list
+  [schema]="_User"
+  *ngIf="className && fieldsArray"
+  [className]="className"
+  [fieldsArray]="fieldsArray"
+  [queryParams]="queryParams"
+></comp-table-list>

+ 0 - 0
projects/textbook/src/modules/nav-admin/page-user/page-user.component.scss


+ 22 - 0
projects/textbook/src/modules/nav-admin/page-user/page-user.component.spec.ts

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

+ 52 - 0
projects/textbook/src/modules/nav-admin/page-user/page-user.component.ts

@@ -0,0 +1,52 @@
+import { Component, OnInit, ViewChild } from '@angular/core';
+import { ActivatedRoute, RouterOutlet } from '@angular/router';
+import { CompTableListComponent } from '../../../app/comp-table/comp-table-list/comp-table-list.component';
+import _User from '../../../schemas/_User';
+// import { TranslateService } from '@ngx-translate/core';
+import * as Parse from "parse";
+import { CommonModule } from '@angular/common';
+
+
+@Component({
+  selector: 'app-page-user',
+  templateUrl: './page-user.component.html',
+  styleUrls: ['./page-user.component.scss'],
+  imports: [CommonModule,RouterOutlet,CompTableListComponent],
+  standalone: true,
+})
+export class PageUserComponent  implements OnInit {
+  @ViewChild(CompTableListComponent) list:CompTableListComponent|undefined
+
+  _User = _User
+  user:Parse.User|undefined
+  className:string|undefined
+  queryParams:any|undefined
+  fieldsArray:Array<any>|undefined
+
+  constructor(
+    private route: ActivatedRoute,
+    private activeRoute: ActivatedRoute,
+    // private translate:TranslateService,
+  ) {
+    this.user = Parse.User.current();
+    this.className = this._User.className
+    this.fieldsArray = this._User.fieldsArray
+    this.queryParams = {where:{
+      // user:this.user?.toPointer(),
+      isDeleted:{$ne:true},
+    }}
+  }
+
+  ngOnInit(): void {
+    this.activeRoute.paramMap.subscribe(async (params) => {
+      let isDeleted = params.get('isDeleted')
+      if(isDeleted){
+        this.queryParams.where['isDeleted'] = {$eq:true}
+      }else{
+        this.queryParams.where['isDeleted'] = {$ne:true}
+      }
+      this.list?.ngOnInit()
+    });
+  }
+
+}

+ 0 - 6
projects/textbook/src/schemas/_Role.ts

@@ -23,12 +23,6 @@ import { openObjectEditDialog, ParseSchema } from "./func-parse";
                 "name":"描述",
                 "type": "String"
             },
-            // {
-            //     "key":"user",
-            //     "type": "Pointer",
-            //     "targetClass":"_User",
-            //     "required": false
-            // }
         ],
         buttons:[
             {

+ 61 - 0
projects/textbook/src/schemas/_User.ts

@@ -0,0 +1,61 @@
+import { MatDialog } from "@angular/material/dialog";
+import { openObjectEditDialog, ParseSchema } from "./func-parse";
+
+
+    const _User:ParseSchema = {
+        "title":"注册帐号",
+        "className": "_User",
+        "fieldsArray": [
+            // {
+            //     "key":"avatar",
+            //     "name":"用户头像",
+            //     "type": "String",
+            //     isHeader:true
+            // },
+            {
+                "key":"username",
+                "name":"用户帐号",
+                "type": "String",
+                isDisabled:true,
+                isHeader:true
+            },
+            {
+                "key":"name",
+                "name":"用户姓名",
+                "type": "String",
+                isHeader:true
+            },
+            {
+                "key":"mobile",
+                "name":"手机号",
+                "type": "String",
+                isHeader:true
+            },
+            {
+                "key":"email",
+                "name":"邮箱帐号",
+                "type": "String",
+                isHeader:true
+            },
+
+            // {
+            //     "key":"desc",
+            //     "name":"描述",
+            //     "type": "String"
+            // },
+        ],
+        buttons:[
+            {
+                name:"编辑",
+                place:"item",
+                show:(options:{object:Parse.Object})=>{
+                    return true
+                },
+                handle:(options:{dialog:MatDialog,object:Parse.Object})=>{
+                    openObjectEditDialog(options?.dialog,_User,options?.object)
+                }
+            },
+        ]
+      };
+      
+      export default _User;

+ 1 - 0
projects/textbook/src/schemas/func-parse.ts

@@ -6,6 +6,7 @@ export interface ParseField{
     key:string
     name:string
     type:string
+    isDisabled?:boolean
     className?:string
     showName?:string
     isHeader?:boolean

+ 6 - 0
server/db/schemas/_User.js

@@ -1,9 +1,15 @@
 const _User = {
     "className": "_User",
     "fields": {
+        "avatar": {
+            "type": "String"
+        },
         "name": {
             "type": "String"
         },
+        "mobile": {
+            "type": "String"
+        },
     }
 }
 module.exports._User = _User