diff --git a/src/app/pages/account/sys-role/sys-role.component.less b/src/app/pages/account/sys-role/sys-role.component.less
index a7f2d4e..6d5c351 100644
--- a/src/app/pages/account/sys-role/sys-role.component.less
+++ b/src/app/pages/account/sys-role/sys-role.component.less
@@ -7,3 +7,6 @@ button {
.submit-btn {
width: 150px;
}
+.search-area {
+ margin-top: 30px;
+}
diff --git a/src/app/pages/account/user/user.component.html b/src/app/pages/account/user/user.component.html
new file mode 100644
index 0000000..c61ca0e
--- /dev/null
+++ b/src/app/pages/account/user/user.component.html
@@ -0,0 +1,81 @@
+
+
+
+
+
+ 用户名 |
+ 手机号 |
+ 积分数量 |
+ 状态 |
+ 注册时间 |
+ 操作 |
+
+
+
+
+ {{data.name}} |
+ {{data.phone}} |
+ {{data.integral}} |
+ {{data.status | dictionary: 'USER_STATUS'}} |
+ {{data.createTime | date: 'yyyy-MM-dd HH:mm'}} |
+
+ 禁用账户
+ 恢复账户
+
+ |
+
+
+ 总计 {{ total }} 条
+
diff --git a/src/app/pages/account/user/user.component.less b/src/app/pages/account/user/user.component.less
new file mode 100644
index 0000000..3d2cd3b
--- /dev/null
+++ b/src/app/pages/account/user/user.component.less
@@ -0,0 +1,6 @@
+.search-area {
+ margin-top: 30px;
+}
+button {
+ margin-left: 8px;
+}
diff --git a/src/app/pages/account/user/user.component.ts b/src/app/pages/account/user/user.component.ts
new file mode 100644
index 0000000..4a05c01
--- /dev/null
+++ b/src/app/pages/account/user/user.component.ts
@@ -0,0 +1,173 @@
+import { Component } from '@angular/core';
+import {FormGroup, NonNullableFormBuilder, ReactiveFormsModule} from "@angular/forms";
+import {NzMessageService} from "ng-zorro-antd/message";
+import {NzModalModule, NzModalService} from "ng-zorro-antd/modal";
+import {UserService} from "../../../servies/account/user.service";
+import {DatePipe, NgForOf, NgIf} from "@angular/common";
+import {NzButtonComponent} from "ng-zorro-antd/button";
+import {NzColDirective, NzRowDirective} from "ng-zorro-antd/grid";
+import {NzDividerComponent} from "ng-zorro-antd/divider";
+import {NzFormControlComponent, NzFormDirective, NzFormItemComponent, NzFormLabelComponent} from "ng-zorro-antd/form";
+import {NzInputDirective} from "ng-zorro-antd/input";
+import {
+ NzTableCellDirective,
+ NzTableComponent,
+ NzTbodyComponent,
+ NzTheadComponent,
+ NzThMeasureDirective, NzTrDirective
+} from "ng-zorro-antd/table";
+import {DictionaryPipe} from "../../../pipes/common/dictionary.pipe";
+import {NzOptionComponent, NzSelectComponent} from "ng-zorro-antd/select";
+import {NzDropDownADirective, NzDropDownDirective, NzDropdownMenuComponent} from "ng-zorro-antd/dropdown";
+import {NzIconDirective} from "ng-zorro-antd/icon";
+import {NzMenuDirective, NzMenuItemComponent} from "ng-zorro-antd/menu";
+
+@Component({
+ selector: 'app-user',
+ standalone: true,
+ imports: [
+ DatePipe,
+ NgForOf,
+ NzButtonComponent,
+ NzColDirective,
+ NzDividerComponent,
+ NzFormControlComponent,
+ NzFormDirective,
+ NzFormItemComponent,
+ NzFormLabelComponent,
+ NzInputDirective,
+ NzRowDirective,
+ NzTableCellDirective,
+ NzTableComponent,
+ NzTbodyComponent,
+ NzThMeasureDirective,
+ NzTheadComponent,
+ NzTrDirective,
+ ReactiveFormsModule,
+ DictionaryPipe,
+ NzSelectComponent,
+ NzOptionComponent,
+ NzModalModule,
+ NgIf,
+ NzDropDownADirective,
+ NzDropDownDirective,
+ NzDropdownMenuComponent,
+ NzIconDirective,
+ NzMenuDirective,
+ NzMenuItemComponent,
+ ],
+ templateUrl: './user.component.html',
+ styleUrl: './user.component.less'
+})
+export class UserComponent {
+// 表单页数
+ tablePageNum = 1;
+ // 表单数据
+ tableData: any = {
+ total: 0,
+ list: [],
+ };
+ // 搜索表单
+ searchForm: FormGroup;
+
+ // 用户状态
+ userStatusArray = new DictionaryPipe().getDictionaryList("USER_STATUS");
+ constructor(private fb: NonNullableFormBuilder,
+ private userService: UserService,
+ private message: NzMessageService,
+ private modal: NzModalService) {
+ // 初始化搜索框
+ this.searchForm = this.fb.group({
+ name: [''],
+ phone: [''],
+ status: [''],
+ });
+
+
+ this.queryData();
+ }
+
+ queryData() {
+ this.searchForm.value.pageNum = this.tablePageNum;
+ this.searchForm.value.pageSize = 10;
+ this.searchForm.value.time = new Date().getTime();
+ this.userService.queryUserList(this.searchForm.value, (data: any) => {
+ if (data['return_code'] == '000000') {
+ this.tableData = data['return_data'];
+ }
+ });
+ }
+
+ /**
+ * 搜索表单提交
+ */
+ searchFormSubmit(): void {
+ this.tablePageNum = 1;
+ this.queryData();
+ }
+
+ /**
+ * 搜索表单重置
+ */
+ searchFormReset(): void {
+ this.searchForm.reset();
+ }
+
+ /**
+ * 打开恢复账户确认框
+ */
+ showRestore(dataId: number) {
+ this.modal.confirm({
+ nzTitle: '提示',
+ nzContent: '确定恢复账户状态?',
+ nzOnOk: () => this.restore(dataId)
+ });
+ }
+
+ /**
+ * 恢复
+ */
+ restore(dataId: number) {
+ const param = {
+ userId: dataId
+ }
+ this.userService.restore(param, (data: any) => {
+ if (data['return_code'] == '000000') {
+ // 刷新数据
+ this.queryData();
+ this.message.success("操作成功");
+ } else {
+ this.message.create('error', data['return_msg']);
+ }
+ });
+ }
+
+ /**
+ * 打开禁用账户确认框
+ */
+ showDisable(dataId: number) {
+ this.modal.confirm({
+ nzTitle: '提示',
+ nzContent: '确定禁用账户吗?禁用后无法登录、交易!',
+ nzOnOk: () => this.disable(dataId)
+ });
+ }
+
+ /**
+ * 禁用
+ */
+ disable(dataId: number) {
+ const param = {
+ userId: dataId
+ }
+ this.userService.disable(param, (data: any) => {
+ if (data['return_code'] == '000000') {
+ // 刷新数据
+ this.queryData();
+ this.message.success("操作成功");
+ } else {
+ this.message.create('error', data['return_msg']);
+ }
+ });
+ }
+}
diff --git a/src/app/pages/merchant/mer-add/mer-add.component.html b/src/app/pages/merchant/mer-add/mer-add.component.html
index 61f052b..f76a706 100644
--- a/src/app/pages/merchant/mer-add/mer-add.component.html
+++ b/src/app/pages/merchant/mer-add/mer-add.component.html
@@ -1,27 +1,11 @@