From 15805b4dc58be1761722f8ed09230fe43a8056f9 Mon Sep 17 00:00:00 2001 From: Cindy Chang Date: Fri, 26 Jul 2024 09:49:39 +0800 Subject: [PATCH 01/19] refactor on actRadioData --- src/assets/vendors.css | 2 +- .../Conformance/ConformanceResults.vue | 1 + .../ConformanceSidebar/ActSeqDrag.vue | 1 - .../ConformanceSelectResult.vue | 156 ++++++------------ 4 files changed, 48 insertions(+), 112 deletions(-) diff --git a/src/assets/vendors.css b/src/assets/vendors.css index fd323fe..dd8f066 100644 --- a/src/assets/vendors.css +++ b/src/assets/vendors.css @@ -43,7 +43,7 @@ } .p-sidebar-header { @apply bg-neutral-200 border-b border-neutral-300 !py-2 !justify-between -}; +} .p-sidebar-right .p-sidebar-header { @apply flex-row-reverse !justify-end text-neutral-500 } diff --git a/src/components/Discover/Conformance/ConformanceResults.vue b/src/components/Discover/Conformance/ConformanceResults.vue index c2a4859..b2127c5 100644 --- a/src/components/Discover/Conformance/ConformanceResults.vue +++ b/src/components/Discover/Conformance/ConformanceResults.vue @@ -104,6 +104,7 @@

Short Loop(s)

