From b2cb99535f1a1e92328a7eea97063517971cc88e Mon Sep 17 00:00:00 2001 From: kkerwin Date: Sun, 8 Oct 2023 22:27:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug=20=20&=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user-list/user-list.component.html | 11 +++ .../user-list/user-list.component.ts | 8 ++- .../src/app/pages/dish/dish.component.html | 11 +-- .../src/app/pages/dish/dish.component.less | 4 ++ .../src/app/pages/dish/dish.component.ts | 9 +-- .../ingredient-form.component.html | 4 +- .../standard-setting.component.html | 12 ++-- .../standard-setting.component.ts | 4 +- .../user-manage/user-manage.component.html | 1 + projects/cdk/src/services/api.service.ts | 10 +-- projects/cdk/src/utils/index.ts | 23 +++---- .../user-list/user-list.component.html | 10 +++ .../user-list/user-list.component.ts | 8 ++- .../pages/dashboard/dashboard.component.html | 69 +++++++++++++++++++ .../pages/dashboard/dashboard.component.less | 39 +++++++++++ .../src/app/pages/dish/dish.component.html | 11 +-- .../src/app/pages/dish/dish.component.less | 4 ++ .../src/app/pages/dish/dish.component.ts | 10 +-- .../src/app/pages/food/food.component.html | 17 ++--- .../src/app/pages/food/food.component.ts | 2 +- .../ingredient-form.component.html | 4 +- .../system/org-info/org-info.component.ts | 17 ++++- .../user-manage/user-manage.component.html | 3 +- 23 files changed, 222 insertions(+), 69 deletions(-) diff --git a/projects/admin/src/app/components/user-list/user-list.component.html b/projects/admin/src/app/components/user-list/user-list.component.html index 652eb83..3bf5e5d 100644 --- a/projects/admin/src/app/components/user-list/user-list.component.html +++ b/projects/admin/src/app/components/user-list/user-list.component.html @@ -62,6 +62,16 @@ + + + 角色 + + + + + + + 账号 @@ -70,6 +80,7 @@ + 密码 diff --git a/projects/admin/src/app/components/user-list/user-list.component.ts b/projects/admin/src/app/components/user-list/user-list.component.ts index 97bf060..bf37a0a 100644 --- a/projects/admin/src/app/components/user-list/user-list.component.ts +++ b/projects/admin/src/app/components/user-list/user-list.component.ts @@ -38,6 +38,8 @@ export class UserListComponent implements OnChanges { @Input() role!: UserRoleDTO; + @Input() roleList: UserRoleDTO[] = []; + @Output() onReload = new EventEmitter(); searchValue = ""; @@ -48,6 +50,7 @@ export class UserListComponent implements OnChanges { uid: new FormControl("", [FormValidators.required("请输入账号")]), name: new FormControl("", [FormValidators.required("请输入姓名")]), password: new FormControl("", [FormValidators.required("请输入密码")]), + roleId: new FormControl("", [FormValidators.required("请选择角色")]), }); ngOnInit(): void {} @@ -88,6 +91,9 @@ export class UserListComponent implements OnChanges { if (item) { this.userFrom.patchValue(item); } + this.userFrom.patchValue({ + roleId: this.role.id, + }); this.modal.create({ nzTitle: item ? "编辑用户" : "新增用户", nzContent: this.userFormTpl, @@ -96,7 +102,7 @@ export class UserListComponent implements OnChanges { }, nzOnOk: async () => { if (Utils.validateFormGroup(this.userFrom)) { - const user = { ...this.userFrom.value, roleId: this.role.id }; + const user = { ...this.userFrom.value }; user["password"] = MD5(user.password!).toString().substring(16).toUpperCase(); let notExist = true; if ((item && item.uid !== user.uid) || !item) { diff --git a/projects/admin/src/app/pages/dish/dish.component.html b/projects/admin/src/app/pages/dish/dish.component.html index 166ba03..88c5316 100644 --- a/projects/admin/src/app/pages/dish/dish.component.html +++ b/projects/admin/src/app/pages/dish/dish.component.html @@ -2,7 +2,8 @@ - + - diff --git a/projects/admin/src/app/pages/standard/standard-setting/standard-setting.component.html b/projects/admin/src/app/pages/standard/standard-setting/standard-setting.component.html index 06b66f4..9dfb1e3 100644 --- a/projects/admin/src/app/pages/standard/standard-setting/standard-setting.component.html +++ b/projects/admin/src/app/pages/standard/standard-setting/standard-setting.component.html @@ -117,7 +117,7 @@

每人每天能量和营养素供给量标准

-
+
@@ -128,15 +128,15 @@
- - + -
+
~
- - +
diff --git a/projects/admin/src/app/pages/standard/standard-setting/standard-setting.component.ts b/projects/admin/src/app/pages/standard/standard-setting/standard-setting.component.ts index 95286db..a225a2b 100644 --- a/projects/admin/src/app/pages/standard/standard-setting/standard-setting.component.ts +++ b/projects/admin/src/app/pages/standard/standard-setting/standard-setting.component.ts @@ -72,7 +72,7 @@ export class StandardSettingComponent { ? [] : Object.entries(v).map(([kn, vn]) => { return { - ul: vn?.ul ?? 0, + ul: vn?.ul ?? void 0, hasUl: !!vn?.ul, max: vn?.max ?? 0, min: vn?.min ?? 0, @@ -126,7 +126,7 @@ export class StandardSettingComponent { return { ...a, [c.name]: c.nutritions.reduce((an, cn) => { - const ul = cn.hasUl ? { ul: cn.ul } : {}; + const ul = { ul: cn.hasUl ? cn.ul : void 0 }; return { ...an, [cn.nutrition]: { diff --git a/projects/admin/src/app/pages/system/user-manage/user-manage.component.html b/projects/admin/src/app/pages/system/user-manage/user-manage.component.html index b539442..3130c3a 100644 --- a/projects/admin/src/app/pages/system/user-manage/user-manage.component.html +++ b/projects/admin/src/app/pages/system/user-manage/user-manage.component.html @@ -57,6 +57,7 @@ *ngIf="role && tab.toString() === '0'" [users]="currentUserList" [role]="role" + [roleList]="roleList" (onReload)="reloadUserList()"> diff --git a/projects/cdk/src/services/api.service.ts b/projects/cdk/src/services/api.service.ts index e44fd2d..74c6ff7 100644 --- a/projects/cdk/src/services/api.service.ts +++ b/projects/cdk/src/services/api.service.ts @@ -117,7 +117,7 @@ export class ApiService { } updateRole(rule: AnyObject) { - const body = Utils.objectToFormData(rule); + const body = Utils.objectToFormData(rule, true); const method = rule["roleId"] ? "post" : "put"; return this.http[method]("/api/role", body); } @@ -269,13 +269,13 @@ export class ApiService { ); } - markFood(mark: string, ingredient: string) { - const params = Utils.objectToFormData({ mark, ingredient }); + markFood(mark: string, key: string) { + const params = Utils.objectToFormData({ mark, key }); return this.http.put("/api/ingredient/mark", params); } - removeFoodMark(ingredient: string) { - const params = Utils.objectToFormData({ ingredient }); + removeFoodMark(key: string) { + const params = Utils.objectToFormData({ key }); return this.http.delete("/api/ingredient/mark", { body: params }); } diff --git a/projects/cdk/src/utils/index.ts b/projects/cdk/src/utils/index.ts index 5207c18..617b0bc 100644 --- a/projects/cdk/src/utils/index.ts +++ b/projects/cdk/src/utils/index.ts @@ -61,15 +61,20 @@ export class Utils { return params; } - static objectToFormData(obj: AnyObject): FormData { + + static objectToFormData(obj: AnyObject, arrayComma?: boolean): FormData { let params = new FormData(); for (const key in obj) { if (obj.hasOwnProperty(key)) { let value = obj[key]; if (![void 0, null, ""].includes(value)) { - if (typeof value === "object" && !Array.isArray(value)) { - params.append(key, JSON.stringify(value)); + if (typeof value === "object") { + if (arrayComma && Array.isArray(value)) { + params.append(key, value.join(",")); + } else { + params.append(key, JSON.stringify(value)); + } } else { params.append(key, value); } @@ -80,18 +85,6 @@ export class Utils { return params; } - static buildFormData = (formData: FormData, data: any, parentKey = "") => { - if (data && typeof data === "object" && !(data instanceof Date) && !(data instanceof File)) { - Object.keys(data).forEach((key) => { - Utils.buildFormData(formData, data[key], parentKey ? `${parentKey}[${key}]` : key); - }); - } else { - const value = data == null ? "" : data; - - formData.append(parentKey, value); - } - }; - static objectStringify(o: AnyObject, option?: StringifyOptions) { const config = { skipEmptyString: true, diff --git a/projects/client/src/app/components/user-list/user-list.component.html b/projects/client/src/app/components/user-list/user-list.component.html index 652eb83..a264f9f 100644 --- a/projects/client/src/app/components/user-list/user-list.component.html +++ b/projects/client/src/app/components/user-list/user-list.component.html @@ -62,6 +62,16 @@ + + + 角色 + + + + + + + 账号 diff --git a/projects/client/src/app/components/user-list/user-list.component.ts b/projects/client/src/app/components/user-list/user-list.component.ts index 97bf060..bf37a0a 100644 --- a/projects/client/src/app/components/user-list/user-list.component.ts +++ b/projects/client/src/app/components/user-list/user-list.component.ts @@ -38,6 +38,8 @@ export class UserListComponent implements OnChanges { @Input() role!: UserRoleDTO; + @Input() roleList: UserRoleDTO[] = []; + @Output() onReload = new EventEmitter(); searchValue = ""; @@ -48,6 +50,7 @@ export class UserListComponent implements OnChanges { uid: new FormControl("", [FormValidators.required("请输入账号")]), name: new FormControl("", [FormValidators.required("请输入姓名")]), password: new FormControl("", [FormValidators.required("请输入密码")]), + roleId: new FormControl("", [FormValidators.required("请选择角色")]), }); ngOnInit(): void {} @@ -88,6 +91,9 @@ export class UserListComponent implements OnChanges { if (item) { this.userFrom.patchValue(item); } + this.userFrom.patchValue({ + roleId: this.role.id, + }); this.modal.create({ nzTitle: item ? "编辑用户" : "新增用户", nzContent: this.userFormTpl, @@ -96,7 +102,7 @@ export class UserListComponent implements OnChanges { }, nzOnOk: async () => { if (Utils.validateFormGroup(this.userFrom)) { - const user = { ...this.userFrom.value, roleId: this.role.id }; + const user = { ...this.userFrom.value }; user["password"] = MD5(user.password!).toString().substring(16).toUpperCase(); let notExist = true; if ((item && item.uid !== user.uid) || !item) { diff --git a/projects/client/src/app/pages/dashboard/dashboard.component.html b/projects/client/src/app/pages/dashboard/dashboard.component.html index fca0c10..17f7322 100644 --- a/projects/client/src/app/pages/dashboard/dashboard.component.html +++ b/projects/client/src/app/pages/dashboard/dashboard.component.html @@ -1,5 +1,74 @@ +
+
+ 开始 +
+
+ 进入【配餐设置】,修改三餐摄入能量、营养比例 + +
+
+ 进入【菜品管理】,新增/编辑菜品,并打印营养标签 + +
+
+ 进入【食谱管理-食谱库】,创建食谱 + +
+
+ +
+ 1、填写食谱名称 +
+
+ 2、选择营养标准 +
+
+ 3、选择适用月份 +
+
+ 4、选择配餐天数 +
+
+ 5、选择配餐餐次 +
+
+
+ +
+ 1、按餐次添加菜品及重量 +
+
+ 2、根据营养分析实时调整菜品 +
+
+
+ +
+ 1、点击右上角【食谱预览】完成查看食谱全貌 +
+
+ 2、确认食谱应用分析结果 +
+
+
+ + 保存食谱 +
+
+ + 在食谱库列表中发起审核 +
+
+ + 等待审核通过后发布食谱 +
+
+ + 结束 +
+
\ No newline at end of file diff --git a/projects/client/src/app/pages/dashboard/dashboard.component.less b/projects/client/src/app/pages/dashboard/dashboard.component.less index e69de29..86e5bdf 100644 --- a/projects/client/src/app/pages/dashboard/dashboard.component.less +++ b/projects/client/src/app/pages/dashboard/dashboard.component.less @@ -0,0 +1,39 @@ +.flow { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + + .item { + width: 256px; + margin-bottom: 48px; + padding: 24px; + position: relative; + border-radius: 4px; + border: 1px solid #333; + text-align: center; + + &:not(:last-child):after { + content: ''; + width: 1px; + height: 48px; + position: absolute; + bottom: -48px; + left: 50%; + transform: translateX(-50%); + background-color: #333; + } + + &.ellipse { + width: 180px; + border-radius: 50%; + } + + .arrow { + position: absolute; + left: 50%; + top: -12px; + transform: translateX(-50%); + } + } +} \ No newline at end of file diff --git a/projects/client/src/app/pages/dish/dish.component.html b/projects/client/src/app/pages/dish/dish.component.html index 3febf4d..b9e3b42 100644 --- a/projects/client/src/app/pages/dish/dish.component.html +++ b/projects/client/src/app/pages/dish/dish.component.html @@ -26,7 +26,8 @@ - + - diff --git a/projects/client/src/app/pages/system/org-info/org-info.component.ts b/projects/client/src/app/pages/system/org-info/org-info.component.ts index 8db6e51..6ddab24 100644 --- a/projects/client/src/app/pages/system/org-info/org-info.component.ts +++ b/projects/client/src/app/pages/system/org-info/org-info.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit, TemplateRef } from "@angular/core"; +import { ChangeDetectorRef, Component, OnInit, TemplateRef } from "@angular/core"; import { NzModalService } from "ng-zorro-antd/modal"; import { format } from "date-fns"; import { ApiService } from "@cdk/services"; @@ -21,7 +21,8 @@ export class OrgInfoComponent implements OnInit { private api: ApiService, private modal: NzModalService, private msg: NzMessageService, - private router: Router + private router: Router, + private cdr: ChangeDetectorRef ) {} account: any = this.api.account; @@ -55,6 +56,18 @@ export class OrgInfoComponent implements OnInit { if (Utils.validateFormGroup(e.formGroup)) { const res = await lastValueFrom(this.api.saveOrg({ ...e.formGroup.value, venderId: this.account.vender.id })); this.msg.success(res.desc); + localStorage.setItem( + this.api.accountKey, + JSON.stringify({ + ...this.account, + vender: { + ...this.account.vender, + ...e.formGroup.value, + venderId: this.account.vender.id, + }, + }) + ); + window.location.reload(); return true; } return false; diff --git a/projects/client/src/app/pages/system/user-manage/user-manage.component.html b/projects/client/src/app/pages/system/user-manage/user-manage.component.html index 605b64e..fc20c8a 100644 --- a/projects/client/src/app/pages/system/user-manage/user-manage.component.html +++ b/projects/client/src/app/pages/system/user-manage/user-manage.component.html @@ -3,7 +3,7 @@
@@ -56,6 +56,7 @@ *ngIf="role && tab.toString() === '0'" [users]="currentUserList" [role]="role" + [roleList]="roleList" (onReload)="reloadUserList()">