diff --git a/src/components/Discover/Conformance/ConformanceSidebar.vue b/src/components/Discover/Conformance/ConformanceSidebar.vue index aea202a..8261cc6 100644 --- a/src/components/Discover/Conformance/ConformanceSidebar.vue +++ b/src/components/Discover/Conformance/ConformanceSidebar.vue @@ -28,7 +28,8 @@ - + @@ -56,6 +57,12 @@ export default { isShowBar: false, visibleLeft: false, selectConformanceTask: null, + selectConformanceStartAndEnd: null, + selectConformanceStart: null, + selectConformanceEnd: null, + selectConformanceFrom: null, + selectConformanceTo: null, + listSeq: [], } }, components: { @@ -73,8 +80,12 @@ export default { this.$emitter.emit('coverPlate', true); // Have activity this.selectConformanceTask = null; - this.$emitter.emit('reset', null); + // Activity sequence + this.selectConformanceStartAndEnd = null; + this.listSeq = null; + // 其他子元件 reset + this.$emitter.emit('reset', null); // reset 成功訊息 this.$toast.success('Reset Success.'); }, @@ -83,12 +94,46 @@ export default { */ async submit() { let data; + let isMode = ''; + switch (this.selectedMode) { + case 'Directly follows': + isMode = 'directly-follows'; + break; + case 'Eventually follows': + isMode = 'a'; + break; + case 'Short loop(s)': + isMode = 'b'; + break; + case 'Self loop(s)': + isMode = 'c'; + break; + default: + break; + }; - if(this.selectedRuleType === 'Have activity') { + if(this.selectedRuleType === 'Have activity') { // Activity Sequence 選 Have activity(s) 的行為 if(!this.selectConformanceTask?.length) return this.$toast.error('Not selected.'); else data = { type: 'contains-tasks', tasks: this.selectConformanceTask, + }; + }else if(this.selectedRuleType === 'Activity sequence') { // Activity Sequence 選 Start & End 的行為 + if(this.selectedActivitySequence === 'Start & End'){ + if(this.selectConformanceStartAndEnd === null || this.selectConformanceStartAndEnd.length === 0) return this.$toast.error('Both Start and End must be selected.'); + else data = { + type: 'start-end', + starts_with: this.selectConformanceStartAndEnd[0], + ends_with: this.selectConformanceStartAndEnd[1], + }; + }else if(this.selectedActivitySequence === 'Sequence'){ // Activity Sequence 選 Sequence 的行為 + if(this.listSeq.length < 2) return this.$toast.error('Select two or more.'); + else { + data = { + type: isMode, + task_seq: this.listSeq, + } + } } } @@ -107,6 +152,30 @@ export default { this.$emitter.on('actListData', (data) => { this.selectConformanceTask = data; }); + this.$emitter.on('actRadioData', (data) => { + switch (data.category) { + case 'Start': + this.selectConformanceStart = data.task; + break; + case 'End': + this.selectConformanceEnd = data.task; + break; + case 'From': + this.selectConformanceFrom = data.task; + break; + case 'To': + this.selectConformanceTo = data.task; + break; + default: + break; + }; + if(this.selectConformanceStart !== null && this.selectConformanceEnd !== null){ + this.selectConformanceStartAndEnd = [this.selectConformanceStart, this.selectConformanceEnd]; + }; + }); + this.$emitter.on('getListSequence', (data) => { + this.listSeq = data; + }) }, } diff --git a/src/components/Discover/Conformance/ConformanceSidebar/ActList.vue b/src/components/Discover/Conformance/ConformanceSidebar/ActList.vue index e3f5dab..0a596c9 100644 --- a/src/components/Discover/Conformance/ConformanceSidebar/ActList.vue +++ b/src/components/Discover/Conformance/ConformanceSidebar/ActList.vue @@ -14,12 +14,17 @@ diff --git a/src/components/Discover/Conformance/ConformanceSidebar/ActSeqDrag.vue b/src/components/Discover/Conformance/ConformanceSidebar/ActSeqDrag.vue index 5efd518..e80d654 100644 --- a/src/components/Discover/Conformance/ConformanceSidebar/ActSeqDrag.vue +++ b/src/components/Discover/Conformance/ConformanceSidebar/ActSeqDrag.vue @@ -18,13 +18,13 @@

Sequence

-
+

Please drag and drop activity(s) here and sort.

- +