refactor on actRadioData

This commit is contained in:
Cindy Chang
2024-07-26 09:49:39 +08:00
parent 54f0d29c99
commit 15805b4dc5
4 changed files with 48 additions and 112 deletions

View File

@@ -43,7 +43,7 @@
} }
.p-sidebar-header { .p-sidebar-header {
@apply bg-neutral-200 border-b border-neutral-300 !py-2 !justify-between @apply bg-neutral-200 border-b border-neutral-300 !py-2 !justify-between
}; }
.p-sidebar-right .p-sidebar-header { .p-sidebar-right .p-sidebar-header {
@apply flex-row-reverse !justify-end text-neutral-500 @apply flex-row-reverse !justify-end text-neutral-500
} }

View File

@@ -104,6 +104,7 @@
<div class="border rounded border-neutral-300 p-2 bg-neutral-10 w-full"> <div class="border rounded border-neutral-300 p-2 bg-neutral-10 w-full">
<p class="h2 pl-2 mb-2">Short Loop(s)</p> <p class="h2 pl-2 mb-2">Short Loop(s)</p>
<table class="text-sm min-w-full table-fixed"> <table class="text-sm min-w-full table-fixed">
<caption class="hidden">Loop List</caption>
<tbody> <tbody>
<tr v-for="(trace, key) in data.loops" :key="key"> <tr v-for="(trace, key) in data.loops" :key="key">
<td class="p-2 pl-6 truncate max-w-0 w-1/3"> <td class="p-2 pl-6 truncate max-w-0 w-1/3">

View File

