refactor on actRadioData
This commit is contained in:
@@ -55,7 +55,6 @@ export default {
|
||||
},
|
||||
computed: {
|
||||
datadata: function() {
|
||||
// TODO Activity List 的 dblclick, drag & drop 要改假刪除
|
||||
// Activity List 要排序
|
||||
let newData;
|
||||
if(this.data !== null) {
|
||||
|
||||
@@ -182,116 +182,52 @@ export default {
|
||||
this.containstTasksData = data;
|
||||
});
|
||||
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;
|
||||
};
|
||||
let data = JSON.parse(JSON.stringify(newData)); // 深拷貝原始 cases 的內容
|
||||
|
||||
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) {
|
||||
|
||||
Reference in New Issue
Block a user