merge doing topping and re-save file
This commit is contained in:
parent
aaa60216b2
commit
5889499a7e
5 changed files with 119 additions and 32 deletions
|
|
@ -16,7 +16,7 @@ import { NgSelectModule } from '@ng-select/ng-select';
|
|||
@Component({
|
||||
selector: 'app-toppings',
|
||||
standalone: true,
|
||||
imports: [CommonModule, NgSelectModule,FormsModule, ReactiveFormsModule],
|
||||
imports: [CommonModule, NgSelectModule, FormsModule, ReactiveFormsModule],
|
||||
templateUrl: './toppings.component.html',
|
||||
})
|
||||
export class ToppingsComponent implements OnInit {
|
||||
|
|
@ -24,10 +24,12 @@ export class ToppingsComponent implements OnInit {
|
|||
toppingGroupList: ToppingGroup[] = [];
|
||||
toppingLists: ToppingList[] = [];
|
||||
|
||||
groupMemebersMap: { [key: string]: { [key: string]: any } } = {
|
||||
groupMembersMap: { [key: string]: { [key: string]: any } } = {
|
||||
'0': { members: [] },
|
||||
};
|
||||
|
||||
showToppingBuilder: boolean = false;
|
||||
|
||||
// forms
|
||||
|
||||
toppingGroupForm = this._formBuilder.group(
|
||||
|
|
@ -67,7 +69,7 @@ export class ToppingsComponent implements OnInit {
|
|||
'topping groups: ',
|
||||
this.toppingGroupList,
|
||||
'mapper:',
|
||||
this.groupMemebersMap,
|
||||
this.groupMembersMap,
|
||||
'length',
|
||||
this.toppingGroupList.length
|
||||
);
|
||||
|
|
@ -103,7 +105,7 @@ export class ToppingsComponent implements OnInit {
|
|||
'get topping list',
|
||||
this.toppingLists,
|
||||
'mapper:',
|
||||
this.groupMemebersMap
|
||||
this.groupMembersMap
|
||||
);
|
||||
|
||||
console.log('undefined name of topping list', this.findUndefinedName());
|
||||
|
|
@ -116,26 +118,26 @@ export class ToppingsComponent implements OnInit {
|
|||
mapMembers = () => {
|
||||
this.toppingGroupList.forEach((tpg) => {
|
||||
let spl_mem = tpg.idInGroup.split(',');
|
||||
this.groupMemebersMap[tpg.groupID] = { members: spl_mem };
|
||||
this.groupMembersMap[tpg.groupID] = { members: spl_mem };
|
||||
});
|
||||
};
|
||||
|
||||
// get members of group id
|
||||
getMemberByGroupId = (id: string) =>
|
||||
this.groupMemebersMap[id]['members'] as string[];
|
||||
this.groupMembersMap[id]['members'] as string[];
|
||||
|
||||
// match name to member
|
||||
mapNameToMember = () => {
|
||||
if (this.toppingLists.length > 0) {
|
||||
this.toppingGroupList.forEach((tpg) => {
|
||||
let members = this.groupMemebersMap[tpg.groupID]['members'];
|
||||
let members = this.groupMembersMap[tpg.groupID]['members'];
|
||||
members.forEach((member_id: string) => {
|
||||
// do get member data from topping list
|
||||
let member_data = this.toppingLists.find(
|
||||
(v) => v.id.toString() == member_id.toString()
|
||||
);
|
||||
// set data to group
|
||||
this.groupMemebersMap[tpg.groupID][member_id] = member_data;
|
||||
this.groupMembersMap[tpg.groupID][member_id] = member_data;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
@ -143,10 +145,10 @@ export class ToppingsComponent implements OnInit {
|
|||
|
||||
// get member data from group
|
||||
getMemberData = (group: string, member_id: string) => {
|
||||
if (this.groupMemebersMap[group][member_id] == undefined) {
|
||||
return {};
|
||||
}
|
||||
return this.groupMemebersMap[group][member_id];
|
||||
// if (this.groupMembersMap[group][member_id] == undefined) {
|
||||
// return {};
|
||||
// }
|
||||
return this.groupMembersMap[group][member_id];
|
||||
};
|
||||
|
||||
// check which list does not have name
|
||||
|
|
@ -158,11 +160,28 @@ export class ToppingsComponent implements OnInit {
|
|||
value == undefined || value == '' ? default_value : value;
|
||||
|
||||
// get value from form by given key
|
||||
getAttrFromForm(index: number, key: string){
|
||||
getAttrFromForm(index: number, key: string) {
|
||||
let x = this.toppingGroup.controls.at(index) as any;
|
||||
return x.value[key];
|
||||
}
|
||||
|
||||
// diff and find matched
|
||||
comapareFunction = (a: any, b: any) => ( a != undefined && b != undefined)&& (a.toString() === b.toString());
|
||||
comapareFunction = (a: any, b: any) =>
|
||||
a != undefined && b != undefined && a.toString() === b.toString();
|
||||
|
||||
// onclick: set default of topping in the group
|
||||
setDefaultOfToppingGroup = (index: number, member: string) => {
|
||||
// get default of group in form
|
||||
let targetForm = this.toppingGroup.controls.at(index);
|
||||
console.log('get id default', targetForm);
|
||||
|
||||
let targetDefault = targetForm?.get('idDefault');
|
||||
|
||||
// if click on the same index, set 0
|
||||
if (targetDefault?.value == member) {
|
||||
member = '0';
|
||||
}
|
||||
|
||||
targetDefault?.setValue(member);
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue