VA%ALfaDR1V9A{e@15@4lXewQ>K@R560{TfC>1?
vov(g2KlqgXzW`iD`^V7FCrP?=KT-Msu{*)N(g0`000000NkvXXu0mjfPng`l
diff --git a/src/assets/images/device/dgs.png b/src/assets/images/device/dgs.png
deleted file mode 100644
index 683b0ac27153952f499ec74360cce7d8758b0578..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1260
zcmVPx(rb$FWRCr$PT3M(aMG!sb$A}sc1Y^X2A3;S#+(--rH6pIK;PN9XCN3DBVuBz6
zKQ!QvUxp}8MNuPyAc`m$K@cNEK_x+45F;VM-6(Zl0Bq}XByZ1z!kGZB%_P~4BOJOQ0JRN(W8a^(
zMxOw%;Rnz+cgn2FJ18k-$~Ka#YIz=nqX7uUc!y4GvQUjV`CUvyp=fvgeg3A^c2apZ2=h9c^_l&xMeDHLkt53
z0LFCV8~5(U==}~<@VuaBa*+g=EaN75d6#$M;YK9Nfvt7~y03NN-*C_x?N$w6#xOCnQU}*#Z
zJ4l`z=8ft%_;Rx*0rxXWcLR8`L}zCJ98i->+6>^{2;kZoqC`wBp609X(KfJNRVd2xt!hk?T(JKR6q
zkjQMW*nQ9GEC+aTJH0M^*6ku?Z-UP9p6^)yp5zY!oO=K~UIA*S0Nfc8+1ZghpBI}~
z3k1h~$GE@ZlC(b=SM>@f)eqPcGWewpozG8mHRxZVP6Kdc4V|4a;3WVz*D!QaqMZRS
zDTnIn9RTPm2h`oENy(3e0cRx_lAV*XaKd`GlDx8PjhIv52ms#zIAOxZPC|XF3dGE+j{4;$?_MR|Ch(5%_5hOWG!jq
zaN>=kVC(Puat*m{KM&pF`Z=Y}!zFRw6h_`pntvyB9IDY|mUj7pPPlnb~v5F0y
zxozBYQ>ShI6Abmy@A+svvFrA!*ZgzjBPZINQtTHx-Dm#y?7gKMb`|`T&xwzmenMXE
zq495}dF&Nww@*+sW)Ltd=q
zs#3Ie*@%Ra$(cddMDoW}>w
z#XD`7A>`hd*ZU7u21g7w!JmyA#Hxy4n?f9}uku4|lXLlN_l4gNl^wTgtJO?Z=7o4Q
ytnYX0@p)ezK6py?+|ymN`q?)IAn{86fxhO%(0E1H=hK1th{4m<&t;ucLK6Vm%ctuA
diff --git a/src/assets/images/device/ecu.png b/src/assets/images/device/ecu.png
deleted file mode 100644
index a8efdfac56d2a3b8008e99bad84b77d5410b3003..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1122
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
diff --git a/src/assets/images/device/ems.png b/src/assets/images/device/ems.png
deleted file mode 100644
index 4d28dd1cb923e73a9adaf908356e741db188c788..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1233
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEV430R;uumf=k1Kf(pw%PuJ=O(
ztU9(aJ?2s>JrK6xRYD=FT)4otrlX=eSolR<)*UEg-@#PG-g$y&9-}p5<3-!&bLXG=
z|M~wJZjO$NGcQXwoSSuzq2!thZ-kE6(k1m5PA2teas={pH8F-=GPQ~{P^dhfvdKK*
zZo?so$0bY!dFn5vZ|!HiQlnfEcOu+nznMyn<39%Drg&)qy$R17zgk{gpZ})c@vZ5@
zYZ9NAuw1c}z0kmV(AfCc6Q*f%nwU3C^WNn??~uvfhru8$AtZs-}o>145GRZB>J%K@W>5~5wpI?&*)?)nXckqwI
zNtNC;eTN&|otDiCx-?nphOzP*$GyP@_HIU=%B%Z$6>_i6Q+#qvB3bl+9L$ur9}bzc
z*YTQiH>Ib|;@>JVe)$dm!Ze2;;!jsS4S8+Hd{9_n68x!q2L{7A@qggry2usRxR0uY74z
zzj`X8}
zR4nbZYjVwt4?N{uJPElD5qq`1u{};>u|NOn1kZ`9b(e2T_e7uF{EF8?kJ;!d|FXS@
zEVL8mU7aX-!Jhfc%zI2cC$=7LmDuxUWA@+ohjv`GS$(ZRV~YOkWS7ZcnHT%tIPR_I
z=D8S`I7isveAaokAE$i+gnm7L#c(b>tG)f*w$HA-7UEUR7b3yM$o!AzuI8~6E}aZ4
Psu(<7{an^LB{Ts57ym$)
diff --git a/src/assets/images/device/ffs.png b/src/assets/images/device/ffs.png
deleted file mode 100644
index 8629291207d2a581f9dd3d14a59f5045a222fea6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1077
zcmV-51j_q~P)R&7~u;RG+L4VcuveEU0}`e4`eU&HUOF|
zBz;5AJxxx?H&`!;ujp}RHdhb)sR2}2<0hF_dYt`*1Gpn5cnl>2xFM61d;m0lMfm13
zwPPvihCw`$$uLX?&HKhD*zkf+YnL=vk^XTxkx9B*dw~r}uLi>;(9{DlR^T3|G*gp1
z;dvuss>}%y`~486Csu(8N^X^Zo^|Xke}uut%ZQm2!a||8^+Js6-#Yy6|u4@y!<$
zUXiU~ubh}G48d8;K^`K-0DSX>R(z)5C$cl_H;cRqeL;`2NQJU*p)lA-GaD-su?O&z7~!*-Wr_%UFC~4%C3|0zQ84TT
z1r-Xfis#wPG68E7;tpeS!~P}d_pgZyY;e}`YBTHvMHKpd01I2c=UJO7d<@3o*4BR}
zv;SP-p5Srz2L_N6B{nP-?$)0%$Cy<3KYFe)Q((dX{CaB)qrgB4g)72Y$5&(*srDZR
zfKfkZF1-hONw
z3{QsQa-vYUFF4yOipLZR4LCb({RZberXo)w$^blD1v=Z`fV0T!T^R;|Q8-j!>h-P+
z1HdR8DlqkWSB3##6b==bdc7;d05A%N3QWD;m0szE4>ZiR8s9f3;?5$s=$U+`ws)aqo9Bh@el6e631FGp}>la2ItR-5<91*cBCb4&+<-n00000NkvXXu0mjf1JdW|
diff --git a/src/assets/images/device/group.png b/src/assets/images/device/group.png
deleted file mode 100644
index cebce404fc777f3aba00d1d87d1ea389088b354d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 878
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU^ex1aSW-L^LEz7LSaJzhj7s)
zEOYoY4$2yo2xu)}abhoFC~@F?sZz%N@GE+j{4;$?_MR|Ch(5%_5hOWG!jq
zaN>=kVC(Puat*m{KM&pF`Z=Y}!zFRw6h_`pntvyB9IDY|mUj7pPPlnb~v5F0y
zxozBYQ>ShI6Abmy@A+svvFrA!*ZgzjBPZINQtTHx-Dm#y?7gKMb`|`T&xwzmenMXE
zq495}dF&Nww@*+sW)Ltd=q
zs#3Ie*@%Ra$(cddMDoW}>w
z#XD`7A>`hd*ZU7u21g7w!JmyA#Hxy4n?f9}uku4|lXLlN_l4gNl^wTgtJO?Z=7o4Q
ytnYX0@p)ezK6py?+|ymN`q?)IAn{86fxhO%(0E1H=hK1th{4m<&t;ucLK6Vm%ctuA
diff --git a/src/assets/images/device/mppt.png b/src/assets/images/device/mppt.png
deleted file mode 100644
index 9581849c5445377640eda4b32cc0251f553161cf..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1796
zcmV+f2mAPmP)Px*zDYzuRCr$PS_!CDRS^C@h-`t%j7p-ioeCw=7R)l!ByFY8vds+2Hrvb0GA%N*
zEZa*cOcN{>Ez1_sBr!A4Ak?I+Kr5m}49TMH>(2F@pYz}M|L@)Bz4!Nj%fLh5yXVZA
z`Och~Gc$*1
HDBjsZyO44^xJ9?h9o!?7Cyd=6kO$=}ngo5}(t
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
Eg7Bgeg8%>k
diff --git a/src/assets/images/device/unit.png b/src/assets/images/device/unit.png
deleted file mode 100644
index a8efdfac56d2a3b8008e99bad84b77d5410b3003..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1122
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
V import('@/views/engineering/config/index.vue'),
+ meta: {
+ title: '工程配置',
+ isShow: false,
+ icon: '',
+ },
+ beforeEnter: (to: any, from: any, next: any) => {
+ const { type } = to.params;
+ if (type === 'created' || type === 'edit') {
+ next();
+ } else {
+ next({ name: 'NoFound' });
+ }
+ },
+ }
],
},
+ {
+ path: '/404',
+ name: 'NoFound',
+ component: () => import('@/views/Error/404.vue'),
+ meta: {
+ hidden: true,
+ title: '404',
+ },
+ },
]
const router = createRouter({
diff --git a/src/views/engineering/index.vue b/src/views/engineering/index.vue
index 1f63808..14ffee3 100644
--- a/src/views/engineering/index.vue
+++ b/src/views/engineering/index.vue
@@ -1,19 +1,204 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
+
{{ item.description }}
+
+
+
+
+
加载中...
+
+
+
+
+
diff --git a/src/views/layout/index.vue b/src/views/layout/index.vue
index 6f2ff2b..75ee77a 100644
--- a/src/views/layout/index.vue
+++ b/src/views/layout/index.vue
@@ -2,36 +2,72 @@
-
-
-
+
@@ -66,20 +102,50 @@
import { useTheme } from '@/composables/useTheme'
import { defaultRouter } from '@/router'
import dayjs from 'dayjs'
+import { getEngineeringList } from '@/api/module/engineering'
+import type { IEngineering } from '@/api/module/engineering/index.d'
const unfold = 'i-icon-park-outline:menu-unfold'
const fold = 'i-icon-park-outline:menu-fold'
const { theme } = useTheme()
-const menuList = computed(() => {
- let data = defaultRouter[0].children
- return data
+const engineeringList = ref([])
+
+const menuList = computed(() => {
+ const routes = JSON.parse(JSON.stringify(defaultRouter[0].children))
+ const engRoute = routes.find((r: any) => r.path === '/engineering')
+ if (engRoute) {
+ // Initialize children array
+ engRoute.children = []
+
+ // Add "Overview" item
+ engRoute.children.push({
+ path: '/engineering',
+ meta: {
+ title: '工程总览',
+ isShow: true,
+ icon: 'i-icon-park-outline:all-application',
+ },
+ })
+
+ // Add engineering projects as children
+ const projectItems = engineeringList.value.map(item => ({
+ path: `/engineering-config/edit?name=${item.name}&version=${item.versions}`,
+ meta: {
+ title: item.name,
+ isShow: true,
+ icon: 'i-icon-park-outline:setting-two',
+ },
+ }))
+
+ engRoute.children.push(...projectItems)
}
-)
+ return routes
+})
const circleUrl = ref(
- 'https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png'
+ 'https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png',
)
const isCollapse = ref(false)
@@ -89,8 +155,14 @@ const getIconClass = (icon: string) => {
const { push, currentRoute } = useRouter()
const activeMenu = computed(() => {
- const { meta, path } = unref(currentRoute)
+ const { meta, path, query } = unref(currentRoute)
+ if (path === '/engineering-config/edit' && query.name) {
+ return `/engineering-config/edit?name=${query.name}&version=${query.version}`
+ }
+ if (['/engineering-config/edit', '/engineering-config/created'].includes(path)) {
+ return '/engineering'
+ }
return path
})
@@ -103,8 +175,19 @@ const updateTime = () => {
currentTime.value = dayjs().format('YYYY-MM-DD HH:mm:ss')
requestAnimationFrame(updateTime)
}
+
+const fetchEngineeringList = async () => {
+ try {
+ const res = await getEngineeringList()
+ engineeringList.value = res.list
+ } catch (error) {
+ console.error(error)
+ }
+}
+
onMounted(() => {
updateTime()
+ fetchEngineeringList()
})