From f98c5bab3e781cc70b1cdb2478544e70c75fd273 Mon Sep 17 00:00:00 2001 From: v_xugzhou <941071842@qq.com> Date: Wed, 11 Oct 2023 17:38:17 +0800 Subject: [PATCH] =?UTF-8?q?optimization:=20=E9=AA=8C=E6=94=B6=E4=BC=9A?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desktop/src/assets/fonts/bksops-icon.eot | Bin 40776 -> 40768 bytes .../desktop/src/assets/fonts/bksops-icon.svg | 2 +- .../desktop/src/assets/fonts/bksops-icon.ttf | Bin 40608 -> 40600 bytes .../desktop/src/assets/fonts/bksops-icon.woff | Bin 24000 -> 23972 bytes .../common/RenderForm/FormGroup.vue | 27 ++++++-- .../components/common/RenderForm/FormItem.vue | 18 +++-- .../common/RenderForm/tags/TagCodeEditor.vue | 14 ++-- .../common/RenderForm/tags/TagInput.vue | 62 +++++++++++------- .../common/RenderForm/tags/TagTextarea.vue | 62 +++++++++++------- frontend/desktop/src/config/i18n/cn.js | 5 +- frontend/desktop/src/config/i18n/en.js | 5 +- .../pages/task/TaskExecute/ExecuteInfo.vue | 19 +++--- .../ExecuteInfo/ExecuteInfoForm.vue | 2 +- .../TaskExecute/ExecuteInfo/ExecuteRecord.vue | 18 ++--- .../TemplateEdit/NodeConfig/InputParams.vue | 2 +- .../TabGlobalVariables/VariableCitedList.vue | 2 +- frontend/desktop/src/scss/iconfont.scss | 6 +- 17 files changed, 156 insertions(+), 88 deletions(-) diff --git a/frontend/desktop/src/assets/fonts/bksops-icon.eot b/frontend/desktop/src/assets/fonts/bksops-icon.eot index d8c71d9d0fd5dd7bcc870cccdd60cc1173120e0e..0ed6cf8ed2cc224e7cfc22d8a8d6d9c66f5c7cd3 100644 GIT binary patch delta 1001 zcmX|9OKcle6utM&yf+`uc>I}Z($|0P1Bl-NXdk}3`qs++FPE+W zq;>(``J;cnw_Lt-VPor`+%pGH9S*tgCjfGP_2N=*(^~xzAo(Kiy}s6aa~=2K0k1PW zcl?#!+WAen9|QR47T3SGe(}}U&h(!99pIBw(IP&Y+uOLabIv&R7sN!a2e|uunlE|8 z(GASvL9~nKP>9N;gVL~1{wD1sB~UIC_?hB|w}hL3yaIBAcSqF}XZ2xUBv<*p4dYzr zN1xG?f_P7g_Gz2b;bD}N=jV}++pq|IxB&0Mmv9S34u&}npQG{+RXjo+pTI6I;tKZh zGF~3O&(6lE1aMCp9we_IJ{Yc~mj?rY!yVx_zEBGuhiBm`+=Tl8VbBa~j_KG=V@7Dy z+ZZ-#k}27a#SAP=)`NO5gMsA}%ZwArath6G2GdN6qh;Dox{ZxGpJTOV@v&)fD`y`a zJCCO03!znDqkzfzXb>f2hfkUvbfRmKKL~?KKAMn%CS?)_cd+Bwu=x(nd8~&c=8thN z@+E{qqgEaHN6DNf2*V5tUMnbPV|FWW5!-=)LI#m2c&}!c;BJTKMf4Qw3IO=!O|1qj*h8S{{`UWi6>0z8z06iE2uP zhTX;>rZ^i?1{K-pys8i{gszVxjfuUyOY;*Ebb&FG*DHXbhfbV=S?Q)Nvh~(>5I-| zpC($}Aba{OVu{dWt?C=Cj84T8qEVP#SV)XjODG$gADFt#NHP9%f+_KIX}dFLpy8S{ jzn#q_T~(sYOS$FiIZ1a7X2hibUm7lbd{+@e{>T3V6CSS; delta 987 zcmXw%OKcle6o${a^Y+-|jOS&$j$_Zn89Ony<9O^q{AdzV1uTe)+8}|H)@>4kl(bQc zsvwZuE?5AYM#Dqh&>|rgh_I+PEKupPLKHTrt=Oe(KnfBm zw*exz0j@k=Tj?yjk3P<9KTgc=Y5kjY-wy!f=k@bvJ68wSzX4F^Y46fTXKNF`gTJYd zQf}&8XJh56xF!R+wap1M~k7Ar$sk2p8-+_l)nN%%VGSCHzliJc=i9372sd zw|XD&FUlM}$wRL9yZQ#=e(#*N-0k-J{ZZ~NlZU5Z7TRzHz65$L%dOTXOvAKHOD!;7 zrHM6fLg#72;KS&Qconze7SL6b#LyKY7?xA@>=BI@6f|_x(wgX1=p3!Gl|;)NL_LW^ z$O}}|^JD0llv%9}dX?Itq2ZARQYhnO%9cTyH0V$IIfg;euCO7&ZbSJ3HrE!Du>H4Mj7>nj0LLoj#+4#R1I} z7oQNHxj4gx)ngpGfmFRcwy^Y^G%dvw?5L28Ur1_(%*)X<+5b~1y)-|!I+F=hy2mD4 z2Kh}6sZ&m&A@4T_7ABpF!;?HJ(ok%;@F45PMZ*w-TC9Bk#Pd38cAQT<%%rSzFd&Fd zH0|9R4yd*+(h;h5oE!YfPFuDiN>0o!-^)mmAxk1UhJpvU`xGa!swo5`@dIAzuGzle yIU9tO8KK&qx!z8x0zZzZ7h5M!nz`9=A}h;hzK%x%5?j&$dN04fE3qE^tN#U72fnia diff --git a/frontend/desktop/src/assets/fonts/bksops-icon.svg b/frontend/desktop/src/assets/fonts/bksops-icon.svg index 0b4dc054f8..e1c5106cd9 100644 --- a/frontend/desktop/src/assets/fonts/bksops-icon.svg +++ b/frontend/desktop/src/assets/fonts/bksops-icon.svg @@ -587,7 +587,7 @@ - + diff --git a/frontend/desktop/src/assets/fonts/bksops-icon.ttf b/frontend/desktop/src/assets/fonts/bksops-icon.ttf index ed11d935cbc610b9610e58427e97ed01b427728f..59bf7604dd089fd7a403e6546f81da738e47b88c 100644 GIT binary patch delta 1007 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 delta 3589 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 .rf-tag-form { + margin-right: 58px; + } + .hook-icon { + padding-right: 3px !important; + } } .rf-group-name { display: block @@ -446,15 +454,17 @@ display: flex; align-items: center; justify-content: center; - padding: 0 8px; height: 32px; background: #f0f1f5; border-radius: 2px; + cursor: pointer; z-index: 1; - .hook-icon { - font-size: 16px; + .hook-icon, + .render-skip-icon { + height: 32px; + line-height: 32px; + font-size: 12px; color: #979ba5; - cursor: pointer; &.disabled { color: #c4c6cc; cursor: not-allowed; @@ -464,8 +474,13 @@ } } .hook-icon { + line-height: 33px; + padding: 0 8px; font-size: 16px; } + .render-skip-icon { + padding: 0 8px 0 3px; + } .icon-angle-up-fill { font-size: 12px; color: #c4c6cc; diff --git a/frontend/desktop/src/components/common/RenderForm/FormItem.vue b/frontend/desktop/src/components/common/RenderForm/FormItem.vue index dae623311b..6d53b47681 100644 --- a/frontend/desktop/src/components/common/RenderForm/FormItem.vue +++ b/frontend/desktop/src/components/common/RenderForm/FormItem.vue @@ -477,12 +477,15 @@ } &.rf-has-hook { & > .rf-tag-form { - margin-right: 45px; + margin-right: 40px; } } &.show-render { > .rf-tag-form { - margin-right: 64px; + margin-right: 58px; + } + .hook-icon { + padding-right: 3px !important; } } &.rf-col-layout { @@ -548,16 +551,17 @@ display: flex; align-items: center; justify-content: space-between; - padding: 0 8px; height: 32px; background: #f0f1f5; border-radius: 2px; z-index: 1; + cursor: pointer; .hook-icon, .render-skip-icon { - font-size: 14px; + height: 32px; + line-height: 32px; + font-size: 12px; color: #979ba5; - cursor: pointer; &.disabled { color: #c4c6cc; cursor: not-allowed; @@ -567,10 +571,12 @@ } } .hook-icon { + line-height: 31px; + padding: 0 8px; font-size: 16px; } .render-skip-icon { - margin-left: 7px; + padding: 0 8px 0 3px; } .icon-angle-up-fill { font-size: 12px; diff --git a/frontend/desktop/src/components/common/RenderForm/tags/TagCodeEditor.vue b/frontend/desktop/src/components/common/RenderForm/tags/TagCodeEditor.vue index 520428a8f5..e438f40b05 100644 --- a/frontend/desktop/src/components/common/RenderForm/tags/TagCodeEditor.vue +++ b/frontend/desktop/src/components/common/RenderForm/tags/TagCodeEditor.vue @@ -213,12 +213,14 @@ } }) }) - } else if (this.decorationsMap[lineNumber]) { - this.decorationsMap[lineNumber].forEach(decorations => { - monacoInstance.deltaDecorations( - [...decorations], - [] - ) + } else { + Object.keys(this.decorationsMap).forEach(key => { + this.decorationsMap[key].forEach(decorations => { + monacoInstance.deltaDecorations( + [...decorations], + [] + ) + }) }) this.decorationsMap = {} } diff --git a/frontend/desktop/src/components/common/RenderForm/tags/TagInput.vue b/frontend/desktop/src/components/common/RenderForm/tags/TagInput.vue index f3679cd257..3b772babee 100644 --- a/frontend/desktop/src/components/common/RenderForm/tags/TagInput.vue +++ b/frontend/desktop/src/components/common/RenderForm/tags/TagInput.vue @@ -48,11 +48,11 @@
  • - {{ item }} + :key="item.key" + :class="{ 'is-hover': hoverKey === item.key }" + @click.stop="onSelectVal(item.key)"> + {{ item.key }} + {{ item.name }}
  • @@ -122,14 +122,14 @@ }), constantArr: { get () { - let Keylist = [] + let KeyList = [] if (this.constants) { - Keylist = [...Object.keys(this.constants)] + KeyList = [...Object.values(this.constants)] } if (this.internalVariable) { - Keylist = [...Keylist, ...Object.keys(this.internalVariable)] + KeyList = [...KeyList, ...Object.values(this.internalVariable)] } - return Keylist + return KeyList }, set (val) { this.varList = val @@ -330,7 +330,7 @@ matchResult = [matchText] } if (matchResult && matchResult[0]) { - this.varList = this.constantArr.filter(item => item.indexOf(matchText) > -1) + this.varList = this.constantArr.filter(item => item.key.indexOf(matchText) > -1) // 计算变量下拉列表的left this.isListOpen = false if (this.varList.length) { @@ -352,11 +352,10 @@ this.$el.appendChild(newDom) const focusValueWidth = newDom.offsetWidth || 0 this.$el.removeChild(newDom) - let right = inputWidth - 238 - previousDomLeft - previousDomWidth - focusValueWidth - right = right > 0 ? right : 0 - this.varListPositionRight = right this.$nextTick(() => { - const { height: varListHeight } = document.querySelector('.rf-select-list').getBoundingClientRect() + const { width: varListWidth, height: varListHeight } = document.querySelector('.rf-select-list').getBoundingClientRect() + let right = inputWidth - varListWidth - previousDomLeft - previousDomWidth - focusValueWidth + right = right > 0 ? right : 0 const top = window.innerHeight < inputTop + 30 + varListHeight + 50 ? -95 : 30 this.varListPosition = `right: ${right}px; top: ${top}px` }) @@ -382,9 +381,14 @@ // 获取行内纯文本 const divInputDom = this.$el.querySelector('.div-input') let inputValue = divInputDom.textContent + inputValue.replace(' ', ' ') if (divInputDom.childNodes.length) { inputValue = Array.from(divInputDom.childNodes).map(item => { - return item.type === 'button' ? item.value : item.textContent + return item.type === 'button' + ? item.value + : item.textContent.trim() === '' + ? ' ' + : item.textContent.replace(/ /g, ' ') }).join('') } this.input.value = inputValue @@ -410,7 +414,7 @@ let isExistVar = false if ($0) { isExistVar = this.constantArr.some(item => { - const varText = item.slice(2, -1) + const varText = item.key.slice(2, -1) if ($0.indexOf(varText) > -1) { const regexp = new RegExp(`^(.*\\W|\\W)?${varText}(\\W|\\W.*)?$`) return regexp.test($0) @@ -451,12 +455,12 @@ if (len) { event.preventDefault() event.stopPropagation() - let curIndex = this.varList.findIndex(item => item === this.hoverKey) + let curIndex = this.varList.findIndex(item => item.key === this.hoverKey) curIndex = event.code === 'ArrowDown' ? curIndex + 1 : curIndex - 1 curIndex = curIndex > len - 1 ? 0 : (curIndex < 0 ? len - 1 : curIndex) const option = this.varList[curIndex] if (option) { - this.hoverKey = option + this.hoverKey = option.key const selectDom = this.$el.querySelector('.rf-select-content') const hoverItemDom = selectDom.querySelector('.is-hover') if (hoverItemDom) { @@ -487,12 +491,17 @@ position: absolute; top: 30px; right: 0; - width: 238px; + max-width: 600px; background: #ffffff; + border: 1px solid #dcdee5; border-radius: 2px; - box-shadow: 0 0 8px 1px rgba(0, 0, 0, 0.1); + box-shadow: 0 3px 9px 0 rgba(0,0,0,.1); overflow-y: hidden; z-index: 100; + .name { + color: #c4c6cc; + margin-left: 16px; + } } .rf-select-content { max-height: 100px; @@ -501,12 +510,21 @@ @include scrollbar; } .rf-select-item { + display: flex; + align-items: center; padding: 0 10px; line-height: 32px; font-size: 12px; cursor: pointer; - overflow: hidden; - text-overflow: ellipsis; + > span { + flex-shrink: 0; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } + .name { + max-width: 250px; + } &.is-hover, &:hover { background: #f5f7fa; diff --git a/frontend/desktop/src/components/common/RenderForm/tags/TagTextarea.vue b/frontend/desktop/src/components/common/RenderForm/tags/TagTextarea.vue index 4d16f302c8..c3f3832971 100644 --- a/frontend/desktop/src/components/common/RenderForm/tags/TagTextarea.vue +++ b/frontend/desktop/src/components/common/RenderForm/tags/TagTextarea.vue @@ -38,11 +38,11 @@
  • - {{ item }} + :key="item.key" + :class="{ 'is-hover': hoverKey === item.key }" + @click.stop="onSelectVal(item.key)"> + {{ item.key }} + {{ item.name }}
  • @@ -107,10 +107,10 @@ get () { let KeyList = [] if (this.constants) { - KeyList = [...Object.keys(this.constants)] + KeyList = [...Object.values(this.constants)] } if (this.internalVariable) { - KeyList = [...KeyList, ...Object.keys(this.internalVariable)] + KeyList = [...KeyList, ...Object.values(this.internalVariable)] } return KeyList }, @@ -277,7 +277,7 @@ } // 判断是否为变量格式 if (matchText === '$' || /^\${[a-zA-Z_]*[\w|.]*/.test(matchText)) { - this.varList = this.constantArr.filter(item => item.indexOf(matchText) > -1) + this.varList = this.constantArr.filter(item => item.key.indexOf(matchText) > -1) // 计算变量下拉列表的坐标 this.isListOpen = false if (this.varList.length) { @@ -307,13 +307,13 @@ const focusValueWidth = newDom.offsetWidth || 0 const focusValueHeight = newDom.offsetHeight || 0 this.$el.removeChild(newDom) - let popLeft = previousDomLeft + previousDomWidth + focusValueWidth - if (popLeft > inputWidth - 238) { - popLeft = inputWidth - 238 - } - let popTop = textNodeTop - inputTop + focusValueHeight + 2 // 2px是为了使光标和联想列表隔开 this.$nextTick(() => { - const { height: varListHeight } = document.querySelector('.rf-select-list').getBoundingClientRect() + const { height: varListHeight, width: varListWidth } = document.querySelector('.rf-select-list').getBoundingClientRect() + let popLeft = previousDomLeft + previousDomWidth + focusValueWidth + if (popLeft > inputWidth - varListWidth) { + popLeft = inputWidth - varListWidth + } + let popTop = textNodeTop - inputTop + focusValueHeight + 2 // 2px是为了使光标和联想列表隔开 if (window.innerHeight < textNodeTop + focusValueHeight + varListHeight + 50) { popTop = textNodeTop - inputTop - varListHeight - 2 } @@ -345,7 +345,11 @@ let domValue = dom.textContent || '\n' if (dom.childNodes.length) { domValue = Array.from(dom.childNodes).map(item => { - return item.type === 'button' ? item.value : item.textContent + return item.type === 'button' + ? item.value + : item.textContent.trim() === '' + ? ' ' + : item.textContent.replace(/ /g, ' ') }).join('') } return domValue @@ -376,7 +380,7 @@ let isExistVar = false if ($0) { isExistVar = this.constantArr.some(item => { - const varText = item.slice(2, -1) + const varText = item.key.slice(2, -1) if ($0.indexOf(varText) > -1) { const regexp = new RegExp(`^(.*\\W|\\W)?${varText}(\\W|\\W.*)?$`) return regexp.test($0) @@ -436,12 +440,12 @@ if (len) { event.preventDefault() event.stopPropagation() - let curIndex = this.varList.findIndex(item => item === this.hoverKey) + let curIndex = this.varList.findIndex(item => item.key === this.hoverKey) curIndex = event.code === 'ArrowDown' ? curIndex + 1 : curIndex - 1 curIndex = curIndex > len - 1 ? 0 : (curIndex < 0 ? len - 1 : curIndex) const option = this.varList[curIndex] if (option) { - this.hoverKey = option + this.hoverKey = option.key const selectDom = this.$el.querySelector('.rf-select-content') const hoverItemDom = selectDom.querySelector('.is-hover') if (hoverItemDom) { @@ -471,12 +475,17 @@ position: absolute; top: 40px; right: 0; - width: 238px; + max-width: 600px; background: #ffffff; + border: 1px solid #dcdee5; border-radius: 2px; - box-shadow: 0 0 8px 1px rgba(0, 0, 0, 0.1); + box-shadow: 0 3px 9px 0 rgba(0,0,0,.1); overflow-y: hidden; z-index: 100; + .name { + color: #c4c6cc; + margin-left: 16px; + } } .rf-select-content { max-height: 100px; @@ -485,12 +494,21 @@ @include scrollbar; } .rf-select-item { + display: flex; + align-items: center; padding: 0 10px; line-height: 32px; font-size: 12px; cursor: pointer; - overflow: hidden; - text-overflow: ellipsis; + > span { + flex-shrink: 0; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } + .name { + max-width: 250px; + } &.is-hover, &:hover { background: #f5f7fa; diff --git a/frontend/desktop/src/config/i18n/cn.js b/frontend/desktop/src/config/i18n/cn.js index fff8ebb805..b69269f734 100644 --- a/frontend/desktop/src/config/i18n/cn.js +++ b/frontend/desktop/src/config/i18n/cn.js @@ -1788,7 +1788,10 @@ const cn = { '清除所有IP': '清除所有IP', '清除异常IP': '清除异常IP', '节点输入型变量仅支持从节点"取消使用变量"来删除': '节点输入型变量仅支持从节点"取消使用变量"来删除', - '节点输出型变量仅支持从节点"取消接收输出"来删除': '节点输出型变量仅支持从节点"取消接收输出"来删除 ' + '节点输出型变量仅支持从节点"取消接收输出"来删除': '节点输出型变量仅支持从节点"取消接收输出"来删除', + '刷新': '刷新', + 'exFailedText': '节点执行失败,请前往{0}查看错误原因', + 'exFailedText_调用日志': '调用日志' } export default cn diff --git a/frontend/desktop/src/config/i18n/en.js b/frontend/desktop/src/config/i18n/en.js index ecff355d91..ad57c28e8d 100644 --- a/frontend/desktop/src/config/i18n/en.js +++ b/frontend/desktop/src/config/i18n/en.js @@ -1822,7 +1822,10 @@ const en = { '清除所有IP': 'Clear all IPs', '清除异常IP': 'Clear abnormal IP', '节点输入型变量仅支持从节点"取消使用变量"来删除': 'Node input variables can only be deleted by the node "Cancel Using variable"', - '节点输出型变量仅支持从节点"取消接收输出"来删除': 'Node output variables can only be deleted by the node "Cancel Receiving Output"' + '节点输出型变量仅支持从节点"取消接收输出"来删除': 'Node output variables can only be deleted by the node "Cancel Receiving Output"', + '刷新': 'Refresh', + 'exFailedText': 'Node execution failed. Please go to the {0} to check the error reason.', + 'exFailedText_调用日志': 'call log' } export default en diff --git a/frontend/desktop/src/pages/task/TaskExecute/ExecuteInfo.vue b/frontend/desktop/src/pages/task/TaskExecute/ExecuteInfo.vue index d654c1de1a..14df3b33f6 100644 --- a/frontend/desktop/src/pages/task/TaskExecute/ExecuteInfo.vue +++ b/frontend/desktop/src/pages/task/TaskExecute/ExecuteInfo.vue @@ -130,7 +130,8 @@ :execute-info="executeRecord" :node-detail-config="nodeDetailConfig" :not-performed-sub-node="notPerformedSubNode" - :is-sub-process-node="isSubProcessNode"> + :is-sub-process-node="isSubProcessNode" + @onTabChange="onTabChange">
    diff --git a/frontend/desktop/src/scss/iconfont.scss b/frontend/desktop/src/scss/iconfont.scss index bad7e07801..eb48bed614 100644 --- a/frontend/desktop/src/scss/iconfont.scss +++ b/frontend/desktop/src/scss/iconfont.scss @@ -590,9 +590,9 @@ .common-icon-full-screen:before { content: "\e202"; } -.common-icon-variable-hook:before { - content: "\e205"; -} .common-icon-converge-node:before { content: "\e204"; } +.common-icon-variable-hook:before { + content: "\e207"; +}