refactor on actRadioData
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -183,115 +183,51 @@ export default {
|
|||||||
});
|
});
|
||||||
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':
|
|
||||||
if(this.isEndSelected === true && data.task !== this.selectCfmPtEteSEEnd)this.selectCfmPtEteSEStart = null;
|
|
||||||
data.category = 'End';
|
|
||||||
this.selectCfmPtEteSEEnd = data;
|
|
||||||
break;
|
|
||||||
case 'cfmPtPStart':
|
|
||||||
data.category = 'From';
|
|
||||||
this.selectCfmPtPStart = [data];
|
|
||||||
break;
|
|
||||||
case 'cfmPtPEnd':
|
|
||||||
data.category = 'To';
|
|
||||||
this.selectCfmPtPEnd = [data];
|
|
||||||
break;
|
|
||||||
case 'cfmPtPSEStart':
|
|
||||||
if(this.isStartSelected === true && data.task !== this.selectCfmPtPSEStart) this.selectCfmPtPSEEnd = null;
|
|
||||||
data.category = 'From';
|
|
||||||
this.selectCfmPtPSEStart = data;
|
|
||||||
break;
|
|
||||||
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;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const updateSelection = (key, mainSelector, secondarySelector) => {
|
||||||
|
if (this[mainSelector]) {
|
||||||
|
if (data.task !== this[mainSelector]) this[secondarySelector] = null;
|
||||||
|
}
|
||||||
|
data.category = categoryMapping[key][0];
|
||||||
|
this[mainSelector] = data;
|
||||||
|
};
|
||||||
|
|
||||||
|
if (categoryMapping[data.category]) {
|
||||||
|
const [category, mainSelector, secondarySelector] = categoryMapping[data.category];
|
||||||
|
if (secondarySelector) {
|
||||||
|
updateSelection(data.category, mainSelector, secondarySelector);
|
||||||
|
} else {
|
||||||
|
data.category = category;
|
||||||
|
this[mainSelector] = [data];
|
||||||
|
}
|
||||||
|
} else if (this.selectedRuleType === 'Activity duration') {
|
||||||
|
this.durationData = [data.task];
|
||||||
|
}
|
||||||
});
|
});
|
||||||
this.$emitter.on('getListSequence', (data) => {
|
this.$emitter.on('getListSequence', (data) => {
|
||||||
switch (data.category) {
|
switch (data.category) {
|
||||||
|
|||||||
Reference in New Issue
Block a user