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