From 96f2b8b1f3f2a7eabaad932e4727377023c5f2ab Mon Sep 17 00:00:00 2001 From: guoyue Date: Thu, 23 Jun 2022 12:43:02 +0800 Subject: [PATCH 001/143] =?UTF-8?q?add:=20=E7=AE=97=E6=B3=95=E5=AF=B9?= =?UTF-8?q?=E6=AF=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- front/src/views/home/algorithmCompare.vue | 670 ++++++++++++++++++ .../home/components/CompareGroupView.vue | 110 +++ 2 files changed, 780 insertions(+) create mode 100644 front/src/views/home/algorithmCompare.vue create mode 100644 front/src/views/home/components/CompareGroupView.vue diff --git a/front/src/views/home/algorithmCompare.vue b/front/src/views/home/algorithmCompare.vue new file mode 100644 index 00000000..1f8381c3 --- /dev/null +++ b/front/src/views/home/algorithmCompare.vue @@ -0,0 +1,670 @@ + + + + + + + \ No newline at end of file diff --git a/front/src/views/home/components/CompareGroupView.vue b/front/src/views/home/components/CompareGroupView.vue new file mode 100644 index 00000000..ac15a438 --- /dev/null +++ b/front/src/views/home/components/CompareGroupView.vue @@ -0,0 +1,110 @@ + + + \ No newline at end of file From 3ceb5b59de3274bf6b839ca459a2f35a34aeb7b1 Mon Sep 17 00:00:00 2001 From: guoyue Date: Thu, 23 Jun 2022 13:19:52 +0800 Subject: [PATCH 002/143] =?UTF-8?q?=E7=AE=97=E6=B3=95=E5=AF=B9=E6=AF=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- front/src/assets/newHome/pk-down.png | Bin 0 -> 1375 bytes front/src/assets/newHome/pk-on.png | Bin 0 -> 1376 bytes front/src/views/home/algorithmCompare.vue | 49 +- .../home/components/searchResultList.vue | 1173 +++++++++-------- 4 files changed, 631 insertions(+), 591 deletions(-) create mode 100644 front/src/assets/newHome/pk-down.png create mode 100644 front/src/assets/newHome/pk-on.png diff --git a/front/src/assets/newHome/pk-down.png b/front/src/assets/newHome/pk-down.png new file mode 100644 index 0000000000000000000000000000000000000000..5c7203200dd950d0a398a079d06dbccabad9e4ea GIT binary patch literal 1375 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%!-*I5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s0;1ij|YIlc|}rv74Krk(r^PtFxuKu_;i<&DGJ= z%+%S?0;bm`Ke;qFHLnDwHwCWO!~myWP)f)x0NU)5T9jFqn&MWJpQ`}&u~jB+x47Um z52`l>r(29&aq86vIz}H9uSoF>69Oh45EGtifgE_cPt5}+_99@aE{O07U|?Xp;_2cT zQgJIOrK94-(E|qz*gI4uUvST3F62_az<9naq{};M#iq+wzX@-zH>%jOzvdjvC(FIM z?2IesPV(Vl=5doXc-0WdzTv^76Z8LcB|iKquaU&H$A{P-K7Rw^Y(q^R^8hmq$JKR{FHA)PF1JkwdqPe0r8(7 zm4AqFoXDKOAhNuTYYmSgUky)@(3%^Y*Yk=q+lwnZUtYKVL5@uIU+a4=9#fd@&P-N5 z)wm!-vtNj5v$*VkzP`3wOW#XgySCwR57(+`Em@Cr61p8ErbRoX9(<-e|7E;L`|b~i zg|mKb>gUO~`?Ih*n*cMo&Y_XCnJ+OkAt(AFRvsKp@wgBt- q#!kDR8#hL@oy)6WJaUqOk&R&ql3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s0;1ij|Y0g@u8Ik(ryJk(r^PtFx1%tC59^i>r}= ziIbs;i4#n(OMY@`Zfaf$Om7N8uQ^V=pp=kX0JPa9wJ5VJHN~wcKUV?lW2;QuZZW}W z9#n4%Znv1?)TVL91WY_2COp*wIq-C!ng>kmMZi?evu)iE1_s8fo-U3d z6}OU7Ix1eAJaE83yhBy;1@}DWLL=o1jOWWjy1b)SY`T2)oACB}qlzv2YtFHJvfQi7 z&bVUkBp)7T9yeKoR}F#e8y-y3nE9h -
+
- +
{ From b335bee61c12dd46eb3d6c727c89ec48509b49b8 Mon Sep 17 00:00:00 2001 From: guoyue Date: Thu, 23 Jun 2022 19:58:44 +0800 Subject: [PATCH 003/143] =?UTF-8?q?=E7=AE=97=E6=B3=95=E5=AF=B9=E6=AF=94(?= =?UTF-8?q?=E6=9A=82=E5=AD=98)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- front/src/assets/newHome/add-on.png | Bin 0 -> 1573 bytes front/src/assets/newHome/add.png | Bin 0 -> 1574 bytes front/src/assets/newHome/delete-on.png | Bin 0 -> 1096 bytes front/src/router/index.js | 10 + front/src/views/home/algorithmCompare.vue | 520 ++++++++++-------- .../home/components/CompareGroupView.vue | 119 ++-- 6 files changed, 367 insertions(+), 282 deletions(-) create mode 100644 front/src/assets/newHome/add-on.png create mode 100644 front/src/assets/newHome/add.png create mode 100644 front/src/assets/newHome/delete-on.png diff --git a/front/src/assets/newHome/add-on.png b/front/src/assets/newHome/add-on.png new file mode 100644 index 0000000000000000000000000000000000000000..7bc620d65cda6fabb258766bb696f14dbedb286d GIT binary patch literal 1573 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 literal 0 HcmV?d00001 diff --git a/front/src/assets/newHome/delete-on.png b/front/src/assets/newHome/delete-on.png new file mode 100644 index 0000000000000000000000000000000000000000..0349bf9d7e0dea4e96d555d4ccbdd84b615c45f7 GIT binary patch literal 1096 zcmaJ=U1-x#7>%1#5jSuQQ3o0$)A`e;w_V*57iCQvTd{TPitWQtv*d0KTXJJ^YulkR zCj-SPDCl0M=!^KGFYZlL@MZcSP85_WA|lHCMIZD*5pU``eXs^@?hogj?|k3=?y>gx zw(5n;7g7{e9gRo{GB0w+f_db>E8F#kOv`XMjXO~f&M7ve+BDP+>8PRf!UR;b!oIt( zm7*$F>B%%s$9C{4GQ5h5@#YPSuqmo_Yu-}SK8WdV*sGfY^Xd96hSoKKNd;rRm?grD z9vQG<=RiEE4)m#<#%$d}x8`{wU_h+Ud86NS_`JXrb$POOk6DH;LU5nJ{5F-2wbLT9 zAszGvJ*p2h(aoF}1VK{^*hu?*Ai(+pEC_gjpZ9S*2+}hjL!#MQ51)|anOI~eFd2+3 zo@H~noHrNnBDVa%c(oPdA){!`dV7A(jnpo6luN-nNvwHwOf zMH?y@*-3=@OI2*oAdH+0vS?AH8&kTep`5d>2#>}1sOezERAE#S7$V@+b&U^)f*~m! z3d_L134pNJ24qeQ%D(1MxFysAK#40MHETcm{ZNx_WYEQo zdA+(hmzwWtoM4HE4&UP)?%=SGrNweFetE;MxKPNBZMpSA` z=BEyHa5WWR(fF5>lb;*U&si{c=Y`>w*5l;l2l4d0@rJ3$bZX7D+80{&S$X^WWfSKo zUoR;XYQ}CiJej+GaICWT;EDbf_s{McjXXTKw6^2S-s$?5)aApS&7O-#R-*b#56-Q< zF5i5VmE(_oe2?y_8rc(FCTdt~~J|J~1#SFa*pCx&)E zt*l5rc{_YXSbVRhEh`4P5AEnW@a<(?lf9;5{ import('@/views/home/algorithmCompare'), + meta: { + title: '算法对比', + icon: 'error-warning-line', + }, + }, { path: '/addApplication', name: 'addApplication', diff --git a/front/src/views/home/algorithmCompare.vue b/front/src/views/home/algorithmCompare.vue index 8cce4d95..e679fc0b 100644 --- a/front/src/views/home/algorithmCompare.vue +++ b/front/src/views/home/algorithmCompare.vue @@ -2,47 +2,34 @@
+
-
- {{ data.title }} + {{ data }}
- {{ `共选取${getLength(detailArray)}个算法` }} + + {{ `共选取${selectedRowKeys.length}个算法` }} +
{{ item.name || '--' }} - - - - - - - - + + + +
@@ -50,7 +37,20 @@
{{ data.title }}
- + +
+
+
+
{{ item }}
+
+
{{ d }} +
+
+
+
+
+
暂无数据
@@ -59,7 +59,7 @@
- {{ item || '--' }} + {{ item }}
@@ -69,31 +69,30 @@
- - + +
- \ No newline at end of file diff --git a/front/src/views/home/components/CompareGroupView.vue b/front/src/views/home/components/CompareGroupView.vue index ac15a438..afc7c516 100644 --- a/front/src/views/home/components/CompareGroupView.vue +++ b/front/src/views/home/components/CompareGroupView.vue @@ -1,77 +1,103 @@ - +', tableArray); - }) + --> - - \ No newline at end of file From 8f8387c80de84e87d49c6c35d1ae24045fc35721 Mon Sep 17 00:00:00 2001 From: guoyue Date: Sat, 25 Jun 2022 11:12:54 +0800 Subject: [PATCH 004/143] =?UTF-8?q?add:=20=E7=AE=97=E6=B3=95=E5=AF=B9?= =?UTF-8?q?=E6=AF=94--=E8=B7=AF=E7=94=B1=E8=B7=B3=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../home/components/searchResultList.vue | 1232 ++++++++--------- 1 file changed, 615 insertions(+), 617 deletions(-) diff --git a/front/src/views/home/components/searchResultList.vue b/front/src/views/home/components/searchResultList.vue index a2deb6db..33778a02 100644 --- a/front/src/views/home/components/searchResultList.vue +++ b/front/src/views/home/components/searchResultList.vue @@ -6,75 +6,44 @@ 检测结果: {{ resourceTotal || '' }} 个{{ - cardType == '组件服务' ? '组件' : cardType == '应用资源' ? '应用' : '' + cardType == '组件服务' ? '组件' : cardType == '应用资源' ? '应用' : '' }}
    -
  • +
  • {{ item.name }} - +
-
+
-
+ " v-if="selectCardsname !== '基础设施'">
{{ item.name }} - + + fill="#d81e06" p-id="3063"> + fill="#d81e06" p-id="3064"> + fill="#d81e06" p-id="3065">
@@ -96,11 +65,9 @@
-
+
{{ item.shareType || '--' }}
@@ -128,11 +95,7 @@ - +
@@ -140,30 +103,15 @@
- +
- - - + + + 免费试用
@@ -175,7 +123,7 @@ {{ - item.shareCondition == '免批申请' ? '免批申请' : '立即申请' + item.shareCondition == '免批申请' ? '免批申请' : '立即申请' }}
@@ -188,12 +136,7 @@
- +
@@ -204,594 +147,649 @@
From 9accfa4f295f76e1ad11cf35305c8bc99e2323ac Mon Sep 17 00:00:00 2001 From: gaoxiaolong <327091900@qq.com> Date: Sat, 25 Jun 2022 11:36:34 +0800 Subject: [PATCH 005/143] =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- back/src/assets/img/排行榜背景图.png | Bin 0 -> 75294 bytes .../applicationResources.vue | 58 +++++++++++++++--- .../abilityStatistics/componentServices.vue | 1 + 3 files changed, 51 insertions(+), 8 deletions(-) create mode 100644 back/src/assets/img/排行榜背景图.png diff --git a/back/src/assets/img/排行榜背景图.png b/back/src/assets/img/排行榜背景图.png new file mode 100644 index 0000000000000000000000000000000000000000..8377a1ff88bedfdf0ddd1b5c03f1e2fedb4b365b GIT binary patch literal 75294 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 Y0HoR6Cnf(7cmMzZ07*qoM6N<$f*k&!NdN!< literal 0 HcmV?d00001 diff --git a/back/src/views/modules/abilityStatistics/applicationResources.vue b/back/src/views/modules/abilityStatistics/applicationResources.vue index 49826e38..2c24531a 100644 --- a/back/src/views/modules/abilityStatistics/applicationResources.vue +++ b/back/src/views/modules/abilityStatistics/applicationResources.vue @@ -98,7 +98,7 @@ export default { }, axisLine:{ lineStyle:{ - color:"#ebebeb" + color:"#f5f5f5" } }, axisLabel: {//y轴文字的配置 @@ -133,11 +133,25 @@ export default { }, }, series: [ + { + data: [5, 5, 5, 5, 5, 5], + type: 'bar', + barWidth: 14, + stack: '1', + itemStyle: { + barBorderRadius: [20,20,20,20], + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { offset: 0, color: 'rgba(178, 189, 255,0)' }, + // { offset: 0.5, color: '#188df0' }, + { offset: 1, color: 'rgba(82, 106, 255,0)' } + ]) + }, + }, { data: [60, 90, 50, 80], type: 'bar', barWidth: 14, - + stack: '1', itemStyle: { barBorderRadius: [20,20,20,20], color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ @@ -285,11 +299,25 @@ export default { }, }, series: [ + { + data: [5, 5, 5, 5], + type: 'bar', + barWidth: 14, + stack: '1', + itemStyle: { + barBorderRadius: [20,20,20,20], + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { offset: 0, color: 'rgba(178, 189, 255,0)' }, + // { offset: 0.5, color: '#188df0' }, + { offset: 1, color: 'rgba(82, 106, 255,0)' } + ]) + }, + }, { data: [60, 90, 50, 80], type: 'bar', barWidth: 14, - + stack: '1', itemStyle: { barBorderRadius: [20,20,20,20], color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ @@ -317,9 +345,9 @@ export default { type: 'category', data: ['组件名称1', '组件名称2', '组件名称3', '组件名称4', '组件名称5', '组件名称6'], color:['#f5f5f5'], - axisTick:{ - show:false,//不显示坐标轴刻度线 - }, + axisTick: { // 坐标轴 刻度 + show: false, // 是否显示 + }, splitLine: { show: true, color:['#f5f5f5'] @@ -362,10 +390,24 @@ export default { }, series: [ { + data: [5, 5, 5, 5, 5, 5], + type: 'bar', + barWidth: 14, + stack: '1', + itemStyle: { + barBorderRadius: [20,20,20,20], + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { offset: 0, color: 'rgba(178, 189, 255,0)' }, + // { offset: 0.5, color: '#188df0' }, + { offset: 1, color: 'rgba(82, 106, 255,0)' } + ]) + }, + }, + { data: [60, 90, 50, 80, 50, 80], type: 'bar', barWidth: 14, - + stack: '1', itemStyle: { barBorderRadius: [20,20,20,20], color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ @@ -374,7 +416,7 @@ export default { { offset: 1, color: 'rgba(82, 106, 255,0.8)' } ]) }, - } + }, ] }; diff --git a/back/src/views/modules/abilityStatistics/componentServices.vue b/back/src/views/modules/abilityStatistics/componentServices.vue index 40117e32..8d754469 100644 --- a/back/src/views/modules/abilityStatistics/componentServices.vue +++ b/back/src/views/modules/abilityStatistics/componentServices.vue @@ -358,6 +358,7 @@ export default { padding-left: 20px; margin-top: 20px; margin-right: 20px; + /* background-image:url("../../../assets/img/排行榜背景图.png"); */ } .container-body5{ width:640px; From d4d9f068c3be76ee3648401fde1392ed2348306a Mon Sep 17 00:00:00 2001 From: gaoyuanwei <2826352639@qq.com> Date: Sat, 25 Jun 2022 13:34:24 +0800 Subject: [PATCH 006/143] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E8=AE=BE=E6=96=BD-?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- front/src/views/home/infrastructurePage.vue | 423 +++++++++++++++++++- 1 file changed, 420 insertions(+), 3 deletions(-) diff --git a/front/src/views/home/infrastructurePage.vue b/front/src/views/home/infrastructurePage.vue index 1249bb3e..c8b3c1fe 100644 --- a/front/src/views/home/infrastructurePage.vue +++ b/front/src/views/home/infrastructurePage.vue @@ -1,5 +1,422 @@ + - - + + From 598f60ca177ef06a796525a74965fecf085ca641 Mon Sep 17 00:00:00 2001 From: gaoyuanwei <2826352639@qq.com> Date: Sat, 25 Jun 2022 13:45:26 +0800 Subject: [PATCH 007/143] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E8=AE=BE=E6=96=BD?= =?UTF-8?q?=E5=A4=96=E9=83=A8=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- front/src/views/home/DetailsPageconetent.vue | 893 ++++++++++--------- 1 file changed, 462 insertions(+), 431 deletions(-) diff --git a/front/src/views/home/DetailsPageconetent.vue b/front/src/views/home/DetailsPageconetent.vue index eece6ba4..fad985c5 100644 --- a/front/src/views/home/DetailsPageconetent.vue +++ b/front/src/views/home/DetailsPageconetent.vue @@ -2,10 +2,13 @@
-
+
-
+
+ +
+
+
+
+
+ + {{ item.name }} +
+
+
+ +
+
From b379c87cd4d0149092da1c51b2cfc1dff04fbcc9 Mon Sep 17 00:00:00 2001 From: guoyue Date: Sat, 25 Jun 2022 14:00:45 +0800 Subject: [PATCH 008/143] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AF=B9=E6=AF=94?= =?UTF-8?q?=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- front/src/views/home/algorithmCompare.vue | 160 +++++++++++++--------- 1 file changed, 99 insertions(+), 61 deletions(-) diff --git a/front/src/views/home/algorithmCompare.vue b/front/src/views/home/algorithmCompare.vue index e679fc0b..1d99f8dd 100644 --- a/front/src/views/home/algorithmCompare.vue +++ b/front/src/views/home/algorithmCompare.vue @@ -2,7 +2,7 @@
- +
@@ -125,15 +120,11 @@ //tab切换点击事件 const tabClick = (indexFather, name, fatherName) => { if (clickList.value[indexFather].content.indexOf(name) != -1) { - debugger if (fatherName == '视频资源') { - debugger tableHeight.value = 330 } else if (fatherName == '云资源') { - debugger tableHeight.value = 600 } else if (fatherName == '感知资源') { - debugger tableHeight.value = 330 } clickList.value[indexFather].content.splice( @@ -141,15 +132,11 @@ 1 ) } else { - debugger if (fatherName == '视频资源') { - debugger tableHeight.value = 330 } else if (fatherName == '云资源') { - debugger tableHeight.value = 600 } else if (fatherName == '感知资源') { - debugger tableHeight.value = 330 } clickList.value[indexFather].content[0] = name @@ -296,12 +283,16 @@ key: 'address', }, ]) - // const selectedRowKeys = + const allClick = ref([]) + const onSelectChange = (selectedRowKeys) => { + console.log('hahhahah', selectedRowKeys) + allClick.value = selectedRowKeys + } const pagination = ref({ total: 0, pageSize: 10, //每页中显示10条数据 showSizeChanger: true, - pageSizeOptions: ['5', '15', '30', '45'], //每页中显示的数据 + pageSizeOptions: ['5', '10', '15', '20'], //每页中显示的数据 }) const queryParam = ref({ page: 1, //第几页 @@ -320,131 +311,131 @@ } From 01f05b1963f03076b91518316a482ec3fbf4d392 Mon Sep 17 00:00:00 2001 From: a0049873 <79py69t9wb@privaterelay.appleid.com> Date: Mon, 27 Jun 2022 09:43:37 +0800 Subject: [PATCH 013/143] eslint --- front/src/views/home/DetailsPageconetent.vue | 870 +++++++++--------- .../home/detailsPageInfrastructureTree.vue | 252 ++--- .../views/home/detailsPageconetentTree.vue | 22 +- front/src/views/home/infrastructurePage.vue | 238 +++-- 4 files changed, 684 insertions(+), 698 deletions(-) diff --git a/front/src/views/home/DetailsPageconetent.vue b/front/src/views/home/DetailsPageconetent.vue index fad985c5..ba19f9a8 100644 --- a/front/src/views/home/DetailsPageconetent.vue +++ b/front/src/views/home/DetailsPageconetent.vue @@ -1334,474 +1334,474 @@ }) diff --git a/front/src/views/home/detailsPageInfrastructureTree.vue b/front/src/views/home/detailsPageInfrastructureTree.vue index beb1ffd3..621eb4e9 100644 --- a/front/src/views/home/detailsPageInfrastructureTree.vue +++ b/front/src/views/home/detailsPageInfrastructureTree.vue @@ -340,143 +340,97 @@ }) diff --git a/front/src/views/home/detailsPageconetentTree.vue b/front/src/views/home/detailsPageconetentTree.vue index 7ebcfcba..a17ce985 100644 --- a/front/src/views/home/detailsPageconetentTree.vue +++ b/front/src/views/home/detailsPageconetentTree.vue @@ -395,13 +395,13 @@ .primaryNode { .top { width: 100%; - height: .4rem; + height: 0.4rem; background: rgba(0, 135, 225, 0.1); display: flex; justify-content: space-between; align-items: center; - padding: 0 .1rem; - margin-top: .08rem; + padding: 0 0.1rem; + margin-top: 0.08rem; } .top:hover { cursor: pointer; @@ -422,16 +422,16 @@ .bottom { width: 100%; background: rgba(244, 245, 248, 0.8); - padding: 0 .1rem; + padding: 0 0.1rem; // margin-bottom: .08rem; .up { cursor: pointer; - height: .4rem; + height: 0.4rem; display: flex; justify-content: space-between; align-items: center; - border-top: .01rem solid #ccc; - padding: 0 .1rem; + border-top: 0.01rem solid #ccc; + padding: 0 0.1rem; & > div { display: flex; justify-content: flex-start; @@ -455,7 +455,7 @@ } } .select { - padding: 0 .1rem 0 0; + padding: 0 0.1rem 0 0; .name { width: 1.7rem; color: #0058e1; @@ -473,11 +473,11 @@ width: 100%; .child { cursor: pointer; - height: .4rem; + height: 0.4rem; display: flex; justify-content: space-between; align-items: center; - padding: 0 .1rem; + padding: 0 0.1rem; & > div { display: flex; justify-content: flex-start; @@ -510,7 +510,7 @@ color: #0058e1; font-weight: 600; } - padding: 0 .1rem 0 0; + padding: 0 0.1rem 0 0; } } } diff --git a/front/src/views/home/infrastructurePage.vue b/front/src/views/home/infrastructurePage.vue index cd59abab..7450bbfa 100644 --- a/front/src/views/home/infrastructurePage.vue +++ b/front/src/views/home/infrastructurePage.vue @@ -84,7 +84,7 @@
From e0ed9d7f60db8cec29f6fba3f2d45c9bfce126ae Mon Sep 17 00:00:00 2001 From: "851673013@qq.com" <851673013@qq.com> Date: Mon, 27 Jun 2022 11:49:47 +0800 Subject: [PATCH 014/143] =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../detailsAll/components/Algorithm/AlgorithmTopDetails.vue | 2 +- .../views/detailsAll/components/Business/BusinessTopDetails.vue | 2 +- .../components/LayerService/LayerServiceTopDetails.vue | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/front/src/views/detailsAll/components/Algorithm/AlgorithmTopDetails.vue b/front/src/views/detailsAll/components/Algorithm/AlgorithmTopDetails.vue index 6edef0b1..d52206ab 100644 --- a/front/src/views/detailsAll/components/Algorithm/AlgorithmTopDetails.vue +++ b/front/src/views/detailsAll/components/Algorithm/AlgorithmTopDetails.vue @@ -34,7 +34,7 @@ - 加入购物车 + 加入申购车 收藏
diff --git a/front/src/views/detailsAll/components/Business/BusinessTopDetails.vue b/front/src/views/detailsAll/components/Business/BusinessTopDetails.vue index 64a4be26..fa6b83e2 100644 --- a/front/src/views/detailsAll/components/Business/BusinessTopDetails.vue +++ b/front/src/views/detailsAll/components/Business/BusinessTopDetails.vue @@ -35,7 +35,7 @@ - 加入购物车 + 加入申购车 --> 收藏
diff --git a/front/src/views/detailsAll/components/LayerService/LayerServiceTopDetails.vue b/front/src/views/detailsAll/components/LayerService/LayerServiceTopDetails.vue index ebb52843..3fb2b33a 100644 --- a/front/src/views/detailsAll/components/LayerService/LayerServiceTopDetails.vue +++ b/front/src/views/detailsAll/components/LayerService/LayerServiceTopDetails.vue @@ -35,7 +35,7 @@ - 加入购物车 + 加入申购车 收藏
From 1410884d61b8d7aebe701db2add723b916bd5cff Mon Sep 17 00:00:00 2001 From: guoyue Date: Mon, 27 Jun 2022 13:52:16 +0800 Subject: [PATCH 015/143] =?UTF-8?q?=E7=AE=97=E6=B3=95=E5=AF=B9=E6=AF=94?= =?UTF-8?q?=EF=BC=8C=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- front/src/views/home/algorithmCompare.vue | 115 +++++++++++++++++----- 1 file changed, 89 insertions(+), 26 deletions(-) diff --git a/front/src/views/home/algorithmCompare.vue b/front/src/views/home/algorithmCompare.vue index f0955699..c1e32113 100644 --- a/front/src/views/home/algorithmCompare.vue +++ b/front/src/views/home/algorithmCompare.vue @@ -11,7 +11,7 @@
-
{{ data }}
@@ -33,7 +33,7 @@
-
{{ data.title }}
+
{{ data.title }}
@@ -68,9 +68,7 @@
@@ -103,6 +101,12 @@ import { pageWithAttrs } from '@/api/abilityStatistics' import { defineComponent, ref, onMounted, getCurrentInstance, computed, unref, reactive, nextTick } from 'vue'; import { selectOne } from '@/api/home' import { message, Tooltip, Table, Spin } from 'ant-design-vue' +import { useRouter } from 'vue-router' + +const router = useRouter() +let queryId = router.currentRoute.value.query.id; + +console.log('111---->', router) const ctx = getCurrentInstance(); // 最大4列 @@ -268,13 +272,80 @@ const loadingPage = ref(false) // 初始化 onMounted(() => { - getList().then(res => { - initData() + selectedRowKeys.value.push(queryId) + nextTick(() => { + getList().then(res => { + initData() + }) + // 滚动条 + window.addEventListener('scroll', handleScroll, true) }) + + }) +let navScrollTopArray = ref([]) +// 获取元素距离顶部的位置 +const getNavscrollTop = () => { + navScrollTopArray = ref([]) + leftNav.value.map((title, index) => { + let realTop = ctx.refs[title][0].offsetTop; + navScrollTopArray.value.push({ + scrollTop: realTop - 240, + index: index + }) + }) +} + +// 滚动 +const handleScroll = () => { + isScrollFlag.value = true; + if(isScrollFlag.value) { + let _scrollTop = ctx.refs.bottomRef && ctx.refs.bottomRef.scrollTop; + nextTick(() => { + let len = navScrollTopArray.value.length; + let min = navScrollTopArray.value[1].scrollTop + let max = navScrollTopArray.value[len - 2].scrollTop; + for (let index = 0; index < navScrollTopArray.value.length; index++) { + const item = navScrollTopArray.value[index]; + if (index < len - 1) { + if (_scrollTop > item.scrollTop && _scrollTop < navScrollTopArray.value[index + 1].scrollTop) { + activeNameIndex.value = index + 1; + break; + } + } + if (_scrollTop >= max) { + activeNameIndex.value = len - 1; + break; + } + if (_scrollTop <= min) { + activeNameIndex.value = 0; + break; + } + } + }) + } +} + +let isScrollFlag = ref(false) +// 切换左侧 +const changeTab = (n, data) => { + isScrollFlag.value = false; + activeNameIndex.value = n; + // 获取元素距离父元素的距离 + let realTop = ctx.refs[data][0].offsetTop; + console.log('realTop------------>', realTop); + if (realTop || realTop === 0) { + ctx.refs.bottomRef.scrollTo({ + 'top': realTop - 240, + 'behavior': 'smooth' + }) + } +} + const initData = () => { - loadingPage.value = true + loadingPage.value = true; + // queryId // 获取详情 Promise.all(selectedRowKeys.value.map(id => getDetail(id))).then(data => { detailArray.value = [] @@ -286,9 +357,12 @@ const initData = () => { } } // 处理数据 + getNewData() + nextTick(() => { - getNewData() + getNavscrollTop() }) + loadingPage.value = false }).catch(err => { loadingPage.value = false @@ -388,7 +462,7 @@ const getList = () => { deptIds: [], districtId: '', infoList: [ - // { attrType: "组件类型", attrValue: "智能算法" } + { attrType: "组件类型", attrValue: "智能算法" } ], name: '', orderField: 'total', @@ -403,8 +477,8 @@ const getList = () => { dataList.value = res.data.data.records || [] nextTick(() => { // 默认前两个 - selectedRowKeys.value.push(dataList.value[0].id) - selectedRowKeys.value.push(dataList.value[1].id) + // selectedRowKeys.value.push(dataList.value[0].id) + // selectedRowKeys.value.push(dataList.value[1].id) }) resolve(res) }).catch(err => { @@ -480,18 +554,6 @@ const showVideo = (name) => { return false; } -// 切换左侧 -const changeTab = (n, data) => { - activeNameIndex.value = n; - // 获取元素距离父元素的距离 - let realTop = ctx.refs[data][0].offsetTop; - if (realTop || realTop === 0) { - ctx.refs.bottomRef.scrollTo({ - 'top': realTop - 240, - 'behavior': 'smooth' - }) - } -} // 获取详情 const getDetail = (id) => { @@ -657,8 +719,9 @@ const formatterData = (obj) => { .bottom { width: 100%; overflow-y: auto; - height: 620px; - padding-bottom: 20px; + // height: 7rem; + height: calc(100vh - 300px); + padding-bottom: 10px; box-sizing: border-box; } } From 0adb2868278d2984bfb03c23f4194bd431ac0499 Mon Sep 17 00:00:00 2001 From: "851673013@qq.com" <851673013@qq.com> Date: Mon, 27 Jun 2022 14:09:55 +0800 Subject: [PATCH 016/143] =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5bug279?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/Algorithm/AlgorithmChargingStandard.vue | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/front/src/views/detailsAll/components/Algorithm/AlgorithmChargingStandard.vue b/front/src/views/detailsAll/components/Algorithm/AlgorithmChargingStandard.vue index c21adfeb..a32c4304 100644 --- a/front/src/views/detailsAll/components/Algorithm/AlgorithmChargingStandard.vue +++ b/front/src/views/detailsAll/components/Algorithm/AlgorithmChargingStandard.vue @@ -7,7 +7,10 @@
{{ item.title }}
-
{{ item.content }}
+ + +
{{ item.content }}
+
{{ val.total }} @@ -75,9 +78,12 @@ fill="#0058e1" > - - {{ child.title }} - + + + + {{ child.title }} + +
{{ child.total }}
From 3738985aded723e0d005ba1c05a823d143d77614 Mon Sep 17 00:00:00 2001 From: a0049873 <79py69t9wb@privaterelay.appleid.com> Date: Mon, 27 Jun 2022 14:27:50 +0800 Subject: [PATCH 018/143] =?UTF-8?q?=E5=90=8E=E5=8F=B0=E8=83=BD=E5=8A=9B?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E9=A1=B5=E9=9D=A2=E5=BC=80=E5=8F=91=20=20?= =?UTF-8?q?=E5=89=8D=E5=8F=B0=E7=94=B3=E8=B4=AD=E8=BD=A6=20=E9=87=8D?= =?UTF-8?q?=E6=9E=84=20=20=20=E6=96=B0=E5=A2=9E=E5=B8=82=E5=B1=80=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=B5=84=E6=BA=90=E8=B7=B3=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- back/src/mixins/view-module.js | 34 +- .../modules/myAgent/CompetencyApplication.vue | 169 +++ front/public/static/config/location.js | 8 +- .../components/DataResources.vue | 5 +- .../home/components/searchResultList.vue | 1326 +++++++++-------- .../components/PurchaseVehicle.vue | 333 +++-- front/src/views/personalCenter/index.vue | 2 +- 7 files changed, 1100 insertions(+), 777 deletions(-) create mode 100644 back/src/views/modules/myAgent/CompetencyApplication.vue diff --git a/back/src/mixins/view-module.js b/back/src/mixins/view-module.js index ab4c9931..ae81da9b 100644 --- a/back/src/mixins/view-module.js +++ b/back/src/mixins/view-module.js @@ -2,7 +2,7 @@ import Cookies from 'js-cookie' import qs from 'qs' import { deepClone } from '@/utils/form-generator/index' export default { - data() { + data () { /* eslint-disable */ return { // 设置属性 @@ -38,19 +38,19 @@ export default { } /* eslint-enable */ }, - created() { + created () { if (this.mixinViewModuleOptions.createdIsNeed) { this.query() } }, - activated() { + activated () { if (this.mixinViewModuleOptions.activatedIsNeed) { this.query() } }, methods: { // 获取数据列表 - query() { + query () { this.dataListLoading = true this.$http.get( this.mixinViewModuleOptions.getDataListURL + '?' + qs.stringify({ @@ -102,7 +102,7 @@ export default { return item } }) - this.total = this.mixinViewModuleOptions.getDataListIsPage ? this.dataList.length : 0 + this.total = this.mixinViewModuleOptions.getDataListIsPage ? res.data.total : 0 }) } else { this.total = this.mixinViewModuleOptions.getDataListIsPage ? res.data.total : 0 @@ -118,11 +118,11 @@ export default { }) }, // 多选 - dataListSelectionChangeHandle(val) { + dataListSelectionChangeHandle (val) { this.dataListSelections = val }, // 排序 - dataListSortChangeHandle(data) { + dataListSortChangeHandle (data) { if (!data.order || !data.prop) { this.order = '' this.orderField = '' @@ -133,13 +133,13 @@ export default { this.query() }, // 分页, 每页条数 - pageSizeChangeHandle(val) { + pageSizeChangeHandle (val) { this.page = 1 this.limit = val this.query() }, // 分页, 当前页 - pageCurrentChangeHandle(val) { + pageCurrentChangeHandle (val) { this.page = val this.query() }, @@ -148,7 +148,7 @@ export default { this.query() }, // 新增 - addOrUpdateHandle(id) { + addOrUpdateHandle (id) { this.addOrUpdateVisible = true this.disabled = false this.$nextTick(() => { @@ -159,7 +159,7 @@ export default { }, // 组件服务新增 - addOrUpdateHandleAI(id) { + addOrUpdateHandleAI (id) { // const infoList = [] let showList = [] this.$http.get('category/getCategoryTree').then(({ data: res }) => { @@ -217,7 +217,7 @@ export default { }, 100) }, // 应用资源新增 - addOrUpdateHandleServe(id) { + addOrUpdateHandleServe (id) { // const infoList = [] let showList = [] this.$http.get('category/getCategoryTree').then(({ data: res }) => { @@ -275,7 +275,7 @@ export default { }, 100) }, // 修改 - UpdateHandle(val) { + UpdateHandle (val) { this.addOrUpdateVisible = true this.disabled = false const cloneVal = deepClone(val) @@ -300,7 +300,7 @@ export default { }) }, // 关闭当前窗口 - closeCurrentTab(data) { + closeCurrentTab (data) { var tabName = this.$store.state.contentTabsActiveName this.$store.state.contentTabs = this.$store.state.contentTabs.filter(item => item.name !== tabName) if (this.$store.state.contentTabs.length <= 0) { @@ -312,7 +312,7 @@ export default { } }, // 删除 - deleteHandle(id) { + deleteHandle (id) { if (this.mixinViewModuleOptions.deleteIsBatch && !id && this.dataListSelections.length <= 0) { return this.$message({ message: this.$t('prompt.deleteBatch'), @@ -346,7 +346,7 @@ export default { }).catch(() => { }) }, - deleteHandle2(id) { + deleteHandle2 (id) { console.log('删除========================》', id, this.dataListSelections) const ids = [] if (id) { @@ -364,7 +364,7 @@ export default { }) }, // 导出 - exportHandle() { + exportHandle () { var params = qs.stringify({ token: Cookies.get('ucsToken'), ...this.dataForm diff --git a/back/src/views/modules/myAgent/CompetencyApplication.vue b/back/src/views/modules/myAgent/CompetencyApplication.vue new file mode 100644 index 00000000..1a3edea2 --- /dev/null +++ b/back/src/views/modules/myAgent/CompetencyApplication.vue @@ -0,0 +1,169 @@ + + + + diff --git a/front/public/static/config/location.js b/front/public/static/config/location.js index cbb74731..688a983f 100644 --- a/front/public/static/config/location.js +++ b/front/public/static/config/location.js @@ -1,13 +1,13 @@ /* * @Author: hisense.wuhongjian * @Date: 2020-07-07 16:03:23 - * @LastEditors: hisense.wuhongjian - * @LastEditTime: 2022-06-24 18:16:44 + * @LastEditors: hisense.liangjunhua + * @LastEditTime: 2022-06-27 14:22:56 * @Description: 数据资源参数配置 */ -// const newLocation = 'qingdao' -// const newLocation = 'baotou' const newLocation = 'qingdao' +// const newLocation = 'baotou' +// const newLocation = 'xihaian' // 数据资源数据 const whoShow = {} diff --git a/front/src/views/capabilityCloud/components/DataResources.vue b/front/src/views/capabilityCloud/components/DataResources.vue index 0b2bbfaa..77d4e9eb 100644 --- a/front/src/views/capabilityCloud/components/DataResources.vue +++ b/front/src/views/capabilityCloud/components/DataResources.vue @@ -2,7 +2,7 @@ * @Author: hisense.liangjunhua * @Date: 2022-06-19 10:15:33 * @LastEditors: hisense.liangjunhua - * @LastEditTime: 2022-06-24 15:04:52 + * @LastEditTime: 2022-06-27 12:52:18 * @Description: 告诉大家这是什么 --> diff --git a/front/src/views/personalCenter/components/PurchaseVehicle.vue b/front/src/views/personalCenter/components/PurchaseVehicle.vue index b55ce3a7..4a2ff938 100644 --- a/front/src/views/personalCenter/components/PurchaseVehicle.vue +++ b/front/src/views/personalCenter/components/PurchaseVehicle.vue @@ -1,23 +1,80 @@ -
-
- - 全选 - - - - 删除 - - - - 收藏 - -
-
-

- 合计: - {{ checkedList.length }} - -

- - 一键申请 - -
-
diff --git a/front/src/views/home/videoSurveillance/index.vue b/front/src/views/home/videoSurveillance/index.vue index 17371681..e161113b 100644 --- a/front/src/views/home/videoSurveillance/index.vue +++ b/front/src/views/home/videoSurveillance/index.vue @@ -1,5 +1,5 @@ From 3ab89fcfecd540d450df664ed76151ce5e1eb6cd Mon Sep 17 00:00:00 2001 From: "851673013@qq.com" <851673013@qq.com> Date: Tue, 28 Jun 2022 16:35:25 +0800 Subject: [PATCH 031/143] =?UTF-8?q?API=E8=AF=B7=E6=B1=82=E5=88=86=E6=9E=90?= =?UTF-8?q?=E9=9D=99=E6=80=81=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{蓝背景图.png => number-bule-bg.png} | Bin .../{蓝色标签.png => number-bule.png} | Bin .../{绿背景图.png => number-grenn-bg.png} | Bin .../{绿色标签.png => number-grenn.png} | Bin .../{红背景图.png => number-red-bg.png} | Bin .../{红色标签.png => number-red.png} | Bin .../components/AnalysisOfTheRequest.vue | 1069 ++++++++++++++++- 7 files changed, 1058 insertions(+), 11 deletions(-) rename back/src/assets/img/CapabilityOperationMonitoring/{蓝背景图.png => number-bule-bg.png} (100%) rename back/src/assets/img/CapabilityOperationMonitoring/{蓝色标签.png => number-bule.png} (100%) rename back/src/assets/img/CapabilityOperationMonitoring/{绿背景图.png => number-grenn-bg.png} (100%) rename back/src/assets/img/CapabilityOperationMonitoring/{绿色标签.png => number-grenn.png} (100%) rename back/src/assets/img/CapabilityOperationMonitoring/{红背景图.png => number-red-bg.png} (100%) rename back/src/assets/img/CapabilityOperationMonitoring/{红色标签.png => number-red.png} (100%) diff --git a/back/src/assets/img/CapabilityOperationMonitoring/蓝背景图.png b/back/src/assets/img/CapabilityOperationMonitoring/number-bule-bg.png similarity index 100% rename from back/src/assets/img/CapabilityOperationMonitoring/蓝背景图.png rename to back/src/assets/img/CapabilityOperationMonitoring/number-bule-bg.png diff --git a/back/src/assets/img/CapabilityOperationMonitoring/蓝色标签.png b/back/src/assets/img/CapabilityOperationMonitoring/number-bule.png similarity index 100% rename from back/src/assets/img/CapabilityOperationMonitoring/蓝色标签.png rename to back/src/assets/img/CapabilityOperationMonitoring/number-bule.png diff --git a/back/src/assets/img/CapabilityOperationMonitoring/绿背景图.png b/back/src/assets/img/CapabilityOperationMonitoring/number-grenn-bg.png similarity index 100% rename from back/src/assets/img/CapabilityOperationMonitoring/绿背景图.png rename to back/src/assets/img/CapabilityOperationMonitoring/number-grenn-bg.png diff --git a/back/src/assets/img/CapabilityOperationMonitoring/绿色标签.png b/back/src/assets/img/CapabilityOperationMonitoring/number-grenn.png similarity index 100% rename from back/src/assets/img/CapabilityOperationMonitoring/绿色标签.png rename to back/src/assets/img/CapabilityOperationMonitoring/number-grenn.png diff --git a/back/src/assets/img/CapabilityOperationMonitoring/红背景图.png b/back/src/assets/img/CapabilityOperationMonitoring/number-red-bg.png similarity index 100% rename from back/src/assets/img/CapabilityOperationMonitoring/红背景图.png rename to back/src/assets/img/CapabilityOperationMonitoring/number-red-bg.png diff --git a/back/src/assets/img/CapabilityOperationMonitoring/红色标签.png b/back/src/assets/img/CapabilityOperationMonitoring/number-red.png similarity index 100% rename from back/src/assets/img/CapabilityOperationMonitoring/红色标签.png rename to back/src/assets/img/CapabilityOperationMonitoring/number-red.png diff --git a/back/src/views/modules/sys/CapabilityOperationMonitoring/components/AnalysisOfTheRequest.vue b/back/src/views/modules/sys/CapabilityOperationMonitoring/components/AnalysisOfTheRequest.vue index a063072b..09559184 100644 --- a/back/src/views/modules/sys/CapabilityOperationMonitoring/components/AnalysisOfTheRequest.vue +++ b/back/src/views/modules/sys/CapabilityOperationMonitoring/components/AnalysisOfTheRequest.vue @@ -6,20 +6,91 @@
请求概况
-
+
+
+
+
+

{{ item.name }}

+

+ {{ item.tatol }} +

+
+
+
-
-
-
+
+
能力请求趋势
+
+
+
请求趋势图
+
+
数据流量趋势图
+
+
+
+
请求出错趋势图
+
+
请求时延趋势图
+
+
+
-
+
+
能力排行榜
+
+
+ {{ item }} +
+
+
+
+
{{ index + 1 }}
+ +
{{ item.name }}
+
+
{{ item.snum }}
+
+
+
diff --git a/back/src/views/modules/sys/CapabilityOperationMonitoring/components/CapabilityOperationMonitoringTime.vue b/back/src/views/modules/sys/CapabilityOperationMonitoring/components/CapabilityOperationMonitoringTime.vue index b7fd48d8..ac56aea0 100644 --- a/back/src/views/modules/sys/CapabilityOperationMonitoring/components/CapabilityOperationMonitoringTime.vue +++ b/back/src/views/modules/sys/CapabilityOperationMonitoring/components/CapabilityOperationMonitoringTime.vue @@ -1,5 +1,23 @@ From 58d9b209b7af3125861e7f7984bb84d958f82080 Mon Sep 17 00:00:00 2001 From: gaoyuanwei <2826352639@qq.com> Date: Tue, 28 Jun 2022 17:18:50 +0800 Subject: [PATCH 033/143] =?UTF-8?q?=E8=83=BD=E5=8A=9B=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E7=9B=91=E6=8E=A7=E9=A5=BC=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/AbnormalSituation.vue | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/back/src/views/modules/sys/CapabilityOperationMonitoring/components/AbnormalSituation.vue b/back/src/views/modules/sys/CapabilityOperationMonitoring/components/AbnormalSituation.vue index c478e0e9..0fa323e9 100644 --- a/back/src/views/modules/sys/CapabilityOperationMonitoring/components/AbnormalSituation.vue +++ b/back/src/views/modules/sys/CapabilityOperationMonitoring/components/AbnormalSituation.vue @@ -37,7 +37,7 @@

API异常分布

-
+
@@ -190,12 +190,19 @@ export default { trigger: 'item' }, legend: { - bottom: '0%' + bottom: '22%' + }, + color: ['#0087ff', '#ff8a00', '#fcc549', '#49c988'], + grid: { + left: '0%', + right: '0%', + bottom: '10%', + containLabel: true }, - color: ['#fc8251', '#5470c6', '#91cd77', '#ef6567', '#f9c956', '#75bedc'], series: [ { - name: 'GA 数据统计', + center: ['50%', '20%'], + name: 'api异常分布', type: 'pie', radius: ['40%', '70%'], avoidLabelOverlap: false, @@ -208,12 +215,6 @@ export default { show: false, position: 'center' }, - grid: { - left: '0%', - right: '12%', - bottom: '10%', - containLabel: true - }, // emphasis: { // label: { // show: true, From 961a8076fd2db67869d251db4c191ed1d41f4739 Mon Sep 17 00:00:00 2001 From: "851673013@qq.com" <851673013@qq.com> Date: Tue, 28 Jun 2022 17:28:47 +0800 Subject: [PATCH 034/143] =?UTF-8?q?API=E5=BC=82=E5=B8=B8=E5=88=86=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/AbnormalSituation.vue | 179 +++++++++++------- 1 file changed, 107 insertions(+), 72 deletions(-) diff --git a/back/src/views/modules/sys/CapabilityOperationMonitoring/components/AbnormalSituation.vue b/back/src/views/modules/sys/CapabilityOperationMonitoring/components/AbnormalSituation.vue index 0fa323e9..db068641 100644 --- a/back/src/views/modules/sys/CapabilityOperationMonitoring/components/AbnormalSituation.vue +++ b/back/src/views/modules/sys/CapabilityOperationMonitoring/components/AbnormalSituation.vue @@ -24,9 +24,20 @@

API异常次数排行TOP10

    -
  • - {{ index + 1 }} - +
  • + {{ index + 1 }} +
    {{ item.name }}
    {{ item.num }} @@ -36,33 +47,37 @@

    API异常分布

    -
    -
    +
    +

    API异常次数统计

    - + - - + - - +
    - +
    @@ -76,7 +91,7 @@ import * as echarts from 'echarts' export default { // components: {}, // props: {}, - data() { + data () { return { // 排行榜 RankingData: [ @@ -122,65 +137,67 @@ export default { } ], // 表格 - AnomalyStatisticsTable: [{ - name: '接口名称', - address: 'http://hhhhhhhhhhhhhhhhhhhh', - method: '调用方法', - type: '组件类型', - provider: '提供商名称', - state: '监控状态' - }, - { - name: '接口名称', - address: 'http://hhhhhhhhhhhhhhhhhhhh', - method: '调用方法', - type: '组件类型', - provider: '提供商名称', - state: '监控状态' - }, - { - name: '接口名称', - address: 'http://hhhhhhhhhhhhhhhhhhhh', - method: '调用方法', - type: '组件类型', - provider: '提供商名称', - state: '监控状态' - }, - { - name: '接口名称', - address: 'http://hhhhhhhhhhhhhhhhhhhh', - method: '调用方法', - type: '组件类型', - provider: '提供商名称', - state: '监控状态' - }, - { - name: '接口名称', - address: 'http://hhhhhhhhhhhhhhhhhhhh', - method: '调用方法', - type: '组件类型', - provider: '提供商名称', - state: '监控状态' - }], + AnomalyStatisticsTable: [ + { + name: '接口名称', + address: 'http://hhhhhhhhhhhhhhhhhhhh', + method: '调用方法', + type: '组件类型', + provider: '提供商名称', + state: '监控状态' + }, + { + name: '接口名称', + address: 'http://hhhhhhhhhhhhhhhhhhhh', + method: '调用方法', + type: '组件类型', + provider: '提供商名称', + state: '监控状态' + }, + { + name: '接口名称', + address: 'http://hhhhhhhhhhhhhhhhhhhh', + method: '调用方法', + type: '组件类型', + provider: '提供商名称', + state: '监控状态' + }, + { + name: '接口名称', + address: 'http://hhhhhhhhhhhhhhhhhhhh', + method: '调用方法', + type: '组件类型', + provider: '提供商名称', + state: '监控状态' + }, + { + name: '接口名称', + address: 'http://hhhhhhhhhhhhhhhhhhhh', + method: '调用方法', + type: '组件类型', + provider: '提供商名称', + state: '监控状态' + } + ], // 分页 currentPage4: 1, total: 0 } }, - mounted() { + mounted () { this.myEchars() // 分页 this.total = this.AnomalyStatisticsTable.length }, methods: { // 分页 - handleSizeChange(val) { + handleSizeChange (val) { console.log(`每页 ${val} 条`) }, - handleCurrentChange(val) { + handleCurrentChange (val) { console.log(`当前页: ${val}`) }, - myEchars() { + myEchars () { var chartDom = document.getElementById('main') var myChart = echarts.init(chartDom) var option @@ -190,15 +207,16 @@ export default { trigger: 'item' }, legend: { + itemHeight: 10, + itemWidth: 10, + itemGap: 15, + textStyle: { + fontSize: 12, // 图例文字字体大小 + color: '#666666' // 图例文字颜色 + }, bottom: '22%' }, color: ['#0087ff', '#ff8a00', '#fcc549', '#49c988'], - grid: { - left: '0%', - right: '0%', - bottom: '10%', - containLabel: true - }, series: [ { center: ['50%', '20%'], @@ -263,7 +281,8 @@ export default { } .ApiBox { - background: url("~@/assets/img/CapabilityOperationMonitoring/bg-blue.png") no-repeat; + background: url('~@/assets/img/CapabilityOperationMonitoring/bg-blue.png') + no-repeat; background-size: 100%; width: 22.5rem; height: 6.875rem; @@ -300,7 +319,8 @@ export default { } .ApiBox:last-of-type { - background: url("~@/assets/img/CapabilityOperationMonitoring/bg-yellow.png") no-repeat; + background: url('~@/assets/img/CapabilityOperationMonitoring/bg-yellow.png') + no-repeat; background-size: 100%; div { @@ -370,7 +390,11 @@ export default { display: block; height: 1.25rem; width: 2.25rem; - background: linear-gradient(to right, rgba(204, 204, 204, 0.6), rgba(0, 0, 0, 0)); + background: linear-gradient( + to right, + rgba(204, 204, 204, 0.6), + rgba(0, 0, 0, 0) + ); } } @@ -397,7 +421,11 @@ export default { .RankingListData:nth-of-type(1) i b { width: 3.75rem; - background: linear-gradient(to right, rgba(251, 59, 5, 0.6), rgba(0, 0, 0, 0)); + background: linear-gradient( + to right, + rgba(251, 59, 5, 0.6), + rgba(0, 0, 0, 0) + ); } .RankingListData:nth-of-type(1) span { @@ -406,7 +434,11 @@ export default { .RankingListData:nth-of-type(2) i b { width: 3.125rem; - background: linear-gradient(to right, rgba(251, 123, 5, 0.6), rgba(0, 0, 0, 0)); + background: linear-gradient( + to right, + rgba(251, 123, 5, 0.6), + rgba(0, 0, 0, 0) + ); } .RankingListData:nth-of-type(2) span { @@ -415,7 +447,11 @@ export default { .RankingListData:nth-of-type(3) i b { width: 2.75rem; - background: linear-gradient(to right, rgba(250, 179, 2, 0.6), rgba(0, 0, 0, 0)); + background: linear-gradient( + to right, + rgba(250, 179, 2, 0.6), + rgba(0, 0, 0, 0) + ); } .RankingListData:nth-of-type(3) span { @@ -426,7 +462,8 @@ export default { .AbnormalDistribution { margin-right: 3.75rem; - .container-body1 {} + .container-body1 { + } } .AnomalyStatistics { @@ -501,9 +538,7 @@ export default { } } } - } - } } From 194f6fcb3ccc1e1255e95440014c40d137bbf538 Mon Sep 17 00:00:00 2001 From: gaoyuanwei <2826352639@qq.com> Date: Tue, 28 Jun 2022 19:25:05 +0800 Subject: [PATCH 035/143] =?UTF-8?q?=E8=83=BD=E5=8A=9B=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E7=9B=91=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{日历.png => calendar.png} | Bin .../components/AbnormalSituation.vue | 117 +++++++------- .../CapabilityOperationMonitoringTime.vue | 99 ------------ .../CapabilityOperationMonitoring/index.vue | 147 ++++++++++++++++-- 4 files changed, 191 insertions(+), 172 deletions(-) rename back/src/assets/img/CapabilityOperationMonitoring/{日历.png => calendar.png} (100%) delete mode 100644 back/src/views/modules/sys/CapabilityOperationMonitoring/components/CapabilityOperationMonitoringTime.vue diff --git a/back/src/assets/img/CapabilityOperationMonitoring/日历.png b/back/src/assets/img/CapabilityOperationMonitoring/calendar.png similarity index 100% rename from back/src/assets/img/CapabilityOperationMonitoring/日历.png rename to back/src/assets/img/CapabilityOperationMonitoring/calendar.png diff --git a/back/src/views/modules/sys/CapabilityOperationMonitoring/components/AbnormalSituation.vue b/back/src/views/modules/sys/CapabilityOperationMonitoring/components/AbnormalSituation.vue index db068641..d0406ad0 100644 --- a/back/src/views/modules/sys/CapabilityOperationMonitoring/components/AbnormalSituation.vue +++ b/back/src/views/modules/sys/CapabilityOperationMonitoring/components/AbnormalSituation.vue @@ -24,20 +24,9 @@

    API异常次数排行TOP10

      -
    • - {{ index + 1 }} - +
    • + {{ index + 1 }} +
      {{ item.name }}
      {{ item.num }} @@ -48,7 +37,7 @@

      API异常分布

      -
      +
      @@ -56,28 +45,24 @@

      API异常次数统计

      - + - + - + - - + + + + + -
      - +
    @@ -91,7 +76,7 @@ import * as echarts from 'echarts' export default { // components: {}, // props: {}, - data () { + data() { return { // 排行榜 RankingData: [ @@ -184,20 +169,20 @@ export default { total: 0 } }, - mounted () { + mounted() { this.myEchars() // 分页 this.total = this.AnomalyStatisticsTable.length }, methods: { // 分页 - handleSizeChange (val) { + handleSizeChange(val) { console.log(`每页 ${val} 条`) }, - handleCurrentChange (val) { + handleCurrentChange(val) { console.log(`当前页: ${val}`) }, - myEchars () { + myEchars() { var chartDom = document.getElementById('main') var myChart = echarts.init(chartDom) var option @@ -214,12 +199,23 @@ export default { fontSize: 12, // 图例文字字体大小 color: '#666666' // 图例文字颜色 }, - bottom: '22%' + bottom: '13%', + formatter: function (name) { + var index = 0 + var clientlabels = ['智能算法', '图层服务', '开发组件', '业务组件'] + var clientcounts = ['25%', '25%', '25%', '25%'] + clientlabels.forEach(function (value, i) { + if (value == name) { + index = i + } + }) + return name + ' ' + clientcounts[index] + } }, color: ['#0087ff', '#ff8a00', '#fcc549', '#49c988'], series: [ { - center: ['50%', '20%'], + center: ['50%', '23%'], name: 'api异常分布', type: 'pie', radius: ['40%', '70%'], @@ -261,7 +257,6 @@ export default { diff --git a/back/src/views/modules/sys/CapabilityOperationMonitoring/index.vue b/back/src/views/modules/sys/CapabilityOperationMonitoring/index.vue index 62e2f0e8..eebaeb82 100644 --- a/back/src/views/modules/sys/CapabilityOperationMonitoring/index.vue +++ b/back/src/views/modules/sys/CapabilityOperationMonitoring/index.vue @@ -1,8 +1,23 @@ @@ -28,6 +32,7 @@ dataList: { type: Array, default: null }, }) let dataForm = ref([]) + // eslint-disable-next-line vue/no-setup-props-destructure dataForm.value = props.dataList const router = useRouter() const arr = @@ -66,9 +71,9 @@ margin-bottom: 0.2rem; } .ability-to-apply-for-content { - margin-bottom: 0.3rem; - border-bottom: 0.01rem #dddee1 solid; - padding-bottom: 0.3rem; + // margin-bottom: 0.3rem; + // border-bottom: 0.01rem #dddee1 solid; + // padding-bottom: 0.3rem; padding-right: 0.5rem; position: relative; .dep-name { @@ -87,6 +92,12 @@ margin-right: 0.05rem; } } + .item { + padding-bottom: 0.1rem; + margin-bottom: 0.1rem; + border-bottom: 1px solid #dddee1; + position: relative; + } .name { margin-bottom: 0.2rem; span:first-child { @@ -103,6 +114,7 @@ } } .description { + width: 10rem; color: rgba(0, 0, 0, 0.45); } .remove { diff --git a/front/src/views/home/apply.vue b/front/src/views/home/apply.vue index bc20876b..17b1c514 100644 --- a/front/src/views/home/apply.vue +++ b/front/src/views/home/apply.vue @@ -7,7 +7,7 @@ -->
    - +
    @@ -280,23 +280,29 @@ formName.unit = res.data.data.deptName }) }) - console.log( - 'router传参==================>', - router.currentRoute.value.query.name - ) - let arr = - router.currentRoute.value.query.name instanceof Array - ? router.currentRoute.value.query.name - : [router.currentRoute.value.query.name] - console.log(router.currentRoute.value.query.ids) - const ids = router.currentRoute.value.query.ids - let dataResourceId = router.currentRoute.value.query.resourceId - dataResourceId.map((item) => { - selectOne(item).then((res) => { - dataList.value.push(res.data.data) - console.log('dataResourceId', dataList.value) - }) - }) + const list = ref(JSON.parse(localStorage.getItem('applyList'))) + console.log('本地存储====================》', list.value) + // console.log( + // 'router传参==================>', + // router.currentRoute.value.query.name + // ) + // let arr = + // router.currentRoute.value.query.name instanceof Array + // ? router.currentRoute.value.query.name + // : [router.currentRoute.value.query.name] + // const ids = router.currentRoute.value.query.ids + // console.log( + // 'ids==========================>', + // ids, + // router.currentRoute.value.query.ids + // ) + // let dataResourceId = router.currentRoute.value.query.resourceId + // dataResourceId.map((item) => { + // selectOne(item).then((res) => { + // dataList.value.push(res.data.data) + // console.log('dataResourceId', dataList.value) + // }) + // }) const businessKey = ref(router.currentRoute.value.query.id) const taskId = ref(router.currentRoute.value.query.taskId) if (businessKey.value) { @@ -365,65 +371,65 @@ if (!formName) { return message.error('请设置表单名称') } - if (arr && arr.length !== 0) { - console.log('提交') - const obj = ref({}) - for (const key in formName) { - if (key !== 'formNameSystem') { - obj.value[key] = formName[key] - } - } - submitApply(obj.value).then((res) => { - applySuccess.value = false - message.success('操作成功!') - console.log('能力申请================>', res) - if (ids) { - sgcDel({ ids: ids }).then((res) => { - if (res.data.msg === 'success') { - mybus.emit('getSgcNum') - } - }) - } - }) - } else { - lastestPage({ - key: dataForm.processDefinitionKey, - }) - .then(({ data: res }) => { - if (res.code !== 0) { - return message.error(res.msg) - } - if (!res.data.list || res.data.list.length <= 0) { - return message.error('没有查询到流程,请先设计流程') - } - // proxy.$http['post'](formUrl, rootObj[formName]) - tabilityapplication(formName) - .then(({ data: res }) => { - if (res.code !== 0) { - message.error(res.msg) - if (callbacks.formSaveErrorCallback) { - callbacks.formSaveErrorCallback(res) - } - } - if (callbacks.formSaveSuccessCallback) { - callbacks.formSaveSuccessCallback(res) - } - if (!res.data.businessKey) { - return message.error('业务KEY为空,无法启动流程') - // startProcess(dataForm.processDefinitionKey, null, rootObj[formName]) - } else { - startProcess( - dataForm.processDefinitionKey, - res.data.businessKey - // rootObj[formName] - ) - } - }) - .catch(() => {}) - }) - .catch(() => {}) - // }) - } + // if (arr && arr.length !== 0) { + // console.log('提交') + // const obj = ref({}) + // for (const key in formName) { + // if (key !== 'formNameSystem') { + // obj.value[key] = formName[key] + // } + // } + // submitApply(obj.value).then((res) => { + // applySuccess.value = false + // message.success('操作成功!') + // console.log('能力申请================>', res) + // if (ids) { + // sgcDel({ ids: ids }).then((res) => { + // if (res.data.msg === 'success') { + // mybus.emit('getSgcNum') + // } + // }) + // } + // }) + // } else { + // lastestPage({ + // key: dataForm.processDefinitionKey, + // }) + // .then(({ data: res }) => { + // if (res.code !== 0) { + // return message.error(res.msg) + // } + // if (!res.data.list || res.data.list.length <= 0) { + // return message.error('没有查询到流程,请先设计流程') + // } + // // proxy.$http['post'](formUrl, rootObj[formName]) + // tabilityapplication(formName) + // .then(({ data: res }) => { + // if (res.code !== 0) { + // message.error(res.msg) + // if (callbacks.formSaveErrorCallback) { + // callbacks.formSaveErrorCallback(res) + // } + // } + // if (callbacks.formSaveSuccessCallback) { + // callbacks.formSaveSuccessCallback(res) + // } + // if (!res.data.businessKey) { + // return message.error('业务KEY为空,无法启动流程') + // // startProcess(dataForm.processDefinitionKey, null, rootObj[formName]) + // } else { + // startProcess( + // dataForm.processDefinitionKey, + // res.data.businessKey + // // rootObj[formName] + // ) + // } + // }) + // .catch(() => {}) + // }) + // .catch(() => {}) + // // }) + // } }) } } @@ -528,31 +534,31 @@ } const fileList = ref([]) //删除改变arr - mybus.on('reomveOldData', (item) => { - debugger - arr = [] - formName.system = [] - record.value = record.value + '1' - arr = item.Name - dataResourceId = item.depID - if (arr && arr.length !== 0) { - disabled.value = true - let str = '' - arr.forEach((val, index) => { - str += val - if (index < arr.length - 1) { - str += '、' - } - }) - formName.formNameSystem = str - } - arr.forEach((val, index) => { - formName.system.push({ - resourceName: val, - resourceId: dataResourceId[index], - }) - }) - }) + // mybus.on('reomveOldData', (item) => { + // debugger + // arr = [] + // formName.system = [] + // record.value = record.value + '1' + // arr = item.Name + // // dataResourceId = item.depID + // if (arr && arr.length !== 0) { + // disabled.value = true + // let str = '' + // arr.forEach((val, index) => { + // str += val + // if (index < arr.length - 1) { + // str += '、' + // } + // }) + // formName.formNameSystem = str + // } + // arr.forEach((val, index) => { + // formName.system.push({ + // resourceName: val, + // // resourceId: dataResourceId[index], + // }) + // }) + // }) onBeforeUnmount(() => { mybus.off('reomveOldData') }) @@ -566,6 +572,7 @@ startProcess, options, fileList, + list, headers: { authorization: 'authorization-text', }, @@ -585,7 +592,7 @@ // background-color: #f5f8fc; height: 100%; width: 100%; - margin: 130px auto 0; + margin: 0.8rem auto 0; display: flex; justify-content: space-between; aside { diff --git a/front/src/views/personalCenter/components/PurchaseVehicle.vue b/front/src/views/personalCenter/components/PurchaseVehicle.vue index 4a2ff938..19869be9 100644 --- a/front/src/views/personalCenter/components/PurchaseVehicle.vue +++ b/front/src/views/personalCenter/components/PurchaseVehicle.vue @@ -1,18 +1,13 @@ From 4c77a55ae7445c01131de5e5a28a24e8ac0824ac Mon Sep 17 00:00:00 2001 From: wuhongjian Date: Tue, 28 Jun 2022 22:24:05 +0800 Subject: [PATCH 038/143] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E8=AE=BE=E6=96=BD?= =?UTF-8?q?=E8=81=94=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- back/package.json | 1 + front/public/index.html | 7 +- front/src/supermap/advance-init.js | 40 +- .../home/detailsPageInfrastructureTree.vue | 2 + front/src/views/home/infrastructurePage.vue | 209 ++++----- .../views/home/videoSurveillance/index.vue | 415 ++++++------------ 6 files changed, 241 insertions(+), 433 deletions(-) diff --git a/back/package.json b/back/package.json index d6d934e7..e9ac8253 100644 --- a/back/package.json +++ b/back/package.json @@ -22,6 +22,7 @@ "carddragger": "^0.3.6", "clipboard": "^2.0.6", "core-js": "^3.6.5", + "crypto-js": "^4.1.1", "echarts": "^4.7.0", "element-ui": "^2.13.2", "file-saver": "^2.0.5", diff --git a/front/public/index.html b/front/public/index.html index 5a8fe4fe..afc695e8 100644 --- a/front/public/index.html +++ b/front/public/index.html @@ -1,8 +1,8 @@ @@ -47,7 +47,8 @@ window.SITE_CONFIG['backUrl'] = 'http://15.2.21.238:9797'; window.SITE_CONFIG['previewUrl'] = 'http://15.2.21.238:9796'; window.SITE_CONFIG['frontUrl'] = 'http://15.2.21.238:9796/document/#/devModelFile/'; - window.SITE_CONFIG['apiURL'] = 'http://15.2.21.238:8888/renren-admin'; + window.SITE_CONFIG['apiURL'] = 'http://15.2.21.239:8888/renren-admin'; + window.SITE_CONFIG['POI_URL'] = 'http://15.2.21.238:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address'; // 穿透版本 // window.SITE_CONFIG['backUrl'] = 'http://124.222.94.39:9797'; // window.SITE_CONFIG['previewUrl'] = 'http://124.222.94.39:9796/'; diff --git a/front/src/supermap/advance-init.js b/front/src/supermap/advance-init.js index dc4320e3..9671313f 100644 --- a/front/src/supermap/advance-init.js +++ b/front/src/supermap/advance-init.js @@ -1681,6 +1681,7 @@ export function MapFun(mapObj) { // }) // } + _removeLayerByLayerName(layerName) let layers = null // 判断是否是聚合图层 layers = createMarkerClusterLayer() @@ -1691,12 +1692,7 @@ export function MapFun(mapObj) { features.map((feature) => { var bounds = map.getBounds() // console.log("看看有没有坐标",feature.latLng); - if ( - layerName == '全部' - ? feature.hasOwnProperty('latLng') && - bounds.contains(L.latLng(feature.latLng.lat, feature.latLng.lng)) - : feature.hasOwnProperty('latLng') - ) { + if ( feature.hasOwnProperty('latLng')) { const marker = L.marker(feature.latLng, { icon }) if (createPopupFun !== null) { marker.uuid = feature.uuid || '' @@ -1735,38 +1731,6 @@ export function MapFun(mapObj) { }) featureGroup.addLayer(layers) layerGroup.set(layerName, layers) - // map.on('zoom', () => { - // _removeLayerByLayerName(layerName) - // let layers = null - // // 判断是否是聚合图层 - // layers = createMarkerClusterLayer() - // features.map(feature => { - // var bounds = map.getBounds() - // // console.log("看看有没有坐标",feature.latLng); - // if (feature.hasOwnProperty('latLng') && bounds.contains(L.latLng(feature.latLng.lat, feature.latLng.lng))) { - // const marker = L.marker(feature.latLng, { icon }) - // if (createPopupFun !== null) { - // marker.uuid = feature.uuid || '' - // marker.resId = feature.resId || '' - // marker.on('click', async e => { - // if (feature.resourceName === 'video') { - // const params = [feature.indexCode] - // DS.openVideo(params) - // } else { - // const elementHtml = createPopupFun(feature) - // if (elementHtml) { - // console.log('L._addReMapWithter===============>', feature.latLng, elementHtml, map) - // L.popup({ className: 'detail-dialog' }).setLatLng(feature.latLng).setContent(elementHtml).openOn(map) - // } - // } - // }) - // } - // layers.addLayer(marker) - // } - // }) - // featureGroup.addLayer(layers) - // layerGroup.set(layerName, layers) - // }) } /** * 点击展示弹窗 diff --git a/front/src/views/home/detailsPageInfrastructureTree.vue b/front/src/views/home/detailsPageInfrastructureTree.vue index baa3362a..086313a2 100644 --- a/front/src/views/home/detailsPageInfrastructureTree.vue +++ b/front/src/views/home/detailsPageInfrastructureTree.vue @@ -243,6 +243,8 @@ const selectId = ref('') const onSelect = (item, val, child) => { console.log('item, val, child', child) + mybus.emit('getCameraByParentId', val.id) + mybus.emit('getListByParentId', val.id) getCameraAllOrgan({ parentId: val.id }).then((res) => { treeData.value.map((treeDataItem, index) => { if (item.id == treeDataItem.id) { diff --git a/front/src/views/home/infrastructurePage.vue b/front/src/views/home/infrastructurePage.vue index 1690d6b2..ecc029c5 100644 --- a/front/src/views/home/infrastructurePage.vue +++ b/front/src/views/home/infrastructurePage.vue @@ -19,7 +19,7 @@
    -
    +
    @@ -28,7 +28,7 @@

    备选 - {{ dataSource.length }} + {{ pagination.total }}

    @@ -59,7 +59,7 @@
    - + 添加至购物车 @@ -75,6 +75,7 @@ :dataSource="dataSource" :columns="columns" :scroll="{ y: tableHeight }" + rowKey="channelId" :rowClassName=" (record, index) => (index % 2 === 1 ? 'table-striped' : null) " @@ -93,9 +94,46 @@ import { getCategoryTreePage } from '@/api/personalCenter' import { dataType } from 'element-plus/es/components/table-v2/src/common' import { ref, onMounted } from 'vue' + import { getCameraByParentId } from '@/api/videoSurveillance' + import { sgcInsert } from '@/api/home' + import { message } from 'ant-design-vue' + import mybus from '@/myplugins/mybus' + + const pagination = ref({ + total: 0, + current: 1, + pageSize: 10, //每页中显示10条数据 + showSizeChanger: true, + pageSizeOptions: ['5', '10', '15', '20'], //每页中显示的数据 + }) + const mapSearchParam = ref({ + // 地图搜索初始化数据 + parentId: '', + checkStatus: '1', + pageNum: pagination.value.current, + pageSize: pagination.value.pageSize, + gpsX: '', + gpsY: '', + radius: '', + }) + const showMap = ref(true) onMounted(() => { tabClick(0, '视频资源') + getCamera() + mybus.off('getListByParentId') + mybus.on('getListByParentId', (parentId) => { + mapSearchParam.value.parentId = parentId + getCamera() + }) + mybus.off('getListByMap') + mybus.on('getListByMap', (param) => { + mapSearchParam.value.gpsX = param.gpsX + mapSearchParam.value.gpsY = param.gpsY + mapSearchParam.value.radius = param.radius + getCamera() + }) }) + const selectedList = ref([]) const tabList = ref([ { title: '设施类型', @@ -124,6 +162,10 @@ } clickList.value.push(params) }) + mybus.off('tranferToList') + mybus.on('tranferToList', (data) => { + console.log('获取到的列表数据') + }) } let clickList = ref([]) //存储点击的tab init() @@ -134,10 +176,13 @@ if (clickList.value[indexFather].content.indexOf(name) != -1) { if (name == '视频资源') { tableHeight.value = 330 + showMap.value = true } else if (name == '云资源') { tableHeight.value = 600 + showMap.value = false } else if (name == '感知资源') { tableHeight.value = 330 + showMap.value = true } clickList.value[indexFather].content.splice( clickList.value[indexFather].content.indexOf(name), @@ -146,6 +191,7 @@ } else { if (name == '视频资源') { tableHeight.value = 330 + showMap.value = true tabList.value[1].content = [] clickList.value[1].content = [] clickList.value[indexFather].content[0] = name @@ -161,6 +207,7 @@ }) } else if (name == '云资源') { tableHeight.value = 600 + showMap.value = false clickList.value[1].content = [] clickList.value[indexFather].content[0] = name tabList.value[1].content = [ @@ -175,6 +222,7 @@ ] } else if (name == '感知资源') { tableHeight.value = 330 + showMap.value = true clickList.value[1].content = [] clickList.value[indexFather].content[0] = name tabList.value[1].content = ['333333', '213124'] @@ -207,138 +255,53 @@ const addShopCar = () => { console.log('添加至购物车') } + const getCamera = () => { + console.log('初始化调用') + getCameraByParentId(mapSearchParam.value).then((res) => { + console.log('RRRRRRRRRR', res.data.data) + dataSource.value = res.data.data + pagination.value.total = res.data.count + }) + } + //加入申购车 + const addShoppingCart = () => { + sgcInsert({ + delFlag: '0', + resourceId: '8888888880000000001', + note1: selectedList.value, + // userId: userId.value, + }).then((res) => { + console.log(res) + message.success('添加申购车成功!') + mybus.emit('getSgcNum') + }) + } // 表格 - const dataSource = ref([ - { - key: '1', - name: '沈腾', - age: 32, - address: '西湖区湖底公园1号', - }, - { - key: '2', - name: '沈腾', - age: 42, - address: '西湖区湖底公园1号', - }, - { - key: '3', - name: '沈腾', - age: 42, - address: '西湖区湖底公园1号', - }, - { - key: '4', - name: '沈腾', - age: 42, - address: '西湖区湖底公园1号', - }, - { - key: '5', - name: '沈腾', - age: 42, - address: '西湖区湖底公园1号', - }, - { - key: '6', - name: '沈腾', - age: 42, - address: '西湖区湖底公园1号', - }, - { - key: '7', - name: '沈腾', - age: 42, - address: '西湖区湖底公园1号', - }, - { - key: '8', - name: '沈腾', - age: 42, - address: '西湖区湖底公园1号', - }, - { - key: '9', - name: '沈腾', - age: 42, - address: '西湖区湖底公园1号', - }, - { - key: '10', - name: '沈腾', - age: 42, - address: '西湖区湖底公园1号', - }, - { - key: '11', - name: '沈腾', - age: 42, - address: '西湖区湖底公园1号', - }, - { - key: '12', - name: '沈腾', - age: 42, - address: '西湖区湖底公园1号', - }, - { - key: '13', - name: '沈腾', - age: 42, - address: '西湖区湖底公园1号', - }, - { - key: '14', - name: '沈腾', - age: 42, - address: '西湖区湖底公园1号', - }, - { - key: '15', - name: '沈腾', - age: 42, - address: '西湖区湖底公园1号', - }, - { - key: '16', - name: '沈腾', - age: 42, - address: '西湖区湖底公园1号', - }, - ]) + const dataSource = ref([]) const columns = ref([ { - title: '姓名', - dataIndex: 'name', - key: 'name', + title: '名称', + dataIndex: 'channelName', + key: 'channelName', }, { - title: '年龄', - dataIndex: 'age', - key: 'age', - }, - { - title: '住址', - dataIndex: 'address', - key: 'address', + title: '归属', + dataIndex: 'nodeName', + key: 'nodeName', }, ]) const allClick = ref([]) - const onSelectChange = (selectedRowKeys) => { - console.log('hahhahah', selectedRowKeys) - allClick.value = selectedRowKeys + const onSelectChange = (selectedRowKeys, selectedRows) => { + console.log('hahhahah', selectedRowKeys, selectedRows) + selectedList.value = selectedRows + // allClick.value = selectedRowKeys } - const pagination = ref({ - total: 0, - pageSize: 10, //每页中显示10条数据 - showSizeChanger: true, - pageSizeOptions: ['5', '10', '15', '20'], //每页中显示的数据 - }) const handleTableChange = (val) => { pagination.value.current = val.current pagination.value.pageSize = val.pageSize - this.queryParam.page = val.current - this.queryParam.size = val.pageSize + mapSearchParam.value.pageNum = val.current + mapSearchParam.value.pageSize = val.pageSize + getCamera() // this.getTableList() } diff --git a/front/src/views/home/videoSurveillance/index.vue b/front/src/views/home/videoSurveillance/index.vue index e161113b..300cf7df 100644 --- a/front/src/views/home/videoSurveillance/index.vue +++ b/front/src/views/home/videoSurveillance/index.vue @@ -8,31 +8,16 @@
    - - - - + +
    +
    +
    +
+ + + \ No newline at end of file diff --git a/back/src/views/modules/workBench/components/dept-todo-view.vue b/back/src/views/modules/workBench/components/dept-todo-view.vue new file mode 100644 index 00000000..1f50786e --- /dev/null +++ b/back/src/views/modules/workBench/components/dept-todo-view.vue @@ -0,0 +1,18 @@ + + + \ No newline at end of file diff --git a/back/src/views/modules/workBench/workBench.vue b/back/src/views/modules/workBench/workBench.vue new file mode 100644 index 00000000..20998672 --- /dev/null +++ b/back/src/views/modules/workBench/workBench.vue @@ -0,0 +1,80 @@ + + + + + \ No newline at end of file From 8287422d9a3fb93ebd05bcb3ff2e04d210d01900 Mon Sep 17 00:00:00 2001 From: gaoyuanwei <2826352639@qq.com> Date: Wed, 29 Jun 2022 15:54:22 +0800 Subject: [PATCH 053/143] =?UTF-8?q?333-=E8=BE=93=E5=85=A5=E6=A1=86?= =?UTF-8?q?=E4=B8=8A=E9=9D=A2=E7=9A=84=E9=BB=91=E6=A1=86=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E5=8F=96=E6=B6=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- front/src/views/home/apply.vue | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/front/src/views/home/apply.vue b/front/src/views/home/apply.vue index 5bf6df4d..0648e013 100644 --- a/front/src/views/home/apply.vue +++ b/front/src/views/home/apply.vue @@ -68,17 +68,17 @@ name="system" :rules="[{ required: true, message: '请输入申请应用' }]" > - -