Browse Source

Merge branch 'main' of github.com:ke-ly/catering

main
kely 1 year ago
parent
commit
2605742267
  1. 6
      projects/admin/src/app/pages/ingredients/ingredient-list/ingredient-list.component.html
  2. 12
      projects/admin/src/app/pages/ingredients/ingredient-list/ingredient-list.component.ts
  3. 95
      projects/admin/src/app/pages/standard/standard-list/standard-list.component.html
  4. 44
      projects/admin/src/app/pages/standard/standard-list/standard-list.component.ts
  5. 190
      projects/client/src/app/pages/ingredients/ingredient-list/ingredient-list.component.html
  6. 44
      projects/client/src/app/pages/ingredients/ingredient-list/ingredient-list.component.ts

6
projects/admin/src/app/pages/ingredients/ingredient-list/ingredient-list.component.html

@ -102,6 +102,12 @@
</ng-template> </ng-template>
<ng-template #copyTpl> <ng-template #copyTpl>
<form nz-form [formGroup]="copyForm" nzLayout="vertical"> <form nz-form [formGroup]="copyForm" nzLayout="vertical">
<nz-form-item class="mt-4">
<nz-form-label [nzRequired]="true">名称</nz-form-label>
<nz-form-control>
<input nz-input placeholder="请输入名称" formControlName="name" />
</nz-form-control>
</nz-form-item>
<nz-form-item class="mt-4"> <nz-form-item class="mt-4">
<nz-form-label [nzRequired]="true">单位</nz-form-label> <nz-form-label [nzRequired]="true">单位</nz-form-label>
<nz-form-control> <nz-form-control>

12
projects/admin/src/app/pages/ingredients/ingredient-list/ingredient-list.component.ts