+
diff --git a/src/components/Discover/Conformance/ConformanceSidebar/ActSeqDrag.vue b/src/components/Discover/Conformance/ConformanceSidebar/ActSeqDrag.vue index 11f05dc..e02c3cf 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) { 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) { From 71b58af96d124dc2cd7cbd30ba882dec2d2669b0 Mon Sep 17 00:00:00 2001 From: Cindy Chang Date: Fri, 26 Jul 2024 09:51:47 +0800 Subject: [PATCH 02/19] add needed break --- .../ConformanceSidebar/ConformanceShowBar.vue | 37 ++++++++++--------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/src/components/Discover/Conformance/ConformanceSidebar/ConformanceShowBar.vue b/src/components/Discover/Conformance/ConformanceSidebar/ConformanceShowBar.vue index d2627b2..c895bcd 100644 --- a/src/components/Discover/Conformance/ConformanceSidebar/ConformanceShowBar.vue +++ b/src/components/Discover/Conformance/ConformanceSidebar/ConformanceShowBar.vue @@ -385,24 +385,25 @@ export default { } 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; + // 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; + } + break; case 'Cycle time': this.task = this.isSubmitShowDataCt.task; this.isStartSelected = this.isSubmitShowDataCt.isStartSelected; From 2ca4fdd0c60b56177fb5680af232c1ba3830e18e Mon Sep 17 00:00:00 2001 From: Cindy Chang Date: Fri, 26 Jul 2024 10:40:45 +0800 Subject: [PATCH 03/19] sonar low --- src/components/Discover/Conformance/ConformanceResults.vue | 1 + src/components/Discover/Conformance/MoreModal.vue | 1 + src/components/Discover/Map/Filter/ActAndSeq.vue | 1 + src/components/Discover/Map/Filter/Attributes.vue | 7 +++++++ src/components/Discover/Map/Filter/Trace.vue | 1 + src/components/Discover/Map/SidebarState.vue | 4 +++- src/components/Discover/Map/SidebarTraces.vue | 1 + 7 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/components/Discover/Conformance/ConformanceResults.vue b/src/components/Discover/Conformance/ConformanceResults.vue index b2127c5..bb6b5e2 100644 --- a/src/components/Discover/Conformance/ConformanceResults.vue +++ b/src/components/Discover/Conformance/ConformanceResults.vue @@ -153,6 +153,7 @@

Issue Listinfo

+
diff --git a/src/components/Discover/Conformance/MoreModal.vue b/src/components/Discover/Conformance/MoreModal.vue index e17546a..9cfef96 100644 --- a/src/components/Discover/Conformance/MoreModal.vue +++ b/src/components/Discover/Conformance/MoreModal.vue @@ -14,6 +14,7 @@

+ diff --git a/src/components/Discover/Map/Filter/ActAndSeq.vue b/src/components/Discover/Map/Filter/ActAndSeq.vue index 5093e4d..92e1e4b 100644 --- a/src/components/Discover/Map/Filter/ActAndSeq.vue +++ b/src/components/Discover/Map/Filter/ActAndSeq.vue @@ -7,6 +7,7 @@
Trace
+ diff --git a/src/components/Discover/Map/Filter/Attributes.vue b/src/components/Discover/Map/Filter/Attributes.vue index f2134e2..6f4362a 100644 --- a/src/components/Discover/Map/Filter/Attributes.vue +++ b/src/components/Discover/Map/Filter/Attributes.vue @@ -134,6 +134,9 @@ export default { return { filterAttrs } }, + components: { + InputNumber, + }, data() { return { selectedAttName: {}, @@ -224,6 +227,7 @@ export default { let max = this.valueData.max; const type = this.valueData.type; switch (type) { + case 'dummy': case 'date': xAxisMin = new Date(min).getTime(); xAxisMax = new Date(max).getTime(); @@ -268,6 +272,7 @@ export default { const type = this.selectedAttName.type; switch (type) { + case 'dummy': //sonar-qube case 'date': start = getMoment(this.startTime).format('YYYY-MM-DDTHH:mm:00'); end = getMoment(this.endTime).format('YYYY-MM-DDTHH:mm:00'); @@ -366,6 +371,7 @@ export default { const min = this.valueData.min; const max = this.valueData.max; switch (this.selectedAttName.type) { + case 'dummy': //sonar-qube case 'date': // 除了 date 外雙向綁定為空 this.valueStart = null; @@ -607,6 +613,7 @@ export default { let end = sliderData[e[1].toFixed()]; // 取得 index,須為整數。 switch (this.selectedAttName.type) { + case 'dummy': case 'date': this.startTime = new Date(start); this.endTime = new Date(end); diff --git a/src/components/Discover/Map/Filter/Trace.vue b/src/components/Discover/Map/Filter/Trace.vue index f07f845..9003ca6 100644 --- a/src/components/Discover/Map/Filter/Trace.vue +++ b/src/components/Discover/Map/Filter/Trace.vue @@ -21,6 +21,7 @@

Activity
+ diff --git a/src/components/Discover/Map/SidebarState.vue b/src/components/Discover/Map/SidebarState.vue index 0010af6..e75cd3e 100644 --- a/src/components/Discover/Map/SidebarState.vue +++ b/src/components/Discover/Map/SidebarState.vue @@ -189,7 +189,9 @@ -
  • No data
  • +
      +
    • No data
    • +
    • {{ value }} arrow_forward  diff --git a/src/components/Discover/Map/SidebarTraces.vue b/src/components/Discover/Map/SidebarTraces.vue index 064dd29..38a05bb 100644 --- a/src/components/Discover/Map/SidebarTraces.vue +++ b/src/components/Discover/Map/SidebarTraces.vue @@ -12,6 +12,7 @@

    Trace
    + From a5f271ccc80182f5cb4503f310cef15e1b0f1dd3 Mon Sep 17 00:00:00 2001 From: Cindy Chang Date: Fri, 26 Jul 2024 10:48:38 +0800 Subject: [PATCH 04/19] sonar low --- src/App.vue | 2 -- src/components/Discover/Map/SidebarFilter.vue | 2 +- src/components/Discover/Map/SidebarState.vue | 1 + src/components/Discover/Map/SidebarView.vue | 4 ++-- src/stores/conformance.js | 3 ++- src/stores/files.js | 2 -- src/views/Discover/Performance/index.vue | 2 -- 7 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/App.vue b/src/App.vue index 68427b6..543cfdb 100644 --- a/src/App.vue +++ b/src/App.vue @@ -2,8 +2,6 @@ - - diff --git a/src/components/Discover/Map/SidebarFilter.vue b/src/components/Discover/Map/SidebarFilter.vue index b2d776e..eea9104 100644 --- a/src/components/Discover/Map/SidebarFilter.vue +++ b/src/components/Discover/Map/SidebarFilter.vue @@ -537,7 +537,7 @@ export default { this.isLoading = true; let data; let sele = this.selectValue; - let isExclude = sele[5] === 'Exclude' ? true : false; + let isExclude = sele[5] === 'Exclude'; let containmentMap = { 'Contained in': 'occurred-in', 'Started in': 'started-in', diff --git a/src/components/Discover/Map/SidebarState.vue b/src/components/Discover/Map/SidebarState.vue index e75cd3e..7525d75 100644 --- a/src/components/Discover/Map/SidebarState.vue +++ b/src/components/Discover/Map/SidebarState.vue @@ -62,6 +62,7 @@

    Case Duration

    Trace
    +
    diff --git a/src/components/Discover/Map/SidebarView.vue b/src/components/Discover/Map/SidebarView.vue index 6a3466b..9aecd5b 100644 --- a/src/components/Discover/Map/SidebarView.vue +++ b/src/components/Discover/Map/SidebarView.vue @@ -141,13 +141,13 @@ export default { if(e.target.value !== 'freq' && e.target.value !== 'duration') value = e.target.value; switch (type) { case 'freq': - value = value ? value : this.selectedFreq ? this.selectedFreq : 'total'; + value = value || this.selectedFreq || 'total'; this.dataLayerType = type; this.dataLayerOption = value; this.selectedFreq = value; break; case 'duration': - value = value ? value : this.selectedDuration ? this.selectedDuration : 'total'; + value = value || this.selectedDuration || 'total'; this.dataLayerType = type; this.dataLayerOption = value; this.selectedDuration = value; diff --git a/src/stores/conformance.js b/src/stores/conformance.js index 378d0f5..c81aea8 100644 --- a/src/stores/conformance.js +++ b/src/stores/conformance.js @@ -125,11 +125,12 @@ export default defineStore('conformanceStore', { c.completed_at = moment(c.completed_at).format('YYYY/MM/DD HH:mm'); c.facets.map(fac => { switch(fac.type) { + case 'dummy': //sonar-qube case 'duration-list': fac.value = fac.value.map(v => v !== null ? abbreviateNumber(new Decimal(v.toFixed(2))) : null); fac.value = (fac.value).map(v => v = v.trim()).join(', '); break; - default: + default: break; }; return fac; diff --git a/src/stores/files.js b/src/stores/files.js index 1cb11d7..3997a04 100644 --- a/src/stores/files.js +++ b/src/stores/files.js @@ -277,7 +277,6 @@ export default defineStore('filesStore', { break; } try { - const response = await axios.delete(api); await this.fetchAllFiles(); await deleteSuccess(); } catch(error) { @@ -296,7 +295,6 @@ export default defineStore('filesStore', { loading.isLoading = true; api = `/api/deletion/${id}`; try { - const response = await axios.delete(api); } catch(error) { apiError(error, 'Failed to Remove a Deletion Record.') } finally { diff --git a/src/views/Discover/Performance/index.vue b/src/views/Discover/Performance/index.vue index 70ac864..eecd207 100644 --- a/src/views/Discover/Performance/index.vue +++ b/src/views/Discover/Performance/index.vue @@ -267,8 +267,6 @@ export default { * @param { object } content titels 標題文字 */ getBarChart(chartData, content) { - const maxX = chartData.x_axis.max; - const minX = chartData.x_axis.min; const getMoment = (time)=> this.$moment(time).format('YYYY/M/D hh:mm:ss'); let datasets = chartData.data; let xData; From 47da80b424afbd13745df44ec10fd7da9a0928c3 Mon Sep 17 00:00:00 2001 From: Cindy Chang Date: Fri, 26 Jul 2024 11:16:05 +0800 Subject: [PATCH 05/19] sonar low --- src/components/Navbar.vue | 12 ++++++----- src/module/alertModal.js | 2 +- src/stores/files.js | 2 +- src/views/Files/Files.vue | 44 +++++++++++++++++++++------------------ 4 files changed, 33 insertions(+), 27 deletions(-) diff --git a/src/components/Navbar.vue b/src/components/Navbar.vue index 5402b6e..4e70599 100644 --- a/src/components/Navbar.vue +++ b/src/components/Navbar.vue @@ -122,16 +122,16 @@ export default { case 'Map': case 'CheckMap': // 沒有 filter Id, 沒有暫存 tempFilterId Id 就不能存檔 - return this.tempFilterId ? false : true; + return !this.tempFilterId; case 'Conformance': case 'CheckConformance': - return this.conformanceFilterTempCheckId || this.conformanceLogTempCheckId ? false : true; + return !(this.conformanceFilterTempCheckId || this.conformanceLogTempCheckId); } }, showIcon: function() { let result = true; - result = ['FILES', 'UPLOAD'].includes(this.navViewName) ? false : true; + result = !['FILES', 'UPLOAD'].includes(this.navViewName); return result; }, noShowSaveButton: function() { @@ -157,7 +157,7 @@ export default { if(this.$route.params.type === 'filter') { this.createFilterId= this.$route.params.fileId; } - this.showNavbarBreadcrumb = this.$route.matched[0].name !== ('AuthContainer') ? true : false; + this.showNavbarBreadcrumb = this.$route.matched[0].name !== ('AuthContainer'); this.getNavViewName(); }, methods: { @@ -251,9 +251,12 @@ export default { break; case 'COMPARE': switch(name) { + case 'dummy': case 'CompareDashboard': valueToSet = 'DASHBOARD'; break; + default: + break; } break; } @@ -274,7 +277,6 @@ export default { */ async saveModal() { // 協助判斷 MAP, CONFORMANCE 儲存有「送出」或「取消」。 - let isSaved; // 傳給 Map,通知 Sidebar 要關閉。 this.$emitter.emit('saveModal', false); diff --git a/src/module/alertModal.js b/src/module/alertModal.js index 7d482b7..8c6f73f 100644 --- a/src/module/alertModal.js +++ b/src/module/alertModal.js @@ -70,7 +70,7 @@ export async function saveFilter(addFilterId, next = null) { * @param { string } value File's name */ export async function savedSuccessfully(value) { - value = value ? value : ''; + value = value || ''; await Swal.fire({ title: 'SAVE COMPLETE', html: `${value} has been saved in Lucia.`, diff --git a/src/stores/files.js b/src/stores/files.js index 3997a04..4d99a29 100644 --- a/src/stores/files.js +++ b/src/stores/files.js @@ -214,7 +214,7 @@ export default defineStore('filesStore', { break; } try { - const response = await axios.put(api, data); + await axios.put(api, data); this.uploadFileName = null; await this.fetchAllFiles(); } catch(error) { diff --git a/src/views/Files/Files.vue b/src/views/Files/Files.vue index 6cdd860..f5ffc7c 100644 --- a/src/views/Files/Files.vue +++ b/src/views/Files/Files.vue @@ -116,26 +116,30 @@ - - + +
    @@ -320,7 +324,7 @@ * Compare Submit button disabled */ isCompareDisabledButton: function() { - let result = this.primaryDragData.length === 0 || this.secondaryDragData.length === 0 ? true : false; + let result = this.primaryDragData.length === 0 || this.secondaryDragData.length === 0; return result; }, /** From 83c87746e9a31c7fe1a5e33161968a20cfb11d92 Mon Sep 17 00:00:00 2001 From: Cindy Chang Date: Fri, 26 Jul 2024 11:18:52 +0800 Subject: [PATCH 06/19] sonar low all done --- src/views/Upload/index.vue | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/views/Upload/index.vue b/src/views/Upload/index.vue index 21ec78e..67323d9 100644 --- a/src/views/Upload/index.vue +++ b/src/views/Upload/index.vue @@ -34,6 +34,7 @@
    + @@ -125,7 +126,8 @@ export default { // 1. 長度一樣,強制每一個都要選 // 2. 不為 null undefind let hasValue = !this.selectedColumns.includes(undefined); - let result = !(this.selectedColumns.length === this.uploadDetail?.columns.length && this.informData.length === 0 && this.repeatedData.length === 0 && hasValue) ? true : false; + let result = !(this.selectedColumns.length === this.uploadDetail?.columns.length + && this.informData.length === 0 && this.repeatedData.length === 0 && hasValue); return result }, }, @@ -318,7 +320,6 @@ export default { if(vm.uploadId == null) { vm.$router.push({name: 'Files', replace: true}); vm.$toast.default('Please upload your file.', {position: 'bottom'}); - return } }) }, From c85ee86f085b0b5dbc8f969ceb0bda0847eb5770 Mon Sep 17 00:00:00 2001 From: Cindy Chang Date: Fri, 26 Jul 2024 11:39:02 +0800 Subject: [PATCH 07/19] sonar medium --- .../Conformance/ConformanceResults.vue | 37 +++++++++++++------ .../ConformanceSidebar/ActSeqDrag.vue | 4 +- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/src/components/Discover/Conformance/ConformanceResults.vue b/src/components/Discover/Conformance/ConformanceResults.vue index bb6b5e2..f8e6ccf 100644 --- a/src/components/Discover/Conformance/ConformanceResults.vue +++ b/src/components/Discover/Conformance/ConformanceResults.vue @@ -38,13 +38,6 @@

    - -
    @@ -105,6 +98,15 @@

    Short Loop(s)

    {{ item }}
    + + + + + + + + +
    @@ -154,6 +156,15 @@

    Issue Listinfo

    + + + + + + + + +
    @@ -502,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: { @@ -587,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: { @@ -617,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 e02c3cf..007ff95 100644 --- a/src/components/Discover/Conformance/ConformanceSidebar/ActSeqDrag.vue +++ b/src/components/Discover/Conformance/ConformanceSidebar/ActSeqDrag.vue @@ -113,7 +113,9 @@ 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; }, From 81315167aafcedd0311236489c85154d36112034 Mon Sep 17 00:00:00 2001 From: Cindy Chang Date: Mon, 29 Jul 2024 09:27:25 +0800 Subject: [PATCH 08/19] sonar medium --- .../Conformance/ConformanceSidebar/ActSeqDrag.vue | 2 +- .../ConformanceSidebar/ConformanceShowBar.vue | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/components/Discover/Conformance/ConformanceSidebar/ActSeqDrag.vue b/src/components/Discover/Conformance/ConformanceSidebar/ActSeqDrag.vue index 007ff95..08dec0c 100644 --- a/src/components/Discover/Conformance/ConformanceSidebar/ActSeqDrag.vue +++ b/src/components/Discover/Conformance/ConformanceSidebar/ActSeqDrag.vue @@ -122,7 +122,7 @@ export default { }, 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/ConformanceShowBar.vue b/src/components/Discover/Conformance/ConformanceSidebar/ConformanceShowBar.vue index c895bcd..d5173e0 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,15 +372,11 @@ 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; From 2150a4ac79e358382cee574e6193d1f514504815 Mon Sep 17 00:00:00 2001 From: Cindy Chang Date: Mon, 29 Jul 2024 10:58:53 +0800 Subject: [PATCH 09/19] sonar medium --- .../Conformance/ConformanceSidebar/ConformanceShowBar.vue | 6 ------ src/components/Discover/Conformance/MoreModal.vue | 6 ++---- src/components/Discover/Map/Filter/ActAndSeq.vue | 4 ++-- 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/src/components/Discover/Conformance/ConformanceSidebar/ConformanceShowBar.vue b/src/components/Discover/Conformance/ConformanceSidebar/ConformanceShowBar.vue index d5173e0..bf6c726 100644 --- a/src/components/Discover/Conformance/ConformanceSidebar/ConformanceShowBar.vue +++ b/src/components/Discover/Conformance/ConformanceSidebar/ConformanceShowBar.vue @@ -388,15 +388,11 @@ export default { 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; @@ -406,8 +402,6 @@ export default { 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 9cfef96..be6a7e9 100644 --- a/src/components/Discover/Conformance/MoreModal.vue +++ b/src/components/Discover/Conformance/MoreModal.vue @@ -286,7 +286,8 @@ export default { @apply sticky top-0 left-0 z-10 bg-neutral-10 } :deep(.p-datatable .p-datatable-thead > tr > th) { - @apply !border-y-0 border-neutral-500 bg-neutral-100 after:absolute after:left-0 after:w-full after:h-full after:block after:top-0 after:border-b after:border-t after:border-neutral-500 + @apply !border-y-0 border-neutral-500 bg-neutral-100 after:absolute after:left-0 after:w-full after:h-full after:block after:top-0 after:border-b after:border-t after:border-neutral-500; + white-space: nowrap; } :deep(.p-datatable .p-datatable-tbody > tr > td) { @apply border-neutral-500 !border-t-0 text-center @@ -295,9 +296,6 @@ export default { :deep(.p-column-header-content) { @apply justify-center } -:deep(.p-datatable .p-datatable-thead > tr > th) { - white-space: nowrap; -} :deep(.p-datatable.p-datatable-gridlines .p-datatable-tbody > tr > td) { min-width: 72px; max-width: 184px; diff --git a/src/components/Discover/Map/Filter/ActAndSeq.vue b/src/components/Discover/Map/Filter/ActAndSeq.vue index 92e1e4b..d231f1e 100644 --- a/src/components/Discover/Map/Filter/ActAndSeq.vue +++ b/src/components/Discover/Map/Filter/ActAndSeq.vue @@ -86,8 +86,8 @@ export default { data: function() { // Activity List 要排序 this.filteredData = this.filteredData.sort((x, y) => { - y.occurrences - x.occurrences - if(y.occurrences === x.occurrences) sortNumEngZhtwForFilter(x.label, y.label); + const diff = y.occurrences - x.occurrences; + return diff !== 0 ? diff : sortNumEngZhtwForFilter(x.label, y.label); }); return this.filteredData; } From 09e38dc3c420cc5c1db4dcb15638e876623ff8c6 Mon Sep 17 00:00:00 2001 From: Cindy Chang Date: Mon, 29 Jul 2024 11:11:00 +0800 Subject: [PATCH 10/19] sonar medium --- src/components/Discover/Map/Filter/ActAndSeq.vue | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/Discover/Map/Filter/ActAndSeq.vue b/src/components/Discover/Map/Filter/ActAndSeq.vue index d231f1e..d4fe548 100644 --- a/src/components/Discover/Map/Filter/ActAndSeq.vue +++ b/src/components/Discover/Map/Filter/ActAndSeq.vue @@ -148,7 +148,9 @@ 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; }, From 311c98f57f7534f5e94ae6ef5d189cf49d144a2e Mon Sep 17 00:00:00 2001 From: Cindy Chang Date: Mon, 29 Jul 2024 14:47:23 +0800 Subject: [PATCH 11/19] sonar --- src/components/Discover/Map/Filter/Attributes.vue | 14 +++++++++++--- src/components/Discover/Map/SidebarFilter.vue | 4 ++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/components/Discover/Map/Filter/Attributes.vue b/src/components/Discover/Map/Filter/Attributes.vue index 6f4362a..a31a98b 100644 --- a/src/components/Discover/Map/Filter/Attributes.vue +++ b/src/components/Discover/Map/Filter/Attributes.vue @@ -580,13 +580,21 @@ export default { maxRotation: 0, // 不旋轉 lable 0~50 color: '#334155', callback: ((value, index, values) => { + let x; switch (valueData.type) { case 'int': return Math.round(value); case 'float': - let x = index === 0 ? Math.floor(value * 100) / 100 : - index === values.length - 1 ? value = Math.ceil(value * 100) / 100 : - Math.round(value * 100) / 100; + switch (index) { + case 0: + x = Math.floor(value * 100) / 100; + break; + case values.length - 1: + x = Math.ceil(value * 100) / 100; + break; + default: + x = Math.round(value * 100) / 100; + } // 處理科學記號等格式轉換 // Decimal 無法處理超過 16 位數 x = new Intl.NumberFormat(undefined, {useGrouping: false}).format(x); diff --git a/src/components/Discover/Map/SidebarFilter.vue b/src/components/Discover/Map/SidebarFilter.vue index eea9104..e6b471f 100644 --- a/src/components/Discover/Map/SidebarFilter.vue +++ b/src/components/Discover/Map/SidebarFilter.vue @@ -642,8 +642,8 @@ export default { } break; case 'Trace': // Filter Type 選 Trace 的行為 - let lowerIndex = this.$refs.filterTraceView.selectArea[0]; - let upperIndex = this.$refs.filterTraceView.selectArea[1]-1; + const lowerIndex = this.$refs.filterTraceView.selectArea[0]; + const upperIndex = this.$refs.filterTraceView.selectArea[1]-1; data = { type: 'trace-freq', lower: this.allMapDataStore.traces[lowerIndex].id, From 719501dc4b6ef9d4ebab70c0140061c7b31ebd19 Mon Sep 17 00:00:00 2001 From: Cindy Chang Date: Thu, 1 Aug 2024 11:35:18 +0800 Subject: [PATCH 12/19] sonar medium --- src/components/Discover/Map/Filter/ActOcc.vue | 2 - .../Discover/Map/Filter/ActOccCase.vue | 2 - .../Discover/Map/Filter/Attributes.vue | 40 ++++++++++++++----- src/views/Compare/Dashboard/Compare.vue | 4 +- 4 files changed, 32 insertions(+), 16 deletions(-) diff --git a/src/components/Discover/Map/Filter/ActOcc.vue b/src/components/Discover/Map/Filter/ActOcc.vue index 3c42af3..a0ac56e 100644 --- a/src/components/Discover/Map/Filter/ActOcc.vue +++ b/src/components/Discover/Map/Filter/ActOcc.vue @@ -2,8 +2,6 @@

    {{ tableTitle }} ({{ tableData.length }})

    - -
    diff --git a/src/components/Discover/Map/Filter/ActOccCase.vue b/src/components/Discover/Map/Filter/ActOccCase.vue index 06173d8..b771a47 100644 --- a/src/components/Discover/Map/Filter/ActOccCase.vue +++ b/src/components/Discover/Map/Filter/ActOccCase.vue @@ -2,8 +2,6 @@

    {{ tableTitle }} ({{ data.length }})

    - -
    diff --git a/src/components/Discover/Map/Filter/Attributes.vue b/src/components/Discover/Map/Filter/Attributes.vue index a31a98b..ab94fe4 100644 --- a/src/components/Discover/Map/Filter/Attributes.vue +++ b/src/components/Discover/Map/Filter/Attributes.vue @@ -185,9 +185,12 @@ export default { attRangeTotal: function() { const type = this.selectedAttName.type; - return !this.classTypes.includes(type) ? null - : this.attRangeData ? `(${this.attRangeData.length})` - : null; + let result = null; // Initialize the result variable with null + + if (this.classTypes.includes(type) && this.attRangeData) { + result = `(${this.attRangeData.length})`; // Assign the length of attRangeData if it exists + } + return result; }, attRangeData: function() { let data = []; @@ -206,7 +209,12 @@ export default { occ_ratio: this.getPercentLabel(ratio), freq: item.freq }; - result.label = type !== 'boolean' ? null : item.value ? 'Yes' : 'No'; + result.label = null; + if (type === 'boolean') { + result.label = item.value ? 'Yes' : 'No'; + } else { + result.label = null; + } return result; }) return data.sort((x, y) => y.freq - x.freq); @@ -400,7 +408,7 @@ export default { break; } // 傳給後端 - this.attValueTypeStartEnd; + // this.attValueTypeStartEnd; 是否有要呼叫函數? sonar-qube // 建立圖表 this.createChart(); } @@ -476,9 +484,15 @@ export default { break; case 'float': setLabels = data.map((item, index) => { - let x = index === 0 ? Math.floor(item.x * 100) / 100 : - index === data.length - 1 ? item.x = Math.ceil(item.x * 100) / 100 : - Math.round(item.x * 100) / 100; + let x; + if (index === 0) { + x = Math.floor(item.x * 100) / 100; + } else if (index === data.length - 1) { + item.x = Math.ceil(item.x * 100) / 100; + x = item.x; + } else { + x = Math.round(item.x * 100) / 100; + } return x }); break; @@ -640,7 +654,7 @@ export default { // 重新算圖 this.resizeMask(this.chartComplete); // 執行 timeFrameStartEnd 才會改變數據 - this.attValueTypeStartEnd; + // this.attValueTypeStartEnd; 是否有要呼叫函數? sonar-qube }, /** * 選取開始或結束時間時,要改變滑塊跟圖表 @@ -668,7 +682,13 @@ export default { this.selectArea = closestIndexes; // 重新設定 start end 日曆選取範圍 if(!isDateType) inputValue = Number(e.value.replace(/,/g, '')) ; - if(direction === 'start') isDateType ? this.endMinDate = e : this.valueEndMin = inputValue; + if(direction === 'start') { + if(isDateType){ + this.endMinDate = e; + } else { + this.valueEndMin = inputValue; + } + } else if(direction === 'end') isDateType ? this.startMaxDate = e : this.valueStartMax = inputValue; // 重新算圖 if(!isNaN(closestIndexes[0]) && !isNaN(closestIndexes[1])) this.resizeMask(this.chartComplete); diff --git a/src/views/Compare/Dashboard/Compare.vue b/src/views/Compare/Dashboard/Compare.vue index 6a9d97c..44f9ae6 100644 --- a/src/views/Compare/Dashboard/Compare.vue +++ b/src/views/Compare/Dashboard/Compare.vue @@ -441,7 +441,7 @@ console.log("TODO:", datasetsPrimary, ) let yDataPrimary; let labelPrimary = chartData.data[0].label; let datasetsSecondary = chartData.data[1].data; - let xDataSecondary; + // let xDataSecondary; let yDataSecondary; let labelSecondary = chartData.data[1].label; let primeVueSetData = {}; @@ -462,7 +462,7 @@ console.log("TODO:", datasetsPrimary, ) y: value.y === null ? null : value.y * 100 } }); - xDataSecondary = datasetsSecondary.map(i => i.x); + // xDataSecondary = datasetsSecondary.map(i => i.x); yDataSecondary = datasetsSecondary.map(i => i.y); primeVueSetData = { From e8e8179c05d190cb307d1fb7866645ad28d59b1d Mon Sep 17 00:00:00 2001 From: Cindy Chang Date: Thu, 1 Aug 2024 12:52:31 +0800 Subject: [PATCH 13/19] sonar --- src/components/Discover/Map/Filter/Attributes.vue | 8 +++++++- src/components/Discover/Map/Filter/Funnel.vue | 2 +- src/components/Discover/Map/Filter/Timeframes.vue | 15 +++++++++------ src/components/Discover/Map/Filter/Trace.vue | 1 - src/components/Discover/Map/SidebarFilter.vue | 8 -------- src/components/Discover/Map/SidebarState.vue | 4 +--- src/components/Discover/Map/SidebarTraces.vue | 1 - src/components/Discover/StatusBar.vue | 4 ---- 8 files changed, 18 insertions(+), 25 deletions(-) diff --git a/src/components/Discover/Map/Filter/Attributes.vue b/src/components/Discover/Map/Filter/Attributes.vue index ab94fe4..df92c4e 100644 --- a/src/components/Discover/Map/Filter/Attributes.vue +++ b/src/components/Discover/Map/Filter/Attributes.vue @@ -689,7 +689,13 @@ export default { this.valueEndMin = inputValue; } } - else if(direction === 'end') isDateType ? this.startMaxDate = e : this.valueStartMax = inputValue; + else if(direction === 'end') { + if(isDateType) { + this.startMaxDate = e; + } else { + this.valueStartMax = inputValue; + }; + } // 重新算圖 if(!isNaN(closestIndexes[0]) && !isNaN(closestIndexes[1])) this.resizeMask(this.chartComplete); else return; diff --git a/src/components/Discover/Map/Filter/Funnel.vue b/src/components/Discover/Map/Filter/Funnel.vue index 0c8f9e4..0847a87 100644 --- a/src/components/Discover/Map/Filter/Funnel.vue +++ b/src/components/Discover/Map/Filter/Funnel.vue @@ -50,7 +50,7 @@ export default { const { isLoading } = storeToRefs(loadingStore); const { hasResultRule, temporaryData, postRuleData, ruleData, isRuleData, tempFilterId } = storeToRefs(allMapDataStore); - return { isLoading, hasResultRule, temporaryData, postRuleData, ruleData, isRuleData, allMapDataStore, tempFilterId, allMapDataStore } + return { isLoading, hasResultRule, temporaryData, postRuleData, ruleData, isRuleData, allMapDataStore, tempFilterId } }, methods: { /** diff --git a/src/components/Discover/Map/Filter/Timeframes.vue b/src/components/Discover/Map/Filter/Timeframes.vue index 227dc7c..e9df1fb 100644 --- a/src/components/Discover/Map/Filter/Timeframes.vue +++ b/src/components/Discover/Map/Filter/Timeframes.vue @@ -103,17 +103,20 @@ export default{ let d = this.filterTimeframe.data[0].y; let e = 2; let f = this.filterTimeframe.data[1].y; - b = (e*d - a*d - f*a - f*c) / (e - c - a) - b < 0 ? b = 0 : b; + b = (e*d - a*d - f*a - f*c) / (e - c - a); + if(b < 0) { + b = 0; + } // y 軸最大值 let ma = 9; let mb = this.filterTimeframe.data[8].y; let mc = 10; let md = this.filterTimeframe.data[9].y; let me = 11; - let mf; - mf = (mb*me - mb*mc -md*me + md*ma) / (ma - mc); - mf < 0 ? mf = 0 : mf; + let mf = (mb*me - mb*mc -md*me + md*ma) / (ma - mc); + if(mf < 0) { + mf = 0; + } // 添加最小值 data.unshift({ @@ -304,7 +307,7 @@ export default{ // 重新算圖 this.resizeMask(this.chart); // 執行 timeFrameStartEnd 才會改變數據 - this.timeFrameStartEnd; + this.timeFrameStartEnd(); }, /** * 選取開始或結束時間時,要改變滑塊跟圖表 diff --git a/src/components/Discover/Map/Filter/Trace.vue b/src/components/Discover/Map/Filter/Trace.vue index 9003ca6..03e6e5d 100644 --- a/src/components/Discover/Map/Filter/Trace.vue +++ b/src/components/Discover/Map/Filter/Trace.vue @@ -257,7 +257,6 @@ export default { async switchCaseData(id, count) { // 點同一筆 id 不要有動作 if(id == this.showTraceId) return; - // if(count >= 1000) this.isLoading = true; // 超過 1000 筆要 loading 畫面 this.isLoading = true; // 都要 loading 畫面 this.infinit404 = null; this.infinitMaxItems = false; diff --git a/src/components/Discover/Map/SidebarFilter.vue b/src/components/Discover/Map/SidebarFilter.vue index e6b471f..65a7cf9 100644 --- a/src/components/Discover/Map/SidebarFilter.vue +++ b/src/components/Discover/Map/SidebarFilter.vue @@ -38,14 +38,6 @@
    - -

    Refine

    diff --git a/src/components/Discover/Map/SidebarState.vue b/src/components/Discover/Map/SidebarState.vue index 7525d75..5713682 100644 --- a/src/components/Discover/Map/SidebarState.vue +++ b/src/components/Discover/Map/SidebarState.vue @@ -63,6 +63,7 @@

    Case Duration

    +
    @@ -300,9 +301,6 @@ export default { :deep(.p-tabview-panel) { @apply animate-fadein } -/* .caseDurationTable td:first-child { - @apply pr-1 -} */ .caseDurationTable td { @apply scroll-pb-12 } diff --git a/src/components/Discover/Map/SidebarTraces.vue b/src/components/Discover/Map/SidebarTraces.vue index 38a05bb..24812e4 100644 --- a/src/components/Discover/Map/SidebarTraces.vue +++ b/src/components/Discover/Map/SidebarTraces.vue @@ -176,7 +176,6 @@ export default { async switchCaseData(id, count) { // 點同一筆 id 不要有動作 if(id == this.showTraceId) return; - // if(count >= 1000) this.isLoading = true; // 超過 1000 筆要 loading 畫面 this.isLoading = true; // 都要 loading 畫面 this.infinit404 = null; this.infinitMaxItems = false; diff --git a/src/components/Discover/StatusBar.vue b/src/components/Discover/StatusBar.vue index 86154af..8e4b06d 100644 --- a/src/components/Discover/StatusBar.vue +++ b/src/components/Discover/StatusBar.vue @@ -5,7 +5,6 @@
  • Cases

    -
    @@ -18,7 +17,6 @@
  • Traces

    -
    @@ -31,7 +29,6 @@
  • Activity Instances

    -
    @@ -44,7 +41,6 @@
  • Activities

    -
    From 1eda4dfb80e6b5ca7ae3156c974e57cf2d7b3751 Mon Sep 17 00:00:00 2001 From: Cindy Chang Date: Thu, 1 Aug 2024 13:38:19 +0800 Subject: [PATCH 14/19] sonar medium 83 left --- .../Discover/Map/Filter/Timeframes.vue | 2 +- src/components/Discover/Map/Filter/Trace.vue | 2 +- src/components/Discover/Map/SidebarFilter.vue | 123 ++++++++++-------- src/components/Discover/Map/SidebarTraces.vue | 8 +- 4 files changed, 72 insertions(+), 63 deletions(-) diff --git a/src/components/Discover/Map/Filter/Timeframes.vue b/src/components/Discover/Map/Filter/Timeframes.vue index e9df1fb..d06599a 100644 --- a/src/components/Discover/Map/Filter/Timeframes.vue +++ b/src/components/Discover/Map/Filter/Timeframes.vue @@ -350,7 +350,7 @@ export default{ // 讓日曆的範圍等於時間軸的範圍 this.startTime = this.startMinDate; this.endTime = this.startMaxDate; - this.timeFrameStartEnd; + this.timeFrameStartEnd(); }, } diff --git a/src/components/Discover/Map/Filter/Trace.vue b/src/components/Discover/Map/Filter/Trace.vue index 03e6e5d..788ba4a 100644 --- a/src/components/Discover/Map/Filter/Trace.vue +++ b/src/components/Discover/Map/Filter/Trace.vue @@ -162,7 +162,7 @@ export default { { field: 'id', header: 'Case Id' }, { field: 'started_at', header: 'Start time' }, { field: 'completed_at', header: 'End time' }, - ...data[0]?.attributes.map((att, index) => ({ field: `att_${index}`, header: att.key })), + ...(data[0]?.attributes ?? []).map((att, index) => ({ field: `att_${index}`, header: att.key })), ]; } return result diff --git a/src/components/Discover/Map/SidebarFilter.vue b/src/components/Discover/Map/SidebarFilter.vue index 65a7cf9..de025d3 100644 --- a/src/components/Discover/Map/SidebarFilter.vue +++ b/src/components/Discover/Map/SidebarFilter.vue @@ -210,60 +210,22 @@ export default { // Apply Button disabled setting isDisabledButton: function() { let disabled = true; - let sele = this.selectValue; - const type = this.selectAttType; - - switch(sele[0]) { - case 'Sequence': // Filter Type 選 Sequence 的行為 - switch(sele[1]) { - case 'Have activity(s)': // Activity Sequence 選 Have activity(s) 的行為 - if(this.selectFilterTask && this.selectFilterTask?.length !== 0) disabled = false; - break; - case 'Start & End': // Activity Sequence 選 Start & End 的行為 - switch(sele[2]) { - case 'Start': - if(this.selectFilterStart) disabled = false; - break; - case 'End': - if(this.selectFilterEnd) disabled = false; - break; - case 'Start & End': - if(this.selectFilterStartToEnd && this.selectFilterEndToStart) disabled = false; - break; - } - break; - case 'Sequence': // Activity Sequence 選 Sequence 的行為 - if(this.listSeq.length >= 2) disabled = false; - break; - } - break; - case 'Attributes': // Activity Sequence 選 Attributes 的行為 - switch (type) { - case 'string': - if(this.selectAttribute && this.selectAttribute.length > 0) disabled = false; - break; - case 'boolean': - if(this.selectAttribute?.key && this.selectAttribute?.label) disabled = false; - break; - case 'int': - case 'float': - case 'date': - if(this.selectAttribute?.key && this.selectAttribute?.min != null && this.selectAttribute?.max != null) disabled = false; - break; - default: - break; - } - break; - case 'Trace': // Filter Type 選 Trace 的行為 - if(this.selectTraceArea[0] !== this.selectTraceArea[1]) disabled = false; - break; - case 'Timeframes': // Filter Type 選 Timeframes 的行為 - if(this.selectTimeFrame.length > 0) disabled = false; - break; + const { selectValue: sele, selectAttType: type } = this; + const firstSelection = sele[0]; + + if (firstSelection === 'Sequence') { + disabled = this.handleSequenceSelection(sele); + } else if (firstSelection === 'Attributes') { + disabled = this.handleAttributesSelection(type); + } else if (firstSelection === 'Trace') { + disabled = this.handleTraceSelection(); + } else if (firstSelection === 'Timeframes') { + disabled = this.handleTimeframesSelection(); } + this.isDisabled = disabled; return disabled; - } + }, }, methods: { /** @@ -520,7 +482,9 @@ export default { this.$refs.filterTraceView.selectArea = [0, this.$refs.filterTraceView.traceTotal]; }; // 成功訊息 - massage ? this.$toast.success('Filter cleared.') : null; + if(message) { + this.$toast.success('Filter cleared.') + } }, /** * header:Filter 發送選取的資料 @@ -660,7 +624,10 @@ export default { await this.allMapDataStore.checkHasResult(); // 有 Data 就加進 Funnel,沒有 Data 不加進 Funnel 和跳錯誤訊息 - if(this.hasResultRule === null) return this.isLoading = false; + if(this.hasResultRule === null) { + this.isLoading = false; + return; + } else if(this.hasResultRule) { if(!this.temporaryData?.length){ this.temporaryData.push(...postData); @@ -672,13 +639,11 @@ export default { this.ruleData.push(...postData.map(e => this.setRule(e))) } this.reset(false); - // this.isLoading = true; await new Promise(resolve => setTimeout(resolve, 1000)); this.isLoading = false; this.$toast.success('Filter applied. Go to Funnel to verify.'); }else { this.reset(false); - // this.isLoading = true; await new Promise(resolve => setTimeout(resolve, 1000)); this.isLoading = false; this.$toast.warning('No result.'); @@ -690,7 +655,53 @@ export default { sumbitAll() { this.$emit('submit-all'); }, - }, + handleSequenceSelection(sele) { + const secondSelection = sele[1]; + + switch (secondSelection) { + case 'Have activity(s)': + return !(this.selectFilterTask && this.selectFilterTask.length !== 0); + case 'Start & End': + return this.handleStartEndSelection(sele[2]); + case 'Sequence': + return !(this.listSeq.length >= 2); + default: + return true; + } + }, + handleStartEndSelection(option) { + switch (option) { + case 'Start': + return !this.selectFilterStart; + case 'End': + return !this.selectFilterEnd; + case 'Start & End': + return !(this.selectFilterStartToEnd && this.selectFilterEndToStart); + default: + return true; + } + }, + handleAttributesSelection(type) { + switch (type) { + case 'string': + return !(this.selectAttribute && this.selectAttribute.length > 0); + case 'boolean': + return !(this.selectAttribute?.key && this.selectAttribute?.label); + case 'int': + case 'float': + case 'date': + return !(this.selectAttribute?.key && this.selectAttribute?.min != null && this.selectAttribute?.max != null); + default: + return true; + } + }, + handleTraceSelection() { + return this.selectTraceArea[0] === this.selectTraceArea[1]; + }, + handleTimeframesSelection() { + return this.selectTimeFrame.length === 0; + }, + }, } diff --git a/src/components/Discover/Map/SidebarTraces.vue b/src/components/Discover/Map/SidebarTraces.vue index 24812e4..a29c363 100644 --- a/src/components/Discover/Map/SidebarTraces.vue +++ b/src/components/Discover/Map/SidebarTraces.vue @@ -126,7 +126,7 @@ export default { { field: 'id', header: 'Case Id' }, { field: 'started_at', header: 'Start time' }, { field: 'completed_at', header: 'End time' }, - ...data[0]?.attributes.map((att, index) => ({ field: `att_${index}`, header: att.key })), + ...(data[0]?.attributes ?? []).map((att, index) => ({ field: `att_${index}`, header: att.key })), ]; } return result @@ -287,14 +287,12 @@ export default { @apply sticky top-0 left-0 z-10 bg-neutral-10 } :deep(.p-datatable .p-datatable-thead > tr > th) { - @apply !border-y-0 border-neutral-500 bg-neutral-100 after:absolute after:left-0 after:w-full after:h-full after:block after:top-0 after:border-b after:border-t after:border-neutral-500 + @apply !border-y-0 border-neutral-500 bg-neutral-100 after:absolute after:left-0 after:w-full after:h-full after:block after:top-0 after:border-b after:border-t after:border-neutral-500; + white-space: nowrap; } :deep(.p-datatable .p-datatable-tbody > tr > td) { @apply border-neutral-500 !border-t-0 text-center } -:deep(.p-datatable .p-datatable-thead > tr > th) { - white-space: nowrap; -} :deep(.p-datatable.p-datatable-gridlines .p-datatable-tbody > tr > td) { min-width: 72px; max-width: 184px; From 405dd7f992f152574d33ff45047feeed029de5dd Mon Sep 17 00:00:00 2001 From: Cindy Chang Date: Thu, 1 Aug 2024 15:13:05 +0800 Subject: [PATCH 15/19] sonar --- src/components/Discover/Map/SidebarFilter.vue | 83 ++++++++++--------- src/components/Header.vue | 6 +- 2 files changed, 49 insertions(+), 40 deletions(-) diff --git a/src/components/Discover/Map/SidebarFilter.vue b/src/components/Discover/Map/SidebarFilter.vue index de025d3..6318ff7 100644 --- a/src/components/Discover/Map/SidebarFilter.vue +++ b/src/components/Discover/Map/SidebarFilter.vue @@ -396,60 +396,39 @@ export default { 'occurred-around' : 'active in' }; - switch(e.type){ + switch(e.type) { //sonar-qube case "contains-task": - label = `${includeStr}, ${e.task}`; - type = "Sequence"; - break; case "starts-with": - label = `${includeStr}, start with ${e.task}`; - type = "Sequence"; - break; case "ends-with": - label = `${includeStr}, end with ${e.task}`; - type = "Sequence"; - break; - case "start-end": - label = `${includeStr}, start with ${e.starts_with}, end with ${e.ends_with}`; - type = "Sequence"; - break; case "directly-follows": - label = `${includeStr}, directly follows, ${e.task_seq.join(' -> ')}`; - type = "Sequence"; - break; case "eventually-follows": - label = `${includeStr}, eventually follows, ${e.task_seq.join(' -> ')}`; - type = "Sequence"; - break; + label = `${includeStr}, ${getTaskLabel(e)}`; + type = "Sequence"; + break; + case "start-end": + label = `${includeStr}, start with ${e.starts_with}, end with ${e.ends_with}`; + type = "Sequence"; + break; case "trace-freq": - label = `${includeStr}, from #${e.lower} to #${e.upper}`; - type = "Trace"; - break; + label = `${includeStr}, from #${e.lower} to #${e.upper}`; + type = "Trace"; + break; case 'string-attr': - label = `${includeStr}, ${e.key}, ${e.value}`; - type = "Attributes"; - break; case 'boolean-attr': - label = `${includeStr}, ${e.key}, ${this.selectAttribute?.label}`; - type = "Attributes"; - break; case 'int-attr': case 'float-attr': - label = `${includeStr}, ${e.key}, from ${e.min} to ${e.max}`; - type = "Attributes"; - break; case 'date-attr': - label = `${includeStr}, ${e.key}, from ${getMoment(e.min).format('YYYY-MM-DD HH:mm')} to ${getMoment(e.max).format('YYYY-MM-DD HH:mm')}`; - type = "Attributes"; - break; + label = `${includeStr}, ${getAttributeLabel(e)}`; + type = "Attributes"; + break; case "occurred-in": case "started-in": case "completed-in": case "occurred-around": - label = `${containmentMap[e.type]}, ${includeStr}, from ${getMoment(e.start).format("YYYY-MM-DD HH:mm")} to ${getMoment(e.end).format("YYYY-MM-DD HH:mm")} ` - type = "Timeframe" - break; - }; + label = `${containmentMap[e.type]}, ${includeStr}, from ${getMoment(e.start).format("YYYY-MM-DD HH:mm")} to ${getMoment(e.end).format("YYYY-MM-DD HH:mm")} `; + type = "Timeframe" + break; + }; return { type, label, @@ -701,7 +680,33 @@ export default { handleTimeframesSelection() { return this.selectTimeFrame.length === 0; }, + getTaskLabel(e) { + switch (e.type) { + case "contains-task": + return `${e.task}`; + case "starts-with": + return `start with ${e.task}`; + case "ends-with": + return `end with ${e.task}`; + case "directly-follows": + case "eventually-follows": + return `${e.type.replace('-', ' ')}, ${e.task_seq.join(' -> ')}`; + } }, + getAttributeLabel(e) { + switch (e.type) { + case 'string-attr': + return `${e.key}, ${e.value}`; + case 'boolean-attr': + return `${e.key}, ${this.selectAttribute?.label}`; + case 'int-attr': + case 'float-attr': + return `${e.key}, from ${e.min} to ${e.max}`; + case 'date-attr': + return `${e.key}, from ${getMoment(e.min).format('YYYY-MM-DD HH:mm')} to ${getMoment(e.max).format('YYYY-MM-DD HH:mm')}`; + } + }, + }, } diff --git a/src/components/Header.vue b/src/components/Header.vue index 3ef676a..69283de 100644 --- a/src/components/Header.vue +++ b/src/components/Header.vue @@ -75,7 +75,11 @@ export default { }, }, mounted() { - this.$route.name === 'Login' || this.$route.name === 'NotFound404' ? this.showMember = false : this.showMember = true; + if (this.$route.name === 'Login' || this.$route.name === 'NotFound404') { + this.showMember = false + } else { + this.showMember = true; + } } } From a426f22db01d27f581c83dad0bb4555e0ee639ef Mon Sep 17 00:00:00 2001 From: Cindy Chang Date: Thu, 1 Aug 2024 15:49:03 +0800 Subject: [PATCH 16/19] sonar medium 65 left --- src/components/Discover/Map/Filter/Trace.vue | 6 ++--- src/components/Discover/Map/SidebarFilter.vue | 23 ++++++++++--------- src/components/Navbar.vue | 17 -------------- src/components/Search.vue | 6 +++-- src/components/durationjs.vue | 18 +++++++++------ src/module/alertModal.js | 2 +- src/views/Upload/index.vue | 4 +++- tailwind.config.js | 4 ++-- 8 files changed, 35 insertions(+), 45 deletions(-) diff --git a/src/components/Discover/Map/Filter/Trace.vue b/src/components/Discover/Map/Filter/Trace.vue index 788ba4a..9d2c97c 100644 --- a/src/components/Discover/Map/Filter/Trace.vue +++ b/src/components/Discover/Map/Filter/Trace.vue @@ -363,14 +363,12 @@ export default { @apply sticky top-0 left-0 z-10 bg-neutral-10 } :deep(.p-datatable .p-datatable-thead > tr > th) { - @apply !border-y-0 border-neutral-500 bg-neutral-100 after:absolute after:left-0 after:w-full after:h-full after:block after:top-0 after:border-b after:border-t after:border-neutral-500 + @apply !border-y-0 border-neutral-500 bg-neutral-100 after:absolute after:left-0 after:w-full after:h-full after:block after:top-0 after:border-b after:border-t after:border-neutral-500; + white-space: nowrap; } :deep(.p-datatable .p-datatable-tbody > tr > td) { @apply border-neutral-500 !border-t-0 text-center } -:deep(.p-datatable .p-datatable-thead > tr > th) { - white-space: nowrap; -} :deep(.p-datatable.p-datatable-gridlines .p-datatable-tbody > tr > td) { min-width: 72px; max-width: 184px; diff --git a/src/components/Discover/Map/SidebarFilter.vue b/src/components/Discover/Map/SidebarFilter.vue index 6318ff7..618a02f 100644 --- a/src/components/Discover/Map/SidebarFilter.vue +++ b/src/components/Discover/Map/SidebarFilter.vue @@ -576,16 +576,17 @@ export default { break } break; - case 'Trace': // Filter Type 選 Trace 的行為 - const lowerIndex = this.$refs.filterTraceView.selectArea[0]; - const upperIndex = this.$refs.filterTraceView.selectArea[1]-1; - data = { - type: 'trace-freq', - lower: this.allMapDataStore.traces[lowerIndex].id, - upper: this.allMapDataStore.traces[upperIndex].id, - is_exclude: isExclude, - }; - break; + case 'Trace': { // Filter Type 選 Trace 的行為 + const lowerIndex = this.$refs.filterTraceView.selectArea[0]; + const upperIndex = this.$refs.filterTraceView.selectArea[1]-1; + data = { + type: 'trace-freq', + lower: this.allMapDataStore.traces[lowerIndex].id, + upper: this.allMapDataStore.traces[upperIndex].id, + is_exclude: isExclude, + }; + break; + } case 'Timeframes': // Filter Type 選 Timeframes 的行為 data = { type: containmentMap[sele[6]], @@ -643,7 +644,7 @@ export default { case 'Start & End': return this.handleStartEndSelection(sele[2]); case 'Sequence': - return !(this.listSeq.length >= 2); + return this.listSeq.length < 2; default: return true; } diff --git a/src/components/Navbar.vue b/src/components/Navbar.vue index 4e70599..c53f0e4 100644 --- a/src/components/Navbar.vue +++ b/src/components/Navbar.vue @@ -24,22 +24,6 @@
    - -
    Import @@ -54,7 +38,6 @@ :disabled="disabledSave" @click="saveModal"> Save -
    diff --git a/src/components/Search.vue b/src/components/Search.vue index 28fa343..75c553d 100644 --- a/src/components/Search.vue +++ b/src/components/Search.vue @@ -1,7 +1,9 @@