From 28cdf9822dd82ec9259b93e7274cb3f00c62e793 Mon Sep 17 00:00:00 2001 From: Cindy Chang Date: Mon, 22 Jul 2024 14:59:24 +0800 Subject: [PATCH] refactor setTaskByCategoryOnRadioEmitting --- .../Conformance/ConformanceSidebar.vue | 210 +++++++++--------- 1 file changed, 111 insertions(+), 99 deletions(-) diff --git a/src/components/Discover/Conformance/ConformanceSidebar.vue b/src/components/Discover/Conformance/ConformanceSidebar.vue index 020f212..ea5da52 100644 --- a/src/components/Discover/Conformance/ConformanceSidebar.vue +++ b/src/components/Discover/Conformance/ConformanceSidebar.vue @@ -1138,106 +1138,118 @@ export default { this.$emitter.emit('coverPlate', false); this.$toast.success(i18next.t("Conformance.RuleApplied")); }, - setTaskByCategoryOnRadioEmitting () { - this.$emitter.on('actRadioData', (data) => { - switch (data.category) { - // Activity sequence - case 'cfmSeqStart': - if(this.isStartSelected === true && data.task !== this.selectCfmSeqStart) this.selectCfmSeqEnd = null; - this.selectCfmSeqStart = data.task; - break; - case 'cfmSeqEnd': - if(this.isEndSelected === true && data.task !== this.selectCfmSeqEnd) this.selectCfmSeqStart = null; - this.selectCfmSeqEnd = data.task; - break; - // Processing time - case 'cfmPtEteStart': - this.selectCfmPtEteStart = data.task; - break; - case 'cfmPtEteEnd': - this.selectCfmPtEteEnd = data.task; - break; - case 'cfmPtEteSEStart': - if(this.isStartSelected === true && data.task !== this.selectCfmPtEteSEStart) this.selectCfmPtEteSEEnd = null; - this.selectCfmPtEteSEStart = data.task; - break; - case 'cfmPtEteSEEnd': - if(this.isEndSelected === true && data.task !== this.selectCfmPtEteSEEnd) this.selectCfmPtEteSEStart = null; - this.selectCfmPtEteSEEnd = data.task; - break; - case 'cfmPtPStart': - this.selectCfmPtPStart = data.task; - break; - case 'cfmPtPEnd': - this.selectCfmPtPEnd = data.task; - break; - case 'cfmPtPSEStart': - if(this.isStartSelected === true && data.task !== this.selectCfmPtPSEStart) { - this.selectCfmPtPSEEnd = null; - } - this.selectCfmPtPSEStart = data.task; - break; - case 'cfmPtPSEEnd': - if(this.isEndSelected === true && data.task !== this.selectCfmPtPSEEnd) { - this.selectCfmPtPSEStart = null; - } - this.selectCfmPtPSEEnd = data.task; - break; - // Waiting time - case 'cfmWtEteStart': - this.selectCfmWtEteStart = data.task; - break; - case 'cfmWtEteEnd': - this.selectCfmWtEteEnd = data.task; - break; - case 'cfmWtEteSEStart': - if(this.isStartSelected === true && data.task !== this.selectCfmWtEteSEStart) { - this.selectCfmWtEteSEEnd = null; - } - this.selectCfmWtEteSEStart = data.task; - break; - case 'cfmWtEteSEEnd': - if(this.isEndSelected === true && data.task !== this.selectCfmWtEteSEEnd) { - this.selectCfmWtEteSEStart = null; - } - this.selectCfmWtEteSEEnd = data.task; - break; - case 'cfmWtPStart': - this.selectCfmWtPStart = data.task; - break; - case 'cfmWtPEnd': - this.selectCfmWtPEnd = data.task; - break; - case 'cfmWtPSEStart': - if(this.isStartSelected === true && data.task !== this.selectCfmWtPSEStart) this.selectCfmWtPSEEnd = null; - this.selectCfmWtPSEStart = data.task; - break; - case 'cfmWtPSEEnd': - if(this.isEndSelected === true && data.task !== this.selectCfmWtPSEEnd) this.selectCfmWtPSEStart = null; - this.selectCfmWtPSEEnd = data.task; - break; - // Cycle time - case 'cfmCtEteStart': - this.selectCfmCtEteStart = data.task; - break; - case 'cfmCtEteEnd': - this.selectCfmCtEteEnd = data.task; - break; - case 'cfmCtEteSEStart': - if(this.isStartSelected === true && data.task !== this.selectCfmCtEteSEStart) this.selectCfmCtEteSEEnd = null; - this.selectCfmCtEteSEStart = data.task; - break; - case 'cfmCtEteSEEnd': - if(this.isEndSelected === true && data.task !== this.selectCfmCtEteSEEnd) this.selectCfmCtEteSEStart = null; - this.selectCfmCtEteSEEnd = data.task; - break; - default: - if(this.selectedRuleType === 'Activity duration') { - this.selectDurationData = [data.task]; + /** + * 設置根據類別的任務選擇邏輯 + */ + setTaskByCategoryOnRadioEmitting() { + this.$emitter.on('actRadioData', (data) => { + const handlers = { + 'cfmSeqStart': this.handleCfmSeqStart, + 'cfmSeqEnd': this.handleCfmSeqEnd, + 'cfmPtEteStart': this.handleSimpleSelection.bind(this, 'selectCfmPtEteStart'), + 'cfmPtEteEnd': this.handleSimpleSelection.bind(this, 'selectCfmPtEteEnd'), + 'cfmPtEteSEStart': this.handleCfmPtEteSEStart, + 'cfmPtEteSEEnd': this.handleCfmPtEteSEEnd, + 'cfmPtPStart': this.handleSimpleSelection.bind(this, 'selectCfmPtPStart'), + 'cfmPtPEnd': this.handleSimpleSelection.bind(this, 'selectCfmPtPEnd'), + 'cfmPtPSEStart': this.handleCfmPtPSEStart, + 'cfmPtPSEEnd': this.handleCfmPtPSEEnd, + 'cfmWtEteStart': this.handleSimpleSelection.bind(this, 'selectCfmWtEteStart'), + 'cfmWtEteEnd': this.handleSimpleSelection.bind(this, 'selectCfmWtEteEnd'), + 'cfmWtEteSEStart': this.handleCfmWtEteSEStart, + 'cfmWtEteSEEnd': this.handleCfmWtEteSEEnd, + 'cfmWtPStart': this.handleSimpleSelection.bind(this, 'selectCfmWtPStart'), + 'cfmWtPEnd': this.handleSimpleSelection.bind(this, 'selectCfmWtPEnd'), + 'cfmWtPSEStart': this.handleCfmWtPSEStart, + 'cfmWtPSEEnd': this.handleCfmWtPSEEnd, + 'cfmCtEteStart': this.handleSimpleSelection.bind(this, 'selectCfmCtEteStart'), + 'cfmCtEteEnd': this.handleSimpleSelection.bind(this, 'selectCfmCtEteEnd'), + 'cfmCtEteSEStart': this.handleCfmCtEteSEStart, + 'cfmCtEteSEEnd': this.handleCfmCtEteSEEnd }; - break; - }; - }); + + if (handlers[data.category]) { + handlers[data.category].call(this, data.task); + } else if (this.selectedRuleType === 'Activity duration') { + this.selectDurationData = [data.task]; + } + }); + }, + handleCfmSeqStart(task) { + if (this.isStartSelected && task !== this.selectCfmSeqStart) { + this.selectCfmSeqEnd = null; + } + this.selectCfmSeqStart = task; + }, + + handleCfmSeqEnd(task) { + if (this.isEndSelected && task !== this.selectCfmSeqEnd) { + this.selectCfmSeqStart = null; + } + this.selectCfmSeqEnd = task; + }, + handleSimpleSelection(field, task) { + this[field] = task; + }, + handleCfmPtEteSEStart(task) { + if (this.isStartSelected && task !== this.selectCfmPtEteSEStart) { + this.selectCfmPtEteSEEnd = null; + } + this.selectCfmPtEteSEStart = task; + }, + handleCfmPtEteSEEnd(task) { + if (this.isEndSelected && task !== this.selectCfmPtEteSEEnd) { + this.selectCfmPtEteSEStart = null; + } + this.selectCfmPtEteSEEnd = task; + }, + handleCfmPtPSEStart(task) { + if (this.isStartSelected && task !== this.selectCfmPtPSEStart) { + this.selectCfmPtPSEEnd = null; + } + this.selectCfmPtPSEStart = task; + }, + handleCfmPtPSEEnd(task) { + if (this.isEndSelected && task !== this.selectCfmPtPSEEnd) { + this.selectCfmPtPSEStart = null; + } + this.selectCfmPtPSEEnd = task; + }, + handleCfmWtEteSEStart(task) { + if (this.isStartSelected && task !== this.selectCfmWtEteSEStart) { + this.selectCfmWtEteSEEnd = null; + } + this.selectCfmWtEteSEStart = task; + }, + handleCfmWtEteSEEnd(task) { + if (this.isEndSelected && task !== this.selectCfmWtEteSEEnd) { + this.selectCfmWtEteSEStart = null; + } + this.selectCfmWtEteSEEnd = task; + }, + handleCfmWtPSEStart(task) { + if (this.isStartSelected && task !== this.selectCfmWtPSEStart) { + this.selectCfmWtPSEEnd = null; + } + this.selectCfmWtPSEStart = task; + }, + handleCfmWtPSEEnd(task) { + if (this.isEndSelected && task !== this.selectCfmWtPSEEnd) { + this.selectCfmWtPSEStart = null; + } + this.selectCfmWtPSEEnd = task; + }, + handleCfmCtEteSEStart(task) { + if (this.isStartSelected && task !== this.selectCfmCtEteSEStart) { + this.selectCfmCtEteSEEnd = null; + } + this.selectCfmCtEteSEStart = task; + }, + handleCfmCtEteSEEnd(task) { + if (this.isEndSelected && task !== this.selectCfmCtEteSEEnd) { + this.selectCfmCtEteSEStart = null; + } + this.selectCfmCtEteSEEnd = task; }, setTaskByCategoryOnListSeqEmitting(){ this.$emitter.on('getListSequence', (data) => {