@ -1,7 +1,7 @@
import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core' import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core'
import { FormControl, FormGroup } from '@angular/forms' import { FormControl, FormGroup } from '@angular/forms'
import { NzDrawerRef, NzDrawerService } from 'ng-zorro-antd/drawer' import { NzDrawerRef, NzDrawerService } from 'ng-zorro-antd/drawer'
import { AnyObject, OrgDTO, TableListOption, Utils } from '@cdk/public-api' import { AnyObject, FormValidators, OrgDTO, TableListOption, Utils } from '@cdk/public-api'
import { ApiService } from '@cdk/services' import { ApiService } from '@cdk/services'
import { NzModalService } from 'ng-zorro-antd/modal' import { NzModalService } from 'ng-zorro-antd/modal'
import { lastValueFrom, tap } from 'rxjs' import { lastValueFrom, tap } from 'rxjs'
@ -44,7 +44,8 @@ export class IngredientListComponent {
}) })
public copyForm = new FormGroup({ public copyForm = new FormGroup({
vendors: new FormControl([]), name: new FormControl('', [FormValidators.required('请输入食谱名称')]),
vendors: new FormControl([], [FormValidators.required('请选择单位')]),
}) })
startTime: Date | null = null startTime: Date | null = null
@ -231,9 +232,10 @@ export class IngredientListComponent {
nzContent: this.copyTpl, nzContent: this.copyTpl,
nzOnOk: async () => { nzOnOk: async () => {
if (Utils.validateFormGroup(this.copyForm)) { if (Utils.validateFormGroup(this.copyForm)) {
const copyName = v['name'] + '【复制】' const val = this.copyForm.value
const vendors = this.copyForm.value.vendors?.join(',') const name = val.name!
const res = await lastValueFrom(this.api.copyMenu(v['id'], copyName, vendors)) const vendors = val.vendors?.join(',')
const res = await lastValueFrom(this.api.copyMenu(v['id'], name, vendors))
this.msg.success(res.desc) this.msg.success(res.desc)
this.tableList.run() this.tableList.run()
return true return true

95
projects/admin/src/app/pages/standard/standard-list/standard-list.component.html

@ -1,47 +1,52 @@
<app-page> <app-page>
<ng-template #pageExtraTpl> <ng-template #pageExtraTpl>
<nz-space> <nz-space>
<button *nzSpaceItem nz-button nzType="primary" [routerLink]="['/','standard','form','create']"> <button *nzSpaceItem nz-button nzType="primary" [routerLink]="['/', 'standard', 'form', 'create']">
<i nz-icon nzType="plus"></i> <i nz-icon nzType="plus"></i>
新增营养标准 新增营养标准
</button> </button>
</nz-space> </nz-space>
</ng-template> </ng-template>
<div class="h-full overflow-hidden bg-white rounded-lg"> <div class="h-full overflow-hidden bg-white rounded-lg">
<nz-card [nzBordered]="false" nzTitle="营养标准列表">
<table-list
[props]="tableList"
[search]="searchTpl"
[action]="pageExtraTpl"
[formGroup]="queryForm"
[renderColumns]="renderColumnsTpl"
>
<ng-template #searchTpl>
<nz-form-item class="w-60">
<nz-form-control>
<input nz-input placeholder="请输入营养标准名称" formControlName="keyword" />
</nz-form-control>
</nz-form-item>
</ng-template>
<ng-template #renderColumnsTpl let-data let-key="key" let-row="row">
<ng-container [ngSwitch]="key">
<ng-container *ngSwitchCase="'modify'">
{{ data | date : 'yyyy-MM-dd HH:mm:ss' }}
</ng-container>
<ng-container *ngSwitchCase="'vendors'"> {{ data.length }}个单位 </ng-container>
<ng-container *ngSwitchCase="'people'"> {{ data.length }}个人群 </ng-container>
<ng-container *ngSwitchDefault>
{{ data }}
</ng-container>
</ng-container>
</ng-template>
</table-list>
</nz-card>
</div>
</app-page>
<nz-card [nzBordered]="false" nzTitle="营养标准列表"> <ng-template #copyTpl>
<table-list [props]="tableList" <form nz-form [formGroup]="copyForm" nzLayout="vertical">
[search]="searchTpl" <nz-form-item class="mt-4">
[action]="pageExtraTpl" <nz-form-label [nzRequired]="true">名称</nz-form-label>
[formGroup]="queryForm" <nz-form-control>
[renderColumns]="renderColumnsTpl"> <input nz-input placeholder="请输入名称" formControlName="name" />
</nz-form-control>
</nz-form-item>
<ng-template #searchTpl> </form>
<nz-form-item class="w-60"> </ng-template>
<nz-form-control>
<input nz-input placeholder="请输入营养标准名称" formControlName="keyword" />
</nz-form-control>
</nz-form-item>
</ng-template>
<ng-template #renderColumnsTpl let-data let-key="key" let-row="row">
<ng-container [ngSwitch]="key">
<ng-container *ngSwitchCase="'modify'">
{{ data|date:'yyyy-MM-dd HH:mm:ss'}}
</ng-container>
<ng-container *ngSwitchCase="'vendors'">
{{ data.length }}个单位
</ng-container>
<ng-container *ngSwitchCase="'people'">
{{ data.length }}个人群
</ng-container>
<ng-container *ngSwitchDefault>
{{data}}
</ng-container>
</ng-container>
</ng-template>
</table-list>
</nz-card>
</div>
</app-page>

44
projects/admin/src/app/pages/standard/standard-list/standard-list.component.ts

@ -1,7 +1,7 @@
import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core' import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core'
import { FormControl, FormGroup } from '@angular/forms' import { FormControl, FormGroup } from '@angular/forms'
import { NzDrawerRef, NzDrawerService } from 'ng-zorro-antd/drawer' import { NzDrawerRef, NzDrawerService } from 'ng-zorro-antd/drawer'
import { AnyObject, TableListOption } from '@cdk/public-api' import { AnyObject, FormValidators, TableListOption, Utils } from '@cdk/public-api'
import { DishFormComponent } from '@admin/app/components' import { DishFormComponent } from '@admin/app/components'
import { ApiService } from '@cdk/services' import { ApiService } from '@cdk/services'
import { NzModalService } from 'ng-zorro-antd/modal' import { NzModalService } from 'ng-zorro-antd/modal'
@ -28,6 +28,12 @@ export class StandardListComponent {
frontPagination: false, frontPagination: false,
}) })
public copyForm = new FormGroup({
name: new FormControl('', [FormValidators.required('请输入名称')]),
})
@ViewChild('copyTpl') copyTpl!: TemplateRef<{}>
public queryForm = new FormGroup({ public queryForm = new FormGroup({
keyword: new FormControl(''), keyword: new FormControl(''),
}) })
@ -73,20 +79,30 @@ export class StandardListComponent {
return this.api.getStandardPage(pager, query) return this.api.getStandardPage(pager, query)
} }
copy(standard: AnyObject) { copy(v: AnyObject) {
this.modal.confirm({ const copyName = v['name'] + '【复制】'
nzTitle: '警告', this.copyForm.patchValue({
nzContent: '是否要复制该标准?', name: copyName,
})
this.modal.create({
nzTitle: '复制营养标准',
nzContent: this.copyTpl,
nzOnOk: async () => { nzOnOk: async () => {
const res = await lastValueFrom( if (Utils.validateFormGroup(this.copyForm)) {
this.api.saveStandard({ const val = this.copyForm.value
...standard, const name = val.name!
name: standard['name'] + '【复制】', const res = await lastValueFrom(
id: null, this.api.saveStandard({
}), ...v,
) name,
this.msg.success(res.desc) id: null,
this.tableList.run() }),
)
this.msg.success(res.desc)
this.tableList.run()
return true
}
return false
}, },
}) })
} }

190
projects/client/src/app/pages/ingredients/ingredient-list/ingredient-list.component.html

@ -1,29 +1,33 @@
<app-page> <app-page>
<ng-template #pageExtraTpl> <ng-template #pageExtraTpl>
<nz-space> <nz-space>
<a *nzSpaceItem nz-button nzType="primary" target="_blank" <a
[routerLink]="['/','ingredient','item','form','create']"> *nzSpaceItem
<i nz-icon nzType="plus"></i> nz-button
创建食谱 nzType="primary"
</a> target="_blank"
</nz-space> [routerLink]="['/', 'ingredient', 'item', 'form', 'create']"
</ng-template> >
<div class="h-full overflow-hidden bg-white rounded-lg"> <i nz-icon nzType="plus"></i>
创建食谱
<nz-card [nzBordered]="false" nzTitle="食谱库"> </a>
<table-list [props]="tableList" </nz-space>
[search]="searchTpl" </ng-template>
[action]="pageExtraTpl" <div class="h-full overflow-hidden bg-white rounded-lg">
[formGroup]="queryForm" <nz-card [nzBordered]="false" nzTitle="食谱库">
[renderColumns]="renderColumnsTpl" <table-list
optionWidth="300px"> [props]="tableList"
[search]="searchTpl"
<ng-template #actionTpl> [action]="pageExtraTpl"
<button nz-button>批量删除</button> [formGroup]="queryForm"
</ng-template> [renderColumns]="renderColumnsTpl"
<ng-template #searchTpl> optionWidth="300px"
>
<!-- <nz-form-item class="w-40"> <ng-template #actionTpl>
<button nz-button>批量删除</button>
</ng-template>
<ng-template #searchTpl>
<!-- <nz-form-item class="w-40">
<nz-form-control> <nz-form-control>
<nz-select nzPlaceHolder="状态" formControlName="status" [nzAllowClear]="true"> <nz-select nzPlaceHolder="状态" formControlName="status" [nzAllowClear]="true">
<nz-option *ngFor="let item of globalEnum.menuStatus" [nzValue]="item.label" <nz-option *ngFor="let item of globalEnum.menuStatus" [nzValue]="item.label"
@ -32,76 +36,74 @@
</nz-select> </nz-select>
</nz-form-control> </nz-form-control>
</nz-form-item> --> </nz-form-item> -->
<nz-form-item> <nz-form-item>
<nz-form-control> <nz-form-control>
<input nz-input placeholder="请输入食谱名称" formControlName="name" /> <input nz-input placeholder="请输入食谱名称" formControlName="name" />
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</ng-template> </ng-template>
<ng-template #renderColumnsTpl let-data let-key="key" let-row="row"> <ng-template #renderColumnsTpl let-data let-key="key" let-row="row">
<ng-container [ngSwitch]="key"> <ng-container [ngSwitch]="key">
<ng-container *ngSwitchCase="'modify'"> <ng-container *ngSwitchCase="'modify'">
{{data | date:'yyyy-MM-dd HH:mm:ss'}} {{ data | date : 'yyyy-MM-dd HH:mm:ss' }}
</ng-container> </ng-container>
<ng-container *ngSwitchCase="'vender'"> <ng-container *ngSwitchCase="'vender'">
{{ tableOrg[data] ? tableOrg[data].name : '-'}} {{ tableOrg[data] ? tableOrg[data].name : '-' }}
</ng-container> </ng-container>
<ng-container *ngSwitchCase="'meals'"> <ng-container *ngSwitchCase="'meals'">
<nz-tag *ngFor="let item of data">{{item}}</nz-tag> <nz-tag *ngFor="let item of data">{{ item }}</nz-tag>
</ng-container> </ng-container>
<ng-container *ngSwitchCase="'day'"> <ng-container *ngSwitchCase="'day'"> 周{{ data }} </ng-container>
周{{data}} <ng-container *ngSwitchCase="'status'">
</ng-container> {{ statusTextMap[data] }}
<ng-container *ngSwitchCase="'status'"> </ng-container>
{{statusTextMap[data]}} <ng-container *ngSwitchCase="'month'">
</ng-container> <div class="flex flex-wrap">
<ng-container *ngSwitchCase="'month'"> <ng-container *ngIf="data.length === 12">
<div class="flex flex-wrap"> <nz-tag> 全年 </nz-tag>
<ng-container *ngIf="data.length === 12"> </ng-container>
<nz-tag> <ng-container *ngIf="data.length !== 12">
全年 <nz-tag *ngFor="let item of data" class="mb-1">
</nz-tag> {{ item }}
</ng-container> </nz-tag>
<ng-container *ngIf="data.length !== 12"> </ng-container>
<nz-tag *ngFor="let item of data" class="mb-1"> </div>
{{item}} </ng-container>
</nz-tag> <ng-container *ngSwitchDefault>
</ng-container> {{ data }}
</div> </ng-container>
</ng-container> </ng-container>
<ng-container *ngSwitchDefault> </ng-template>
{{data}} </table-list>
</ng-container> </nz-card>
</ng-container> </div>
</ng-template>
</table-list>
</nz-card>
</div>
</app-page> </app-page>
<ng-template #releaseStartTimeTpl> <ng-template #releaseStartTimeTpl>
<div nz-form> <div nz-form>
<nz-alert nzType="warning" <nz-alert nzType="warning" nzMessage="注意" [nzDescription]="warnTpl">
nzMessage="注意" <ng-template #warnTpl>
[nzDescription]="warnTpl"> <div>1、请在发布前确认配餐内容是否正确,发布即视为已完成食谱审核;</div>
<ng-template #warnTpl> <div>2、已发布的食谱无法修改,如需调整,需取消发布后进行编辑</div>
<div> </ng-template>
1、请在发布前确认配餐内容是否正确,发布即视为已完成食谱审核; </nz-alert>
</div> <nz-form-item class="mt-4">
<div> <nz-form-label nzSpan="6" [nzRequired]="true"> 发布日期 </nz-form-label>
2、已发布的食谱无法修改,如需调整,需取消发布后进行编辑 <nz-form-control nzSpan="12">
</div> <nz-date-picker class="w-full" nzPlaceHolder="请选择发布日期" [(ngModel)]="startTime"></nz-date-picker>
</ng-template> </nz-form-control>
</nz-alert> </nz-form-item>
<nz-form-item class="mt-4"> </div>
<nz-form-label nzSpan="6" [nzRequired]="true"> </ng-template>
发布日期
</nz-form-label> <ng-template #copyTpl>
<nz-form-control nzSpan="12"> <form nz-form [formGroup]="copyForm" nzLayout="vertical">
<nz-date-picker class="w-full" nzPlaceHolder="请选择发布日期" [(ngModel)]="startTime"></nz-date-picker> <nz-form-item class="mt-4">
</nz-form-control> <nz-form-label [nzRequired]="true">名称</nz-form-label>
</nz-form-item> <nz-form-control>
</div> <input nz-input placeholder="请输入名称" formControlName="name" />
</ng-template> </nz-form-control>
</nz-form-item>
</form>
</ng-template>

44
projects/client/src/app/pages/ingredients/ingredient-list/ingredient-list.component.ts

@ -1,7 +1,7 @@
import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core' import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core'
import { FormControl, FormGroup } from '@angular/forms' import { FormControl, FormGroup } from '@angular/forms'
import { NzDrawerRef, NzDrawerService } from 'ng-zorro-antd/drawer' import { NzDrawerRef, NzDrawerService } from 'ng-zorro-antd/drawer'
import { AnyObject, OrgDTO, TableListOption } from '@cdk/public-api' import { AnyObject, FormValidators, OrgDTO, TableListOption, Utils } from '@cdk/public-api'
import { ApiService } from '@cdk/services' import { ApiService } from '@cdk/services'
import { NzModalService } from 'ng-zorro-antd/modal' import { NzModalService } from 'ng-zorro-antd/modal'
import { lastValueFrom, tap } from 'rxjs' import { lastValueFrom, tap } from 'rxjs'
@ -29,12 +29,18 @@ export class IngredientListComponent {
@ViewChild('releaseStartTimeTpl') releaseStartTimeTpl!: TemplateRef<{}> @ViewChild('releaseStartTimeTpl') releaseStartTimeTpl!: TemplateRef<{}>
@ViewChild('copyTpl') copyTpl!: TemplateRef<{}>
private drawerRef?: NzDrawerRef private drawerRef?: NzDrawerRef
public tableList = new TableListOption(this.fetchData.bind(this), { public tableList = new TableListOption(this.fetchData.bind(this), {
frontPagination: false, frontPagination: false,
}) })
public copyForm = new FormGroup({
name: new FormControl('', [FormValidators.required('请输入食谱名称')]),
})
public queryForm = new FormGroup({ public queryForm = new FormGroup({
name: new FormControl(''), name: new FormControl(''),
vender: new FormControl(''), vender: new FormControl(''),
@ -148,15 +154,37 @@ export class IngredientListComponent {
]) ])
} }
// copy(v: AnyObject) {
// this.modal.confirm({
// nzTitle: '警告',
// nzContent: '是否要复制该食谱?',
// nzOnOk: async () => {
// const copyName = v['name'] + '【复制】'
// const res = await lastValueFrom(this.api.copyMenu(v['id'], copyName))
// this.msg.success(res.desc)
// this.tableList.run()
// },
// })
// }
copy(v: AnyObject) { copy(v: AnyObject) {
this.modal.confirm({ const copyName = v['name'] + '【复制】'
nzTitle: '警告', this.copyForm.patchValue({
nzContent: '是否要复制该食谱?', name: copyName,
})
this.modal.create({
nzTitle: '复制食谱',
nzContent: this.copyTpl,
nzOnOk: async () => { nzOnOk: async () => {
const copyName = v['name'] + '【复制】' if (Utils.validateFormGroup(this.copyForm)) {
const res = await lastValueFrom(this.api.copyMenu(v['id'], copyName)) const val = this.copyForm.value
this.msg.success(res.desc) const name = val.name!
this.tableList.run() const res = await lastValueFrom(this.api.copyMenu(v['id'], name))
this.msg.success(res.desc)
this.tableList.run()
return true
}
return false
}, },
}) })
} }

Loading…
Cancel
Save