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. 35
      projects/admin/src/app/pages/standard/standard-list/standard-list.component.html
  4. 30
      projects/admin/src/app/pages/standard/standard-list/standard-list.component.ts
  5. 66
      projects/client/src/app/pages/ingredients/ingredient-list/ingredient-list.component.html
  6. 40
      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

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

@ -1,43 +1,37 @@
<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="营养标准列表"> <nz-card [nzBordered]="false" nzTitle="营养标准列表">
<table-list [props]="tableList" <table-list
[props]="tableList"
[search]="searchTpl" [search]="searchTpl"
[action]="pageExtraTpl" [action]="pageExtraTpl"
[formGroup]="queryForm" [formGroup]="queryForm"
[renderColumns]="renderColumnsTpl"> [renderColumns]="renderColumnsTpl"
>
<ng-template #searchTpl> <ng-template #searchTpl>
<nz-form-item class="w-60"> <nz-form-item class="w-60">
<nz-form-control> <nz-form-control>
<input nz-input placeholder="请输入营养标准名称" formControlName="keyword" /> <input nz-input placeholder="请输入营养标准名称" formControlName="keyword" />
</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 *ngSwitchCase="'vendors'">
{{ data.length }}个单位
</ng-container>
<ng-container *ngSwitchCase="'people'">
{{ data.length }}个人群
</ng-container> </ng-container>
<ng-container *ngSwitchCase="'vendors'"> {{ data.length }}个单位 </ng-container>
<ng-container *ngSwitchCase="'people'"> {{ data.length }}个人群 </ng-container>
<ng-container *ngSwitchDefault> <ng-container *ngSwitchDefault>
{{data}} {{ data }}
</ng-container> </ng-container>
</ng-container> </ng-container>
</ng-template> </ng-template>
@ -45,3 +39,14 @@
</nz-card> </nz-card>
</div> </div>
</app-page> </app-page>
<ng-template #copyTpl>
<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>
</form>
</ng-template>

30
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 () => {
if (Utils.validateFormGroup(this.copyForm)) {
const val = this.copyForm.value
const name = val.name!
const res = await lastValueFrom( const res = await lastValueFrom(
this.api.saveStandard({ this.api.saveStandard({
...standard, ...v,
name: standard['name'] + '【复制】', name,
id: null, id: null,
}), }),
) )
this.msg.success(res.desc) this.msg.success(res.desc)
this.tableList.run() this.tableList.run()
return true
}
return false
}, },
}) })
} }

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

@ -1,28 +1,32 @@
<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
nz-button
nzType="primary"
target="_blank"
[routerLink]="['/', 'ingredient', 'item', 'form', 'create']"
>
<i nz-icon nzType="plus"></i> <i nz-icon nzType="plus"></i>
创建食谱 创建食谱
</a> </a>
</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="食谱库"> <nz-card [nzBordered]="false" nzTitle="食谱库">
<table-list [props]="tableList" <table-list
[props]="tableList"
[search]="searchTpl" [search]="searchTpl"
[action]="pageExtraTpl" [action]="pageExtraTpl"
[formGroup]="queryForm" [formGroup]="queryForm"
[renderColumns]="renderColumnsTpl" [renderColumns]="renderColumnsTpl"
optionWidth="300px"> optionWidth="300px"
>
<ng-template #actionTpl> <ng-template #actionTpl>
<button nz-button>批量删除</button> <button nz-button>批量删除</button>
</ng-template> </ng-template>
<ng-template #searchTpl> <ng-template #searchTpl>
<!-- <nz-form-item class="w-40"> <!-- <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">
@ -41,37 +45,33 @@
<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 *ngSwitchCase="'day'">
周{{data}}
</ng-container> </ng-container>
<ng-container *ngSwitchCase="'day'"> 周{{ data }} </ng-container>
<ng-container *ngSwitchCase="'status'"> <ng-container *ngSwitchCase="'status'">
{{statusTextMap[data]}} {{ statusTextMap[data] }}
</ng-container> </ng-container>
<ng-container *ngSwitchCase="'month'"> <ng-container *ngSwitchCase="'month'">
<div class="flex flex-wrap"> <div class="flex flex-wrap">
<ng-container *ngIf="data.length === 12"> <ng-container *ngIf="data.length === 12">
<nz-tag> <nz-tag> 全年 </nz-tag>
全年
</nz-tag>
</ng-container> </ng-container>
<ng-container *ngIf="data.length !== 12"> <ng-container *ngIf="data.length !== 12">
<nz-tag *ngFor="let item of data" class="mb-1"> <nz-tag *ngFor="let item of data" class="mb-1">
{{item}} {{ item }}
</nz-tag> </nz-tag>
</ng-container> </ng-container>
</div> </div>
</ng-container> </ng-container>
<ng-container *ngSwitchDefault> <ng-container *ngSwitchDefault>
{{data}} {{ data }}
</ng-container> </ng-container>
</ng-container> </ng-container>
</ng-template> </ng-template>
@ -80,28 +80,30 @@
</div> </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="注意"
[nzDescription]="warnTpl">
<ng-template #warnTpl> <ng-template #warnTpl>
<div> <div>1、请在发布前确认配餐内容是否正确,发布即视为已完成食谱审核;</div>
1、请在发布前确认配餐内容是否正确,发布即视为已完成食谱审核; <div>2、已发布的食谱无法修改,如需调整,需取消发布后进行编辑</div>
</div>
<div>
2、已发布的食谱无法修改,如需调整,需取消发布后进行编辑
</div>
</ng-template> </ng-template>
</nz-alert> </nz-alert>
<nz-form-item class="mt-4"> <nz-form-item class="mt-4">
<nz-form-label nzSpan="6" [nzRequired]="true"> <nz-form-label nzSpan="6" [nzRequired]="true"> 发布日期 </nz-form-label>
发布日期
</nz-form-label>
<nz-form-control nzSpan="12"> <nz-form-control nzSpan="12">
<nz-date-picker class="w-full" nzPlaceHolder="请选择发布日期" [(ngModel)]="startTime"></nz-date-picker> <nz-date-picker class="w-full" nzPlaceHolder="请选择发布日期" [(ngModel)]="startTime"></nz-date-picker>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>
</ng-template> </ng-template>
<ng-template #copyTpl>
<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>
</form>
</ng-template>

40
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({
nzTitle: '警告',
nzContent: '是否要复制该食谱?',
nzOnOk: async () => {
const copyName = v['name'] + '【复制】' const copyName = v['name'] + '【复制】'
const res = await lastValueFrom(this.api.copyMenu(v['id'], copyName)) this.copyForm.patchValue({
name: copyName,
})
this.modal.create({
nzTitle: '复制食谱',
nzContent: this.copyTpl,
nzOnOk: async () => {
if (Utils.validateFormGroup(this.copyForm)) {
const val = this.copyForm.value
const name = val.name!
const res = await lastValueFrom(this.api.copyMenu(v['id'], name))
this.msg.success(res.desc) this.msg.success(res.desc)
this.tableList.run() this.tableList.run()
return true
}
return false
}, },
}) })
} }

Loading…
Cancel
Save