@@ -55,7 +55,6 @@ export default {
}, },
computed: { computed: {
datadata: function() { datadata: function() {
// TODO Activity List 的 dblclick, drag & drop 要改假刪除
// Activity List 要排序 // Activity List 要排序
let newData; let newData;
if(this.data !== null) { if(this.data !== null) {

View File

@@ -182,116 +182,52 @@ export default {
this.containstTasksData = data; this.containstTasksData = data;
}); });
this.$emitter.on('actRadioData', (newData) => { this.$emitter.on('actRadioData', (newData) => {
let data = JSON.parse(JSON.stringify(newData)); // 深拷貝原始 cases 的內容 let data = JSON.parse(JSON.stringify(newData)); // 深拷貝原始 cases 的內容
switch (data.category) {
// Activity sequence const categoryMapping = {
case 'cfmSeqStart': 'cfmSeqStart': ['Start', 'selectCfmSeqStart', 'selectCfmSeqEnd'],
if(this.isStartSelected === true && data.task !== this.selectCfmSeqStart) this.selectCfmSeqEnd = null; 'cfmSeqEnd': ['End', 'selectCfmSeqEnd', 'selectCfmSeqStart'],
data.category = 'Start'; 'cfmPtEteStart': ['Start', 'selectCfmPtEteStart'],
this.selectCfmSeqStart = data; 'cfmPtEteEnd': ['End', 'selectCfmPtEteEnd'],
break; 'cfmPtEteSEStart': ['Start', 'selectCfmPtEteSEStart', 'selectCfmPtEteSEEnd'],
case 'cfmSeqEnd': 'cfmPtEteSEEnd': ['End', 'selectCfmPtEteSEEnd', 'selectCfmPtEteSEStart'],
if(this.isEndSelected === true && data.task !== this.selectCfmSeqEnd)this.selectCfmSeqStart = null; 'cfmPtPStart': ['From', 'selectCfmPtPStart'],
data.category = 'End'; 'cfmPtPEnd': ['To', 'selectCfmPtPEnd'],
this.selectCfmSeqEnd = data; 'cfmPtPSEStart': ['From', 'selectCfmPtPSEStart', 'selectCfmPtPSEEnd'],
break; 'cfmPtPSEEnd': ['To', 'selectCfmPtPSEEnd', 'selectCfmPtPSEStart'],
// Processing time 'cfmWtEteStart': ['Start', 'selectCfmWtEteStart'],
case 'cfmPtEteStart': 'cfmWtEteEnd': ['End', 'selectCfmWtEteEnd'],
data.category = 'Start'; 'cfmWtEteSEStart': ['Start', 'selectCfmWtEteSEStart', 'selectCfmWtEteSEEnd'],
this.selectCfmPtEteStart = [data]; 'cfmWtEteSEEnd': ['End', 'selectCfmWtEteSEEnd', 'selectCfmWtEteSEStart'],
break; 'cfmWtPStart': ['From', 'selectCfmWtPStart'],
case 'cfmPtEteEnd': 'cfmWtPEnd': ['To', 'selectCfmWtPEnd'],
data.category = 'End'; 'cfmWtPSEStart': ['From', 'selectCfmWtPSEStart', 'selectCfmWtPSEEnd'],
this.selectCfmPtEteEnd = [data]; 'cfmWtPSEEnd': ['To', 'selectCfmWtPSEEnd', 'selectCfmWtPSEStart'],
break; 'cfmCtEteStart': ['Start', 'selectCfmCtEteStart'],
case 'cfmPtEteSEStart': 'cfmCtEteEnd': ['End', 'selectCfmCtEteEnd'],
if(this.isStartSelected === true && data.task !== this.selectCfmPtEteSEStart) this.selectCfmPtEteSEEnd = null; 'cfmCtEteSEStart': ['Start', 'selectCfmCtEteSEStart', 'selectCfmCtEteSEEnd'],
data.category = 'Start'; 'cfmCtEteSEEnd': ['End', 'selectCfmCtEteSEEnd', 'selectCfmCtEteSEStart']
this.selectCfmPtEteSEStart = data; };
break;
case 'cfmPtEteSEEnd': const updateSelection = (key, mainSelector, secondarySelector) => {
if(this.isEndSelected === true && data.task !== this.selectCfmPtEteSEEnd)this.selectCfmPtEteSEStart = null; if (this[mainSelector]) {
data.category = 'End'; if (data.task !== this[mainSelector]) this[secondarySelector] = null;
this.selectCfmPtEteSEEnd = data; }
break; data.category = categoryMapping[key][0];
case 'cfmPtPStart': this[mainSelector] = data;
data.category = 'From'; };
this.selectCfmPtPStart = [data];
break; if (categoryMapping[data.category]) {
case 'cfmPtPEnd': const [category, mainSelector, secondarySelector] = categoryMapping[data.category];
data.category = 'To'; if (secondarySelector) {
this.selectCfmPtPEnd = [data]; updateSelection(data.category, mainSelector, secondarySelector);
break; } else {
case 'cfmPtPSEStart': data.category = category;
if(this.isStartSelected === true && data.task !== this.selectCfmPtPSEStart) this.selectCfmPtPSEEnd = null; this[mainSelector] = [data];
data.category = 'From'; }
this.selectCfmPtPSEStart = data; } else if (this.selectedRuleType === 'Activity duration') {
break; this.durationData = [data.task];
case 'cfmPtPSEEnd': }
if(this.isEndSelected === true && data.task !== this.selectCfmPtPSEEnd)this.selectCfmPtPSEStart = null;
data.category = 'To';
this.selectCfmPtPSEEnd = data;
break;
// Waiting time
case 'cfmWtEteStart':
data.category = 'Start';
this.selectCfmWtEteStart = [data];
break;
case 'cfmWtEteEnd':
data.category = 'End';
this.selectCfmWtEteEnd = [data];
break;
case 'cfmWtEteSEStart':
if(this.isStartSelected === true && data.task !== this.selectCfmWtEteSEStart) this.selectCfmWtEteSEEnd = null;
data.category = 'Start';
this.selectCfmWtEteSEStart = data;
break;
case 'cfmWtEteSEEnd':
if(this.isEndSelected === true && data.task !== this.selectCfmWtEteSEEnd)this.selectCfmWtEteSEStart = null;
data.category = 'End';
this.selectCfmWtEteSEEnd = data;
break;
case 'cfmWtPStart':
data.category = 'From';
this.selectCfmWtPStart = [data];
break;
case 'cfmWtPEnd':
data.category = 'To';
this.selectCfmWtPEnd = [data];
break;
case 'cfmWtPSEStart':
if(this.isStartSelected === true && data.task !== this.selectCfmWtPSEStart) this.selectCfmWtPSEEnd = null;
data.category = 'From';
this.selectCfmWtPSEStart = data;
break;
case 'cfmWtPSEEnd':
if(this.isEndSelected === true && data.task !== this.selectCfmWtPSEEnd)this.selectCfmWtPSEStart = null;
data.category = 'To';
this.selectCfmWtPSEEnd = data;
break;
// Cycle time
case 'cfmCtEteStart':
data.category = 'Start';
this.selectCfmCtEteStart = [data];
break;
case 'cfmCtEteEnd':
data.category = 'End';
this.selectCfmCtEteEnd = [data];
break;
case 'cfmCtEteSEStart':
if(this.isStartSelected === true && data.task !== this.selectCfmCtEteSEStart) this.selectCfmCtEteSEEnd = null;
data.category = 'Start';
this.selectCfmCtEteSEStart = data;
break;
case 'cfmCtEteSEEnd':
if(this.isEndSelected === true && data.task !== this.selectCfmCtEteSEEnd)this.selectCfmCtEteSEStart = null;
data.category = 'End';
this.selectCfmCtEteSEEnd = data;
break;
default:
if(this.selectedRuleType === 'Activity duration') this.durationData = [data.task];
break;
};
}); });
this.$emitter.on('getListSequence', (data) => { this.$emitter.on('getListSequence', (data) => {
switch (data.category) { switch (data.category) {