@@ -152,6 +155,16 @@
Issue Listinfo
+ Issues List
+
+
+ |
+ |
+ |
+ |
+ |
+
+
|
@@ -500,8 +513,9 @@ export default {
color: '#334155',
align: 'inner',
callback: function(value, index, values) {
- if (value === 0) return `${value * 100}%`;
- else if (value === 1) return `${value * 100}%`;
+ if (value === 0 || value === 1) {
+ return `${value * 100}%`;
+ }
},
},
grid: {
@@ -585,8 +599,9 @@ export default {
color: '#334155',
align: 'inner',
callback: function(value, index, values) {
- if (index === 0) return shortScaleNumber(value);
- else if (index === values.length - 1) return shortScaleNumber(value);
+ if (index === 0 || index === values.length - 1) {
+ return shortScaleNumber(value);
+ }
},
},
grid: {
@@ -615,7 +630,7 @@ export default {
let max = yMax * 1.1;
let xVal = timeRange(xMin, xMax, 100);
let yVal = yTimeRange(data, 100, yMin, yMax);
- data = xVal.map((x, index) => ({ x, y: yVal[index] }));
+ xVal.map((x, index) => ({ x, y: yVal[index] }));
let formattedXVal = xVal.map(value => formatTime(value));
formattedXVal = formatMaxTwo(formattedXVal);
let selectTimeMinIndex = getXIndex(xVal, this.selectDurationTime.min);
diff --git a/src/components/Discover/Conformance/ConformanceSidebar/ActSeqDrag.vue b/src/components/Discover/Conformance/ConformanceSidebar/ActSeqDrag.vue
index 11f05dc..08dec0c 100644
--- a/src/components/Discover/Conformance/ConformanceSidebar/ActSeqDrag.vue
+++ b/src/components/Discover/Conformance/ConformanceSidebar/ActSeqDrag.vue
@@ -55,7 +55,6 @@ export default {
},
computed: {
datadata: function() {
- // TODO Activity List 的 dblclick, drag & drop 要改假刪除
// Activity List 要排序
let newData;
if(this.data !== null) {
@@ -114,14 +113,16 @@ export default {
// 拖曳結束要顯示箭頭,但最後一個不用
const lastChild = evt.item.lastChild;
const listIndex = this.listSequence.length - 1
- evt.oldIndex !== listIndex ? lastChild.style.display = '' : null;
+ if (evt.oldIndex !== listIndex) {
+ lastChild.style.display = '';
+ }
// reset: 拖曳最後一個元素時,倒數第二的元素的箭頭要隱藏
this.lastItemIndex = null;
},
},
created() {
let newlist = JSON.parse(JSON.stringify(this.listSeq));
- this.isSubmit ? this.listSequence = newlist : this.listSequence = [];
+ this.listSequence = this.isSubmit ? newlist : [];
this.$emitter.on('reset', (data) => {
this.listSequence = [];
});
diff --git a/src/components/Discover/Conformance/ConformanceSidebar/ConformanceSelectResult.vue b/src/components/Discover/Conformance/ConformanceSidebar/ConformanceSelectResult.vue
index 613424a..9717d06 100644
--- a/src/components/Discover/Conformance/ConformanceSidebar/ConformanceSelectResult.vue
+++ b/src/components/Discover/Conformance/ConformanceSidebar/ConformanceSelectResult.vue
@@ -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) {
diff --git a/src/components/Discover/Conformance/ConformanceSidebar/ConformanceShowBar.vue b/src/components/Discover/Conformance/ConformanceSidebar/ConformanceShowBar.vue
index d2627b2..bf6c726 100644
--- a/src/components/Discover/Conformance/ConformanceSidebar/ConformanceShowBar.vue
+++ b/src/components/Discover/Conformance/ConformanceSidebar/ConformanceShowBar.vue
@@ -288,7 +288,11 @@ export default {
*/
setStartAndEndData(data, category, task) {
let oppositeCategory = '';
- category === 'start' ? oppositeCategory = 'end' : oppositeCategory = 'start';
+ if (category === 'start') {
+ oppositeCategory = 'end';
+ } else {
+ oppositeCategory = 'start';
+ };
let newData = data.filter(i => i[category] === task).map(i => i[oppositeCategory]);
newData = [...new Set(newData)];
return newData;
@@ -361,8 +365,6 @@ export default {
this.task = this.isSubmitShowDataSeq.task;
this.isStartSelected = this.isSubmitShowDataSeq.isStartSelected;
this.isEndSelected = this.isSubmitShowDataSeq.isEndSelected;
- // this.taskStart = this.isSubmitShowDataSeq.taskStart;
- // this.taskEnd = this.isSubmitShowDataSeq.taskEnd;
break;
case 'Processing time':
switch (this.selectedProcessScope) {
@@ -370,45 +372,36 @@ export default {
this.task = this.isSubmitShowDataPtEte.task;
this.isStartSelected = this.isSubmitShowDataPtEte.isStartSelected;
this.isEndSelected = this.isSubmitShowDataPtEte.isEndSelected;
- // this.taskStart = this.isSubmitShowDataPtEte.taskStart;
- // this.taskEnd = this.isSubmitShowDataPtEte.taskEnd;
break;
case 'Partial':
this.task = this.isSubmitShowDataPtP.task;
this.isStartSelected = this.isSubmitShowDataPtP.isStartSelected;
this.isEndSelected = this.isSubmitShowDataPtP.isEndSelected;
- // this.taskStart = this.isSubmitShowDataPtP.taskStart;
- // this.taskEnd = this.isSubmitShowDataPtP.taskEnd;
break;
default:
break;
}
break;
case 'Waiting time':
- switch (this.selectedProcessScope) {
- case 'End to end':
- this.task = this.isSubmitShowDataWtEte.task;
- this.isStartSelected = this.isSubmitShowDataWtEte.isStartSelected;
- this.isEndSelected = this.isSubmitShowDataWtEte.isEndSelected;
- // this.taskStart = this.isSubmitShowDataWtEte.taskStart;
- // this.taskEnd = this.isSubmitShowDataWtEte.taskEnd;
- break;
- case 'Partial':
- this.task = this.isSubmitShowDataWtP.task;
- this.isStartSelected = this.isSubmitShowDataWtP.isStartSelected;
- this.isEndSelected = this.isSubmitShowDataWtP.isEndSelected;
- // this.taskStart = this.isSubmitShowDataWtP.taskStart;
- // this.taskEnd = this.isSubmitShowDataWtP.taskEnd;
- break;
- default:
- break;
- }
+ switch (this.selectedProcessScope) {
+ case 'End to end':
+ this.task = this.isSubmitShowDataWtEte.task;
+ this.isStartSelected = this.isSubmitShowDataWtEte.isStartSelected;
+ this.isEndSelected = this.isSubmitShowDataWtEte.isEndSelected;
+ break;
+ case 'Partial':
+ this.task = this.isSubmitShowDataWtP.task;
+ this.isStartSelected = this.isSubmitShowDataWtP.isStartSelected;
+ this.isEndSelected = this.isSubmitShowDataWtP.isEndSelected;
+ break;
+ default:
+ break;
+ }
+ break;
case 'Cycle time':
this.task = this.isSubmitShowDataCt.task;
this.isStartSelected = this.isSubmitShowDataCt.isStartSelected;
this.isEndSelected = this.isSubmitShowDataCt.isEndSelected;
- // this.taskStart = this.isSubmitShowDataCt.taskStart;
- // this.taskEnd = this.isSubmitShowDataCt.taskEnd;
break;
default:
break;
diff --git a/src/components/Discover/Conformance/MoreModal.vue b/src/components/Discover/Conformance/MoreModal.vue
index e17546a..be6a7e9 100644
--- a/src/components/Discover/Conformance/MoreModal.vue
+++ b/src/components/Discover/Conformance/MoreModal.vue
@@ -14,6 +14,7 @@
| |