Browse Source

复制可修改名字

main
kkerwin 1 year ago
parent
commit
a0cb971fd0
  1. 6
      projects/admin/src/app/pages/ingredients/ingredient-list/ingredient-list.component.html
  2. 16
      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 #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>
<nz-form-item class="mt-4">
<nz-form-label [nzRequired]="true">单位</nz-form-label>
<nz-form-control>

16
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 { FormControl, FormGroup } from '@angular/forms'
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 { NzModalService } from 'ng-zorro-antd/modal'
import { lastValueFrom, tap } from 'rxjs'
@ -44,7 +44,8 @@ export class IngredientListComponent {
})
public copyForm = new FormGroup({
vendors: new FormControl([]),
name: new FormControl('', [FormValidators.required('请输入食谱名称')]),
vendors: new FormControl([], [FormValidators.required('请选择单位')]),
})
startTime: Date | null = null
@ -197,14 +198,19 @@ export class IngredientListComponent {
}
copy(v: AnyObject) {
const copyName = v['name'] + '【复制】'
this.copyForm.patchValue({
name: copyName,
})
this.modal.create({
nzTitle: '复制食谱',
nzContent: this.copyTpl,
nzOnOk: async () => {
if (Utils.validateFormGroup(this.copyForm)) {
const copyName = v['name'] + '【复制】'
const vendors = this.copyForm.value.vendors?.join(',')
const res = await lastValueFrom(this.api.copyMenu(v['id'], copyName, vendors))
const val = this.copyForm.value
const name = val.name!
const vendors = val.vendors?.join(',')
const res = await lastValueFrom(this.api.copyMenu(v['id'], name, vendors))
this.msg.success(res.desc)
this.tableList.run()
return true

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

@ -1,43 +1,37 @@
<app-page>
<ng-template #pageExtraTpl>
<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>
新增营养标准
</button>
</nz-space>
</ng-template>
<div class="h-full overflow-hidden bg-white rounded-lg">
<nz-card [nzBordered]="false" nzTitle="营养标准列表">
<table-list [props]="tableList"
<table-list
[props]="tableList"
[search]="searchTpl"
[action]="pageExtraTpl"
[formGroup]="queryForm"
[renderColumns]="renderColumnsTpl">
[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 }}个人群
{{ 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}}
{{ data }}
</ng-container>
</ng-container>
</ng-template>
@ -45,3 +39,14 @@
</nz-card>
</div>
</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 { FormControl, FormGroup } from '@angular/forms'
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 { ApiService } from '@cdk/services'
import { NzModalService } from 'ng-zorro-antd/modal'
@ -28,6 +28,12 @@ export class StandardListComponent {
frontPagination: false,
})
public copyForm = new FormGroup({
name: new FormControl('', [FormValidators.required('请输入名称')]),
})
@ViewChild('copyTpl') copyTpl!: TemplateRef<{}>
public queryForm = new FormGroup({
keyword: new FormControl(''),
})
@ -73,20 +79,30 @@ export class StandardListComponent {
return this.api.getStandardPage(pager, query)
}
copy(standard: AnyObject) {
this.modal.confirm({
nzTitle: '警告',
nzContent: '是否要复制该标准?',
copy(v: AnyObject) {
const copyName = v['name'] + '【复制】'
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.saveStandard({
...standard,
name: standard['name'] + '【复制】',
...v,
name,
id: null,
}),
)
this.msg.success(res.desc)
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>
<ng-template #pageExtraTpl>
<nz-space>
<a *nzSpaceItem nz-button nzType="primary" target="_blank"
[routerLink]="['/','ingredient','item','form','create']">
<a
*nzSpaceItem
nz-button
nzType="primary"
target="_blank"
[routerLink]="['/', 'ingredient', 'item', 'form', 'create']"
>
<i nz-icon nzType="plus"></i>
创建食谱
</a>
</nz-space>
</ng-template>
<div class="h-full overflow-hidden bg-white rounded-lg">
<nz-card [nzBordered]="false" nzTitle="食谱库">
<table-list [props]="tableList"
<table-list
[props]="tableList"
[search]="searchTpl"
[action]="pageExtraTpl"
[formGroup]="queryForm"
[renderColumns]="renderColumnsTpl"
optionWidth="300px">
optionWidth="300px"
>
<ng-template #actionTpl>
<button nz-button>批量删除</button>
</ng-template>
<ng-template #searchTpl>
<!-- <nz-form-item class="w-40">
<nz-form-control>
<nz-select nzPlaceHolder="状态" formControlName="status" [nzAllowClear]="true">
@ -41,37 +45,33 @@
<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'}}
{{ data | date : 'yyyy-MM-dd HH:mm:ss' }}
</ng-container>
<ng-container *ngSwitchCase="'vender'">
{{ tableOrg[data] ? tableOrg[data].name : '-'}}
{{ tableOrg[data] ? tableOrg[data].name : '-' }}
</ng-container>
<ng-container *ngSwitchCase="'meals'">
<nz-tag *ngFor="let item of data">{{item}}</nz-tag>
</ng-container>
<ng-container *ngSwitchCase="'day'">
周{{data}}
<nz-tag *ngFor="let item of data">{{ item }}</nz-tag>
</ng-container>
<ng-container *ngSwitchCase="'day'"> 周{{ data }} </ng-container>
<ng-container *ngSwitchCase="'status'">
{{statusTextMap[data]}}
{{ statusTextMap[data] }}
</ng-container>
<ng-container *ngSwitchCase="'month'">
<div class="flex flex-wrap">
<ng-container *ngIf="data.length === 12">
<nz-tag>
全年
</nz-tag>
<nz-tag> 全年 </nz-tag>
</ng-container>
<ng-container *ngIf="data.length !== 12">
<nz-tag *ngFor="let item of data" class="mb-1">
{{item}}
{{ item }}
</nz-tag>
</ng-container>
</div>
</ng-container>
<ng-container *ngSwitchDefault>
{{data}}
{{ data }}
</ng-container>
</ng-container>
</ng-template>
@ -80,28 +80,30 @@
</div>
</app-page>
<ng-template #releaseStartTimeTpl>
<div nz-form>
<nz-alert nzType="warning"
nzMessage="注意"
[nzDescription]="warnTpl">
<nz-alert nzType="warning" nzMessage="注意" [nzDescription]="warnTpl">
<ng-template #warnTpl>
<div>
1、请在发布前确认配餐内容是否正确,发布即视为已完成食谱审核;
</div>
<div>
2、已发布的食谱无法修改,如需调整,需取消发布后进行编辑
</div>
<div>1、请在发布前确认配餐内容是否正确,发布即视为已完成食谱审核;</div>
<div>2、已发布的食谱无法修改,如需调整,需取消发布后进行编辑</div>
</ng-template>
</nz-alert>
<nz-form-item class="mt-4">
<nz-form-label nzSpan="6" [nzRequired]="true">
发布日期
</nz-form-label>
<nz-form-label nzSpan="6" [nzRequired]="true"> 发布日期 </nz-form-label>
<nz-form-control nzSpan="12">
<nz-date-picker class="w-full" nzPlaceHolder="请选择发布日期" [(ngModel)]="startTime"></nz-date-picker>
</nz-form-control>
</nz-form-item>
</div>
</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 { FormControl, FormGroup } from '@angular/forms'
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 { NzModalService } from 'ng-zorro-antd/modal'
import { lastValueFrom, tap } from 'rxjs'
@ -29,12 +29,18 @@ export class IngredientListComponent {
@ViewChild('releaseStartTimeTpl') releaseStartTimeTpl!: TemplateRef<{}>
@ViewChild('copyTpl') copyTpl!: TemplateRef<{}>
private drawerRef?: NzDrawerRef
public tableList = new TableListOption(this.fetchData.bind(this), {
frontPagination: false,
})
public copyForm = new FormGroup({
name: new FormControl('', [FormValidators.required('请输入食谱名称')]),
})
public queryForm = new FormGroup({
name: 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) {
this.modal.confirm({
nzTitle: '警告',
nzContent: '是否要复制该食谱?',
nzOnOk: async () => {
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.tableList.run()
return true
}
return false
},
})
}

Loading…
Cancel
Save