diff --git a/.env.production b/.env.production
index ed8a601..b5508a5 100644
--- a/.env.production
+++ b/.env.production
@@ -1,9 +1,9 @@
NODE_ENV = production
# 页面标题
-VITE_APP_TITLE = 标题
+VITE_APP_TITLE = 物联网设备管理平台
# 接口请求地址,会设置到 axios 的 baseURL 参数上
-VITE_APP_API_BASEURL = http://XXXXXXX:XXXXXXX
+VITE_APP_API_BASEURL = http://111.198.10.15:12206
# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空
VITE_APP_DEBUG_TOOL =
diff --git a/.env.production b/.env.production
index ed8a601..b5508a5 100644
--- a/.env.production
+++ b/.env.production
@@ -1,9 +1,9 @@
NODE_ENV = production
# 页面标题
-VITE_APP_TITLE = 标题
+VITE_APP_TITLE = 物联网设备管理平台
# 接口请求地址,会设置到 axios 的 baseURL 参数上
-VITE_APP_API_BASEURL = http://XXXXXXX:XXXXXXX
+VITE_APP_API_BASEURL = http://111.198.10.15:12206
# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空
VITE_APP_DEBUG_TOOL =
diff --git a/src/api/basic/group.ts b/src/api/basic/group.ts
index a20dea4..8b6a2ff 100644
--- a/src/api/basic/group.ts
+++ b/src/api/basic/group.ts
@@ -9,6 +9,14 @@
data,
})
}
+// 查询分组列表 不分页
+export function getGroupList(data: object) {
+ return request({
+ url: `${prefix}/list`,
+ method: 'post',
+ data,
+ })
+}
// 查询分组详情
export function detailGroup(data: object) {
return request({
diff --git a/.env.production b/.env.production
index ed8a601..b5508a5 100644
--- a/.env.production
+++ b/.env.production
@@ -1,9 +1,9 @@
NODE_ENV = production
# 页面标题
-VITE_APP_TITLE = 标题
+VITE_APP_TITLE = 物联网设备管理平台
# 接口请求地址,会设置到 axios 的 baseURL 参数上
-VITE_APP_API_BASEURL = http://XXXXXXX:XXXXXXX
+VITE_APP_API_BASEURL = http://111.198.10.15:12206
# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空
VITE_APP_DEBUG_TOOL =
diff --git a/src/api/basic/group.ts b/src/api/basic/group.ts
index a20dea4..8b6a2ff 100644
--- a/src/api/basic/group.ts
+++ b/src/api/basic/group.ts
@@ -9,6 +9,14 @@
data,
})
}
+// 查询分组列表 不分页
+export function getGroupList(data: object) {
+ return request({
+ url: `${prefix}/list`,
+ method: 'post',
+ data,
+ })
+}
// 查询分组详情
export function detailGroup(data: object) {
return request({
diff --git a/src/assets/icons/icon-group.svg b/src/assets/icons/icon-group.svg
new file mode 100644
index 0000000..9d3193d
--- /dev/null
+++ b/src/assets/icons/icon-group.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/.env.production b/.env.production
index ed8a601..b5508a5 100644
--- a/.env.production
+++ b/.env.production
@@ -1,9 +1,9 @@
NODE_ENV = production
# 页面标题
-VITE_APP_TITLE = 标题
+VITE_APP_TITLE = 物联网设备管理平台
# 接口请求地址,会设置到 axios 的 baseURL 参数上
-VITE_APP_API_BASEURL = http://XXXXXXX:XXXXXXX
+VITE_APP_API_BASEURL = http://111.198.10.15:12206
# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空
VITE_APP_DEBUG_TOOL =
diff --git a/src/api/basic/group.ts b/src/api/basic/group.ts
index a20dea4..8b6a2ff 100644
--- a/src/api/basic/group.ts
+++ b/src/api/basic/group.ts
@@ -9,6 +9,14 @@
data,
})
}
+// 查询分组列表 不分页
+export function getGroupList(data: object) {
+ return request({
+ url: `${prefix}/list`,
+ method: 'post',
+ data,
+ })
+}
// 查询分组详情
export function detailGroup(data: object) {
return request({
diff --git a/src/assets/icons/icon-group.svg b/src/assets/icons/icon-group.svg
new file mode 100644
index 0000000..9d3193d
--- /dev/null
+++ b/src/assets/icons/icon-group.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/icon-ota.svg b/src/assets/icons/icon-ota.svg
new file mode 100644
index 0000000..bce1df0
--- /dev/null
+++ b/src/assets/icons/icon-ota.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/.env.production b/.env.production
index ed8a601..b5508a5 100644
--- a/.env.production
+++ b/.env.production
@@ -1,9 +1,9 @@
NODE_ENV = production
# 页面标题
-VITE_APP_TITLE = 标题
+VITE_APP_TITLE = 物联网设备管理平台
# 接口请求地址,会设置到 axios 的 baseURL 参数上
-VITE_APP_API_BASEURL = http://XXXXXXX:XXXXXXX
+VITE_APP_API_BASEURL = http://111.198.10.15:12206
# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空
VITE_APP_DEBUG_TOOL =
diff --git a/src/api/basic/group.ts b/src/api/basic/group.ts
index a20dea4..8b6a2ff 100644
--- a/src/api/basic/group.ts
+++ b/src/api/basic/group.ts
@@ -9,6 +9,14 @@
data,
})
}
+// 查询分组列表 不分页
+export function getGroupList(data: object) {
+ return request({
+ url: `${prefix}/list`,
+ method: 'post',
+ data,
+ })
+}
// 查询分组详情
export function detailGroup(data: object) {
return request({
diff --git a/src/assets/icons/icon-group.svg b/src/assets/icons/icon-group.svg
new file mode 100644
index 0000000..9d3193d
--- /dev/null
+++ b/src/assets/icons/icon-group.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/icon-ota.svg b/src/assets/icons/icon-ota.svg
new file mode 100644
index 0000000..bce1df0
--- /dev/null
+++ b/src/assets/icons/icon-ota.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/router/modules/basic.ts b/src/router/modules/basic.ts
index 66fb204..2308656 100644
--- a/src/router/modules/basic.ts
+++ b/src/router/modules/basic.ts
@@ -4,9 +4,45 @@
const routes: Route.recordRaw[] = [
{
- path: '/basic',
+ path: '/basic/group',
component: Layout,
- redirect: '/group/list',
+ redirect: '/basic/group/list',
+ name: 'Group',
+ meta: {
+ title: '分组管理',
+ icon: 'ep:key',
+ auth: '/basic/group',
+ },
+ children: [
+ {
+ path: 'list',
+ name: 'GroupList',
+ component: () => import('@/views/basic/group/list.vue'),
+ meta: {
+ title: '分组管理',
+ auth: '/basic/group',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/group',
+ },
+ },
+ {
+ path: 'detail/:id?',
+ name: 'GroupInfoDetail',
+ component: () => import('@/views/basic/group/detail.vue'),
+ meta: {
+ title: '分组详情',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/group',
+ },
+ },
+ ],
+ },
+ {
+ path: '/basic/device',
+ component: Layout,
+ redirect: '/basic/device/list',
name: 'Device',
meta: {
title: '设备管理',
@@ -15,101 +51,35 @@
},
children: [
{
- path: 'group/list',
- name: 'GroupList',
- component: () => import('@/views/basic/group/list.vue'),
- meta: {
- title: '分组管理',
- auth: '/basic/group/list',
- icon: 'ep:key',
- },
- },
- {
- path: 'group/list/detail',
- name: 'GroupInfoDetail',
- component: () => import('@/views/basic/group/detail.vue'),
- meta: {
- title: '分组详情',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/basic/group/list',
- },
- },
- {
- path: 'device/list',
+ path: 'list',
name: 'DeviceList',
component: () => import('@/views/basic/device/list.vue'),
meta: {
title: '设备管理',
- auth: '/basic/device/list',
- icon: 'ep:key',
+ auth: '/basic/device',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/device',
},
},
{
- path: 'device/list/detail',
+ path: 'detail/:id?',
name: 'DeviceInfoDetail',
component: () => import('@/views/basic/device/detail.vue'),
meta: {
title: '设备详情',
sidebar: false,
breadcrumb: true,
- activeMenu: '/basic/device/list',
+ activeMenu: '/basic/device',
},
},
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoBookDetail',
- // component: () => import('@/views/equipement/info/book/detail.vue'),
- // meta: {
- // title: '设备台账管理',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/bookList',
- // },
- // },
-
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoTableDetail',
- // component: () => import('@/views/equipement/info/table/detail.vue'),
- // meta: {
- // title: '参照标准、工作标准和关键测量设备表',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/tableList',
- // },
- // },
- {
- path: 'remindList',
- name: 'EquipmentInfoRemindList',
- component: () => import('@/views/equipement/info/remind/list.vue'),
- meta: {
- title: '到期提醒列表',
- auth: '/equipment/info/remind',
- icon: 'ep:key',
- },
- },
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoRemindDetail',
- // component: () => import('@/views/equipement/info/remind/detail.vue'),
- // meta: {
- // title: '到期提醒',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/remindList',
- // },
- // },
],
},
{
- path: '/product',
+ path: '/basic/product',
component: Layout,
- redirect: '/basic/product',
- name: 'StateMaintenance',
+ redirect: '/basic/product/list',
+ name: 'Product',
meta: {
title: '产品管理',
icon: 'ep:key',
@@ -117,866 +87,53 @@
},
children: [
{
- path: '/product/list',
+ path: 'list',
name: 'ProductList',
- component: () => import('@/views/equipement/stateMaintenance/unseal/list.vue'),
+ component: () => import('@/views/basic/product/list.vue'),
meta: {
title: '产品管理',
- auth: '/product/list',
- icon: 'ep:key',
- },
- },
- {
- path: 'unseal/:type/:id?',
- name: 'UnsealDetail',
- component: () => import('@/views/equipement/stateMaintenance/unseal/edit.vue'),
- meta: {
- title: '设备启封申请',
- icon: 'ep:key',
+ auth: '/basic/product',
sidebar: false,
breadcrumb: true,
- activeMenu: '/stateMaintenance/unsealList',
+ activeMenu: '/basic/product',
},
},
+ ],
+ },
+ /*
+ {
+ path: '/product',
+ component: Layout,
+ redirect: 'product/list',
+ name: 'Product',
+ meta: {
+ title: '产品管理',
+ icon: 'ep:key',
+ auth: '/basic/product',
+ },
+ children: [
{
- path: 'unsealDoc/:type/:id?',
- name: 'UnsealDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/unseal/detail.vue'),
+ path: 'product/list',
+ name: 'ProductList',
+ component: () => import('@/views/basic/group/list.vue'),
meta: {
- title: '设备启封申请',
+ title: '产品管理',
+ auth: '/basic/product/list',
icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/unsealList',
},
},
{
- path: '/product/ota',
- name: 'ProductOTA',
- component: () => import('@/views/equipement/stateMaintenance/seal/list.vue'),
+ path: 'product/ota',
+ name: 'ProductOTAList',
+ component: () => import('@/views/basic/group/list.vue'),
meta: {
title: '远程升级',
- auth: '/product/ota',
+ auth: '/basic/product/ota',
icon: 'ep:key',
},
},
- {
- path: 'seal/:type/:id?',
- name: 'SealDetail',
- component: () => import('@/views/equipement/stateMaintenance/seal/edit.vue'),
- meta: {
- title: '设备封存申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/sealList',
- },
- },
- {
- path: 'sealDoc/:type/:id?',
- name: 'SealDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/seal/detail.vue'),
- meta: {
- title: '设备封存申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/sealList',
- },
- },
- {
- path: 'banList',
- name: 'BanList',
- component: () => import('@/views/equipement/stateMaintenance/ban/list.vue'),
- meta: {
- title: '设备禁用申请',
- auth: '/equipment/stateMaintenance/ban',
- icon: 'ep:key',
- },
- },
- {
- path: 'ban/:type/:id?',
- name: 'BanDetail',
- component: () => import('@/views/equipement/stateMaintenance/ban/edit.vue'),
- meta: {
- title: '设备禁用申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/banList',
- },
- },
- {
- path: 'banDoc/:type/:id?',
- name: 'BanDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/ban/detail.vue'),
- meta: {
- title: '设备禁用申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/banList',
- },
- },
- {
- path: 'scrapList',
- name: 'ScrapList',
- component: () => import('@/views/equipement/stateMaintenance/scrap/list.vue'),
- meta: {
- title: '设备报废申请',
- auth: '/equipment/stateMaintenance/scrap',
- icon: 'ep:key',
- },
- },
- {
- path: 'scrap/:type/:id?',
- name: 'ScrapDetail',
- component: () => import('@/views/equipement/stateMaintenance/scrap/edit.vue'),
- meta: {
- title: '设备报废申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/scrapList',
- },
- },
- {
- path: 'scrapDoc/:type/:id?',
- name: 'ScrapDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/scrap/detail.vue'),
- meta: {
- title: '设备报废申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/scrapList',
- },
- },
],
- },
- {
- path: '/standard',
- component: Layout,
- redirect: '/standard/bookInfoList',
- name: 'Standard',
- meta: {
- title: '标准装置管理',
- icon: 'ep:key',
- auth: '/standard',
- },
- children: [
- {
- path: 'bookInfoList',
- name: 'BookInfoList',
- component: () => import('@/views/equipement/standard/book/list.vue'),
- meta: {
- title: '标准装置台账信息列表',
- auth: '/standard/bookInfo',
- icon: 'ep:key',
- },
- },
- {
- path: ':type/:id?',
- name: 'StandardBookInfoList',
- component: () => import('@/views/equipement/standard/book/detail.vue'),
- meta: {
- title: '标准装置台账信息',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/bookInfoList',
- },
- },
- {
- path: '/standardEquipmentConfig/:type/:id?',
- name: 'StandardBookInfoConfig',
- component: () => import('@/views/equipement/standard/book/components/config.vue'),
- meta: {
- title: '配置核查项',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/bookInfoList',
- },
- },
- {
- path: 'standardRemindList',
- name: 'StandardRemindList',
- component: () => import('@/views/equipement/standard/remind/list.vue'),
- meta: {
- title: '到期提醒',
- auth: '/standard/remind',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkDataList',
- name: 'CheckDataList',
- component: () => import('@/views/equipement/standard/checkData/list.vue'),
- meta: {
- title: '核查数据管理',
- auth: '/standard/checkData',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkData/:type/:id?',
- name: 'CheckDataDetail',
- component: () => import('@/views/equipement/standard/checkData/detail.vue'),
- meta: {
- title: '核查数据管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkDataList',
- },
- },
- {
- path: 'checkRecordList',
- name: 'CheckRecordList',
- component: () => import('@/views/equipement/standard/checkRecord/list.vue'),
- meta: {
- title: '核查记录管理',
- auth: '/standard/checkRecord',
- icon: 'ep:key',
- },
- },
- {
- path: '/equipmentCheckRecord/:type/:id?',
- name: 'CheckRecordDetail',
- component: () => import('@/views/equipement/standard/checkRecord/detail.vue'),
- meta: {
- title: '核查记录管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkRecordList',
- },
- },
- {
- path: 'checkItemClassificationList',
- name: 'CheckItemClassificationList',
- component: () => import('@/views/equipement/standard/checkItemClassification/list.vue'),
- meta: {
- title: '核查项分类管理',
- auth: '/standard/checkItemClassification',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkItemClassification/:type/:id?',
- name: 'CheckItemClassificationDetail',
- component: () => import('@/views/equipement/standard/checkItemClassification/detail.vue'),
- meta: {
- title: '核查项分类管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkItemClassificationList',
- },
- },
- {
- path: 'standardBuildList',
- name: 'StandardBuildList',
- component: () => import('@/views/equipement/standard/build/list.vue'),
- meta: {
- title: '建标管理',
- auth: '/standard/build',
- icon: 'ep:key',
- },
- },
- {
- path: '/build/:type/:id?',
- name: 'StandardBuildEdit',
- component: () => import('@/views/equipement/standard/build/edit.vue'),
- meta: {
- title: '建标管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/standardBuildList',
- },
- },
- {
- path: '/buildDoc/:type/:id?',
- name: 'StandardBuildDetail',
- component: () => import('@/views/equipement/standard/build/detail.vue'),
- meta: {
- title: '建标管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/standardBuildList',
- },
- },
- ],
- },
- {
- path: '/standardStateMaintenance',
- component: Layout,
- redirect: '/standardStateMaintenance/changeList',
- name: 'StandardStateMaintenance',
- meta: {
- title: '标准装置状态维护',
- icon: 'ep:key',
- auth: '/standard/stateMaintenance',
- },
- children: [
- {
- path: 'changeList',
- name: 'ChangeList',
- component: () => import('@/views/equipement/StandardStateMaintenance/change/list.vue'),
- meta: {
- title: '更换申请',
- auth: '/standard/change',
- icon: 'ep:key',
- },
- },
- {
- path: 'change/:type/:id?',
- name: 'ChangeDetail',
- component: () => import('@/views/equipement/StandardStateMaintenance/change/detail.vue'),
- meta: {
- title: '更换申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/changeList',
- },
- },
- {
- path: 'reviewList',
- name: 'ReviewList',
- component: () => import('@/views/equipement/StandardStateMaintenance/review/list.vue'),
- meta: {
- title: '复查申请',
- auth: '/standard/review',
- icon: 'ep:key',
- },
- },
- {
- path: 'review/:type/:id?',
- name: 'ReviewDetail',
- component: () => import('@/views/equipement/standardStateMaintenance/review/detail.vue'),
- meta: {
- title: '复查申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/reviewList',
- },
- },
- {
- path: 'revocationList',
- name: 'RevocationList',
- component: () => import('@/views/equipement/StandardStateMaintenance/revocation/list.vue'),
- meta: {
- title: '撤销申请',
- auth: '/standard/revocation',
- icon: 'ep:key',
- },
- },
- {
- path: 'revocation/:type/:id?',
- name: 'RevocationDetail',
- component: () => import('@/views/equipement/StandardStateMaintenance/revocation/detail.vue'),
- meta: {
- title: '撤销申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/revocationList',
- },
- },
- ],
- },
- {
- path: '/source',
- component: Layout,
- redirect: '/source/planList',
- name: 'Source',
- meta: {
- title: '溯源管理',
- icon: 'ep:key',
- auth: '/equipment/source',
- },
- children: [
- {
- path: 'planList',
- name: 'EquipmentSourcePlanList',
- component: () => import('@/views/equipement/source/plan/list.vue'),
- meta: {
- title: '溯源计划管理',
- auth: '/equipment/source/plan',
- icon: 'ep:key',
- },
- },
- {
- path: 'plan/:type/:id?',
- name: 'EquipmentSourcePlanDetail',
- component: () => import('@/views/equipement/source/plan/detail.vue'),
- meta: {
- title: '溯源计划管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/planList',
- },
- },
- {
- path: 'resultConfirmList',
- name: 'EquipmentSourceResultConfirmList',
- component: () => import('@/views/equipement/source/resultConfirm/list.vue'),
- meta: {
- title: '溯源结果确认',
- auth: '/equipment/source/resultConfirm',
- icon: 'ep:key',
- },
- },
- {
- path: 'resultConfirm/:type/:id?',
- name: 'EquipmentSourceResultConfirmEdit',
- component: () => import('@/views/equipement/source/resultConfirm/edit.vue'),
- meta: {
- title: '溯源结果确认',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultConfirmList',
- },
- },
- {
- path: 'resultConfirmDoc/:type/:id?',
- name: 'EquipmentSourceResultConfirmDetail',
- component: () => import('@/views/equipement/source/resultConfirm/detail.vue'),
- meta: {
- title: '溯源结果确认',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultConfirmList',
- },
- },
- {
- path: 'resultCompleteList',
- name: 'EquipmentSourceResultCompleteList',
- component: () => import('@/views/equipement/source/resultComplete/list.vue'),
- meta: {
- title: '溯源结果完成情况',
- auth: '/equipment/source/resultComplete',
- icon: 'ep:key',
- },
- },
- {
- path: 'resultComplete/:type/:id?',
- name: 'EquipmentSourceResultCompleteEdit',
- component: () => import('@/views/equipement/source/resultComplete/edit.vue'),
- meta: {
- title: '溯源结果完成情况',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultCompleteList',
- },
- },
- {
- path: 'resultCompleteDoc/:type/:id?',
- name: 'EquipmentSourceResultCompleteDetail',
- component: () => import('@/views/equipement/source/resultComplete/detail.vue'),
- meta: {
- title: '溯源结果完成情况',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultCompleteList',
- },
- },
- {
- path: 'certList',
- name: 'EquipmentSourceCertList',
- component: () => import('@/views/equipement/source/cert/list.vue'),
- meta: {
- title: '溯源证书管理',
- auth: '/equipment/source/cert',
- icon: 'ep:key',
- },
- },
- {
- path: 'cert/:type/:id?',
- name: 'EquipmentSourceCertDetail',
- component: () => import('@/views/equipement/source/cert/detail.vue'),
- meta: {
- title: '溯源证书管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/certList',
- },
- },
- {
- path: 'changeList',
- name: 'EquipmentSourceChangeList',
- component: () => import('@/views/equipement/source/change/list.vue'),
- meta: {
- title: '溯源链变更管理',
- auth: '/equipment/source/change',
- icon: 'ep:key',
- },
- },
- {
- path: 'sourceChange/:type/:id?',
- name: 'EquipmentSourceChangeDetail',
- component: () => import('@/views/equipement/source/change/edit.vue'),
- meta: {
- title: '溯源链变更管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/changeList',
- },
- },
- ],
- },
- {
- path: '/resume',
- component: Layout,
- redirect: '/resume/planList',
- name: 'Resume',
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- auth: '/equipment/resume',
- },
- children: [
- {
- path: 'unpackList',
- name: 'EquipmentResumeUnpackList',
- component: () => import('@/views/equipement/resume/unpack/list.vue'),
- meta: {
- title: '开箱验收管理',
- auth: '/equipment/resume/unpack',
- icon: 'ep:key',
- },
- },
- {
- path: 'unpack/:type/:id?',
- name: 'EquipmentResumeUnpackEdit',
- component: () => import('@/views/equipement/resume/unpack/edit.vue'),
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/unpackList',
- },
- },
- {
- path: '/unpackDoc/:type/:id?',
- name: 'EquipmentResumeUnpackDetail',
- component: () => import('@/views/equipement/resume/unpack/detail.vue'),
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/unpackList',
- },
- },
- {
- path: 'lendList',
- name: 'EquipmentResumeLendList',
- component: () => import('@/views/equipement/resume/lend/list.vue'),
- meta: {
- title: '设备借出管理',
- auth: '/equipment/resume/lend',
- icon: 'ep:key',
- },
- },
- {
- path: 'lend/:type/:id?',
- name: 'EquipmentResumeLendEdit',
- component: () => import('@/views/equipement/resume/lend/edit.vue'),
- meta: {
- title: '设备借出管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/lendList',
- },
- },
- {
- path: 'lendDoc/:type/:id?',
- name: 'EquipmentResumeLendDetail',
- component: () => import('@/views/equipement/resume/lend/detail.vue'),
- meta: {
- title: '设备借出管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/lendList',
- },
- },
- {
- path: 'borrowList',
- name: 'EquipmentResumeBorrowList',
- component: () => import('@/views/equipement/resume/borrow/list.vue'),
- meta: {
- title: '设备借用管理',
- auth: '/equipment/resume/borrow',
- icon: 'ep:key',
- },
- },
- {
- path: 'borrow/:type/:id?',
- name: 'EquipmentResumeBorrowEdit',
- component: () => import('@/views/equipement/resume/borrow/edit.vue'),
- meta: {
- title: '设备借用管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/borrowList',
- },
- },
- {
- path: 'borrowDoc/:type/:id?',
- name: 'EquipmentResumeBorrowDetail',
- component: () => import('@/views/equipement/resume/borrow/detail.vue'),
- meta: {
- title: '设备借用管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/borrowList',
- },
- },
- {
- path: 'encasementList',
- name: 'EquipmentResumeEncasementList',
- component: () => import('@/views/equipement/resume/encasement/list.vue'),
- meta: {
- title: '设备运输装箱管理',
- auth: '/equipment/resume/encasement',
- icon: 'ep:key',
- },
- },
- {
- path: 'encasement/:type/:id?',
- name: 'EquipmentResumeEncasementDetail',
- component: () => import('@/views/equipement/resume/encasement/edit.vue'),
- meta: {
- title: '设备运输装箱管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/encasementList',
- },
- },
- {
- path: 'encasementDoc/:type/:id?',
- name: 'EquipmentResumeEncasementDetailDoc',
- component: () => import('@/views/equipement/resume/encasement/detail.vue'),
- meta: {
- title: '设备运输装箱管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/encasementList',
- },
- },
- {
- path: 'courseList',
- name: 'EquipmentResumeCourseList',
- component: () => import('@/views/equipement/resume/course/list.vue'),
- meta: {
- title: '设备运输过程管理',
- auth: '/equipment/resume/course',
- icon: 'ep:key',
- },
- },
- {
- path: 'course/:type/:id?',
- name: 'EquipmentResumeCourseDetail',
- component: () => import('@/views/equipement/resume/course/edit.vue'),
- meta: {
- title: '设备运输过程管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/courseList',
- },
- },
- {
- path: 'courseDoc/:type/:id?',
- name: 'EquipmentResumeCourseDetailDoc',
- component: () => import('@/views/equipement/resume/course/detail.vue'),
- meta: {
- title: '设备运输过程管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/courseList',
- },
- },
- {
- path: 'errorList',
- name: 'EquipmentResumeErrorList',
- component: () => import('@/views/equipement/resume/error/list.vue'),
- meta: {
- title: '异常情况处置管理',
- auth: '/equipment/resume/error',
- icon: 'ep:key',
- },
- },
- {
- path: 'error/:type/:id?',
- name: 'EquipmentResumeErrorEdit',
- component: () => import('@/views/equipement/resume/error/edit.vue'),
- meta: {
- title: '异常情况处置管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/errorList',
- },
- },
- {
- path: 'errorDoc/:type/:id?',
- name: 'EquipmentResumeErrorDetail',
- component: () => import('@/views/equipement/resume/error/detail.vue'),
- meta: {
- title: '异常情况处置管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/errorList',
- },
- },
- {
- path: 'weekList',
- name: 'EquipmentResumeWeekList',
- component: () => import('@/views/equipement/resume/week/list.vue'),
- meta: {
- title: '周维护',
- auth: '/equipment/resume/week',
- icon: 'ep:key',
- },
- },
- {
- path: 'week/:type/:id?',
- name: 'EquipmentResumeWeekDetail',
- component: () => import('@/views/equipement/resume/week/detail.vue'),
- meta: {
- title: '周维护',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/weekList',
- },
- },
- {
- path: 'monthList',
- name: 'EquipmentResumeMonthList',
- component: () => import('@/views/equipement/resume/month/list.vue'),
- meta: {
- title: '月保养',
- auth: '/equipment/resume/month',
- icon: 'ep:key',
- },
- },
- {
- path: 'month/:type/:id?',
- name: 'EquipmentResumeMonthDetail',
- component: () => import('@/views/equipement/resume/month/detail.vue'),
- meta: {
- title: '月保养',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/monthList',
- },
- },
- ],
- },
- {
- path: '/monitor',
- component: Layout,
- redirect: '/monitor/deviceList',
- name: 'Monitor',
- meta: {
- title: '监测测试管理',
- icon: 'ep:key',
- auth: '/equipment/monitor',
- },
- children: [
- {
- path: 'deviceList',
- name: 'EquipmentResumeDeviceList',
- component: () => import('@/views/equipement/monitor/device/list.vue'),
- meta: {
- title: '监测设备',
- auth: '/equipment/monitor/device',
- icon: 'ep:key',
- },
- },
- {
- path: 'device/:type/:id?',
- name: 'EquipmentResumeDeviceDetail',
- component: () => import('@/views/equipement/monitor/device/detail.vue'),
- meta: {
- title: '监测设备',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/deviceList',
- },
- },
- {
- path: 'radioList',
- name: 'EquipmentResumeRadioList',
- component: () => import('@/views/equipement/monitor/radio/list.vue'),
- meta: {
- title: '无线电库',
- auth: '/equipment/monitor/radio',
- icon: 'ep:key',
- },
- },
- {
- path: 'radio/:type/:id?',
- name: 'EquipmentResumeRadioDetail',
- component: () => import('@/views/equipement/monitor/radio/detail.vue'),
- meta: {
- title: '无线电库',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/radioList',
- },
- },
- {
- path: 'taskList',
- name: 'EquipmentResumeTaskList',
- component: () => import('@/views/equipement/monitor/task/list.vue'),
- meta: {
- title: '任务监测',
- auth: '/equipment/monitor/task',
- icon: 'ep:key',
- },
- },
- {
- path: 'task/:type/:id?',
- name: 'EquipmentResumeTaskDetail',
- component: () => import('@/views/equipement/monitor/task/detail.vue'),
- meta: {
- title: '任务监测',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/taskList',
- },
- },
- ],
- },
+ }, */
]
export default routes
diff --git a/.env.production b/.env.production
index ed8a601..b5508a5 100644
--- a/.env.production
+++ b/.env.production
@@ -1,9 +1,9 @@
NODE_ENV = production
# 页面标题
-VITE_APP_TITLE = 标题
+VITE_APP_TITLE = 物联网设备管理平台
# 接口请求地址,会设置到 axios 的 baseURL 参数上
-VITE_APP_API_BASEURL = http://XXXXXXX:XXXXXXX
+VITE_APP_API_BASEURL = http://111.198.10.15:12206
# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空
VITE_APP_DEBUG_TOOL =
diff --git a/src/api/basic/group.ts b/src/api/basic/group.ts
index a20dea4..8b6a2ff 100644
--- a/src/api/basic/group.ts
+++ b/src/api/basic/group.ts
@@ -9,6 +9,14 @@
data,
})
}
+// 查询分组列表 不分页
+export function getGroupList(data: object) {
+ return request({
+ url: `${prefix}/list`,
+ method: 'post',
+ data,
+ })
+}
// 查询分组详情
export function detailGroup(data: object) {
return request({
diff --git a/src/assets/icons/icon-group.svg b/src/assets/icons/icon-group.svg
new file mode 100644
index 0000000..9d3193d
--- /dev/null
+++ b/src/assets/icons/icon-group.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/icon-ota.svg b/src/assets/icons/icon-ota.svg
new file mode 100644
index 0000000..bce1df0
--- /dev/null
+++ b/src/assets/icons/icon-ota.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/router/modules/basic.ts b/src/router/modules/basic.ts
index 66fb204..2308656 100644
--- a/src/router/modules/basic.ts
+++ b/src/router/modules/basic.ts
@@ -4,9 +4,45 @@
const routes: Route.recordRaw[] = [
{
- path: '/basic',
+ path: '/basic/group',
component: Layout,
- redirect: '/group/list',
+ redirect: '/basic/group/list',
+ name: 'Group',
+ meta: {
+ title: '分组管理',
+ icon: 'ep:key',
+ auth: '/basic/group',
+ },
+ children: [
+ {
+ path: 'list',
+ name: 'GroupList',
+ component: () => import('@/views/basic/group/list.vue'),
+ meta: {
+ title: '分组管理',
+ auth: '/basic/group',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/group',
+ },
+ },
+ {
+ path: 'detail/:id?',
+ name: 'GroupInfoDetail',
+ component: () => import('@/views/basic/group/detail.vue'),
+ meta: {
+ title: '分组详情',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/group',
+ },
+ },
+ ],
+ },
+ {
+ path: '/basic/device',
+ component: Layout,
+ redirect: '/basic/device/list',
name: 'Device',
meta: {
title: '设备管理',
@@ -15,101 +51,35 @@
},
children: [
{
- path: 'group/list',
- name: 'GroupList',
- component: () => import('@/views/basic/group/list.vue'),
- meta: {
- title: '分组管理',
- auth: '/basic/group/list',
- icon: 'ep:key',
- },
- },
- {
- path: 'group/list/detail',
- name: 'GroupInfoDetail',
- component: () => import('@/views/basic/group/detail.vue'),
- meta: {
- title: '分组详情',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/basic/group/list',
- },
- },
- {
- path: 'device/list',
+ path: 'list',
name: 'DeviceList',
component: () => import('@/views/basic/device/list.vue'),
meta: {
title: '设备管理',
- auth: '/basic/device/list',
- icon: 'ep:key',
+ auth: '/basic/device',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/device',
},
},
{
- path: 'device/list/detail',
+ path: 'detail/:id?',
name: 'DeviceInfoDetail',
component: () => import('@/views/basic/device/detail.vue'),
meta: {
title: '设备详情',
sidebar: false,
breadcrumb: true,
- activeMenu: '/basic/device/list',
+ activeMenu: '/basic/device',
},
},
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoBookDetail',
- // component: () => import('@/views/equipement/info/book/detail.vue'),
- // meta: {
- // title: '设备台账管理',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/bookList',
- // },
- // },
-
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoTableDetail',
- // component: () => import('@/views/equipement/info/table/detail.vue'),
- // meta: {
- // title: '参照标准、工作标准和关键测量设备表',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/tableList',
- // },
- // },
- {
- path: 'remindList',
- name: 'EquipmentInfoRemindList',
- component: () => import('@/views/equipement/info/remind/list.vue'),
- meta: {
- title: '到期提醒列表',
- auth: '/equipment/info/remind',
- icon: 'ep:key',
- },
- },
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoRemindDetail',
- // component: () => import('@/views/equipement/info/remind/detail.vue'),
- // meta: {
- // title: '到期提醒',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/remindList',
- // },
- // },
],
},
{
- path: '/product',
+ path: '/basic/product',
component: Layout,
- redirect: '/basic/product',
- name: 'StateMaintenance',
+ redirect: '/basic/product/list',
+ name: 'Product',
meta: {
title: '产品管理',
icon: 'ep:key',
@@ -117,866 +87,53 @@
},
children: [
{
- path: '/product/list',
+ path: 'list',
name: 'ProductList',
- component: () => import('@/views/equipement/stateMaintenance/unseal/list.vue'),
+ component: () => import('@/views/basic/product/list.vue'),
meta: {
title: '产品管理',
- auth: '/product/list',
- icon: 'ep:key',
- },
- },
- {
- path: 'unseal/:type/:id?',
- name: 'UnsealDetail',
- component: () => import('@/views/equipement/stateMaintenance/unseal/edit.vue'),
- meta: {
- title: '设备启封申请',
- icon: 'ep:key',
+ auth: '/basic/product',
sidebar: false,
breadcrumb: true,
- activeMenu: '/stateMaintenance/unsealList',
+ activeMenu: '/basic/product',
},
},
+ ],
+ },
+ /*
+ {
+ path: '/product',
+ component: Layout,
+ redirect: 'product/list',
+ name: 'Product',
+ meta: {
+ title: '产品管理',
+ icon: 'ep:key',
+ auth: '/basic/product',
+ },
+ children: [
{
- path: 'unsealDoc/:type/:id?',
- name: 'UnsealDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/unseal/detail.vue'),
+ path: 'product/list',
+ name: 'ProductList',
+ component: () => import('@/views/basic/group/list.vue'),
meta: {
- title: '设备启封申请',
+ title: '产品管理',
+ auth: '/basic/product/list',
icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/unsealList',
},
},
{
- path: '/product/ota',
- name: 'ProductOTA',
- component: () => import('@/views/equipement/stateMaintenance/seal/list.vue'),
+ path: 'product/ota',
+ name: 'ProductOTAList',
+ component: () => import('@/views/basic/group/list.vue'),
meta: {
title: '远程升级',
- auth: '/product/ota',
+ auth: '/basic/product/ota',
icon: 'ep:key',
},
},
- {
- path: 'seal/:type/:id?',
- name: 'SealDetail',
- component: () => import('@/views/equipement/stateMaintenance/seal/edit.vue'),
- meta: {
- title: '设备封存申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/sealList',
- },
- },
- {
- path: 'sealDoc/:type/:id?',
- name: 'SealDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/seal/detail.vue'),
- meta: {
- title: '设备封存申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/sealList',
- },
- },
- {
- path: 'banList',
- name: 'BanList',
- component: () => import('@/views/equipement/stateMaintenance/ban/list.vue'),
- meta: {
- title: '设备禁用申请',
- auth: '/equipment/stateMaintenance/ban',
- icon: 'ep:key',
- },
- },
- {
- path: 'ban/:type/:id?',
- name: 'BanDetail',
- component: () => import('@/views/equipement/stateMaintenance/ban/edit.vue'),
- meta: {
- title: '设备禁用申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/banList',
- },
- },
- {
- path: 'banDoc/:type/:id?',
- name: 'BanDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/ban/detail.vue'),
- meta: {
- title: '设备禁用申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/banList',
- },
- },
- {
- path: 'scrapList',
- name: 'ScrapList',
- component: () => import('@/views/equipement/stateMaintenance/scrap/list.vue'),
- meta: {
- title: '设备报废申请',
- auth: '/equipment/stateMaintenance/scrap',
- icon: 'ep:key',
- },
- },
- {
- path: 'scrap/:type/:id?',
- name: 'ScrapDetail',
- component: () => import('@/views/equipement/stateMaintenance/scrap/edit.vue'),
- meta: {
- title: '设备报废申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/scrapList',
- },
- },
- {
- path: 'scrapDoc/:type/:id?',
- name: 'ScrapDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/scrap/detail.vue'),
- meta: {
- title: '设备报废申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/scrapList',
- },
- },
],
- },
- {
- path: '/standard',
- component: Layout,
- redirect: '/standard/bookInfoList',
- name: 'Standard',
- meta: {
- title: '标准装置管理',
- icon: 'ep:key',
- auth: '/standard',
- },
- children: [
- {
- path: 'bookInfoList',
- name: 'BookInfoList',
- component: () => import('@/views/equipement/standard/book/list.vue'),
- meta: {
- title: '标准装置台账信息列表',
- auth: '/standard/bookInfo',
- icon: 'ep:key',
- },
- },
- {
- path: ':type/:id?',
- name: 'StandardBookInfoList',
- component: () => import('@/views/equipement/standard/book/detail.vue'),
- meta: {
- title: '标准装置台账信息',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/bookInfoList',
- },
- },
- {
- path: '/standardEquipmentConfig/:type/:id?',
- name: 'StandardBookInfoConfig',
- component: () => import('@/views/equipement/standard/book/components/config.vue'),
- meta: {
- title: '配置核查项',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/bookInfoList',
- },
- },
- {
- path: 'standardRemindList',
- name: 'StandardRemindList',
- component: () => import('@/views/equipement/standard/remind/list.vue'),
- meta: {
- title: '到期提醒',
- auth: '/standard/remind',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkDataList',
- name: 'CheckDataList',
- component: () => import('@/views/equipement/standard/checkData/list.vue'),
- meta: {
- title: '核查数据管理',
- auth: '/standard/checkData',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkData/:type/:id?',
- name: 'CheckDataDetail',
- component: () => import('@/views/equipement/standard/checkData/detail.vue'),
- meta: {
- title: '核查数据管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkDataList',
- },
- },
- {
- path: 'checkRecordList',
- name: 'CheckRecordList',
- component: () => import('@/views/equipement/standard/checkRecord/list.vue'),
- meta: {
- title: '核查记录管理',
- auth: '/standard/checkRecord',
- icon: 'ep:key',
- },
- },
- {
- path: '/equipmentCheckRecord/:type/:id?',
- name: 'CheckRecordDetail',
- component: () => import('@/views/equipement/standard/checkRecord/detail.vue'),
- meta: {
- title: '核查记录管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkRecordList',
- },
- },
- {
- path: 'checkItemClassificationList',
- name: 'CheckItemClassificationList',
- component: () => import('@/views/equipement/standard/checkItemClassification/list.vue'),
- meta: {
- title: '核查项分类管理',
- auth: '/standard/checkItemClassification',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkItemClassification/:type/:id?',
- name: 'CheckItemClassificationDetail',
- component: () => import('@/views/equipement/standard/checkItemClassification/detail.vue'),
- meta: {
- title: '核查项分类管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkItemClassificationList',
- },
- },
- {
- path: 'standardBuildList',
- name: 'StandardBuildList',
- component: () => import('@/views/equipement/standard/build/list.vue'),
- meta: {
- title: '建标管理',
- auth: '/standard/build',
- icon: 'ep:key',
- },
- },
- {
- path: '/build/:type/:id?',
- name: 'StandardBuildEdit',
- component: () => import('@/views/equipement/standard/build/edit.vue'),
- meta: {
- title: '建标管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/standardBuildList',
- },
- },
- {
- path: '/buildDoc/:type/:id?',
- name: 'StandardBuildDetail',
- component: () => import('@/views/equipement/standard/build/detail.vue'),
- meta: {
- title: '建标管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/standardBuildList',
- },
- },
- ],
- },
- {
- path: '/standardStateMaintenance',
- component: Layout,
- redirect: '/standardStateMaintenance/changeList',
- name: 'StandardStateMaintenance',
- meta: {
- title: '标准装置状态维护',
- icon: 'ep:key',
- auth: '/standard/stateMaintenance',
- },
- children: [
- {
- path: 'changeList',
- name: 'ChangeList',
- component: () => import('@/views/equipement/StandardStateMaintenance/change/list.vue'),
- meta: {
- title: '更换申请',
- auth: '/standard/change',
- icon: 'ep:key',
- },
- },
- {
- path: 'change/:type/:id?',
- name: 'ChangeDetail',
- component: () => import('@/views/equipement/StandardStateMaintenance/change/detail.vue'),
- meta: {
- title: '更换申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/changeList',
- },
- },
- {
- path: 'reviewList',
- name: 'ReviewList',
- component: () => import('@/views/equipement/StandardStateMaintenance/review/list.vue'),
- meta: {
- title: '复查申请',
- auth: '/standard/review',
- icon: 'ep:key',
- },
- },
- {
- path: 'review/:type/:id?',
- name: 'ReviewDetail',
- component: () => import('@/views/equipement/standardStateMaintenance/review/detail.vue'),
- meta: {
- title: '复查申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/reviewList',
- },
- },
- {
- path: 'revocationList',
- name: 'RevocationList',
- component: () => import('@/views/equipement/StandardStateMaintenance/revocation/list.vue'),
- meta: {
- title: '撤销申请',
- auth: '/standard/revocation',
- icon: 'ep:key',
- },
- },
- {
- path: 'revocation/:type/:id?',
- name: 'RevocationDetail',
- component: () => import('@/views/equipement/StandardStateMaintenance/revocation/detail.vue'),
- meta: {
- title: '撤销申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/revocationList',
- },
- },
- ],
- },
- {
- path: '/source',
- component: Layout,
- redirect: '/source/planList',
- name: 'Source',
- meta: {
- title: '溯源管理',
- icon: 'ep:key',
- auth: '/equipment/source',
- },
- children: [
- {
- path: 'planList',
- name: 'EquipmentSourcePlanList',
- component: () => import('@/views/equipement/source/plan/list.vue'),
- meta: {
- title: '溯源计划管理',
- auth: '/equipment/source/plan',
- icon: 'ep:key',
- },
- },
- {
- path: 'plan/:type/:id?',
- name: 'EquipmentSourcePlanDetail',
- component: () => import('@/views/equipement/source/plan/detail.vue'),
- meta: {
- title: '溯源计划管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/planList',
- },
- },
- {
- path: 'resultConfirmList',
- name: 'EquipmentSourceResultConfirmList',
- component: () => import('@/views/equipement/source/resultConfirm/list.vue'),
- meta: {
- title: '溯源结果确认',
- auth: '/equipment/source/resultConfirm',
- icon: 'ep:key',
- },
- },
- {
- path: 'resultConfirm/:type/:id?',
- name: 'EquipmentSourceResultConfirmEdit',
- component: () => import('@/views/equipement/source/resultConfirm/edit.vue'),
- meta: {
- title: '溯源结果确认',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultConfirmList',
- },
- },
- {
- path: 'resultConfirmDoc/:type/:id?',
- name: 'EquipmentSourceResultConfirmDetail',
- component: () => import('@/views/equipement/source/resultConfirm/detail.vue'),
- meta: {
- title: '溯源结果确认',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultConfirmList',
- },
- },
- {
- path: 'resultCompleteList',
- name: 'EquipmentSourceResultCompleteList',
- component: () => import('@/views/equipement/source/resultComplete/list.vue'),
- meta: {
- title: '溯源结果完成情况',
- auth: '/equipment/source/resultComplete',
- icon: 'ep:key',
- },
- },
- {
- path: 'resultComplete/:type/:id?',
- name: 'EquipmentSourceResultCompleteEdit',
- component: () => import('@/views/equipement/source/resultComplete/edit.vue'),
- meta: {
- title: '溯源结果完成情况',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultCompleteList',
- },
- },
- {
- path: 'resultCompleteDoc/:type/:id?',
- name: 'EquipmentSourceResultCompleteDetail',
- component: () => import('@/views/equipement/source/resultComplete/detail.vue'),
- meta: {
- title: '溯源结果完成情况',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultCompleteList',
- },
- },
- {
- path: 'certList',
- name: 'EquipmentSourceCertList',
- component: () => import('@/views/equipement/source/cert/list.vue'),
- meta: {
- title: '溯源证书管理',
- auth: '/equipment/source/cert',
- icon: 'ep:key',
- },
- },
- {
- path: 'cert/:type/:id?',
- name: 'EquipmentSourceCertDetail',
- component: () => import('@/views/equipement/source/cert/detail.vue'),
- meta: {
- title: '溯源证书管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/certList',
- },
- },
- {
- path: 'changeList',
- name: 'EquipmentSourceChangeList',
- component: () => import('@/views/equipement/source/change/list.vue'),
- meta: {
- title: '溯源链变更管理',
- auth: '/equipment/source/change',
- icon: 'ep:key',
- },
- },
- {
- path: 'sourceChange/:type/:id?',
- name: 'EquipmentSourceChangeDetail',
- component: () => import('@/views/equipement/source/change/edit.vue'),
- meta: {
- title: '溯源链变更管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/changeList',
- },
- },
- ],
- },
- {
- path: '/resume',
- component: Layout,
- redirect: '/resume/planList',
- name: 'Resume',
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- auth: '/equipment/resume',
- },
- children: [
- {
- path: 'unpackList',
- name: 'EquipmentResumeUnpackList',
- component: () => import('@/views/equipement/resume/unpack/list.vue'),
- meta: {
- title: '开箱验收管理',
- auth: '/equipment/resume/unpack',
- icon: 'ep:key',
- },
- },
- {
- path: 'unpack/:type/:id?',
- name: 'EquipmentResumeUnpackEdit',
- component: () => import('@/views/equipement/resume/unpack/edit.vue'),
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/unpackList',
- },
- },
- {
- path: '/unpackDoc/:type/:id?',
- name: 'EquipmentResumeUnpackDetail',
- component: () => import('@/views/equipement/resume/unpack/detail.vue'),
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/unpackList',
- },
- },
- {
- path: 'lendList',
- name: 'EquipmentResumeLendList',
- component: () => import('@/views/equipement/resume/lend/list.vue'),
- meta: {
- title: '设备借出管理',
- auth: '/equipment/resume/lend',
- icon: 'ep:key',
- },
- },
- {
- path: 'lend/:type/:id?',
- name: 'EquipmentResumeLendEdit',
- component: () => import('@/views/equipement/resume/lend/edit.vue'),
- meta: {
- title: '设备借出管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/lendList',
- },
- },
- {
- path: 'lendDoc/:type/:id?',
- name: 'EquipmentResumeLendDetail',
- component: () => import('@/views/equipement/resume/lend/detail.vue'),
- meta: {
- title: '设备借出管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/lendList',
- },
- },
- {
- path: 'borrowList',
- name: 'EquipmentResumeBorrowList',
- component: () => import('@/views/equipement/resume/borrow/list.vue'),
- meta: {
- title: '设备借用管理',
- auth: '/equipment/resume/borrow',
- icon: 'ep:key',
- },
- },
- {
- path: 'borrow/:type/:id?',
- name: 'EquipmentResumeBorrowEdit',
- component: () => import('@/views/equipement/resume/borrow/edit.vue'),
- meta: {
- title: '设备借用管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/borrowList',
- },
- },
- {
- path: 'borrowDoc/:type/:id?',
- name: 'EquipmentResumeBorrowDetail',
- component: () => import('@/views/equipement/resume/borrow/detail.vue'),
- meta: {
- title: '设备借用管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/borrowList',
- },
- },
- {
- path: 'encasementList',
- name: 'EquipmentResumeEncasementList',
- component: () => import('@/views/equipement/resume/encasement/list.vue'),
- meta: {
- title: '设备运输装箱管理',
- auth: '/equipment/resume/encasement',
- icon: 'ep:key',
- },
- },
- {
- path: 'encasement/:type/:id?',
- name: 'EquipmentResumeEncasementDetail',
- component: () => import('@/views/equipement/resume/encasement/edit.vue'),
- meta: {
- title: '设备运输装箱管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/encasementList',
- },
- },
- {
- path: 'encasementDoc/:type/:id?',
- name: 'EquipmentResumeEncasementDetailDoc',
- component: () => import('@/views/equipement/resume/encasement/detail.vue'),
- meta: {
- title: '设备运输装箱管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/encasementList',
- },
- },
- {
- path: 'courseList',
- name: 'EquipmentResumeCourseList',
- component: () => import('@/views/equipement/resume/course/list.vue'),
- meta: {
- title: '设备运输过程管理',
- auth: '/equipment/resume/course',
- icon: 'ep:key',
- },
- },
- {
- path: 'course/:type/:id?',
- name: 'EquipmentResumeCourseDetail',
- component: () => import('@/views/equipement/resume/course/edit.vue'),
- meta: {
- title: '设备运输过程管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/courseList',
- },
- },
- {
- path: 'courseDoc/:type/:id?',
- name: 'EquipmentResumeCourseDetailDoc',
- component: () => import('@/views/equipement/resume/course/detail.vue'),
- meta: {
- title: '设备运输过程管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/courseList',
- },
- },
- {
- path: 'errorList',
- name: 'EquipmentResumeErrorList',
- component: () => import('@/views/equipement/resume/error/list.vue'),
- meta: {
- title: '异常情况处置管理',
- auth: '/equipment/resume/error',
- icon: 'ep:key',
- },
- },
- {
- path: 'error/:type/:id?',
- name: 'EquipmentResumeErrorEdit',
- component: () => import('@/views/equipement/resume/error/edit.vue'),
- meta: {
- title: '异常情况处置管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/errorList',
- },
- },
- {
- path: 'errorDoc/:type/:id?',
- name: 'EquipmentResumeErrorDetail',
- component: () => import('@/views/equipement/resume/error/detail.vue'),
- meta: {
- title: '异常情况处置管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/errorList',
- },
- },
- {
- path: 'weekList',
- name: 'EquipmentResumeWeekList',
- component: () => import('@/views/equipement/resume/week/list.vue'),
- meta: {
- title: '周维护',
- auth: '/equipment/resume/week',
- icon: 'ep:key',
- },
- },
- {
- path: 'week/:type/:id?',
- name: 'EquipmentResumeWeekDetail',
- component: () => import('@/views/equipement/resume/week/detail.vue'),
- meta: {
- title: '周维护',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/weekList',
- },
- },
- {
- path: 'monthList',
- name: 'EquipmentResumeMonthList',
- component: () => import('@/views/equipement/resume/month/list.vue'),
- meta: {
- title: '月保养',
- auth: '/equipment/resume/month',
- icon: 'ep:key',
- },
- },
- {
- path: 'month/:type/:id?',
- name: 'EquipmentResumeMonthDetail',
- component: () => import('@/views/equipement/resume/month/detail.vue'),
- meta: {
- title: '月保养',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/monthList',
- },
- },
- ],
- },
- {
- path: '/monitor',
- component: Layout,
- redirect: '/monitor/deviceList',
- name: 'Monitor',
- meta: {
- title: '监测测试管理',
- icon: 'ep:key',
- auth: '/equipment/monitor',
- },
- children: [
- {
- path: 'deviceList',
- name: 'EquipmentResumeDeviceList',
- component: () => import('@/views/equipement/monitor/device/list.vue'),
- meta: {
- title: '监测设备',
- auth: '/equipment/monitor/device',
- icon: 'ep:key',
- },
- },
- {
- path: 'device/:type/:id?',
- name: 'EquipmentResumeDeviceDetail',
- component: () => import('@/views/equipement/monitor/device/detail.vue'),
- meta: {
- title: '监测设备',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/deviceList',
- },
- },
- {
- path: 'radioList',
- name: 'EquipmentResumeRadioList',
- component: () => import('@/views/equipement/monitor/radio/list.vue'),
- meta: {
- title: '无线电库',
- auth: '/equipment/monitor/radio',
- icon: 'ep:key',
- },
- },
- {
- path: 'radio/:type/:id?',
- name: 'EquipmentResumeRadioDetail',
- component: () => import('@/views/equipement/monitor/radio/detail.vue'),
- meta: {
- title: '无线电库',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/radioList',
- },
- },
- {
- path: 'taskList',
- name: 'EquipmentResumeTaskList',
- component: () => import('@/views/equipement/monitor/task/list.vue'),
- meta: {
- title: '任务监测',
- auth: '/equipment/monitor/task',
- icon: 'ep:key',
- },
- },
- {
- path: 'task/:type/:id?',
- name: 'EquipmentResumeTaskDetail',
- component: () => import('@/views/equipement/monitor/task/detail.vue'),
- meta: {
- title: '任务监测',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/taskList',
- },
- },
- ],
- },
+ }, */
]
export default routes
diff --git a/src/views/basic/device/addDeviceDialog.vue b/src/views/basic/device/addDeviceDialog.vue
new file mode 100644
index 0000000..018f123
--- /dev/null
+++ b/src/views/basic/device/addDeviceDialog.vue
@@ -0,0 +1,220 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.env.production b/.env.production
index ed8a601..b5508a5 100644
--- a/.env.production
+++ b/.env.production
@@ -1,9 +1,9 @@
NODE_ENV = production
# 页面标题
-VITE_APP_TITLE = 标题
+VITE_APP_TITLE = 物联网设备管理平台
# 接口请求地址,会设置到 axios 的 baseURL 参数上
-VITE_APP_API_BASEURL = http://XXXXXXX:XXXXXXX
+VITE_APP_API_BASEURL = http://111.198.10.15:12206
# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空
VITE_APP_DEBUG_TOOL =
diff --git a/src/api/basic/group.ts b/src/api/basic/group.ts
index a20dea4..8b6a2ff 100644
--- a/src/api/basic/group.ts
+++ b/src/api/basic/group.ts
@@ -9,6 +9,14 @@
data,
})
}
+// 查询分组列表 不分页
+export function getGroupList(data: object) {
+ return request({
+ url: `${prefix}/list`,
+ method: 'post',
+ data,
+ })
+}
// 查询分组详情
export function detailGroup(data: object) {
return request({
diff --git a/src/assets/icons/icon-group.svg b/src/assets/icons/icon-group.svg
new file mode 100644
index 0000000..9d3193d
--- /dev/null
+++ b/src/assets/icons/icon-group.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/icon-ota.svg b/src/assets/icons/icon-ota.svg
new file mode 100644
index 0000000..bce1df0
--- /dev/null
+++ b/src/assets/icons/icon-ota.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/router/modules/basic.ts b/src/router/modules/basic.ts
index 66fb204..2308656 100644
--- a/src/router/modules/basic.ts
+++ b/src/router/modules/basic.ts
@@ -4,9 +4,45 @@
const routes: Route.recordRaw[] = [
{
- path: '/basic',
+ path: '/basic/group',
component: Layout,
- redirect: '/group/list',
+ redirect: '/basic/group/list',
+ name: 'Group',
+ meta: {
+ title: '分组管理',
+ icon: 'ep:key',
+ auth: '/basic/group',
+ },
+ children: [
+ {
+ path: 'list',
+ name: 'GroupList',
+ component: () => import('@/views/basic/group/list.vue'),
+ meta: {
+ title: '分组管理',
+ auth: '/basic/group',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/group',
+ },
+ },
+ {
+ path: 'detail/:id?',
+ name: 'GroupInfoDetail',
+ component: () => import('@/views/basic/group/detail.vue'),
+ meta: {
+ title: '分组详情',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/group',
+ },
+ },
+ ],
+ },
+ {
+ path: '/basic/device',
+ component: Layout,
+ redirect: '/basic/device/list',
name: 'Device',
meta: {
title: '设备管理',
@@ -15,101 +51,35 @@
},
children: [
{
- path: 'group/list',
- name: 'GroupList',
- component: () => import('@/views/basic/group/list.vue'),
- meta: {
- title: '分组管理',
- auth: '/basic/group/list',
- icon: 'ep:key',
- },
- },
- {
- path: 'group/list/detail',
- name: 'GroupInfoDetail',
- component: () => import('@/views/basic/group/detail.vue'),
- meta: {
- title: '分组详情',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/basic/group/list',
- },
- },
- {
- path: 'device/list',
+ path: 'list',
name: 'DeviceList',
component: () => import('@/views/basic/device/list.vue'),
meta: {
title: '设备管理',
- auth: '/basic/device/list',
- icon: 'ep:key',
+ auth: '/basic/device',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/device',
},
},
{
- path: 'device/list/detail',
+ path: 'detail/:id?',
name: 'DeviceInfoDetail',
component: () => import('@/views/basic/device/detail.vue'),
meta: {
title: '设备详情',
sidebar: false,
breadcrumb: true,
- activeMenu: '/basic/device/list',
+ activeMenu: '/basic/device',
},
},
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoBookDetail',
- // component: () => import('@/views/equipement/info/book/detail.vue'),
- // meta: {
- // title: '设备台账管理',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/bookList',
- // },
- // },
-
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoTableDetail',
- // component: () => import('@/views/equipement/info/table/detail.vue'),
- // meta: {
- // title: '参照标准、工作标准和关键测量设备表',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/tableList',
- // },
- // },
- {
- path: 'remindList',
- name: 'EquipmentInfoRemindList',
- component: () => import('@/views/equipement/info/remind/list.vue'),
- meta: {
- title: '到期提醒列表',
- auth: '/equipment/info/remind',
- icon: 'ep:key',
- },
- },
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoRemindDetail',
- // component: () => import('@/views/equipement/info/remind/detail.vue'),
- // meta: {
- // title: '到期提醒',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/remindList',
- // },
- // },
],
},
{
- path: '/product',
+ path: '/basic/product',
component: Layout,
- redirect: '/basic/product',
- name: 'StateMaintenance',
+ redirect: '/basic/product/list',
+ name: 'Product',
meta: {
title: '产品管理',
icon: 'ep:key',
@@ -117,866 +87,53 @@
},
children: [
{
- path: '/product/list',
+ path: 'list',
name: 'ProductList',
- component: () => import('@/views/equipement/stateMaintenance/unseal/list.vue'),
+ component: () => import('@/views/basic/product/list.vue'),
meta: {
title: '产品管理',
- auth: '/product/list',
- icon: 'ep:key',
- },
- },
- {
- path: 'unseal/:type/:id?',
- name: 'UnsealDetail',
- component: () => import('@/views/equipement/stateMaintenance/unseal/edit.vue'),
- meta: {
- title: '设备启封申请',
- icon: 'ep:key',
+ auth: '/basic/product',
sidebar: false,
breadcrumb: true,
- activeMenu: '/stateMaintenance/unsealList',
+ activeMenu: '/basic/product',
},
},
+ ],
+ },
+ /*
+ {
+ path: '/product',
+ component: Layout,
+ redirect: 'product/list',
+ name: 'Product',
+ meta: {
+ title: '产品管理',
+ icon: 'ep:key',
+ auth: '/basic/product',
+ },
+ children: [
{
- path: 'unsealDoc/:type/:id?',
- name: 'UnsealDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/unseal/detail.vue'),
+ path: 'product/list',
+ name: 'ProductList',
+ component: () => import('@/views/basic/group/list.vue'),
meta: {
- title: '设备启封申请',
+ title: '产品管理',
+ auth: '/basic/product/list',
icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/unsealList',
},
},
{
- path: '/product/ota',
- name: 'ProductOTA',
- component: () => import('@/views/equipement/stateMaintenance/seal/list.vue'),
+ path: 'product/ota',
+ name: 'ProductOTAList',
+ component: () => import('@/views/basic/group/list.vue'),
meta: {
title: '远程升级',
- auth: '/product/ota',
+ auth: '/basic/product/ota',
icon: 'ep:key',
},
},
- {
- path: 'seal/:type/:id?',
- name: 'SealDetail',
- component: () => import('@/views/equipement/stateMaintenance/seal/edit.vue'),
- meta: {
- title: '设备封存申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/sealList',
- },
- },
- {
- path: 'sealDoc/:type/:id?',
- name: 'SealDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/seal/detail.vue'),
- meta: {
- title: '设备封存申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/sealList',
- },
- },
- {
- path: 'banList',
- name: 'BanList',
- component: () => import('@/views/equipement/stateMaintenance/ban/list.vue'),
- meta: {
- title: '设备禁用申请',
- auth: '/equipment/stateMaintenance/ban',
- icon: 'ep:key',
- },
- },
- {
- path: 'ban/:type/:id?',
- name: 'BanDetail',
- component: () => import('@/views/equipement/stateMaintenance/ban/edit.vue'),
- meta: {
- title: '设备禁用申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/banList',
- },
- },
- {
- path: 'banDoc/:type/:id?',
- name: 'BanDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/ban/detail.vue'),
- meta: {
- title: '设备禁用申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/banList',
- },
- },
- {
- path: 'scrapList',
- name: 'ScrapList',
- component: () => import('@/views/equipement/stateMaintenance/scrap/list.vue'),
- meta: {
- title: '设备报废申请',
- auth: '/equipment/stateMaintenance/scrap',
- icon: 'ep:key',
- },
- },
- {
- path: 'scrap/:type/:id?',
- name: 'ScrapDetail',
- component: () => import('@/views/equipement/stateMaintenance/scrap/edit.vue'),
- meta: {
- title: '设备报废申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/scrapList',
- },
- },
- {
- path: 'scrapDoc/:type/:id?',
- name: 'ScrapDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/scrap/detail.vue'),
- meta: {
- title: '设备报废申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/scrapList',
- },
- },
],
- },
- {
- path: '/standard',
- component: Layout,
- redirect: '/standard/bookInfoList',
- name: 'Standard',
- meta: {
- title: '标准装置管理',
- icon: 'ep:key',
- auth: '/standard',
- },
- children: [
- {
- path: 'bookInfoList',
- name: 'BookInfoList',
- component: () => import('@/views/equipement/standard/book/list.vue'),
- meta: {
- title: '标准装置台账信息列表',
- auth: '/standard/bookInfo',
- icon: 'ep:key',
- },
- },
- {
- path: ':type/:id?',
- name: 'StandardBookInfoList',
- component: () => import('@/views/equipement/standard/book/detail.vue'),
- meta: {
- title: '标准装置台账信息',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/bookInfoList',
- },
- },
- {
- path: '/standardEquipmentConfig/:type/:id?',
- name: 'StandardBookInfoConfig',
- component: () => import('@/views/equipement/standard/book/components/config.vue'),
- meta: {
- title: '配置核查项',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/bookInfoList',
- },
- },
- {
- path: 'standardRemindList',
- name: 'StandardRemindList',
- component: () => import('@/views/equipement/standard/remind/list.vue'),
- meta: {
- title: '到期提醒',
- auth: '/standard/remind',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkDataList',
- name: 'CheckDataList',
- component: () => import('@/views/equipement/standard/checkData/list.vue'),
- meta: {
- title: '核查数据管理',
- auth: '/standard/checkData',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkData/:type/:id?',
- name: 'CheckDataDetail',
- component: () => import('@/views/equipement/standard/checkData/detail.vue'),
- meta: {
- title: '核查数据管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkDataList',
- },
- },
- {
- path: 'checkRecordList',
- name: 'CheckRecordList',
- component: () => import('@/views/equipement/standard/checkRecord/list.vue'),
- meta: {
- title: '核查记录管理',
- auth: '/standard/checkRecord',
- icon: 'ep:key',
- },
- },
- {
- path: '/equipmentCheckRecord/:type/:id?',
- name: 'CheckRecordDetail',
- component: () => import('@/views/equipement/standard/checkRecord/detail.vue'),
- meta: {
- title: '核查记录管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkRecordList',
- },
- },
- {
- path: 'checkItemClassificationList',
- name: 'CheckItemClassificationList',
- component: () => import('@/views/equipement/standard/checkItemClassification/list.vue'),
- meta: {
- title: '核查项分类管理',
- auth: '/standard/checkItemClassification',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkItemClassification/:type/:id?',
- name: 'CheckItemClassificationDetail',
- component: () => import('@/views/equipement/standard/checkItemClassification/detail.vue'),
- meta: {
- title: '核查项分类管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkItemClassificationList',
- },
- },
- {
- path: 'standardBuildList',
- name: 'StandardBuildList',
- component: () => import('@/views/equipement/standard/build/list.vue'),
- meta: {
- title: '建标管理',
- auth: '/standard/build',
- icon: 'ep:key',
- },
- },
- {
- path: '/build/:type/:id?',
- name: 'StandardBuildEdit',
- component: () => import('@/views/equipement/standard/build/edit.vue'),
- meta: {
- title: '建标管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/standardBuildList',
- },
- },
- {
- path: '/buildDoc/:type/:id?',
- name: 'StandardBuildDetail',
- component: () => import('@/views/equipement/standard/build/detail.vue'),
- meta: {
- title: '建标管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/standardBuildList',
- },
- },
- ],
- },
- {
- path: '/standardStateMaintenance',
- component: Layout,
- redirect: '/standardStateMaintenance/changeList',
- name: 'StandardStateMaintenance',
- meta: {
- title: '标准装置状态维护',
- icon: 'ep:key',
- auth: '/standard/stateMaintenance',
- },
- children: [
- {
- path: 'changeList',
- name: 'ChangeList',
- component: () => import('@/views/equipement/StandardStateMaintenance/change/list.vue'),
- meta: {
- title: '更换申请',
- auth: '/standard/change',
- icon: 'ep:key',
- },
- },
- {
- path: 'change/:type/:id?',
- name: 'ChangeDetail',
- component: () => import('@/views/equipement/StandardStateMaintenance/change/detail.vue'),
- meta: {
- title: '更换申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/changeList',
- },
- },
- {
- path: 'reviewList',
- name: 'ReviewList',
- component: () => import('@/views/equipement/StandardStateMaintenance/review/list.vue'),
- meta: {
- title: '复查申请',
- auth: '/standard/review',
- icon: 'ep:key',
- },
- },
- {
- path: 'review/:type/:id?',
- name: 'ReviewDetail',
- component: () => import('@/views/equipement/standardStateMaintenance/review/detail.vue'),
- meta: {
- title: '复查申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/reviewList',
- },
- },
- {
- path: 'revocationList',
- name: 'RevocationList',
- component: () => import('@/views/equipement/StandardStateMaintenance/revocation/list.vue'),
- meta: {
- title: '撤销申请',
- auth: '/standard/revocation',
- icon: 'ep:key',
- },
- },
- {
- path: 'revocation/:type/:id?',
- name: 'RevocationDetail',
- component: () => import('@/views/equipement/StandardStateMaintenance/revocation/detail.vue'),
- meta: {
- title: '撤销申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/revocationList',
- },
- },
- ],
- },
- {
- path: '/source',
- component: Layout,
- redirect: '/source/planList',
- name: 'Source',
- meta: {
- title: '溯源管理',
- icon: 'ep:key',
- auth: '/equipment/source',
- },
- children: [
- {
- path: 'planList',
- name: 'EquipmentSourcePlanList',
- component: () => import('@/views/equipement/source/plan/list.vue'),
- meta: {
- title: '溯源计划管理',
- auth: '/equipment/source/plan',
- icon: 'ep:key',
- },
- },
- {
- path: 'plan/:type/:id?',
- name: 'EquipmentSourcePlanDetail',
- component: () => import('@/views/equipement/source/plan/detail.vue'),
- meta: {
- title: '溯源计划管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/planList',
- },
- },
- {
- path: 'resultConfirmList',
- name: 'EquipmentSourceResultConfirmList',
- component: () => import('@/views/equipement/source/resultConfirm/list.vue'),
- meta: {
- title: '溯源结果确认',
- auth: '/equipment/source/resultConfirm',
- icon: 'ep:key',
- },
- },
- {
- path: 'resultConfirm/:type/:id?',
- name: 'EquipmentSourceResultConfirmEdit',
- component: () => import('@/views/equipement/source/resultConfirm/edit.vue'),
- meta: {
- title: '溯源结果确认',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultConfirmList',
- },
- },
- {
- path: 'resultConfirmDoc/:type/:id?',
- name: 'EquipmentSourceResultConfirmDetail',
- component: () => import('@/views/equipement/source/resultConfirm/detail.vue'),
- meta: {
- title: '溯源结果确认',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultConfirmList',
- },
- },
- {
- path: 'resultCompleteList',
- name: 'EquipmentSourceResultCompleteList',
- component: () => import('@/views/equipement/source/resultComplete/list.vue'),
- meta: {
- title: '溯源结果完成情况',
- auth: '/equipment/source/resultComplete',
- icon: 'ep:key',
- },
- },
- {
- path: 'resultComplete/:type/:id?',
- name: 'EquipmentSourceResultCompleteEdit',
- component: () => import('@/views/equipement/source/resultComplete/edit.vue'),
- meta: {
- title: '溯源结果完成情况',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultCompleteList',
- },
- },
- {
- path: 'resultCompleteDoc/:type/:id?',
- name: 'EquipmentSourceResultCompleteDetail',
- component: () => import('@/views/equipement/source/resultComplete/detail.vue'),
- meta: {
- title: '溯源结果完成情况',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultCompleteList',
- },
- },
- {
- path: 'certList',
- name: 'EquipmentSourceCertList',
- component: () => import('@/views/equipement/source/cert/list.vue'),
- meta: {
- title: '溯源证书管理',
- auth: '/equipment/source/cert',
- icon: 'ep:key',
- },
- },
- {
- path: 'cert/:type/:id?',
- name: 'EquipmentSourceCertDetail',
- component: () => import('@/views/equipement/source/cert/detail.vue'),
- meta: {
- title: '溯源证书管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/certList',
- },
- },
- {
- path: 'changeList',
- name: 'EquipmentSourceChangeList',
- component: () => import('@/views/equipement/source/change/list.vue'),
- meta: {
- title: '溯源链变更管理',
- auth: '/equipment/source/change',
- icon: 'ep:key',
- },
- },
- {
- path: 'sourceChange/:type/:id?',
- name: 'EquipmentSourceChangeDetail',
- component: () => import('@/views/equipement/source/change/edit.vue'),
- meta: {
- title: '溯源链变更管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/changeList',
- },
- },
- ],
- },
- {
- path: '/resume',
- component: Layout,
- redirect: '/resume/planList',
- name: 'Resume',
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- auth: '/equipment/resume',
- },
- children: [
- {
- path: 'unpackList',
- name: 'EquipmentResumeUnpackList',
- component: () => import('@/views/equipement/resume/unpack/list.vue'),
- meta: {
- title: '开箱验收管理',
- auth: '/equipment/resume/unpack',
- icon: 'ep:key',
- },
- },
- {
- path: 'unpack/:type/:id?',
- name: 'EquipmentResumeUnpackEdit',
- component: () => import('@/views/equipement/resume/unpack/edit.vue'),
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/unpackList',
- },
- },
- {
- path: '/unpackDoc/:type/:id?',
- name: 'EquipmentResumeUnpackDetail',
- component: () => import('@/views/equipement/resume/unpack/detail.vue'),
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/unpackList',
- },
- },
- {
- path: 'lendList',
- name: 'EquipmentResumeLendList',
- component: () => import('@/views/equipement/resume/lend/list.vue'),
- meta: {
- title: '设备借出管理',
- auth: '/equipment/resume/lend',
- icon: 'ep:key',
- },
- },
- {
- path: 'lend/:type/:id?',
- name: 'EquipmentResumeLendEdit',
- component: () => import('@/views/equipement/resume/lend/edit.vue'),
- meta: {
- title: '设备借出管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/lendList',
- },
- },
- {
- path: 'lendDoc/:type/:id?',
- name: 'EquipmentResumeLendDetail',
- component: () => import('@/views/equipement/resume/lend/detail.vue'),
- meta: {
- title: '设备借出管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/lendList',
- },
- },
- {
- path: 'borrowList',
- name: 'EquipmentResumeBorrowList',
- component: () => import('@/views/equipement/resume/borrow/list.vue'),
- meta: {
- title: '设备借用管理',
- auth: '/equipment/resume/borrow',
- icon: 'ep:key',
- },
- },
- {
- path: 'borrow/:type/:id?',
- name: 'EquipmentResumeBorrowEdit',
- component: () => import('@/views/equipement/resume/borrow/edit.vue'),
- meta: {
- title: '设备借用管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/borrowList',
- },
- },
- {
- path: 'borrowDoc/:type/:id?',
- name: 'EquipmentResumeBorrowDetail',
- component: () => import('@/views/equipement/resume/borrow/detail.vue'),
- meta: {
- title: '设备借用管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/borrowList',
- },
- },
- {
- path: 'encasementList',
- name: 'EquipmentResumeEncasementList',
- component: () => import('@/views/equipement/resume/encasement/list.vue'),
- meta: {
- title: '设备运输装箱管理',
- auth: '/equipment/resume/encasement',
- icon: 'ep:key',
- },
- },
- {
- path: 'encasement/:type/:id?',
- name: 'EquipmentResumeEncasementDetail',
- component: () => import('@/views/equipement/resume/encasement/edit.vue'),
- meta: {
- title: '设备运输装箱管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/encasementList',
- },
- },
- {
- path: 'encasementDoc/:type/:id?',
- name: 'EquipmentResumeEncasementDetailDoc',
- component: () => import('@/views/equipement/resume/encasement/detail.vue'),
- meta: {
- title: '设备运输装箱管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/encasementList',
- },
- },
- {
- path: 'courseList',
- name: 'EquipmentResumeCourseList',
- component: () => import('@/views/equipement/resume/course/list.vue'),
- meta: {
- title: '设备运输过程管理',
- auth: '/equipment/resume/course',
- icon: 'ep:key',
- },
- },
- {
- path: 'course/:type/:id?',
- name: 'EquipmentResumeCourseDetail',
- component: () => import('@/views/equipement/resume/course/edit.vue'),
- meta: {
- title: '设备运输过程管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/courseList',
- },
- },
- {
- path: 'courseDoc/:type/:id?',
- name: 'EquipmentResumeCourseDetailDoc',
- component: () => import('@/views/equipement/resume/course/detail.vue'),
- meta: {
- title: '设备运输过程管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/courseList',
- },
- },
- {
- path: 'errorList',
- name: 'EquipmentResumeErrorList',
- component: () => import('@/views/equipement/resume/error/list.vue'),
- meta: {
- title: '异常情况处置管理',
- auth: '/equipment/resume/error',
- icon: 'ep:key',
- },
- },
- {
- path: 'error/:type/:id?',
- name: 'EquipmentResumeErrorEdit',
- component: () => import('@/views/equipement/resume/error/edit.vue'),
- meta: {
- title: '异常情况处置管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/errorList',
- },
- },
- {
- path: 'errorDoc/:type/:id?',
- name: 'EquipmentResumeErrorDetail',
- component: () => import('@/views/equipement/resume/error/detail.vue'),
- meta: {
- title: '异常情况处置管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/errorList',
- },
- },
- {
- path: 'weekList',
- name: 'EquipmentResumeWeekList',
- component: () => import('@/views/equipement/resume/week/list.vue'),
- meta: {
- title: '周维护',
- auth: '/equipment/resume/week',
- icon: 'ep:key',
- },
- },
- {
- path: 'week/:type/:id?',
- name: 'EquipmentResumeWeekDetail',
- component: () => import('@/views/equipement/resume/week/detail.vue'),
- meta: {
- title: '周维护',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/weekList',
- },
- },
- {
- path: 'monthList',
- name: 'EquipmentResumeMonthList',
- component: () => import('@/views/equipement/resume/month/list.vue'),
- meta: {
- title: '月保养',
- auth: '/equipment/resume/month',
- icon: 'ep:key',
- },
- },
- {
- path: 'month/:type/:id?',
- name: 'EquipmentResumeMonthDetail',
- component: () => import('@/views/equipement/resume/month/detail.vue'),
- meta: {
- title: '月保养',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/monthList',
- },
- },
- ],
- },
- {
- path: '/monitor',
- component: Layout,
- redirect: '/monitor/deviceList',
- name: 'Monitor',
- meta: {
- title: '监测测试管理',
- icon: 'ep:key',
- auth: '/equipment/monitor',
- },
- children: [
- {
- path: 'deviceList',
- name: 'EquipmentResumeDeviceList',
- component: () => import('@/views/equipement/monitor/device/list.vue'),
- meta: {
- title: '监测设备',
- auth: '/equipment/monitor/device',
- icon: 'ep:key',
- },
- },
- {
- path: 'device/:type/:id?',
- name: 'EquipmentResumeDeviceDetail',
- component: () => import('@/views/equipement/monitor/device/detail.vue'),
- meta: {
- title: '监测设备',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/deviceList',
- },
- },
- {
- path: 'radioList',
- name: 'EquipmentResumeRadioList',
- component: () => import('@/views/equipement/monitor/radio/list.vue'),
- meta: {
- title: '无线电库',
- auth: '/equipment/monitor/radio',
- icon: 'ep:key',
- },
- },
- {
- path: 'radio/:type/:id?',
- name: 'EquipmentResumeRadioDetail',
- component: () => import('@/views/equipement/monitor/radio/detail.vue'),
- meta: {
- title: '无线电库',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/radioList',
- },
- },
- {
- path: 'taskList',
- name: 'EquipmentResumeTaskList',
- component: () => import('@/views/equipement/monitor/task/list.vue'),
- meta: {
- title: '任务监测',
- auth: '/equipment/monitor/task',
- icon: 'ep:key',
- },
- },
- {
- path: 'task/:type/:id?',
- name: 'EquipmentResumeTaskDetail',
- component: () => import('@/views/equipement/monitor/task/detail.vue'),
- meta: {
- title: '任务监测',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/taskList',
- },
- },
- ],
- },
+ }, */
]
export default routes
diff --git a/src/views/basic/device/addDeviceDialog.vue b/src/views/basic/device/addDeviceDialog.vue
new file mode 100644
index 0000000..018f123
--- /dev/null
+++ b/src/views/basic/device/addDeviceDialog.vue
@@ -0,0 +1,220 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/basic/device/detail.vue b/src/views/basic/device/detail.vue
index e43ca3c..c24bb42 100644
--- a/src/views/basic/device/detail.vue
+++ b/src/views/basic/device/detail.vue
@@ -25,6 +25,7 @@
const deviceInfo = ref({
id: '',
+ groupId: '',
devcode: '',
deviceName: '',
deviceType: '',
@@ -41,6 +42,7 @@
encipherType: '',
encipherTypeName: '',
createTime: '',
+ createUserId: '',
createUserName: '',
dataValue: '',
})
diff --git a/.env.production b/.env.production
index ed8a601..b5508a5 100644
--- a/.env.production
+++ b/.env.production
@@ -1,9 +1,9 @@
NODE_ENV = production
# 页面标题
-VITE_APP_TITLE = 标题
+VITE_APP_TITLE = 物联网设备管理平台
# 接口请求地址,会设置到 axios 的 baseURL 参数上
-VITE_APP_API_BASEURL = http://XXXXXXX:XXXXXXX
+VITE_APP_API_BASEURL = http://111.198.10.15:12206
# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空
VITE_APP_DEBUG_TOOL =
diff --git a/src/api/basic/group.ts b/src/api/basic/group.ts
index a20dea4..8b6a2ff 100644
--- a/src/api/basic/group.ts
+++ b/src/api/basic/group.ts
@@ -9,6 +9,14 @@
data,
})
}
+// 查询分组列表 不分页
+export function getGroupList(data: object) {
+ return request({
+ url: `${prefix}/list`,
+ method: 'post',
+ data,
+ })
+}
// 查询分组详情
export function detailGroup(data: object) {
return request({
diff --git a/src/assets/icons/icon-group.svg b/src/assets/icons/icon-group.svg
new file mode 100644
index 0000000..9d3193d
--- /dev/null
+++ b/src/assets/icons/icon-group.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/icon-ota.svg b/src/assets/icons/icon-ota.svg
new file mode 100644
index 0000000..bce1df0
--- /dev/null
+++ b/src/assets/icons/icon-ota.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/router/modules/basic.ts b/src/router/modules/basic.ts
index 66fb204..2308656 100644
--- a/src/router/modules/basic.ts
+++ b/src/router/modules/basic.ts
@@ -4,9 +4,45 @@
const routes: Route.recordRaw[] = [
{
- path: '/basic',
+ path: '/basic/group',
component: Layout,
- redirect: '/group/list',
+ redirect: '/basic/group/list',
+ name: 'Group',
+ meta: {
+ title: '分组管理',
+ icon: 'ep:key',
+ auth: '/basic/group',
+ },
+ children: [
+ {
+ path: 'list',
+ name: 'GroupList',
+ component: () => import('@/views/basic/group/list.vue'),
+ meta: {
+ title: '分组管理',
+ auth: '/basic/group',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/group',
+ },
+ },
+ {
+ path: 'detail/:id?',
+ name: 'GroupInfoDetail',
+ component: () => import('@/views/basic/group/detail.vue'),
+ meta: {
+ title: '分组详情',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/group',
+ },
+ },
+ ],
+ },
+ {
+ path: '/basic/device',
+ component: Layout,
+ redirect: '/basic/device/list',
name: 'Device',
meta: {
title: '设备管理',
@@ -15,101 +51,35 @@
},
children: [
{
- path: 'group/list',
- name: 'GroupList',
- component: () => import('@/views/basic/group/list.vue'),
- meta: {
- title: '分组管理',
- auth: '/basic/group/list',
- icon: 'ep:key',
- },
- },
- {
- path: 'group/list/detail',
- name: 'GroupInfoDetail',
- component: () => import('@/views/basic/group/detail.vue'),
- meta: {
- title: '分组详情',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/basic/group/list',
- },
- },
- {
- path: 'device/list',
+ path: 'list',
name: 'DeviceList',
component: () => import('@/views/basic/device/list.vue'),
meta: {
title: '设备管理',
- auth: '/basic/device/list',
- icon: 'ep:key',
+ auth: '/basic/device',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/device',
},
},
{
- path: 'device/list/detail',
+ path: 'detail/:id?',
name: 'DeviceInfoDetail',
component: () => import('@/views/basic/device/detail.vue'),
meta: {
title: '设备详情',
sidebar: false,
breadcrumb: true,
- activeMenu: '/basic/device/list',
+ activeMenu: '/basic/device',
},
},
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoBookDetail',
- // component: () => import('@/views/equipement/info/book/detail.vue'),
- // meta: {
- // title: '设备台账管理',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/bookList',
- // },
- // },
-
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoTableDetail',
- // component: () => import('@/views/equipement/info/table/detail.vue'),
- // meta: {
- // title: '参照标准、工作标准和关键测量设备表',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/tableList',
- // },
- // },
- {
- path: 'remindList',
- name: 'EquipmentInfoRemindList',
- component: () => import('@/views/equipement/info/remind/list.vue'),
- meta: {
- title: '到期提醒列表',
- auth: '/equipment/info/remind',
- icon: 'ep:key',
- },
- },
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoRemindDetail',
- // component: () => import('@/views/equipement/info/remind/detail.vue'),
- // meta: {
- // title: '到期提醒',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/remindList',
- // },
- // },
],
},
{
- path: '/product',
+ path: '/basic/product',
component: Layout,
- redirect: '/basic/product',
- name: 'StateMaintenance',
+ redirect: '/basic/product/list',
+ name: 'Product',
meta: {
title: '产品管理',
icon: 'ep:key',
@@ -117,866 +87,53 @@
},
children: [
{
- path: '/product/list',
+ path: 'list',
name: 'ProductList',
- component: () => import('@/views/equipement/stateMaintenance/unseal/list.vue'),
+ component: () => import('@/views/basic/product/list.vue'),
meta: {
title: '产品管理',
- auth: '/product/list',
- icon: 'ep:key',
- },
- },
- {
- path: 'unseal/:type/:id?',
- name: 'UnsealDetail',
- component: () => import('@/views/equipement/stateMaintenance/unseal/edit.vue'),
- meta: {
- title: '设备启封申请',
- icon: 'ep:key',
+ auth: '/basic/product',
sidebar: false,
breadcrumb: true,
- activeMenu: '/stateMaintenance/unsealList',
+ activeMenu: '/basic/product',
},
},
+ ],
+ },
+ /*
+ {
+ path: '/product',
+ component: Layout,
+ redirect: 'product/list',
+ name: 'Product',
+ meta: {
+ title: '产品管理',
+ icon: 'ep:key',
+ auth: '/basic/product',
+ },
+ children: [
{
- path: 'unsealDoc/:type/:id?',
- name: 'UnsealDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/unseal/detail.vue'),
+ path: 'product/list',
+ name: 'ProductList',
+ component: () => import('@/views/basic/group/list.vue'),
meta: {
- title: '设备启封申请',
+ title: '产品管理',
+ auth: '/basic/product/list',
icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/unsealList',
},
},
{
- path: '/product/ota',
- name: 'ProductOTA',
- component: () => import('@/views/equipement/stateMaintenance/seal/list.vue'),
+ path: 'product/ota',
+ name: 'ProductOTAList',
+ component: () => import('@/views/basic/group/list.vue'),
meta: {
title: '远程升级',
- auth: '/product/ota',
+ auth: '/basic/product/ota',
icon: 'ep:key',
},
},
- {
- path: 'seal/:type/:id?',
- name: 'SealDetail',
- component: () => import('@/views/equipement/stateMaintenance/seal/edit.vue'),
- meta: {
- title: '设备封存申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/sealList',
- },
- },
- {
- path: 'sealDoc/:type/:id?',
- name: 'SealDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/seal/detail.vue'),
- meta: {
- title: '设备封存申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/sealList',
- },
- },
- {
- path: 'banList',
- name: 'BanList',
- component: () => import('@/views/equipement/stateMaintenance/ban/list.vue'),
- meta: {
- title: '设备禁用申请',
- auth: '/equipment/stateMaintenance/ban',
- icon: 'ep:key',
- },
- },
- {
- path: 'ban/:type/:id?',
- name: 'BanDetail',
- component: () => import('@/views/equipement/stateMaintenance/ban/edit.vue'),
- meta: {
- title: '设备禁用申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/banList',
- },
- },
- {
- path: 'banDoc/:type/:id?',
- name: 'BanDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/ban/detail.vue'),
- meta: {
- title: '设备禁用申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/banList',
- },
- },
- {
- path: 'scrapList',
- name: 'ScrapList',
- component: () => import('@/views/equipement/stateMaintenance/scrap/list.vue'),
- meta: {
- title: '设备报废申请',
- auth: '/equipment/stateMaintenance/scrap',
- icon: 'ep:key',
- },
- },
- {
- path: 'scrap/:type/:id?',
- name: 'ScrapDetail',
- component: () => import('@/views/equipement/stateMaintenance/scrap/edit.vue'),
- meta: {
- title: '设备报废申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/scrapList',
- },
- },
- {
- path: 'scrapDoc/:type/:id?',
- name: 'ScrapDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/scrap/detail.vue'),
- meta: {
- title: '设备报废申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/scrapList',
- },
- },
],
- },
- {
- path: '/standard',
- component: Layout,
- redirect: '/standard/bookInfoList',
- name: 'Standard',
- meta: {
- title: '标准装置管理',
- icon: 'ep:key',
- auth: '/standard',
- },
- children: [
- {
- path: 'bookInfoList',
- name: 'BookInfoList',
- component: () => import('@/views/equipement/standard/book/list.vue'),
- meta: {
- title: '标准装置台账信息列表',
- auth: '/standard/bookInfo',
- icon: 'ep:key',
- },
- },
- {
- path: ':type/:id?',
- name: 'StandardBookInfoList',
- component: () => import('@/views/equipement/standard/book/detail.vue'),
- meta: {
- title: '标准装置台账信息',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/bookInfoList',
- },
- },
- {
- path: '/standardEquipmentConfig/:type/:id?',
- name: 'StandardBookInfoConfig',
- component: () => import('@/views/equipement/standard/book/components/config.vue'),
- meta: {
- title: '配置核查项',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/bookInfoList',
- },
- },
- {
- path: 'standardRemindList',
- name: 'StandardRemindList',
- component: () => import('@/views/equipement/standard/remind/list.vue'),
- meta: {
- title: '到期提醒',
- auth: '/standard/remind',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkDataList',
- name: 'CheckDataList',
- component: () => import('@/views/equipement/standard/checkData/list.vue'),
- meta: {
- title: '核查数据管理',
- auth: '/standard/checkData',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkData/:type/:id?',
- name: 'CheckDataDetail',
- component: () => import('@/views/equipement/standard/checkData/detail.vue'),
- meta: {
- title: '核查数据管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkDataList',
- },
- },
- {
- path: 'checkRecordList',
- name: 'CheckRecordList',
- component: () => import('@/views/equipement/standard/checkRecord/list.vue'),
- meta: {
- title: '核查记录管理',
- auth: '/standard/checkRecord',
- icon: 'ep:key',
- },
- },
- {
- path: '/equipmentCheckRecord/:type/:id?',
- name: 'CheckRecordDetail',
- component: () => import('@/views/equipement/standard/checkRecord/detail.vue'),
- meta: {
- title: '核查记录管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkRecordList',
- },
- },
- {
- path: 'checkItemClassificationList',
- name: 'CheckItemClassificationList',
- component: () => import('@/views/equipement/standard/checkItemClassification/list.vue'),
- meta: {
- title: '核查项分类管理',
- auth: '/standard/checkItemClassification',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkItemClassification/:type/:id?',
- name: 'CheckItemClassificationDetail',
- component: () => import('@/views/equipement/standard/checkItemClassification/detail.vue'),
- meta: {
- title: '核查项分类管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkItemClassificationList',
- },
- },
- {
- path: 'standardBuildList',
- name: 'StandardBuildList',
- component: () => import('@/views/equipement/standard/build/list.vue'),
- meta: {
- title: '建标管理',
- auth: '/standard/build',
- icon: 'ep:key',
- },
- },
- {
- path: '/build/:type/:id?',
- name: 'StandardBuildEdit',
- component: () => import('@/views/equipement/standard/build/edit.vue'),
- meta: {
- title: '建标管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/standardBuildList',
- },
- },
- {
- path: '/buildDoc/:type/:id?',
- name: 'StandardBuildDetail',
- component: () => import('@/views/equipement/standard/build/detail.vue'),
- meta: {
- title: '建标管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/standardBuildList',
- },
- },
- ],
- },
- {
- path: '/standardStateMaintenance',
- component: Layout,
- redirect: '/standardStateMaintenance/changeList',
- name: 'StandardStateMaintenance',
- meta: {
- title: '标准装置状态维护',
- icon: 'ep:key',
- auth: '/standard/stateMaintenance',
- },
- children: [
- {
- path: 'changeList',
- name: 'ChangeList',
- component: () => import('@/views/equipement/StandardStateMaintenance/change/list.vue'),
- meta: {
- title: '更换申请',
- auth: '/standard/change',
- icon: 'ep:key',
- },
- },
- {
- path: 'change/:type/:id?',
- name: 'ChangeDetail',
- component: () => import('@/views/equipement/StandardStateMaintenance/change/detail.vue'),
- meta: {
- title: '更换申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/changeList',
- },
- },
- {
- path: 'reviewList',
- name: 'ReviewList',
- component: () => import('@/views/equipement/StandardStateMaintenance/review/list.vue'),
- meta: {
- title: '复查申请',
- auth: '/standard/review',
- icon: 'ep:key',
- },
- },
- {
- path: 'review/:type/:id?',
- name: 'ReviewDetail',
- component: () => import('@/views/equipement/standardStateMaintenance/review/detail.vue'),
- meta: {
- title: '复查申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/reviewList',
- },
- },
- {
- path: 'revocationList',
- name: 'RevocationList',
- component: () => import('@/views/equipement/StandardStateMaintenance/revocation/list.vue'),
- meta: {
- title: '撤销申请',
- auth: '/standard/revocation',
- icon: 'ep:key',
- },
- },
- {
- path: 'revocation/:type/:id?',
- name: 'RevocationDetail',
- component: () => import('@/views/equipement/StandardStateMaintenance/revocation/detail.vue'),
- meta: {
- title: '撤销申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/revocationList',
- },
- },
- ],
- },
- {
- path: '/source',
- component: Layout,
- redirect: '/source/planList',
- name: 'Source',
- meta: {
- title: '溯源管理',
- icon: 'ep:key',
- auth: '/equipment/source',
- },
- children: [
- {
- path: 'planList',
- name: 'EquipmentSourcePlanList',
- component: () => import('@/views/equipement/source/plan/list.vue'),
- meta: {
- title: '溯源计划管理',
- auth: '/equipment/source/plan',
- icon: 'ep:key',
- },
- },
- {
- path: 'plan/:type/:id?',
- name: 'EquipmentSourcePlanDetail',
- component: () => import('@/views/equipement/source/plan/detail.vue'),
- meta: {
- title: '溯源计划管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/planList',
- },
- },
- {
- path: 'resultConfirmList',
- name: 'EquipmentSourceResultConfirmList',
- component: () => import('@/views/equipement/source/resultConfirm/list.vue'),
- meta: {
- title: '溯源结果确认',
- auth: '/equipment/source/resultConfirm',
- icon: 'ep:key',
- },
- },
- {
- path: 'resultConfirm/:type/:id?',
- name: 'EquipmentSourceResultConfirmEdit',
- component: () => import('@/views/equipement/source/resultConfirm/edit.vue'),
- meta: {
- title: '溯源结果确认',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultConfirmList',
- },
- },
- {
- path: 'resultConfirmDoc/:type/:id?',
- name: 'EquipmentSourceResultConfirmDetail',
- component: () => import('@/views/equipement/source/resultConfirm/detail.vue'),
- meta: {
- title: '溯源结果确认',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultConfirmList',
- },
- },
- {
- path: 'resultCompleteList',
- name: 'EquipmentSourceResultCompleteList',
- component: () => import('@/views/equipement/source/resultComplete/list.vue'),
- meta: {
- title: '溯源结果完成情况',
- auth: '/equipment/source/resultComplete',
- icon: 'ep:key',
- },
- },
- {
- path: 'resultComplete/:type/:id?',
- name: 'EquipmentSourceResultCompleteEdit',
- component: () => import('@/views/equipement/source/resultComplete/edit.vue'),
- meta: {
- title: '溯源结果完成情况',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultCompleteList',
- },
- },
- {
- path: 'resultCompleteDoc/:type/:id?',
- name: 'EquipmentSourceResultCompleteDetail',
- component: () => import('@/views/equipement/source/resultComplete/detail.vue'),
- meta: {
- title: '溯源结果完成情况',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultCompleteList',
- },
- },
- {
- path: 'certList',
- name: 'EquipmentSourceCertList',
- component: () => import('@/views/equipement/source/cert/list.vue'),
- meta: {
- title: '溯源证书管理',
- auth: '/equipment/source/cert',
- icon: 'ep:key',
- },
- },
- {
- path: 'cert/:type/:id?',
- name: 'EquipmentSourceCertDetail',
- component: () => import('@/views/equipement/source/cert/detail.vue'),
- meta: {
- title: '溯源证书管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/certList',
- },
- },
- {
- path: 'changeList',
- name: 'EquipmentSourceChangeList',
- component: () => import('@/views/equipement/source/change/list.vue'),
- meta: {
- title: '溯源链变更管理',
- auth: '/equipment/source/change',
- icon: 'ep:key',
- },
- },
- {
- path: 'sourceChange/:type/:id?',
- name: 'EquipmentSourceChangeDetail',
- component: () => import('@/views/equipement/source/change/edit.vue'),
- meta: {
- title: '溯源链变更管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/changeList',
- },
- },
- ],
- },
- {
- path: '/resume',
- component: Layout,
- redirect: '/resume/planList',
- name: 'Resume',
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- auth: '/equipment/resume',
- },
- children: [
- {
- path: 'unpackList',
- name: 'EquipmentResumeUnpackList',
- component: () => import('@/views/equipement/resume/unpack/list.vue'),
- meta: {
- title: '开箱验收管理',
- auth: '/equipment/resume/unpack',
- icon: 'ep:key',
- },
- },
- {
- path: 'unpack/:type/:id?',
- name: 'EquipmentResumeUnpackEdit',
- component: () => import('@/views/equipement/resume/unpack/edit.vue'),
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/unpackList',
- },
- },
- {
- path: '/unpackDoc/:type/:id?',
- name: 'EquipmentResumeUnpackDetail',
- component: () => import('@/views/equipement/resume/unpack/detail.vue'),
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/unpackList',
- },
- },
- {
- path: 'lendList',
- name: 'EquipmentResumeLendList',
- component: () => import('@/views/equipement/resume/lend/list.vue'),
- meta: {
- title: '设备借出管理',
- auth: '/equipment/resume/lend',
- icon: 'ep:key',
- },
- },
- {
- path: 'lend/:type/:id?',
- name: 'EquipmentResumeLendEdit',
- component: () => import('@/views/equipement/resume/lend/edit.vue'),
- meta: {
- title: '设备借出管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/lendList',
- },
- },
- {
- path: 'lendDoc/:type/:id?',
- name: 'EquipmentResumeLendDetail',
- component: () => import('@/views/equipement/resume/lend/detail.vue'),
- meta: {
- title: '设备借出管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/lendList',
- },
- },
- {
- path: 'borrowList',
- name: 'EquipmentResumeBorrowList',
- component: () => import('@/views/equipement/resume/borrow/list.vue'),
- meta: {
- title: '设备借用管理',
- auth: '/equipment/resume/borrow',
- icon: 'ep:key',
- },
- },
- {
- path: 'borrow/:type/:id?',
- name: 'EquipmentResumeBorrowEdit',
- component: () => import('@/views/equipement/resume/borrow/edit.vue'),
- meta: {
- title: '设备借用管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/borrowList',
- },
- },
- {
- path: 'borrowDoc/:type/:id?',
- name: 'EquipmentResumeBorrowDetail',
- component: () => import('@/views/equipement/resume/borrow/detail.vue'),
- meta: {
- title: '设备借用管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/borrowList',
- },
- },
- {
- path: 'encasementList',
- name: 'EquipmentResumeEncasementList',
- component: () => import('@/views/equipement/resume/encasement/list.vue'),
- meta: {
- title: '设备运输装箱管理',
- auth: '/equipment/resume/encasement',
- icon: 'ep:key',
- },
- },
- {
- path: 'encasement/:type/:id?',
- name: 'EquipmentResumeEncasementDetail',
- component: () => import('@/views/equipement/resume/encasement/edit.vue'),
- meta: {
- title: '设备运输装箱管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/encasementList',
- },
- },
- {
- path: 'encasementDoc/:type/:id?',
- name: 'EquipmentResumeEncasementDetailDoc',
- component: () => import('@/views/equipement/resume/encasement/detail.vue'),
- meta: {
- title: '设备运输装箱管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/encasementList',
- },
- },
- {
- path: 'courseList',
- name: 'EquipmentResumeCourseList',
- component: () => import('@/views/equipement/resume/course/list.vue'),
- meta: {
- title: '设备运输过程管理',
- auth: '/equipment/resume/course',
- icon: 'ep:key',
- },
- },
- {
- path: 'course/:type/:id?',
- name: 'EquipmentResumeCourseDetail',
- component: () => import('@/views/equipement/resume/course/edit.vue'),
- meta: {
- title: '设备运输过程管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/courseList',
- },
- },
- {
- path: 'courseDoc/:type/:id?',
- name: 'EquipmentResumeCourseDetailDoc',
- component: () => import('@/views/equipement/resume/course/detail.vue'),
- meta: {
- title: '设备运输过程管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/courseList',
- },
- },
- {
- path: 'errorList',
- name: 'EquipmentResumeErrorList',
- component: () => import('@/views/equipement/resume/error/list.vue'),
- meta: {
- title: '异常情况处置管理',
- auth: '/equipment/resume/error',
- icon: 'ep:key',
- },
- },
- {
- path: 'error/:type/:id?',
- name: 'EquipmentResumeErrorEdit',
- component: () => import('@/views/equipement/resume/error/edit.vue'),
- meta: {
- title: '异常情况处置管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/errorList',
- },
- },
- {
- path: 'errorDoc/:type/:id?',
- name: 'EquipmentResumeErrorDetail',
- component: () => import('@/views/equipement/resume/error/detail.vue'),
- meta: {
- title: '异常情况处置管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/errorList',
- },
- },
- {
- path: 'weekList',
- name: 'EquipmentResumeWeekList',
- component: () => import('@/views/equipement/resume/week/list.vue'),
- meta: {
- title: '周维护',
- auth: '/equipment/resume/week',
- icon: 'ep:key',
- },
- },
- {
- path: 'week/:type/:id?',
- name: 'EquipmentResumeWeekDetail',
- component: () => import('@/views/equipement/resume/week/detail.vue'),
- meta: {
- title: '周维护',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/weekList',
- },
- },
- {
- path: 'monthList',
- name: 'EquipmentResumeMonthList',
- component: () => import('@/views/equipement/resume/month/list.vue'),
- meta: {
- title: '月保养',
- auth: '/equipment/resume/month',
- icon: 'ep:key',
- },
- },
- {
- path: 'month/:type/:id?',
- name: 'EquipmentResumeMonthDetail',
- component: () => import('@/views/equipement/resume/month/detail.vue'),
- meta: {
- title: '月保养',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/monthList',
- },
- },
- ],
- },
- {
- path: '/monitor',
- component: Layout,
- redirect: '/monitor/deviceList',
- name: 'Monitor',
- meta: {
- title: '监测测试管理',
- icon: 'ep:key',
- auth: '/equipment/monitor',
- },
- children: [
- {
- path: 'deviceList',
- name: 'EquipmentResumeDeviceList',
- component: () => import('@/views/equipement/monitor/device/list.vue'),
- meta: {
- title: '监测设备',
- auth: '/equipment/monitor/device',
- icon: 'ep:key',
- },
- },
- {
- path: 'device/:type/:id?',
- name: 'EquipmentResumeDeviceDetail',
- component: () => import('@/views/equipement/monitor/device/detail.vue'),
- meta: {
- title: '监测设备',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/deviceList',
- },
- },
- {
- path: 'radioList',
- name: 'EquipmentResumeRadioList',
- component: () => import('@/views/equipement/monitor/radio/list.vue'),
- meta: {
- title: '无线电库',
- auth: '/equipment/monitor/radio',
- icon: 'ep:key',
- },
- },
- {
- path: 'radio/:type/:id?',
- name: 'EquipmentResumeRadioDetail',
- component: () => import('@/views/equipement/monitor/radio/detail.vue'),
- meta: {
- title: '无线电库',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/radioList',
- },
- },
- {
- path: 'taskList',
- name: 'EquipmentResumeTaskList',
- component: () => import('@/views/equipement/monitor/task/list.vue'),
- meta: {
- title: '任务监测',
- auth: '/equipment/monitor/task',
- icon: 'ep:key',
- },
- },
- {
- path: 'task/:type/:id?',
- name: 'EquipmentResumeTaskDetail',
- component: () => import('@/views/equipement/monitor/task/detail.vue'),
- meta: {
- title: '任务监测',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/taskList',
- },
- },
- ],
- },
+ }, */
]
export default routes
diff --git a/src/views/basic/device/addDeviceDialog.vue b/src/views/basic/device/addDeviceDialog.vue
new file mode 100644
index 0000000..018f123
--- /dev/null
+++ b/src/views/basic/device/addDeviceDialog.vue
@@ -0,0 +1,220 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/basic/device/detail.vue b/src/views/basic/device/detail.vue
index e43ca3c..c24bb42 100644
--- a/src/views/basic/device/detail.vue
+++ b/src/views/basic/device/detail.vue
@@ -25,6 +25,7 @@
const deviceInfo = ref({
id: '',
+ groupId: '',
devcode: '',
deviceName: '',
deviceType: '',
@@ -41,6 +42,7 @@
encipherType: '',
encipherTypeName: '',
createTime: '',
+ createUserId: '',
createUserName: '',
dataValue: '',
})
diff --git a/src/views/basic/device/device-info.ts b/src/views/basic/device/device-info.ts
index 7a1c228..9db63f4 100644
--- a/src/views/basic/device/device-info.ts
+++ b/src/views/basic/device/device-info.ts
@@ -1,13 +1,13 @@
// 列表查询参数接口
export interface IListQuery {
groupId: string // 分组
- productId: string
+ productId?: string
devcode: string
imei: string
deviceType: string
- status: string
- beginCell: string // 电量
- endCell: string //
+ status?: string
+ beginCell?: string // 电量
+ endCell?: string //
offset?: number
limit?: number
sort?: string
@@ -16,22 +16,24 @@
export interface IDeviceInfo {
id: string
+ groupId: string
devcode: string
- deviceName: string
+ deviceName?: string
deviceType: string
- deviceTypeName: string
- status: string
- statusName: string
- cell: string
+ deviceTypeName?: string
+ status?: string
+ statusName?: string
+ cell?: string
imei: string
iccid: string
model: string
- modelName: string
+ modelName?: string
productId: string
- productName: string
+ productName?: string
encipherType: string
- encipherTypeName: string
+ encipherTypeName?: string
createTime: string
- createUserName: string
- dataValue: string
+ createUserId: string
+ createUserName?: string
+ dataValue?: string
}
diff --git a/.env.production b/.env.production
index ed8a601..b5508a5 100644
--- a/.env.production
+++ b/.env.production
@@ -1,9 +1,9 @@
NODE_ENV = production
# 页面标题
-VITE_APP_TITLE = 标题
+VITE_APP_TITLE = 物联网设备管理平台
# 接口请求地址,会设置到 axios 的 baseURL 参数上
-VITE_APP_API_BASEURL = http://XXXXXXX:XXXXXXX
+VITE_APP_API_BASEURL = http://111.198.10.15:12206
# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空
VITE_APP_DEBUG_TOOL =
diff --git a/src/api/basic/group.ts b/src/api/basic/group.ts
index a20dea4..8b6a2ff 100644
--- a/src/api/basic/group.ts
+++ b/src/api/basic/group.ts
@@ -9,6 +9,14 @@
data,
})
}
+// 查询分组列表 不分页
+export function getGroupList(data: object) {
+ return request({
+ url: `${prefix}/list`,
+ method: 'post',
+ data,
+ })
+}
// 查询分组详情
export function detailGroup(data: object) {
return request({
diff --git a/src/assets/icons/icon-group.svg b/src/assets/icons/icon-group.svg
new file mode 100644
index 0000000..9d3193d
--- /dev/null
+++ b/src/assets/icons/icon-group.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/icon-ota.svg b/src/assets/icons/icon-ota.svg
new file mode 100644
index 0000000..bce1df0
--- /dev/null
+++ b/src/assets/icons/icon-ota.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/router/modules/basic.ts b/src/router/modules/basic.ts
index 66fb204..2308656 100644
--- a/src/router/modules/basic.ts
+++ b/src/router/modules/basic.ts
@@ -4,9 +4,45 @@
const routes: Route.recordRaw[] = [
{
- path: '/basic',
+ path: '/basic/group',
component: Layout,
- redirect: '/group/list',
+ redirect: '/basic/group/list',
+ name: 'Group',
+ meta: {
+ title: '分组管理',
+ icon: 'ep:key',
+ auth: '/basic/group',
+ },
+ children: [
+ {
+ path: 'list',
+ name: 'GroupList',
+ component: () => import('@/views/basic/group/list.vue'),
+ meta: {
+ title: '分组管理',
+ auth: '/basic/group',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/group',
+ },
+ },
+ {
+ path: 'detail/:id?',
+ name: 'GroupInfoDetail',
+ component: () => import('@/views/basic/group/detail.vue'),
+ meta: {
+ title: '分组详情',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/group',
+ },
+ },
+ ],
+ },
+ {
+ path: '/basic/device',
+ component: Layout,
+ redirect: '/basic/device/list',
name: 'Device',
meta: {
title: '设备管理',
@@ -15,101 +51,35 @@
},
children: [
{
- path: 'group/list',
- name: 'GroupList',
- component: () => import('@/views/basic/group/list.vue'),
- meta: {
- title: '分组管理',
- auth: '/basic/group/list',
- icon: 'ep:key',
- },
- },
- {
- path: 'group/list/detail',
- name: 'GroupInfoDetail',
- component: () => import('@/views/basic/group/detail.vue'),
- meta: {
- title: '分组详情',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/basic/group/list',
- },
- },
- {
- path: 'device/list',
+ path: 'list',
name: 'DeviceList',
component: () => import('@/views/basic/device/list.vue'),
meta: {
title: '设备管理',
- auth: '/basic/device/list',
- icon: 'ep:key',
+ auth: '/basic/device',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/device',
},
},
{
- path: 'device/list/detail',
+ path: 'detail/:id?',
name: 'DeviceInfoDetail',
component: () => import('@/views/basic/device/detail.vue'),
meta: {
title: '设备详情',
sidebar: false,
breadcrumb: true,
- activeMenu: '/basic/device/list',
+ activeMenu: '/basic/device',
},
},
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoBookDetail',
- // component: () => import('@/views/equipement/info/book/detail.vue'),
- // meta: {
- // title: '设备台账管理',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/bookList',
- // },
- // },
-
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoTableDetail',
- // component: () => import('@/views/equipement/info/table/detail.vue'),
- // meta: {
- // title: '参照标准、工作标准和关键测量设备表',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/tableList',
- // },
- // },
- {
- path: 'remindList',
- name: 'EquipmentInfoRemindList',
- component: () => import('@/views/equipement/info/remind/list.vue'),
- meta: {
- title: '到期提醒列表',
- auth: '/equipment/info/remind',
- icon: 'ep:key',
- },
- },
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoRemindDetail',
- // component: () => import('@/views/equipement/info/remind/detail.vue'),
- // meta: {
- // title: '到期提醒',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/remindList',
- // },
- // },
],
},
{
- path: '/product',
+ path: '/basic/product',
component: Layout,
- redirect: '/basic/product',
- name: 'StateMaintenance',
+ redirect: '/basic/product/list',
+ name: 'Product',
meta: {
title: '产品管理',
icon: 'ep:key',
@@ -117,866 +87,53 @@
},
children: [
{
- path: '/product/list',
+ path: 'list',
name: 'ProductList',
- component: () => import('@/views/equipement/stateMaintenance/unseal/list.vue'),
+ component: () => import('@/views/basic/product/list.vue'),
meta: {
title: '产品管理',
- auth: '/product/list',
- icon: 'ep:key',
- },
- },
- {
- path: 'unseal/:type/:id?',
- name: 'UnsealDetail',
- component: () => import('@/views/equipement/stateMaintenance/unseal/edit.vue'),
- meta: {
- title: '设备启封申请',
- icon: 'ep:key',
+ auth: '/basic/product',
sidebar: false,
breadcrumb: true,
- activeMenu: '/stateMaintenance/unsealList',
+ activeMenu: '/basic/product',
},
},
+ ],
+ },
+ /*
+ {
+ path: '/product',
+ component: Layout,
+ redirect: 'product/list',
+ name: 'Product',
+ meta: {
+ title: '产品管理',
+ icon: 'ep:key',
+ auth: '/basic/product',
+ },
+ children: [
{
- path: 'unsealDoc/:type/:id?',
- name: 'UnsealDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/unseal/detail.vue'),
+ path: 'product/list',
+ name: 'ProductList',
+ component: () => import('@/views/basic/group/list.vue'),
meta: {
- title: '设备启封申请',
+ title: '产品管理',
+ auth: '/basic/product/list',
icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/unsealList',
},
},
{
- path: '/product/ota',
- name: 'ProductOTA',
- component: () => import('@/views/equipement/stateMaintenance/seal/list.vue'),
+ path: 'product/ota',
+ name: 'ProductOTAList',
+ component: () => import('@/views/basic/group/list.vue'),
meta: {
title: '远程升级',
- auth: '/product/ota',
+ auth: '/basic/product/ota',
icon: 'ep:key',
},
},
- {
- path: 'seal/:type/:id?',
- name: 'SealDetail',
- component: () => import('@/views/equipement/stateMaintenance/seal/edit.vue'),
- meta: {
- title: '设备封存申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/sealList',
- },
- },
- {
- path: 'sealDoc/:type/:id?',
- name: 'SealDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/seal/detail.vue'),
- meta: {
- title: '设备封存申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/sealList',
- },
- },
- {
- path: 'banList',
- name: 'BanList',
- component: () => import('@/views/equipement/stateMaintenance/ban/list.vue'),
- meta: {
- title: '设备禁用申请',
- auth: '/equipment/stateMaintenance/ban',
- icon: 'ep:key',
- },
- },
- {
- path: 'ban/:type/:id?',
- name: 'BanDetail',
- component: () => import('@/views/equipement/stateMaintenance/ban/edit.vue'),
- meta: {
- title: '设备禁用申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/banList',
- },
- },
- {
- path: 'banDoc/:type/:id?',
- name: 'BanDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/ban/detail.vue'),
- meta: {
- title: '设备禁用申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/banList',
- },
- },
- {
- path: 'scrapList',
- name: 'ScrapList',
- component: () => import('@/views/equipement/stateMaintenance/scrap/list.vue'),
- meta: {
- title: '设备报废申请',
- auth: '/equipment/stateMaintenance/scrap',
- icon: 'ep:key',
- },
- },
- {
- path: 'scrap/:type/:id?',
- name: 'ScrapDetail',
- component: () => import('@/views/equipement/stateMaintenance/scrap/edit.vue'),
- meta: {
- title: '设备报废申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/scrapList',
- },
- },
- {
- path: 'scrapDoc/:type/:id?',
- name: 'ScrapDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/scrap/detail.vue'),
- meta: {
- title: '设备报废申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/scrapList',
- },
- },
],
- },
- {
- path: '/standard',
- component: Layout,
- redirect: '/standard/bookInfoList',
- name: 'Standard',
- meta: {
- title: '标准装置管理',
- icon: 'ep:key',
- auth: '/standard',
- },
- children: [
- {
- path: 'bookInfoList',
- name: 'BookInfoList',
- component: () => import('@/views/equipement/standard/book/list.vue'),
- meta: {
- title: '标准装置台账信息列表',
- auth: '/standard/bookInfo',
- icon: 'ep:key',
- },
- },
- {
- path: ':type/:id?',
- name: 'StandardBookInfoList',
- component: () => import('@/views/equipement/standard/book/detail.vue'),
- meta: {
- title: '标准装置台账信息',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/bookInfoList',
- },
- },
- {
- path: '/standardEquipmentConfig/:type/:id?',
- name: 'StandardBookInfoConfig',
- component: () => import('@/views/equipement/standard/book/components/config.vue'),
- meta: {
- title: '配置核查项',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/bookInfoList',
- },
- },
- {
- path: 'standardRemindList',
- name: 'StandardRemindList',
- component: () => import('@/views/equipement/standard/remind/list.vue'),
- meta: {
- title: '到期提醒',
- auth: '/standard/remind',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkDataList',
- name: 'CheckDataList',
- component: () => import('@/views/equipement/standard/checkData/list.vue'),
- meta: {
- title: '核查数据管理',
- auth: '/standard/checkData',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkData/:type/:id?',
- name: 'CheckDataDetail',
- component: () => import('@/views/equipement/standard/checkData/detail.vue'),
- meta: {
- title: '核查数据管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkDataList',
- },
- },
- {
- path: 'checkRecordList',
- name: 'CheckRecordList',
- component: () => import('@/views/equipement/standard/checkRecord/list.vue'),
- meta: {
- title: '核查记录管理',
- auth: '/standard/checkRecord',
- icon: 'ep:key',
- },
- },
- {
- path: '/equipmentCheckRecord/:type/:id?',
- name: 'CheckRecordDetail',
- component: () => import('@/views/equipement/standard/checkRecord/detail.vue'),
- meta: {
- title: '核查记录管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkRecordList',
- },
- },
- {
- path: 'checkItemClassificationList',
- name: 'CheckItemClassificationList',
- component: () => import('@/views/equipement/standard/checkItemClassification/list.vue'),
- meta: {
- title: '核查项分类管理',
- auth: '/standard/checkItemClassification',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkItemClassification/:type/:id?',
- name: 'CheckItemClassificationDetail',
- component: () => import('@/views/equipement/standard/checkItemClassification/detail.vue'),
- meta: {
- title: '核查项分类管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkItemClassificationList',
- },
- },
- {
- path: 'standardBuildList',
- name: 'StandardBuildList',
- component: () => import('@/views/equipement/standard/build/list.vue'),
- meta: {
- title: '建标管理',
- auth: '/standard/build',
- icon: 'ep:key',
- },
- },
- {
- path: '/build/:type/:id?',
- name: 'StandardBuildEdit',
- component: () => import('@/views/equipement/standard/build/edit.vue'),
- meta: {
- title: '建标管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/standardBuildList',
- },
- },
- {
- path: '/buildDoc/:type/:id?',
- name: 'StandardBuildDetail',
- component: () => import('@/views/equipement/standard/build/detail.vue'),
- meta: {
- title: '建标管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/standardBuildList',
- },
- },
- ],
- },
- {
- path: '/standardStateMaintenance',
- component: Layout,
- redirect: '/standardStateMaintenance/changeList',
- name: 'StandardStateMaintenance',
- meta: {
- title: '标准装置状态维护',
- icon: 'ep:key',
- auth: '/standard/stateMaintenance',
- },
- children: [
- {
- path: 'changeList',
- name: 'ChangeList',
- component: () => import('@/views/equipement/StandardStateMaintenance/change/list.vue'),
- meta: {
- title: '更换申请',
- auth: '/standard/change',
- icon: 'ep:key',
- },
- },
- {
- path: 'change/:type/:id?',
- name: 'ChangeDetail',
- component: () => import('@/views/equipement/StandardStateMaintenance/change/detail.vue'),
- meta: {
- title: '更换申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/changeList',
- },
- },
- {
- path: 'reviewList',
- name: 'ReviewList',
- component: () => import('@/views/equipement/StandardStateMaintenance/review/list.vue'),
- meta: {
- title: '复查申请',
- auth: '/standard/review',
- icon: 'ep:key',
- },
- },
- {
- path: 'review/:type/:id?',
- name: 'ReviewDetail',
- component: () => import('@/views/equipement/standardStateMaintenance/review/detail.vue'),
- meta: {
- title: '复查申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/reviewList',
- },
- },
- {
- path: 'revocationList',
- name: 'RevocationList',
- component: () => import('@/views/equipement/StandardStateMaintenance/revocation/list.vue'),
- meta: {
- title: '撤销申请',
- auth: '/standard/revocation',
- icon: 'ep:key',
- },
- },
- {
- path: 'revocation/:type/:id?',
- name: 'RevocationDetail',
- component: () => import('@/views/equipement/StandardStateMaintenance/revocation/detail.vue'),
- meta: {
- title: '撤销申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/revocationList',
- },
- },
- ],
- },
- {
- path: '/source',
- component: Layout,
- redirect: '/source/planList',
- name: 'Source',
- meta: {
- title: '溯源管理',
- icon: 'ep:key',
- auth: '/equipment/source',
- },
- children: [
- {
- path: 'planList',
- name: 'EquipmentSourcePlanList',
- component: () => import('@/views/equipement/source/plan/list.vue'),
- meta: {
- title: '溯源计划管理',
- auth: '/equipment/source/plan',
- icon: 'ep:key',
- },
- },
- {
- path: 'plan/:type/:id?',
- name: 'EquipmentSourcePlanDetail',
- component: () => import('@/views/equipement/source/plan/detail.vue'),
- meta: {
- title: '溯源计划管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/planList',
- },
- },
- {
- path: 'resultConfirmList',
- name: 'EquipmentSourceResultConfirmList',
- component: () => import('@/views/equipement/source/resultConfirm/list.vue'),
- meta: {
- title: '溯源结果确认',
- auth: '/equipment/source/resultConfirm',
- icon: 'ep:key',
- },
- },
- {
- path: 'resultConfirm/:type/:id?',
- name: 'EquipmentSourceResultConfirmEdit',
- component: () => import('@/views/equipement/source/resultConfirm/edit.vue'),
- meta: {
- title: '溯源结果确认',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultConfirmList',
- },
- },
- {
- path: 'resultConfirmDoc/:type/:id?',
- name: 'EquipmentSourceResultConfirmDetail',
- component: () => import('@/views/equipement/source/resultConfirm/detail.vue'),
- meta: {
- title: '溯源结果确认',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultConfirmList',
- },
- },
- {
- path: 'resultCompleteList',
- name: 'EquipmentSourceResultCompleteList',
- component: () => import('@/views/equipement/source/resultComplete/list.vue'),
- meta: {
- title: '溯源结果完成情况',
- auth: '/equipment/source/resultComplete',
- icon: 'ep:key',
- },
- },
- {
- path: 'resultComplete/:type/:id?',
- name: 'EquipmentSourceResultCompleteEdit',
- component: () => import('@/views/equipement/source/resultComplete/edit.vue'),
- meta: {
- title: '溯源结果完成情况',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultCompleteList',
- },
- },
- {
- path: 'resultCompleteDoc/:type/:id?',
- name: 'EquipmentSourceResultCompleteDetail',
- component: () => import('@/views/equipement/source/resultComplete/detail.vue'),
- meta: {
- title: '溯源结果完成情况',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultCompleteList',
- },
- },
- {
- path: 'certList',
- name: 'EquipmentSourceCertList',
- component: () => import('@/views/equipement/source/cert/list.vue'),
- meta: {
- title: '溯源证书管理',
- auth: '/equipment/source/cert',
- icon: 'ep:key',
- },
- },
- {
- path: 'cert/:type/:id?',
- name: 'EquipmentSourceCertDetail',
- component: () => import('@/views/equipement/source/cert/detail.vue'),
- meta: {
- title: '溯源证书管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/certList',
- },
- },
- {
- path: 'changeList',
- name: 'EquipmentSourceChangeList',
- component: () => import('@/views/equipement/source/change/list.vue'),
- meta: {
- title: '溯源链变更管理',
- auth: '/equipment/source/change',
- icon: 'ep:key',
- },
- },
- {
- path: 'sourceChange/:type/:id?',
- name: 'EquipmentSourceChangeDetail',
- component: () => import('@/views/equipement/source/change/edit.vue'),
- meta: {
- title: '溯源链变更管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/changeList',
- },
- },
- ],
- },
- {
- path: '/resume',
- component: Layout,
- redirect: '/resume/planList',
- name: 'Resume',
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- auth: '/equipment/resume',
- },
- children: [
- {
- path: 'unpackList',
- name: 'EquipmentResumeUnpackList',
- component: () => import('@/views/equipement/resume/unpack/list.vue'),
- meta: {
- title: '开箱验收管理',
- auth: '/equipment/resume/unpack',
- icon: 'ep:key',
- },
- },
- {
- path: 'unpack/:type/:id?',
- name: 'EquipmentResumeUnpackEdit',
- component: () => import('@/views/equipement/resume/unpack/edit.vue'),
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/unpackList',
- },
- },
- {
- path: '/unpackDoc/:type/:id?',
- name: 'EquipmentResumeUnpackDetail',
- component: () => import('@/views/equipement/resume/unpack/detail.vue'),
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/unpackList',
- },
- },
- {
- path: 'lendList',
- name: 'EquipmentResumeLendList',
- component: () => import('@/views/equipement/resume/lend/list.vue'),
- meta: {
- title: '设备借出管理',
- auth: '/equipment/resume/lend',
- icon: 'ep:key',
- },
- },
- {
- path: 'lend/:type/:id?',
- name: 'EquipmentResumeLendEdit',
- component: () => import('@/views/equipement/resume/lend/edit.vue'),
- meta: {
- title: '设备借出管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/lendList',
- },
- },
- {
- path: 'lendDoc/:type/:id?',
- name: 'EquipmentResumeLendDetail',
- component: () => import('@/views/equipement/resume/lend/detail.vue'),
- meta: {
- title: '设备借出管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/lendList',
- },
- },
- {
- path: 'borrowList',
- name: 'EquipmentResumeBorrowList',
- component: () => import('@/views/equipement/resume/borrow/list.vue'),
- meta: {
- title: '设备借用管理',
- auth: '/equipment/resume/borrow',
- icon: 'ep:key',
- },
- },
- {
- path: 'borrow/:type/:id?',
- name: 'EquipmentResumeBorrowEdit',
- component: () => import('@/views/equipement/resume/borrow/edit.vue'),
- meta: {
- title: '设备借用管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/borrowList',
- },
- },
- {
- path: 'borrowDoc/:type/:id?',
- name: 'EquipmentResumeBorrowDetail',
- component: () => import('@/views/equipement/resume/borrow/detail.vue'),
- meta: {
- title: '设备借用管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/borrowList',
- },
- },
- {
- path: 'encasementList',
- name: 'EquipmentResumeEncasementList',
- component: () => import('@/views/equipement/resume/encasement/list.vue'),
- meta: {
- title: '设备运输装箱管理',
- auth: '/equipment/resume/encasement',
- icon: 'ep:key',
- },
- },
- {
- path: 'encasement/:type/:id?',
- name: 'EquipmentResumeEncasementDetail',
- component: () => import('@/views/equipement/resume/encasement/edit.vue'),
- meta: {
- title: '设备运输装箱管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/encasementList',
- },
- },
- {
- path: 'encasementDoc/:type/:id?',
- name: 'EquipmentResumeEncasementDetailDoc',
- component: () => import('@/views/equipement/resume/encasement/detail.vue'),
- meta: {
- title: '设备运输装箱管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/encasementList',
- },
- },
- {
- path: 'courseList',
- name: 'EquipmentResumeCourseList',
- component: () => import('@/views/equipement/resume/course/list.vue'),
- meta: {
- title: '设备运输过程管理',
- auth: '/equipment/resume/course',
- icon: 'ep:key',
- },
- },
- {
- path: 'course/:type/:id?',
- name: 'EquipmentResumeCourseDetail',
- component: () => import('@/views/equipement/resume/course/edit.vue'),
- meta: {
- title: '设备运输过程管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/courseList',
- },
- },
- {
- path: 'courseDoc/:type/:id?',
- name: 'EquipmentResumeCourseDetailDoc',
- component: () => import('@/views/equipement/resume/course/detail.vue'),
- meta: {
- title: '设备运输过程管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/courseList',
- },
- },
- {
- path: 'errorList',
- name: 'EquipmentResumeErrorList',
- component: () => import('@/views/equipement/resume/error/list.vue'),
- meta: {
- title: '异常情况处置管理',
- auth: '/equipment/resume/error',
- icon: 'ep:key',
- },
- },
- {
- path: 'error/:type/:id?',
- name: 'EquipmentResumeErrorEdit',
- component: () => import('@/views/equipement/resume/error/edit.vue'),
- meta: {
- title: '异常情况处置管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/errorList',
- },
- },
- {
- path: 'errorDoc/:type/:id?',
- name: 'EquipmentResumeErrorDetail',
- component: () => import('@/views/equipement/resume/error/detail.vue'),
- meta: {
- title: '异常情况处置管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/errorList',
- },
- },
- {
- path: 'weekList',
- name: 'EquipmentResumeWeekList',
- component: () => import('@/views/equipement/resume/week/list.vue'),
- meta: {
- title: '周维护',
- auth: '/equipment/resume/week',
- icon: 'ep:key',
- },
- },
- {
- path: 'week/:type/:id?',
- name: 'EquipmentResumeWeekDetail',
- component: () => import('@/views/equipement/resume/week/detail.vue'),
- meta: {
- title: '周维护',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/weekList',
- },
- },
- {
- path: 'monthList',
- name: 'EquipmentResumeMonthList',
- component: () => import('@/views/equipement/resume/month/list.vue'),
- meta: {
- title: '月保养',
- auth: '/equipment/resume/month',
- icon: 'ep:key',
- },
- },
- {
- path: 'month/:type/:id?',
- name: 'EquipmentResumeMonthDetail',
- component: () => import('@/views/equipement/resume/month/detail.vue'),
- meta: {
- title: '月保养',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/monthList',
- },
- },
- ],
- },
- {
- path: '/monitor',
- component: Layout,
- redirect: '/monitor/deviceList',
- name: 'Monitor',
- meta: {
- title: '监测测试管理',
- icon: 'ep:key',
- auth: '/equipment/monitor',
- },
- children: [
- {
- path: 'deviceList',
- name: 'EquipmentResumeDeviceList',
- component: () => import('@/views/equipement/monitor/device/list.vue'),
- meta: {
- title: '监测设备',
- auth: '/equipment/monitor/device',
- icon: 'ep:key',
- },
- },
- {
- path: 'device/:type/:id?',
- name: 'EquipmentResumeDeviceDetail',
- component: () => import('@/views/equipement/monitor/device/detail.vue'),
- meta: {
- title: '监测设备',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/deviceList',
- },
- },
- {
- path: 'radioList',
- name: 'EquipmentResumeRadioList',
- component: () => import('@/views/equipement/monitor/radio/list.vue'),
- meta: {
- title: '无线电库',
- auth: '/equipment/monitor/radio',
- icon: 'ep:key',
- },
- },
- {
- path: 'radio/:type/:id?',
- name: 'EquipmentResumeRadioDetail',
- component: () => import('@/views/equipement/monitor/radio/detail.vue'),
- meta: {
- title: '无线电库',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/radioList',
- },
- },
- {
- path: 'taskList',
- name: 'EquipmentResumeTaskList',
- component: () => import('@/views/equipement/monitor/task/list.vue'),
- meta: {
- title: '任务监测',
- auth: '/equipment/monitor/task',
- icon: 'ep:key',
- },
- },
- {
- path: 'task/:type/:id?',
- name: 'EquipmentResumeTaskDetail',
- component: () => import('@/views/equipement/monitor/task/detail.vue'),
- meta: {
- title: '任务监测',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/taskList',
- },
- },
- ],
- },
+ }, */
]
export default routes
diff --git a/src/views/basic/device/addDeviceDialog.vue b/src/views/basic/device/addDeviceDialog.vue
new file mode 100644
index 0000000..018f123
--- /dev/null
+++ b/src/views/basic/device/addDeviceDialog.vue
@@ -0,0 +1,220 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/basic/device/detail.vue b/src/views/basic/device/detail.vue
index e43ca3c..c24bb42 100644
--- a/src/views/basic/device/detail.vue
+++ b/src/views/basic/device/detail.vue
@@ -25,6 +25,7 @@
const deviceInfo = ref({
id: '',
+ groupId: '',
devcode: '',
deviceName: '',
deviceType: '',
@@ -41,6 +42,7 @@
encipherType: '',
encipherTypeName: '',
createTime: '',
+ createUserId: '',
createUserName: '',
dataValue: '',
})
diff --git a/src/views/basic/device/device-info.ts b/src/views/basic/device/device-info.ts
index 7a1c228..9db63f4 100644
--- a/src/views/basic/device/device-info.ts
+++ b/src/views/basic/device/device-info.ts
@@ -1,13 +1,13 @@
// 列表查询参数接口
export interface IListQuery {
groupId: string // 分组
- productId: string
+ productId?: string
devcode: string
imei: string
deviceType: string
- status: string
- beginCell: string // 电量
- endCell: string //
+ status?: string
+ beginCell?: string // 电量
+ endCell?: string //
offset?: number
limit?: number
sort?: string
@@ -16,22 +16,24 @@
export interface IDeviceInfo {
id: string
+ groupId: string
devcode: string
- deviceName: string
+ deviceName?: string
deviceType: string
- deviceTypeName: string
- status: string
- statusName: string
- cell: string
+ deviceTypeName?: string
+ status?: string
+ statusName?: string
+ cell?: string
imei: string
iccid: string
model: string
- modelName: string
+ modelName?: string
productId: string
- productName: string
+ productName?: string
encipherType: string
- encipherTypeName: string
+ encipherTypeName?: string
createTime: string
- createUserName: string
- dataValue: string
+ createUserId: string
+ createUserName?: string
+ dataValue?: string
}
diff --git a/src/views/basic/device/list.vue b/src/views/basic/device/list.vue
index ba00120..140ecaf 100644
--- a/src/views/basic/device/list.vue
+++ b/src/views/basic/device/list.vue
@@ -7,7 +7,7 @@
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { getDictByCode } from '@/api/system/dict'
import { exportFile } from '@/utils/exportUtils'
-import { getGroupListPage } from '@/api/basic/group'
+import { getGroupList } from '@/api/basic/group'
import { delDevice, exportDevice, getDeviceListPage } from '@/api/basic/device'
const router = useRouter()
@@ -91,7 +91,7 @@
type: 'detail',
id: row.id,
},
- path: 'list/detail',
+ path: 'detail',
})
}
@@ -198,7 +198,7 @@
})
}
const getAllGroupList = async () => {
- await getGroupListPage({ offset: 1, limit: 20 }).then((res: any) => {
+ await getGroupList({}).then((res: any) => {
if (res.code === 200) {
groupList.value = res.data.rows
}
diff --git a/.env.production b/.env.production
index ed8a601..b5508a5 100644
--- a/.env.production
+++ b/.env.production
@@ -1,9 +1,9 @@
NODE_ENV = production
# 页面标题
-VITE_APP_TITLE = 标题
+VITE_APP_TITLE = 物联网设备管理平台
# 接口请求地址,会设置到 axios 的 baseURL 参数上
-VITE_APP_API_BASEURL = http://XXXXXXX:XXXXXXX
+VITE_APP_API_BASEURL = http://111.198.10.15:12206
# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空
VITE_APP_DEBUG_TOOL =
diff --git a/src/api/basic/group.ts b/src/api/basic/group.ts
index a20dea4..8b6a2ff 100644
--- a/src/api/basic/group.ts
+++ b/src/api/basic/group.ts
@@ -9,6 +9,14 @@
data,
})
}
+// 查询分组列表 不分页
+export function getGroupList(data: object) {
+ return request({
+ url: `${prefix}/list`,
+ method: 'post',
+ data,
+ })
+}
// 查询分组详情
export function detailGroup(data: object) {
return request({
diff --git a/src/assets/icons/icon-group.svg b/src/assets/icons/icon-group.svg
new file mode 100644
index 0000000..9d3193d
--- /dev/null
+++ b/src/assets/icons/icon-group.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/icon-ota.svg b/src/assets/icons/icon-ota.svg
new file mode 100644
index 0000000..bce1df0
--- /dev/null
+++ b/src/assets/icons/icon-ota.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/router/modules/basic.ts b/src/router/modules/basic.ts
index 66fb204..2308656 100644
--- a/src/router/modules/basic.ts
+++ b/src/router/modules/basic.ts
@@ -4,9 +4,45 @@
const routes: Route.recordRaw[] = [
{
- path: '/basic',
+ path: '/basic/group',
component: Layout,
- redirect: '/group/list',
+ redirect: '/basic/group/list',
+ name: 'Group',
+ meta: {
+ title: '分组管理',
+ icon: 'ep:key',
+ auth: '/basic/group',
+ },
+ children: [
+ {
+ path: 'list',
+ name: 'GroupList',
+ component: () => import('@/views/basic/group/list.vue'),
+ meta: {
+ title: '分组管理',
+ auth: '/basic/group',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/group',
+ },
+ },
+ {
+ path: 'detail/:id?',
+ name: 'GroupInfoDetail',
+ component: () => import('@/views/basic/group/detail.vue'),
+ meta: {
+ title: '分组详情',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/group',
+ },
+ },
+ ],
+ },
+ {
+ path: '/basic/device',
+ component: Layout,
+ redirect: '/basic/device/list',
name: 'Device',
meta: {
title: '设备管理',
@@ -15,101 +51,35 @@
},
children: [
{
- path: 'group/list',
- name: 'GroupList',
- component: () => import('@/views/basic/group/list.vue'),
- meta: {
- title: '分组管理',
- auth: '/basic/group/list',
- icon: 'ep:key',
- },
- },
- {
- path: 'group/list/detail',
- name: 'GroupInfoDetail',
- component: () => import('@/views/basic/group/detail.vue'),
- meta: {
- title: '分组详情',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/basic/group/list',
- },
- },
- {
- path: 'device/list',
+ path: 'list',
name: 'DeviceList',
component: () => import('@/views/basic/device/list.vue'),
meta: {
title: '设备管理',
- auth: '/basic/device/list',
- icon: 'ep:key',
+ auth: '/basic/device',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/device',
},
},
{
- path: 'device/list/detail',
+ path: 'detail/:id?',
name: 'DeviceInfoDetail',
component: () => import('@/views/basic/device/detail.vue'),
meta: {
title: '设备详情',
sidebar: false,
breadcrumb: true,
- activeMenu: '/basic/device/list',
+ activeMenu: '/basic/device',
},
},
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoBookDetail',
- // component: () => import('@/views/equipement/info/book/detail.vue'),
- // meta: {
- // title: '设备台账管理',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/bookList',
- // },
- // },
-
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoTableDetail',
- // component: () => import('@/views/equipement/info/table/detail.vue'),
- // meta: {
- // title: '参照标准、工作标准和关键测量设备表',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/tableList',
- // },
- // },
- {
- path: 'remindList',
- name: 'EquipmentInfoRemindList',
- component: () => import('@/views/equipement/info/remind/list.vue'),
- meta: {
- title: '到期提醒列表',
- auth: '/equipment/info/remind',
- icon: 'ep:key',
- },
- },
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoRemindDetail',
- // component: () => import('@/views/equipement/info/remind/detail.vue'),
- // meta: {
- // title: '到期提醒',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/remindList',
- // },
- // },
],
},
{
- path: '/product',
+ path: '/basic/product',
component: Layout,
- redirect: '/basic/product',
- name: 'StateMaintenance',
+ redirect: '/basic/product/list',
+ name: 'Product',
meta: {
title: '产品管理',
icon: 'ep:key',
@@ -117,866 +87,53 @@
},
children: [
{
- path: '/product/list',
+ path: 'list',
name: 'ProductList',
- component: () => import('@/views/equipement/stateMaintenance/unseal/list.vue'),
+ component: () => import('@/views/basic/product/list.vue'),
meta: {
title: '产品管理',
- auth: '/product/list',
- icon: 'ep:key',
- },
- },
- {
- path: 'unseal/:type/:id?',
- name: 'UnsealDetail',
- component: () => import('@/views/equipement/stateMaintenance/unseal/edit.vue'),
- meta: {
- title: '设备启封申请',
- icon: 'ep:key',
+ auth: '/basic/product',
sidebar: false,
breadcrumb: true,
- activeMenu: '/stateMaintenance/unsealList',
+ activeMenu: '/basic/product',
},
},
+ ],
+ },
+ /*
+ {
+ path: '/product',
+ component: Layout,
+ redirect: 'product/list',
+ name: 'Product',
+ meta: {
+ title: '产品管理',
+ icon: 'ep:key',
+ auth: '/basic/product',
+ },
+ children: [
{
- path: 'unsealDoc/:type/:id?',
- name: 'UnsealDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/unseal/detail.vue'),
+ path: 'product/list',
+ name: 'ProductList',
+ component: () => import('@/views/basic/group/list.vue'),
meta: {
- title: '设备启封申请',
+ title: '产品管理',
+ auth: '/basic/product/list',
icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/unsealList',
},
},
{
- path: '/product/ota',
- name: 'ProductOTA',
- component: () => import('@/views/equipement/stateMaintenance/seal/list.vue'),
+ path: 'product/ota',
+ name: 'ProductOTAList',
+ component: () => import('@/views/basic/group/list.vue'),
meta: {
title: '远程升级',
- auth: '/product/ota',
+ auth: '/basic/product/ota',
icon: 'ep:key',
},
},
- {
- path: 'seal/:type/:id?',
- name: 'SealDetail',
- component: () => import('@/views/equipement/stateMaintenance/seal/edit.vue'),
- meta: {
- title: '设备封存申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/sealList',
- },
- },
- {
- path: 'sealDoc/:type/:id?',
- name: 'SealDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/seal/detail.vue'),
- meta: {
- title: '设备封存申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/sealList',
- },
- },
- {
- path: 'banList',
- name: 'BanList',
- component: () => import('@/views/equipement/stateMaintenance/ban/list.vue'),
- meta: {
- title: '设备禁用申请',
- auth: '/equipment/stateMaintenance/ban',
- icon: 'ep:key',
- },
- },
- {
- path: 'ban/:type/:id?',
- name: 'BanDetail',
- component: () => import('@/views/equipement/stateMaintenance/ban/edit.vue'),
- meta: {
- title: '设备禁用申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/banList',
- },
- },
- {
- path: 'banDoc/:type/:id?',
- name: 'BanDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/ban/detail.vue'),
- meta: {
- title: '设备禁用申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/banList',
- },
- },
- {
- path: 'scrapList',
- name: 'ScrapList',
- component: () => import('@/views/equipement/stateMaintenance/scrap/list.vue'),
- meta: {
- title: '设备报废申请',
- auth: '/equipment/stateMaintenance/scrap',
- icon: 'ep:key',
- },
- },
- {
- path: 'scrap/:type/:id?',
- name: 'ScrapDetail',
- component: () => import('@/views/equipement/stateMaintenance/scrap/edit.vue'),
- meta: {
- title: '设备报废申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/scrapList',
- },
- },
- {
- path: 'scrapDoc/:type/:id?',
- name: 'ScrapDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/scrap/detail.vue'),
- meta: {
- title: '设备报废申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/scrapList',
- },
- },
],
- },
- {
- path: '/standard',
- component: Layout,
- redirect: '/standard/bookInfoList',
- name: 'Standard',
- meta: {
- title: '标准装置管理',
- icon: 'ep:key',
- auth: '/standard',
- },
- children: [
- {
- path: 'bookInfoList',
- name: 'BookInfoList',
- component: () => import('@/views/equipement/standard/book/list.vue'),
- meta: {
- title: '标准装置台账信息列表',
- auth: '/standard/bookInfo',
- icon: 'ep:key',
- },
- },
- {
- path: ':type/:id?',
- name: 'StandardBookInfoList',
- component: () => import('@/views/equipement/standard/book/detail.vue'),
- meta: {
- title: '标准装置台账信息',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/bookInfoList',
- },
- },
- {
- path: '/standardEquipmentConfig/:type/:id?',
- name: 'StandardBookInfoConfig',
- component: () => import('@/views/equipement/standard/book/components/config.vue'),
- meta: {
- title: '配置核查项',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/bookInfoList',
- },
- },
- {
- path: 'standardRemindList',
- name: 'StandardRemindList',
- component: () => import('@/views/equipement/standard/remind/list.vue'),
- meta: {
- title: '到期提醒',
- auth: '/standard/remind',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkDataList',
- name: 'CheckDataList',
- component: () => import('@/views/equipement/standard/checkData/list.vue'),
- meta: {
- title: '核查数据管理',
- auth: '/standard/checkData',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkData/:type/:id?',
- name: 'CheckDataDetail',
- component: () => import('@/views/equipement/standard/checkData/detail.vue'),
- meta: {
- title: '核查数据管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkDataList',
- },
- },
- {
- path: 'checkRecordList',
- name: 'CheckRecordList',
- component: () => import('@/views/equipement/standard/checkRecord/list.vue'),
- meta: {
- title: '核查记录管理',
- auth: '/standard/checkRecord',
- icon: 'ep:key',
- },
- },
- {
- path: '/equipmentCheckRecord/:type/:id?',
- name: 'CheckRecordDetail',
- component: () => import('@/views/equipement/standard/checkRecord/detail.vue'),
- meta: {
- title: '核查记录管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkRecordList',
- },
- },
- {
- path: 'checkItemClassificationList',
- name: 'CheckItemClassificationList',
- component: () => import('@/views/equipement/standard/checkItemClassification/list.vue'),
- meta: {
- title: '核查项分类管理',
- auth: '/standard/checkItemClassification',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkItemClassification/:type/:id?',
- name: 'CheckItemClassificationDetail',
- component: () => import('@/views/equipement/standard/checkItemClassification/detail.vue'),
- meta: {
- title: '核查项分类管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkItemClassificationList',
- },
- },
- {
- path: 'standardBuildList',
- name: 'StandardBuildList',
- component: () => import('@/views/equipement/standard/build/list.vue'),
- meta: {
- title: '建标管理',
- auth: '/standard/build',
- icon: 'ep:key',
- },
- },
- {
- path: '/build/:type/:id?',
- name: 'StandardBuildEdit',
- component: () => import('@/views/equipement/standard/build/edit.vue'),
- meta: {
- title: '建标管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/standardBuildList',
- },
- },
- {
- path: '/buildDoc/:type/:id?',
- name: 'StandardBuildDetail',
- component: () => import('@/views/equipement/standard/build/detail.vue'),
- meta: {
- title: '建标管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/standardBuildList',
- },
- },
- ],
- },
- {
- path: '/standardStateMaintenance',
- component: Layout,
- redirect: '/standardStateMaintenance/changeList',
- name: 'StandardStateMaintenance',
- meta: {
- title: '标准装置状态维护',
- icon: 'ep:key',
- auth: '/standard/stateMaintenance',
- },
- children: [
- {
- path: 'changeList',
- name: 'ChangeList',
- component: () => import('@/views/equipement/StandardStateMaintenance/change/list.vue'),
- meta: {
- title: '更换申请',
- auth: '/standard/change',
- icon: 'ep:key',
- },
- },
- {
- path: 'change/:type/:id?',
- name: 'ChangeDetail',
- component: () => import('@/views/equipement/StandardStateMaintenance/change/detail.vue'),
- meta: {
- title: '更换申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/changeList',
- },
- },
- {
- path: 'reviewList',
- name: 'ReviewList',
- component: () => import('@/views/equipement/StandardStateMaintenance/review/list.vue'),
- meta: {
- title: '复查申请',
- auth: '/standard/review',
- icon: 'ep:key',
- },
- },
- {
- path: 'review/:type/:id?',
- name: 'ReviewDetail',
- component: () => import('@/views/equipement/standardStateMaintenance/review/detail.vue'),
- meta: {
- title: '复查申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/reviewList',
- },
- },
- {
- path: 'revocationList',
- name: 'RevocationList',
- component: () => import('@/views/equipement/StandardStateMaintenance/revocation/list.vue'),
- meta: {
- title: '撤销申请',
- auth: '/standard/revocation',
- icon: 'ep:key',
- },
- },
- {
- path: 'revocation/:type/:id?',
- name: 'RevocationDetail',
- component: () => import('@/views/equipement/StandardStateMaintenance/revocation/detail.vue'),
- meta: {
- title: '撤销申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/revocationList',
- },
- },
- ],
- },
- {
- path: '/source',
- component: Layout,
- redirect: '/source/planList',
- name: 'Source',
- meta: {
- title: '溯源管理',
- icon: 'ep:key',
- auth: '/equipment/source',
- },
- children: [
- {
- path: 'planList',
- name: 'EquipmentSourcePlanList',
- component: () => import('@/views/equipement/source/plan/list.vue'),
- meta: {
- title: '溯源计划管理',
- auth: '/equipment/source/plan',
- icon: 'ep:key',
- },
- },
- {
- path: 'plan/:type/:id?',
- name: 'EquipmentSourcePlanDetail',
- component: () => import('@/views/equipement/source/plan/detail.vue'),
- meta: {
- title: '溯源计划管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/planList',
- },
- },
- {
- path: 'resultConfirmList',
- name: 'EquipmentSourceResultConfirmList',
- component: () => import('@/views/equipement/source/resultConfirm/list.vue'),
- meta: {
- title: '溯源结果确认',
- auth: '/equipment/source/resultConfirm',
- icon: 'ep:key',
- },
- },
- {
- path: 'resultConfirm/:type/:id?',
- name: 'EquipmentSourceResultConfirmEdit',
- component: () => import('@/views/equipement/source/resultConfirm/edit.vue'),
- meta: {
- title: '溯源结果确认',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultConfirmList',
- },
- },
- {
- path: 'resultConfirmDoc/:type/:id?',
- name: 'EquipmentSourceResultConfirmDetail',
- component: () => import('@/views/equipement/source/resultConfirm/detail.vue'),
- meta: {
- title: '溯源结果确认',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultConfirmList',
- },
- },
- {
- path: 'resultCompleteList',
- name: 'EquipmentSourceResultCompleteList',
- component: () => import('@/views/equipement/source/resultComplete/list.vue'),
- meta: {
- title: '溯源结果完成情况',
- auth: '/equipment/source/resultComplete',
- icon: 'ep:key',
- },
- },
- {
- path: 'resultComplete/:type/:id?',
- name: 'EquipmentSourceResultCompleteEdit',
- component: () => import('@/views/equipement/source/resultComplete/edit.vue'),
- meta: {
- title: '溯源结果完成情况',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultCompleteList',
- },
- },
- {
- path: 'resultCompleteDoc/:type/:id?',
- name: 'EquipmentSourceResultCompleteDetail',
- component: () => import('@/views/equipement/source/resultComplete/detail.vue'),
- meta: {
- title: '溯源结果完成情况',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultCompleteList',
- },
- },
- {
- path: 'certList',
- name: 'EquipmentSourceCertList',
- component: () => import('@/views/equipement/source/cert/list.vue'),
- meta: {
- title: '溯源证书管理',
- auth: '/equipment/source/cert',
- icon: 'ep:key',
- },
- },
- {
- path: 'cert/:type/:id?',
- name: 'EquipmentSourceCertDetail',
- component: () => import('@/views/equipement/source/cert/detail.vue'),
- meta: {
- title: '溯源证书管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/certList',
- },
- },
- {
- path: 'changeList',
- name: 'EquipmentSourceChangeList',
- component: () => import('@/views/equipement/source/change/list.vue'),
- meta: {
- title: '溯源链变更管理',
- auth: '/equipment/source/change',
- icon: 'ep:key',
- },
- },
- {
- path: 'sourceChange/:type/:id?',
- name: 'EquipmentSourceChangeDetail',
- component: () => import('@/views/equipement/source/change/edit.vue'),
- meta: {
- title: '溯源链变更管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/changeList',
- },
- },
- ],
- },
- {
- path: '/resume',
- component: Layout,
- redirect: '/resume/planList',
- name: 'Resume',
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- auth: '/equipment/resume',
- },
- children: [
- {
- path: 'unpackList',
- name: 'EquipmentResumeUnpackList',
- component: () => import('@/views/equipement/resume/unpack/list.vue'),
- meta: {
- title: '开箱验收管理',
- auth: '/equipment/resume/unpack',
- icon: 'ep:key',
- },
- },
- {
- path: 'unpack/:type/:id?',
- name: 'EquipmentResumeUnpackEdit',
- component: () => import('@/views/equipement/resume/unpack/edit.vue'),
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/unpackList',
- },
- },
- {
- path: '/unpackDoc/:type/:id?',
- name: 'EquipmentResumeUnpackDetail',
- component: () => import('@/views/equipement/resume/unpack/detail.vue'),
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/unpackList',
- },
- },
- {
- path: 'lendList',
- name: 'EquipmentResumeLendList',
- component: () => import('@/views/equipement/resume/lend/list.vue'),
- meta: {
- title: '设备借出管理',
- auth: '/equipment/resume/lend',
- icon: 'ep:key',
- },
- },
- {
- path: 'lend/:type/:id?',
- name: 'EquipmentResumeLendEdit',
- component: () => import('@/views/equipement/resume/lend/edit.vue'),
- meta: {
- title: '设备借出管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/lendList',
- },
- },
- {
- path: 'lendDoc/:type/:id?',
- name: 'EquipmentResumeLendDetail',
- component: () => import('@/views/equipement/resume/lend/detail.vue'),
- meta: {
- title: '设备借出管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/lendList',
- },
- },
- {
- path: 'borrowList',
- name: 'EquipmentResumeBorrowList',
- component: () => import('@/views/equipement/resume/borrow/list.vue'),
- meta: {
- title: '设备借用管理',
- auth: '/equipment/resume/borrow',
- icon: 'ep:key',
- },
- },
- {
- path: 'borrow/:type/:id?',
- name: 'EquipmentResumeBorrowEdit',
- component: () => import('@/views/equipement/resume/borrow/edit.vue'),
- meta: {
- title: '设备借用管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/borrowList',
- },
- },
- {
- path: 'borrowDoc/:type/:id?',
- name: 'EquipmentResumeBorrowDetail',
- component: () => import('@/views/equipement/resume/borrow/detail.vue'),
- meta: {
- title: '设备借用管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/borrowList',
- },
- },
- {
- path: 'encasementList',
- name: 'EquipmentResumeEncasementList',
- component: () => import('@/views/equipement/resume/encasement/list.vue'),
- meta: {
- title: '设备运输装箱管理',
- auth: '/equipment/resume/encasement',
- icon: 'ep:key',
- },
- },
- {
- path: 'encasement/:type/:id?',
- name: 'EquipmentResumeEncasementDetail',
- component: () => import('@/views/equipement/resume/encasement/edit.vue'),
- meta: {
- title: '设备运输装箱管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/encasementList',
- },
- },
- {
- path: 'encasementDoc/:type/:id?',
- name: 'EquipmentResumeEncasementDetailDoc',
- component: () => import('@/views/equipement/resume/encasement/detail.vue'),
- meta: {
- title: '设备运输装箱管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/encasementList',
- },
- },
- {
- path: 'courseList',
- name: 'EquipmentResumeCourseList',
- component: () => import('@/views/equipement/resume/course/list.vue'),
- meta: {
- title: '设备运输过程管理',
- auth: '/equipment/resume/course',
- icon: 'ep:key',
- },
- },
- {
- path: 'course/:type/:id?',
- name: 'EquipmentResumeCourseDetail',
- component: () => import('@/views/equipement/resume/course/edit.vue'),
- meta: {
- title: '设备运输过程管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/courseList',
- },
- },
- {
- path: 'courseDoc/:type/:id?',
- name: 'EquipmentResumeCourseDetailDoc',
- component: () => import('@/views/equipement/resume/course/detail.vue'),
- meta: {
- title: '设备运输过程管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/courseList',
- },
- },
- {
- path: 'errorList',
- name: 'EquipmentResumeErrorList',
- component: () => import('@/views/equipement/resume/error/list.vue'),
- meta: {
- title: '异常情况处置管理',
- auth: '/equipment/resume/error',
- icon: 'ep:key',
- },
- },
- {
- path: 'error/:type/:id?',
- name: 'EquipmentResumeErrorEdit',
- component: () => import('@/views/equipement/resume/error/edit.vue'),
- meta: {
- title: '异常情况处置管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/errorList',
- },
- },
- {
- path: 'errorDoc/:type/:id?',
- name: 'EquipmentResumeErrorDetail',
- component: () => import('@/views/equipement/resume/error/detail.vue'),
- meta: {
- title: '异常情况处置管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/errorList',
- },
- },
- {
- path: 'weekList',
- name: 'EquipmentResumeWeekList',
- component: () => import('@/views/equipement/resume/week/list.vue'),
- meta: {
- title: '周维护',
- auth: '/equipment/resume/week',
- icon: 'ep:key',
- },
- },
- {
- path: 'week/:type/:id?',
- name: 'EquipmentResumeWeekDetail',
- component: () => import('@/views/equipement/resume/week/detail.vue'),
- meta: {
- title: '周维护',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/weekList',
- },
- },
- {
- path: 'monthList',
- name: 'EquipmentResumeMonthList',
- component: () => import('@/views/equipement/resume/month/list.vue'),
- meta: {
- title: '月保养',
- auth: '/equipment/resume/month',
- icon: 'ep:key',
- },
- },
- {
- path: 'month/:type/:id?',
- name: 'EquipmentResumeMonthDetail',
- component: () => import('@/views/equipement/resume/month/detail.vue'),
- meta: {
- title: '月保养',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/monthList',
- },
- },
- ],
- },
- {
- path: '/monitor',
- component: Layout,
- redirect: '/monitor/deviceList',
- name: 'Monitor',
- meta: {
- title: '监测测试管理',
- icon: 'ep:key',
- auth: '/equipment/monitor',
- },
- children: [
- {
- path: 'deviceList',
- name: 'EquipmentResumeDeviceList',
- component: () => import('@/views/equipement/monitor/device/list.vue'),
- meta: {
- title: '监测设备',
- auth: '/equipment/monitor/device',
- icon: 'ep:key',
- },
- },
- {
- path: 'device/:type/:id?',
- name: 'EquipmentResumeDeviceDetail',
- component: () => import('@/views/equipement/monitor/device/detail.vue'),
- meta: {
- title: '监测设备',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/deviceList',
- },
- },
- {
- path: 'radioList',
- name: 'EquipmentResumeRadioList',
- component: () => import('@/views/equipement/monitor/radio/list.vue'),
- meta: {
- title: '无线电库',
- auth: '/equipment/monitor/radio',
- icon: 'ep:key',
- },
- },
- {
- path: 'radio/:type/:id?',
- name: 'EquipmentResumeRadioDetail',
- component: () => import('@/views/equipement/monitor/radio/detail.vue'),
- meta: {
- title: '无线电库',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/radioList',
- },
- },
- {
- path: 'taskList',
- name: 'EquipmentResumeTaskList',
- component: () => import('@/views/equipement/monitor/task/list.vue'),
- meta: {
- title: '任务监测',
- auth: '/equipment/monitor/task',
- icon: 'ep:key',
- },
- },
- {
- path: 'task/:type/:id?',
- name: 'EquipmentResumeTaskDetail',
- component: () => import('@/views/equipement/monitor/task/detail.vue'),
- meta: {
- title: '任务监测',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/taskList',
- },
- },
- ],
- },
+ }, */
]
export default routes
diff --git a/src/views/basic/device/addDeviceDialog.vue b/src/views/basic/device/addDeviceDialog.vue
new file mode 100644
index 0000000..018f123
--- /dev/null
+++ b/src/views/basic/device/addDeviceDialog.vue
@@ -0,0 +1,220 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/basic/device/detail.vue b/src/views/basic/device/detail.vue
index e43ca3c..c24bb42 100644
--- a/src/views/basic/device/detail.vue
+++ b/src/views/basic/device/detail.vue
@@ -25,6 +25,7 @@
const deviceInfo = ref({
id: '',
+ groupId: '',
devcode: '',
deviceName: '',
deviceType: '',
@@ -41,6 +42,7 @@
encipherType: '',
encipherTypeName: '',
createTime: '',
+ createUserId: '',
createUserName: '',
dataValue: '',
})
diff --git a/src/views/basic/device/device-info.ts b/src/views/basic/device/device-info.ts
index 7a1c228..9db63f4 100644
--- a/src/views/basic/device/device-info.ts
+++ b/src/views/basic/device/device-info.ts
@@ -1,13 +1,13 @@
// 列表查询参数接口
export interface IListQuery {
groupId: string // 分组
- productId: string
+ productId?: string
devcode: string
imei: string
deviceType: string
- status: string
- beginCell: string // 电量
- endCell: string //
+ status?: string
+ beginCell?: string // 电量
+ endCell?: string //
offset?: number
limit?: number
sort?: string
@@ -16,22 +16,24 @@
export interface IDeviceInfo {
id: string
+ groupId: string
devcode: string
- deviceName: string
+ deviceName?: string
deviceType: string
- deviceTypeName: string
- status: string
- statusName: string
- cell: string
+ deviceTypeName?: string
+ status?: string
+ statusName?: string
+ cell?: string
imei: string
iccid: string
model: string
- modelName: string
+ modelName?: string
productId: string
- productName: string
+ productName?: string
encipherType: string
- encipherTypeName: string
+ encipherTypeName?: string
createTime: string
- createUserName: string
- dataValue: string
+ createUserId: string
+ createUserName?: string
+ dataValue?: string
}
diff --git a/src/views/basic/device/list.vue b/src/views/basic/device/list.vue
index ba00120..140ecaf 100644
--- a/src/views/basic/device/list.vue
+++ b/src/views/basic/device/list.vue
@@ -7,7 +7,7 @@
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { getDictByCode } from '@/api/system/dict'
import { exportFile } from '@/utils/exportUtils'
-import { getGroupListPage } from '@/api/basic/group'
+import { getGroupList } from '@/api/basic/group'
import { delDevice, exportDevice, getDeviceListPage } from '@/api/basic/device'
const router = useRouter()
@@ -91,7 +91,7 @@
type: 'detail',
id: row.id,
},
- path: 'list/detail',
+ path: 'detail',
})
}
@@ -198,7 +198,7 @@
})
}
const getAllGroupList = async () => {
- await getGroupListPage({ offset: 1, limit: 20 }).then((res: any) => {
+ await getGroupList({}).then((res: any) => {
if (res.code === 200) {
groupList.value = res.data.rows
}
diff --git a/src/views/basic/device/listEmbedded.vue b/src/views/basic/device/listEmbedded.vue
new file mode 100644
index 0000000..90822b4
--- /dev/null
+++ b/src/views/basic/device/listEmbedded.vue
@@ -0,0 +1,266 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 批量删除
+
+
+ 新增
+
+
+ 导入列表
+
+
+ 导出列表
+
+
+ 导入模板下载
+
+
+
+
+
+
+
+
+ {{ (searchQuery.offset! - 1) * searchQuery.limit! + scope.$index + 1 }}
+
+
+
+
+
+
+
+
+ 查看
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
diff --git a/.env.production b/.env.production
index ed8a601..b5508a5 100644
--- a/.env.production
+++ b/.env.production
@@ -1,9 +1,9 @@
NODE_ENV = production
# 页面标题
-VITE_APP_TITLE = 标题
+VITE_APP_TITLE = 物联网设备管理平台
# 接口请求地址,会设置到 axios 的 baseURL 参数上
-VITE_APP_API_BASEURL = http://XXXXXXX:XXXXXXX
+VITE_APP_API_BASEURL = http://111.198.10.15:12206
# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空
VITE_APP_DEBUG_TOOL =
diff --git a/src/api/basic/group.ts b/src/api/basic/group.ts
index a20dea4..8b6a2ff 100644
--- a/src/api/basic/group.ts
+++ b/src/api/basic/group.ts
@@ -9,6 +9,14 @@
data,
})
}
+// 查询分组列表 不分页
+export function getGroupList(data: object) {
+ return request({
+ url: `${prefix}/list`,
+ method: 'post',
+ data,
+ })
+}
// 查询分组详情
export function detailGroup(data: object) {
return request({
diff --git a/src/assets/icons/icon-group.svg b/src/assets/icons/icon-group.svg
new file mode 100644
index 0000000..9d3193d
--- /dev/null
+++ b/src/assets/icons/icon-group.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/icon-ota.svg b/src/assets/icons/icon-ota.svg
new file mode 100644
index 0000000..bce1df0
--- /dev/null
+++ b/src/assets/icons/icon-ota.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/router/modules/basic.ts b/src/router/modules/basic.ts
index 66fb204..2308656 100644
--- a/src/router/modules/basic.ts
+++ b/src/router/modules/basic.ts
@@ -4,9 +4,45 @@
const routes: Route.recordRaw[] = [
{
- path: '/basic',
+ path: '/basic/group',
component: Layout,
- redirect: '/group/list',
+ redirect: '/basic/group/list',
+ name: 'Group',
+ meta: {
+ title: '分组管理',
+ icon: 'ep:key',
+ auth: '/basic/group',
+ },
+ children: [
+ {
+ path: 'list',
+ name: 'GroupList',
+ component: () => import('@/views/basic/group/list.vue'),
+ meta: {
+ title: '分组管理',
+ auth: '/basic/group',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/group',
+ },
+ },
+ {
+ path: 'detail/:id?',
+ name: 'GroupInfoDetail',
+ component: () => import('@/views/basic/group/detail.vue'),
+ meta: {
+ title: '分组详情',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/group',
+ },
+ },
+ ],
+ },
+ {
+ path: '/basic/device',
+ component: Layout,
+ redirect: '/basic/device/list',
name: 'Device',
meta: {
title: '设备管理',
@@ -15,101 +51,35 @@
},
children: [
{
- path: 'group/list',
- name: 'GroupList',
- component: () => import('@/views/basic/group/list.vue'),
- meta: {
- title: '分组管理',
- auth: '/basic/group/list',
- icon: 'ep:key',
- },
- },
- {
- path: 'group/list/detail',
- name: 'GroupInfoDetail',
- component: () => import('@/views/basic/group/detail.vue'),
- meta: {
- title: '分组详情',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/basic/group/list',
- },
- },
- {
- path: 'device/list',
+ path: 'list',
name: 'DeviceList',
component: () => import('@/views/basic/device/list.vue'),
meta: {
title: '设备管理',
- auth: '/basic/device/list',
- icon: 'ep:key',
+ auth: '/basic/device',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/device',
},
},
{
- path: 'device/list/detail',
+ path: 'detail/:id?',
name: 'DeviceInfoDetail',
component: () => import('@/views/basic/device/detail.vue'),
meta: {
title: '设备详情',
sidebar: false,
breadcrumb: true,
- activeMenu: '/basic/device/list',
+ activeMenu: '/basic/device',
},
},
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoBookDetail',
- // component: () => import('@/views/equipement/info/book/detail.vue'),
- // meta: {
- // title: '设备台账管理',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/bookList',
- // },
- // },
-
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoTableDetail',
- // component: () => import('@/views/equipement/info/table/detail.vue'),
- // meta: {
- // title: '参照标准、工作标准和关键测量设备表',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/tableList',
- // },
- // },
- {
- path: 'remindList',
- name: 'EquipmentInfoRemindList',
- component: () => import('@/views/equipement/info/remind/list.vue'),
- meta: {
- title: '到期提醒列表',
- auth: '/equipment/info/remind',
- icon: 'ep:key',
- },
- },
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoRemindDetail',
- // component: () => import('@/views/equipement/info/remind/detail.vue'),
- // meta: {
- // title: '到期提醒',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/remindList',
- // },
- // },
],
},
{
- path: '/product',
+ path: '/basic/product',
component: Layout,
- redirect: '/basic/product',
- name: 'StateMaintenance',
+ redirect: '/basic/product/list',
+ name: 'Product',
meta: {
title: '产品管理',
icon: 'ep:key',
@@ -117,866 +87,53 @@
},
children: [
{
- path: '/product/list',
+ path: 'list',
name: 'ProductList',
- component: () => import('@/views/equipement/stateMaintenance/unseal/list.vue'),
+ component: () => import('@/views/basic/product/list.vue'),
meta: {
title: '产品管理',
- auth: '/product/list',
- icon: 'ep:key',
- },
- },
- {
- path: 'unseal/:type/:id?',
- name: 'UnsealDetail',
- component: () => import('@/views/equipement/stateMaintenance/unseal/edit.vue'),
- meta: {
- title: '设备启封申请',
- icon: 'ep:key',
+ auth: '/basic/product',
sidebar: false,
breadcrumb: true,
- activeMenu: '/stateMaintenance/unsealList',
+ activeMenu: '/basic/product',
},
},
+ ],
+ },
+ /*
+ {
+ path: '/product',
+ component: Layout,
+ redirect: 'product/list',
+ name: 'Product',
+ meta: {
+ title: '产品管理',
+ icon: 'ep:key',
+ auth: '/basic/product',
+ },
+ children: [
{
- path: 'unsealDoc/:type/:id?',
- name: 'UnsealDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/unseal/detail.vue'),
+ path: 'product/list',
+ name: 'ProductList',
+ component: () => import('@/views/basic/group/list.vue'),
meta: {
- title: '设备启封申请',
+ title: '产品管理',
+ auth: '/basic/product/list',
icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/unsealList',
},
},
{
- path: '/product/ota',
- name: 'ProductOTA',
- component: () => import('@/views/equipement/stateMaintenance/seal/list.vue'),
+ path: 'product/ota',
+ name: 'ProductOTAList',
+ component: () => import('@/views/basic/group/list.vue'),
meta: {
title: '远程升级',
- auth: '/product/ota',
+ auth: '/basic/product/ota',
icon: 'ep:key',
},
},
- {
- path: 'seal/:type/:id?',
- name: 'SealDetail',
- component: () => import('@/views/equipement/stateMaintenance/seal/edit.vue'),
- meta: {
- title: '设备封存申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/sealList',
- },
- },
- {
- path: 'sealDoc/:type/:id?',
- name: 'SealDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/seal/detail.vue'),
- meta: {
- title: '设备封存申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/sealList',
- },
- },
- {
- path: 'banList',
- name: 'BanList',
- component: () => import('@/views/equipement/stateMaintenance/ban/list.vue'),
- meta: {
- title: '设备禁用申请',
- auth: '/equipment/stateMaintenance/ban',
- icon: 'ep:key',
- },
- },
- {
- path: 'ban/:type/:id?',
- name: 'BanDetail',
- component: () => import('@/views/equipement/stateMaintenance/ban/edit.vue'),
- meta: {
- title: '设备禁用申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/banList',
- },
- },
- {
- path: 'banDoc/:type/:id?',
- name: 'BanDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/ban/detail.vue'),
- meta: {
- title: '设备禁用申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/banList',
- },
- },
- {
- path: 'scrapList',
- name: 'ScrapList',
- component: () => import('@/views/equipement/stateMaintenance/scrap/list.vue'),
- meta: {
- title: '设备报废申请',
- auth: '/equipment/stateMaintenance/scrap',
- icon: 'ep:key',
- },
- },
- {
- path: 'scrap/:type/:id?',
- name: 'ScrapDetail',
- component: () => import('@/views/equipement/stateMaintenance/scrap/edit.vue'),
- meta: {
- title: '设备报废申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/scrapList',
- },
- },
- {
- path: 'scrapDoc/:type/:id?',
- name: 'ScrapDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/scrap/detail.vue'),
- meta: {
- title: '设备报废申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/scrapList',
- },
- },
],
- },
- {
- path: '/standard',
- component: Layout,
- redirect: '/standard/bookInfoList',
- name: 'Standard',
- meta: {
- title: '标准装置管理',
- icon: 'ep:key',
- auth: '/standard',
- },
- children: [
- {
- path: 'bookInfoList',
- name: 'BookInfoList',
- component: () => import('@/views/equipement/standard/book/list.vue'),
- meta: {
- title: '标准装置台账信息列表',
- auth: '/standard/bookInfo',
- icon: 'ep:key',
- },
- },
- {
- path: ':type/:id?',
- name: 'StandardBookInfoList',
- component: () => import('@/views/equipement/standard/book/detail.vue'),
- meta: {
- title: '标准装置台账信息',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/bookInfoList',
- },
- },
- {
- path: '/standardEquipmentConfig/:type/:id?',
- name: 'StandardBookInfoConfig',
- component: () => import('@/views/equipement/standard/book/components/config.vue'),
- meta: {
- title: '配置核查项',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/bookInfoList',
- },
- },
- {
- path: 'standardRemindList',
- name: 'StandardRemindList',
- component: () => import('@/views/equipement/standard/remind/list.vue'),
- meta: {
- title: '到期提醒',
- auth: '/standard/remind',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkDataList',
- name: 'CheckDataList',
- component: () => import('@/views/equipement/standard/checkData/list.vue'),
- meta: {
- title: '核查数据管理',
- auth: '/standard/checkData',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkData/:type/:id?',
- name: 'CheckDataDetail',
- component: () => import('@/views/equipement/standard/checkData/detail.vue'),
- meta: {
- title: '核查数据管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkDataList',
- },
- },
- {
- path: 'checkRecordList',
- name: 'CheckRecordList',
- component: () => import('@/views/equipement/standard/checkRecord/list.vue'),
- meta: {
- title: '核查记录管理',
- auth: '/standard/checkRecord',
- icon: 'ep:key',
- },
- },
- {
- path: '/equipmentCheckRecord/:type/:id?',
- name: 'CheckRecordDetail',
- component: () => import('@/views/equipement/standard/checkRecord/detail.vue'),
- meta: {
- title: '核查记录管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkRecordList',
- },
- },
- {
- path: 'checkItemClassificationList',
- name: 'CheckItemClassificationList',
- component: () => import('@/views/equipement/standard/checkItemClassification/list.vue'),
- meta: {
- title: '核查项分类管理',
- auth: '/standard/checkItemClassification',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkItemClassification/:type/:id?',
- name: 'CheckItemClassificationDetail',
- component: () => import('@/views/equipement/standard/checkItemClassification/detail.vue'),
- meta: {
- title: '核查项分类管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkItemClassificationList',
- },
- },
- {
- path: 'standardBuildList',
- name: 'StandardBuildList',
- component: () => import('@/views/equipement/standard/build/list.vue'),
- meta: {
- title: '建标管理',
- auth: '/standard/build',
- icon: 'ep:key',
- },
- },
- {
- path: '/build/:type/:id?',
- name: 'StandardBuildEdit',
- component: () => import('@/views/equipement/standard/build/edit.vue'),
- meta: {
- title: '建标管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/standardBuildList',
- },
- },
- {
- path: '/buildDoc/:type/:id?',
- name: 'StandardBuildDetail',
- component: () => import('@/views/equipement/standard/build/detail.vue'),
- meta: {
- title: '建标管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/standardBuildList',
- },
- },
- ],
- },
- {
- path: '/standardStateMaintenance',
- component: Layout,
- redirect: '/standardStateMaintenance/changeList',
- name: 'StandardStateMaintenance',
- meta: {
- title: '标准装置状态维护',
- icon: 'ep:key',
- auth: '/standard/stateMaintenance',
- },
- children: [
- {
- path: 'changeList',
- name: 'ChangeList',
- component: () => import('@/views/equipement/StandardStateMaintenance/change/list.vue'),
- meta: {
- title: '更换申请',
- auth: '/standard/change',
- icon: 'ep:key',
- },
- },
- {
- path: 'change/:type/:id?',
- name: 'ChangeDetail',
- component: () => import('@/views/equipement/StandardStateMaintenance/change/detail.vue'),
- meta: {
- title: '更换申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/changeList',
- },
- },
- {
- path: 'reviewList',
- name: 'ReviewList',
- component: () => import('@/views/equipement/StandardStateMaintenance/review/list.vue'),
- meta: {
- title: '复查申请',
- auth: '/standard/review',
- icon: 'ep:key',
- },
- },
- {
- path: 'review/:type/:id?',
- name: 'ReviewDetail',
- component: () => import('@/views/equipement/standardStateMaintenance/review/detail.vue'),
- meta: {
- title: '复查申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/reviewList',
- },
- },
- {
- path: 'revocationList',
- name: 'RevocationList',
- component: () => import('@/views/equipement/StandardStateMaintenance/revocation/list.vue'),
- meta: {
- title: '撤销申请',
- auth: '/standard/revocation',
- icon: 'ep:key',
- },
- },
- {
- path: 'revocation/:type/:id?',
- name: 'RevocationDetail',
- component: () => import('@/views/equipement/StandardStateMaintenance/revocation/detail.vue'),
- meta: {
- title: '撤销申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/revocationList',
- },
- },
- ],
- },
- {
- path: '/source',
- component: Layout,
- redirect: '/source/planList',
- name: 'Source',
- meta: {
- title: '溯源管理',
- icon: 'ep:key',
- auth: '/equipment/source',
- },
- children: [
- {
- path: 'planList',
- name: 'EquipmentSourcePlanList',
- component: () => import('@/views/equipement/source/plan/list.vue'),
- meta: {
- title: '溯源计划管理',
- auth: '/equipment/source/plan',
- icon: 'ep:key',
- },
- },
- {
- path: 'plan/:type/:id?',
- name: 'EquipmentSourcePlanDetail',
- component: () => import('@/views/equipement/source/plan/detail.vue'),
- meta: {
- title: '溯源计划管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/planList',
- },
- },
- {
- path: 'resultConfirmList',
- name: 'EquipmentSourceResultConfirmList',
- component: () => import('@/views/equipement/source/resultConfirm/list.vue'),
- meta: {
- title: '溯源结果确认',
- auth: '/equipment/source/resultConfirm',
- icon: 'ep:key',
- },
- },
- {
- path: 'resultConfirm/:type/:id?',
- name: 'EquipmentSourceResultConfirmEdit',
- component: () => import('@/views/equipement/source/resultConfirm/edit.vue'),
- meta: {
- title: '溯源结果确认',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultConfirmList',
- },
- },
- {
- path: 'resultConfirmDoc/:type/:id?',
- name: 'EquipmentSourceResultConfirmDetail',
- component: () => import('@/views/equipement/source/resultConfirm/detail.vue'),
- meta: {
- title: '溯源结果确认',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultConfirmList',
- },
- },
- {
- path: 'resultCompleteList',
- name: 'EquipmentSourceResultCompleteList',
- component: () => import('@/views/equipement/source/resultComplete/list.vue'),
- meta: {
- title: '溯源结果完成情况',
- auth: '/equipment/source/resultComplete',
- icon: 'ep:key',
- },
- },
- {
- path: 'resultComplete/:type/:id?',
- name: 'EquipmentSourceResultCompleteEdit',
- component: () => import('@/views/equipement/source/resultComplete/edit.vue'),
- meta: {
- title: '溯源结果完成情况',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultCompleteList',
- },
- },
- {
- path: 'resultCompleteDoc/:type/:id?',
- name: 'EquipmentSourceResultCompleteDetail',
- component: () => import('@/views/equipement/source/resultComplete/detail.vue'),
- meta: {
- title: '溯源结果完成情况',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultCompleteList',
- },
- },
- {
- path: 'certList',
- name: 'EquipmentSourceCertList',
- component: () => import('@/views/equipement/source/cert/list.vue'),
- meta: {
- title: '溯源证书管理',
- auth: '/equipment/source/cert',
- icon: 'ep:key',
- },
- },
- {
- path: 'cert/:type/:id?',
- name: 'EquipmentSourceCertDetail',
- component: () => import('@/views/equipement/source/cert/detail.vue'),
- meta: {
- title: '溯源证书管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/certList',
- },
- },
- {
- path: 'changeList',
- name: 'EquipmentSourceChangeList',
- component: () => import('@/views/equipement/source/change/list.vue'),
- meta: {
- title: '溯源链变更管理',
- auth: '/equipment/source/change',
- icon: 'ep:key',
- },
- },
- {
- path: 'sourceChange/:type/:id?',
- name: 'EquipmentSourceChangeDetail',
- component: () => import('@/views/equipement/source/change/edit.vue'),
- meta: {
- title: '溯源链变更管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/changeList',
- },
- },
- ],
- },
- {
- path: '/resume',
- component: Layout,
- redirect: '/resume/planList',
- name: 'Resume',
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- auth: '/equipment/resume',
- },
- children: [
- {
- path: 'unpackList',
- name: 'EquipmentResumeUnpackList',
- component: () => import('@/views/equipement/resume/unpack/list.vue'),
- meta: {
- title: '开箱验收管理',
- auth: '/equipment/resume/unpack',
- icon: 'ep:key',
- },
- },
- {
- path: 'unpack/:type/:id?',
- name: 'EquipmentResumeUnpackEdit',
- component: () => import('@/views/equipement/resume/unpack/edit.vue'),
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/unpackList',
- },
- },
- {
- path: '/unpackDoc/:type/:id?',
- name: 'EquipmentResumeUnpackDetail',
- component: () => import('@/views/equipement/resume/unpack/detail.vue'),
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/unpackList',
- },
- },
- {
- path: 'lendList',
- name: 'EquipmentResumeLendList',
- component: () => import('@/views/equipement/resume/lend/list.vue'),
- meta: {
- title: '设备借出管理',
- auth: '/equipment/resume/lend',
- icon: 'ep:key',
- },
- },
- {
- path: 'lend/:type/:id?',
- name: 'EquipmentResumeLendEdit',
- component: () => import('@/views/equipement/resume/lend/edit.vue'),
- meta: {
- title: '设备借出管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/lendList',
- },
- },
- {
- path: 'lendDoc/:type/:id?',
- name: 'EquipmentResumeLendDetail',
- component: () => import('@/views/equipement/resume/lend/detail.vue'),
- meta: {
- title: '设备借出管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/lendList',
- },
- },
- {
- path: 'borrowList',
- name: 'EquipmentResumeBorrowList',
- component: () => import('@/views/equipement/resume/borrow/list.vue'),
- meta: {
- title: '设备借用管理',
- auth: '/equipment/resume/borrow',
- icon: 'ep:key',
- },
- },
- {
- path: 'borrow/:type/:id?',
- name: 'EquipmentResumeBorrowEdit',
- component: () => import('@/views/equipement/resume/borrow/edit.vue'),
- meta: {
- title: '设备借用管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/borrowList',
- },
- },
- {
- path: 'borrowDoc/:type/:id?',
- name: 'EquipmentResumeBorrowDetail',
- component: () => import('@/views/equipement/resume/borrow/detail.vue'),
- meta: {
- title: '设备借用管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/borrowList',
- },
- },
- {
- path: 'encasementList',
- name: 'EquipmentResumeEncasementList',
- component: () => import('@/views/equipement/resume/encasement/list.vue'),
- meta: {
- title: '设备运输装箱管理',
- auth: '/equipment/resume/encasement',
- icon: 'ep:key',
- },
- },
- {
- path: 'encasement/:type/:id?',
- name: 'EquipmentResumeEncasementDetail',
- component: () => import('@/views/equipement/resume/encasement/edit.vue'),
- meta: {
- title: '设备运输装箱管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/encasementList',
- },
- },
- {
- path: 'encasementDoc/:type/:id?',
- name: 'EquipmentResumeEncasementDetailDoc',
- component: () => import('@/views/equipement/resume/encasement/detail.vue'),
- meta: {
- title: '设备运输装箱管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/encasementList',
- },
- },
- {
- path: 'courseList',
- name: 'EquipmentResumeCourseList',
- component: () => import('@/views/equipement/resume/course/list.vue'),
- meta: {
- title: '设备运输过程管理',
- auth: '/equipment/resume/course',
- icon: 'ep:key',
- },
- },
- {
- path: 'course/:type/:id?',
- name: 'EquipmentResumeCourseDetail',
- component: () => import('@/views/equipement/resume/course/edit.vue'),
- meta: {
- title: '设备运输过程管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/courseList',
- },
- },
- {
- path: 'courseDoc/:type/:id?',
- name: 'EquipmentResumeCourseDetailDoc',
- component: () => import('@/views/equipement/resume/course/detail.vue'),
- meta: {
- title: '设备运输过程管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/courseList',
- },
- },
- {
- path: 'errorList',
- name: 'EquipmentResumeErrorList',
- component: () => import('@/views/equipement/resume/error/list.vue'),
- meta: {
- title: '异常情况处置管理',
- auth: '/equipment/resume/error',
- icon: 'ep:key',
- },
- },
- {
- path: 'error/:type/:id?',
- name: 'EquipmentResumeErrorEdit',
- component: () => import('@/views/equipement/resume/error/edit.vue'),
- meta: {
- title: '异常情况处置管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/errorList',
- },
- },
- {
- path: 'errorDoc/:type/:id?',
- name: 'EquipmentResumeErrorDetail',
- component: () => import('@/views/equipement/resume/error/detail.vue'),
- meta: {
- title: '异常情况处置管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/errorList',
- },
- },
- {
- path: 'weekList',
- name: 'EquipmentResumeWeekList',
- component: () => import('@/views/equipement/resume/week/list.vue'),
- meta: {
- title: '周维护',
- auth: '/equipment/resume/week',
- icon: 'ep:key',
- },
- },
- {
- path: 'week/:type/:id?',
- name: 'EquipmentResumeWeekDetail',
- component: () => import('@/views/equipement/resume/week/detail.vue'),
- meta: {
- title: '周维护',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/weekList',
- },
- },
- {
- path: 'monthList',
- name: 'EquipmentResumeMonthList',
- component: () => import('@/views/equipement/resume/month/list.vue'),
- meta: {
- title: '月保养',
- auth: '/equipment/resume/month',
- icon: 'ep:key',
- },
- },
- {
- path: 'month/:type/:id?',
- name: 'EquipmentResumeMonthDetail',
- component: () => import('@/views/equipement/resume/month/detail.vue'),
- meta: {
- title: '月保养',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/monthList',
- },
- },
- ],
- },
- {
- path: '/monitor',
- component: Layout,
- redirect: '/monitor/deviceList',
- name: 'Monitor',
- meta: {
- title: '监测测试管理',
- icon: 'ep:key',
- auth: '/equipment/monitor',
- },
- children: [
- {
- path: 'deviceList',
- name: 'EquipmentResumeDeviceList',
- component: () => import('@/views/equipement/monitor/device/list.vue'),
- meta: {
- title: '监测设备',
- auth: '/equipment/monitor/device',
- icon: 'ep:key',
- },
- },
- {
- path: 'device/:type/:id?',
- name: 'EquipmentResumeDeviceDetail',
- component: () => import('@/views/equipement/monitor/device/detail.vue'),
- meta: {
- title: '监测设备',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/deviceList',
- },
- },
- {
- path: 'radioList',
- name: 'EquipmentResumeRadioList',
- component: () => import('@/views/equipement/monitor/radio/list.vue'),
- meta: {
- title: '无线电库',
- auth: '/equipment/monitor/radio',
- icon: 'ep:key',
- },
- },
- {
- path: 'radio/:type/:id?',
- name: 'EquipmentResumeRadioDetail',
- component: () => import('@/views/equipement/monitor/radio/detail.vue'),
- meta: {
- title: '无线电库',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/radioList',
- },
- },
- {
- path: 'taskList',
- name: 'EquipmentResumeTaskList',
- component: () => import('@/views/equipement/monitor/task/list.vue'),
- meta: {
- title: '任务监测',
- auth: '/equipment/monitor/task',
- icon: 'ep:key',
- },
- },
- {
- path: 'task/:type/:id?',
- name: 'EquipmentResumeTaskDetail',
- component: () => import('@/views/equipement/monitor/task/detail.vue'),
- meta: {
- title: '任务监测',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/taskList',
- },
- },
- ],
- },
+ }, */
]
export default routes
diff --git a/src/views/basic/device/addDeviceDialog.vue b/src/views/basic/device/addDeviceDialog.vue
new file mode 100644
index 0000000..018f123
--- /dev/null
+++ b/src/views/basic/device/addDeviceDialog.vue
@@ -0,0 +1,220 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/basic/device/detail.vue b/src/views/basic/device/detail.vue
index e43ca3c..c24bb42 100644
--- a/src/views/basic/device/detail.vue
+++ b/src/views/basic/device/detail.vue
@@ -25,6 +25,7 @@
const deviceInfo = ref({
id: '',
+ groupId: '',
devcode: '',
deviceName: '',
deviceType: '',
@@ -41,6 +42,7 @@
encipherType: '',
encipherTypeName: '',
createTime: '',
+ createUserId: '',
createUserName: '',
dataValue: '',
})
diff --git a/src/views/basic/device/device-info.ts b/src/views/basic/device/device-info.ts
index 7a1c228..9db63f4 100644
--- a/src/views/basic/device/device-info.ts
+++ b/src/views/basic/device/device-info.ts
@@ -1,13 +1,13 @@
// 列表查询参数接口
export interface IListQuery {
groupId: string // 分组
- productId: string
+ productId?: string
devcode: string
imei: string
deviceType: string
- status: string
- beginCell: string // 电量
- endCell: string //
+ status?: string
+ beginCell?: string // 电量
+ endCell?: string //
offset?: number
limit?: number
sort?: string
@@ -16,22 +16,24 @@
export interface IDeviceInfo {
id: string
+ groupId: string
devcode: string
- deviceName: string
+ deviceName?: string
deviceType: string
- deviceTypeName: string
- status: string
- statusName: string
- cell: string
+ deviceTypeName?: string
+ status?: string
+ statusName?: string
+ cell?: string
imei: string
iccid: string
model: string
- modelName: string
+ modelName?: string
productId: string
- productName: string
+ productName?: string
encipherType: string
- encipherTypeName: string
+ encipherTypeName?: string
createTime: string
- createUserName: string
- dataValue: string
+ createUserId: string
+ createUserName?: string
+ dataValue?: string
}
diff --git a/src/views/basic/device/list.vue b/src/views/basic/device/list.vue
index ba00120..140ecaf 100644
--- a/src/views/basic/device/list.vue
+++ b/src/views/basic/device/list.vue
@@ -7,7 +7,7 @@
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { getDictByCode } from '@/api/system/dict'
import { exportFile } from '@/utils/exportUtils'
-import { getGroupListPage } from '@/api/basic/group'
+import { getGroupList } from '@/api/basic/group'
import { delDevice, exportDevice, getDeviceListPage } from '@/api/basic/device'
const router = useRouter()
@@ -91,7 +91,7 @@
type: 'detail',
id: row.id,
},
- path: 'list/detail',
+ path: 'detail',
})
}
@@ -198,7 +198,7 @@
})
}
const getAllGroupList = async () => {
- await getGroupListPage({ offset: 1, limit: 20 }).then((res: any) => {
+ await getGroupList({}).then((res: any) => {
if (res.code === 200) {
groupList.value = res.data.rows
}
diff --git a/src/views/basic/device/listEmbedded.vue b/src/views/basic/device/listEmbedded.vue
new file mode 100644
index 0000000..90822b4
--- /dev/null
+++ b/src/views/basic/device/listEmbedded.vue
@@ -0,0 +1,266 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 批量删除
+
+
+ 新增
+
+
+ 导入列表
+
+
+ 导出列表
+
+
+ 导入模板下载
+
+
+
+
+
+
+
+
+ {{ (searchQuery.offset! - 1) * searchQuery.limit! + scope.$index + 1 }}
+
+
+
+
+
+
+
+
+ 查看
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/basic/group/addDialog.vue b/src/views/basic/group/addDialog.vue
deleted file mode 100644
index d1f3405..0000000
--- a/src/views/basic/group/addDialog.vue
+++ /dev/null
@@ -1,189 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/.env.production b/.env.production
index ed8a601..b5508a5 100644
--- a/.env.production
+++ b/.env.production
@@ -1,9 +1,9 @@
NODE_ENV = production
# 页面标题
-VITE_APP_TITLE = 标题
+VITE_APP_TITLE = 物联网设备管理平台
# 接口请求地址,会设置到 axios 的 baseURL 参数上
-VITE_APP_API_BASEURL = http://XXXXXXX:XXXXXXX
+VITE_APP_API_BASEURL = http://111.198.10.15:12206
# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空
VITE_APP_DEBUG_TOOL =
diff --git a/src/api/basic/group.ts b/src/api/basic/group.ts
index a20dea4..8b6a2ff 100644
--- a/src/api/basic/group.ts
+++ b/src/api/basic/group.ts
@@ -9,6 +9,14 @@
data,
})
}
+// 查询分组列表 不分页
+export function getGroupList(data: object) {
+ return request({
+ url: `${prefix}/list`,
+ method: 'post',
+ data,
+ })
+}
// 查询分组详情
export function detailGroup(data: object) {
return request({
diff --git a/src/assets/icons/icon-group.svg b/src/assets/icons/icon-group.svg
new file mode 100644
index 0000000..9d3193d
--- /dev/null
+++ b/src/assets/icons/icon-group.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/icon-ota.svg b/src/assets/icons/icon-ota.svg
new file mode 100644
index 0000000..bce1df0
--- /dev/null
+++ b/src/assets/icons/icon-ota.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/router/modules/basic.ts b/src/router/modules/basic.ts
index 66fb204..2308656 100644
--- a/src/router/modules/basic.ts
+++ b/src/router/modules/basic.ts
@@ -4,9 +4,45 @@
const routes: Route.recordRaw[] = [
{
- path: '/basic',
+ path: '/basic/group',
component: Layout,
- redirect: '/group/list',
+ redirect: '/basic/group/list',
+ name: 'Group',
+ meta: {
+ title: '分组管理',
+ icon: 'ep:key',
+ auth: '/basic/group',
+ },
+ children: [
+ {
+ path: 'list',
+ name: 'GroupList',
+ component: () => import('@/views/basic/group/list.vue'),
+ meta: {
+ title: '分组管理',
+ auth: '/basic/group',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/group',
+ },
+ },
+ {
+ path: 'detail/:id?',
+ name: 'GroupInfoDetail',
+ component: () => import('@/views/basic/group/detail.vue'),
+ meta: {
+ title: '分组详情',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/group',
+ },
+ },
+ ],
+ },
+ {
+ path: '/basic/device',
+ component: Layout,
+ redirect: '/basic/device/list',
name: 'Device',
meta: {
title: '设备管理',
@@ -15,101 +51,35 @@
},
children: [
{
- path: 'group/list',
- name: 'GroupList',
- component: () => import('@/views/basic/group/list.vue'),
- meta: {
- title: '分组管理',
- auth: '/basic/group/list',
- icon: 'ep:key',
- },
- },
- {
- path: 'group/list/detail',
- name: 'GroupInfoDetail',
- component: () => import('@/views/basic/group/detail.vue'),
- meta: {
- title: '分组详情',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/basic/group/list',
- },
- },
- {
- path: 'device/list',
+ path: 'list',
name: 'DeviceList',
component: () => import('@/views/basic/device/list.vue'),
meta: {
title: '设备管理',
- auth: '/basic/device/list',
- icon: 'ep:key',
+ auth: '/basic/device',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/device',
},
},
{
- path: 'device/list/detail',
+ path: 'detail/:id?',
name: 'DeviceInfoDetail',
component: () => import('@/views/basic/device/detail.vue'),
meta: {
title: '设备详情',
sidebar: false,
breadcrumb: true,
- activeMenu: '/basic/device/list',
+ activeMenu: '/basic/device',
},
},
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoBookDetail',
- // component: () => import('@/views/equipement/info/book/detail.vue'),
- // meta: {
- // title: '设备台账管理',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/bookList',
- // },
- // },
-
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoTableDetail',
- // component: () => import('@/views/equipement/info/table/detail.vue'),
- // meta: {
- // title: '参照标准、工作标准和关键测量设备表',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/tableList',
- // },
- // },
- {
- path: 'remindList',
- name: 'EquipmentInfoRemindList',
- component: () => import('@/views/equipement/info/remind/list.vue'),
- meta: {
- title: '到期提醒列表',
- auth: '/equipment/info/remind',
- icon: 'ep:key',
- },
- },
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoRemindDetail',
- // component: () => import('@/views/equipement/info/remind/detail.vue'),
- // meta: {
- // title: '到期提醒',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/remindList',
- // },
- // },
],
},
{
- path: '/product',
+ path: '/basic/product',
component: Layout,
- redirect: '/basic/product',
- name: 'StateMaintenance',
+ redirect: '/basic/product/list',
+ name: 'Product',
meta: {
title: '产品管理',
icon: 'ep:key',
@@ -117,866 +87,53 @@
},
children: [
{
- path: '/product/list',
+ path: 'list',
name: 'ProductList',
- component: () => import('@/views/equipement/stateMaintenance/unseal/list.vue'),
+ component: () => import('@/views/basic/product/list.vue'),
meta: {
title: '产品管理',
- auth: '/product/list',
- icon: 'ep:key',
- },
- },
- {
- path: 'unseal/:type/:id?',
- name: 'UnsealDetail',
- component: () => import('@/views/equipement/stateMaintenance/unseal/edit.vue'),
- meta: {
- title: '设备启封申请',
- icon: 'ep:key',
+ auth: '/basic/product',
sidebar: false,
breadcrumb: true,
- activeMenu: '/stateMaintenance/unsealList',
+ activeMenu: '/basic/product',
},
},
+ ],
+ },
+ /*
+ {
+ path: '/product',
+ component: Layout,
+ redirect: 'product/list',
+ name: 'Product',
+ meta: {
+ title: '产品管理',
+ icon: 'ep:key',
+ auth: '/basic/product',
+ },
+ children: [
{
- path: 'unsealDoc/:type/:id?',
- name: 'UnsealDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/unseal/detail.vue'),
+ path: 'product/list',
+ name: 'ProductList',
+ component: () => import('@/views/basic/group/list.vue'),
meta: {
- title: '设备启封申请',
+ title: '产品管理',
+ auth: '/basic/product/list',
icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/unsealList',
},
},
{
- path: '/product/ota',
- name: 'ProductOTA',
- component: () => import('@/views/equipement/stateMaintenance/seal/list.vue'),
+ path: 'product/ota',
+ name: 'ProductOTAList',
+ component: () => import('@/views/basic/group/list.vue'),
meta: {
title: '远程升级',
- auth: '/product/ota',
+ auth: '/basic/product/ota',
icon: 'ep:key',
},
},
- {
- path: 'seal/:type/:id?',
- name: 'SealDetail',
- component: () => import('@/views/equipement/stateMaintenance/seal/edit.vue'),
- meta: {
- title: '设备封存申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/sealList',
- },
- },
- {
- path: 'sealDoc/:type/:id?',
- name: 'SealDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/seal/detail.vue'),
- meta: {
- title: '设备封存申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/sealList',
- },
- },
- {
- path: 'banList',
- name: 'BanList',
- component: () => import('@/views/equipement/stateMaintenance/ban/list.vue'),
- meta: {
- title: '设备禁用申请',
- auth: '/equipment/stateMaintenance/ban',
- icon: 'ep:key',
- },
- },
- {
- path: 'ban/:type/:id?',
- name: 'BanDetail',
- component: () => import('@/views/equipement/stateMaintenance/ban/edit.vue'),
- meta: {
- title: '设备禁用申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/banList',
- },
- },
- {
- path: 'banDoc/:type/:id?',
- name: 'BanDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/ban/detail.vue'),
- meta: {
- title: '设备禁用申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/banList',
- },
- },
- {
- path: 'scrapList',
- name: 'ScrapList',
- component: () => import('@/views/equipement/stateMaintenance/scrap/list.vue'),
- meta: {
- title: '设备报废申请',
- auth: '/equipment/stateMaintenance/scrap',
- icon: 'ep:key',
- },
- },
- {
- path: 'scrap/:type/:id?',
- name: 'ScrapDetail',
- component: () => import('@/views/equipement/stateMaintenance/scrap/edit.vue'),
- meta: {
- title: '设备报废申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/scrapList',
- },
- },
- {
- path: 'scrapDoc/:type/:id?',
- name: 'ScrapDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/scrap/detail.vue'),
- meta: {
- title: '设备报废申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/scrapList',
- },
- },
],
- },
- {
- path: '/standard',
- component: Layout,
- redirect: '/standard/bookInfoList',
- name: 'Standard',
- meta: {
- title: '标准装置管理',
- icon: 'ep:key',
- auth: '/standard',
- },
- children: [
- {
- path: 'bookInfoList',
- name: 'BookInfoList',
- component: () => import('@/views/equipement/standard/book/list.vue'),
- meta: {
- title: '标准装置台账信息列表',
- auth: '/standard/bookInfo',
- icon: 'ep:key',
- },
- },
- {
- path: ':type/:id?',
- name: 'StandardBookInfoList',
- component: () => import('@/views/equipement/standard/book/detail.vue'),
- meta: {
- title: '标准装置台账信息',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/bookInfoList',
- },
- },
- {
- path: '/standardEquipmentConfig/:type/:id?',
- name: 'StandardBookInfoConfig',
- component: () => import('@/views/equipement/standard/book/components/config.vue'),
- meta: {
- title: '配置核查项',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/bookInfoList',
- },
- },
- {
- path: 'standardRemindList',
- name: 'StandardRemindList',
- component: () => import('@/views/equipement/standard/remind/list.vue'),
- meta: {
- title: '到期提醒',
- auth: '/standard/remind',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkDataList',
- name: 'CheckDataList',
- component: () => import('@/views/equipement/standard/checkData/list.vue'),
- meta: {
- title: '核查数据管理',
- auth: '/standard/checkData',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkData/:type/:id?',
- name: 'CheckDataDetail',
- component: () => import('@/views/equipement/standard/checkData/detail.vue'),
- meta: {
- title: '核查数据管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkDataList',
- },
- },
- {
- path: 'checkRecordList',
- name: 'CheckRecordList',
- component: () => import('@/views/equipement/standard/checkRecord/list.vue'),
- meta: {
- title: '核查记录管理',
- auth: '/standard/checkRecord',
- icon: 'ep:key',
- },
- },
- {
- path: '/equipmentCheckRecord/:type/:id?',
- name: 'CheckRecordDetail',
- component: () => import('@/views/equipement/standard/checkRecord/detail.vue'),
- meta: {
- title: '核查记录管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkRecordList',
- },
- },
- {
- path: 'checkItemClassificationList',
- name: 'CheckItemClassificationList',
- component: () => import('@/views/equipement/standard/checkItemClassification/list.vue'),
- meta: {
- title: '核查项分类管理',
- auth: '/standard/checkItemClassification',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkItemClassification/:type/:id?',
- name: 'CheckItemClassificationDetail',
- component: () => import('@/views/equipement/standard/checkItemClassification/detail.vue'),
- meta: {
- title: '核查项分类管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkItemClassificationList',
- },
- },
- {
- path: 'standardBuildList',
- name: 'StandardBuildList',
- component: () => import('@/views/equipement/standard/build/list.vue'),
- meta: {
- title: '建标管理',
- auth: '/standard/build',
- icon: 'ep:key',
- },
- },
- {
- path: '/build/:type/:id?',
- name: 'StandardBuildEdit',
- component: () => import('@/views/equipement/standard/build/edit.vue'),
- meta: {
- title: '建标管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/standardBuildList',
- },
- },
- {
- path: '/buildDoc/:type/:id?',
- name: 'StandardBuildDetail',
- component: () => import('@/views/equipement/standard/build/detail.vue'),
- meta: {
- title: '建标管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/standardBuildList',
- },
- },
- ],
- },
- {
- path: '/standardStateMaintenance',
- component: Layout,
- redirect: '/standardStateMaintenance/changeList',
- name: 'StandardStateMaintenance',
- meta: {
- title: '标准装置状态维护',
- icon: 'ep:key',
- auth: '/standard/stateMaintenance',
- },
- children: [
- {
- path: 'changeList',
- name: 'ChangeList',
- component: () => import('@/views/equipement/StandardStateMaintenance/change/list.vue'),
- meta: {
- title: '更换申请',
- auth: '/standard/change',
- icon: 'ep:key',
- },
- },
- {
- path: 'change/:type/:id?',
- name: 'ChangeDetail',
- component: () => import('@/views/equipement/StandardStateMaintenance/change/detail.vue'),
- meta: {
- title: '更换申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/changeList',
- },
- },
- {
- path: 'reviewList',
- name: 'ReviewList',
- component: () => import('@/views/equipement/StandardStateMaintenance/review/list.vue'),
- meta: {
- title: '复查申请',
- auth: '/standard/review',
- icon: 'ep:key',
- },
- },
- {
- path: 'review/:type/:id?',
- name: 'ReviewDetail',
- component: () => import('@/views/equipement/standardStateMaintenance/review/detail.vue'),
- meta: {
- title: '复查申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/reviewList',
- },
- },
- {
- path: 'revocationList',
- name: 'RevocationList',
- component: () => import('@/views/equipement/StandardStateMaintenance/revocation/list.vue'),
- meta: {
- title: '撤销申请',
- auth: '/standard/revocation',
- icon: 'ep:key',
- },
- },
- {
- path: 'revocation/:type/:id?',
- name: 'RevocationDetail',
- component: () => import('@/views/equipement/StandardStateMaintenance/revocation/detail.vue'),
- meta: {
- title: '撤销申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/revocationList',
- },
- },
- ],
- },
- {
- path: '/source',
- component: Layout,
- redirect: '/source/planList',
- name: 'Source',
- meta: {
- title: '溯源管理',
- icon: 'ep:key',
- auth: '/equipment/source',
- },
- children: [
- {
- path: 'planList',
- name: 'EquipmentSourcePlanList',
- component: () => import('@/views/equipement/source/plan/list.vue'),
- meta: {
- title: '溯源计划管理',
- auth: '/equipment/source/plan',
- icon: 'ep:key',
- },
- },
- {
- path: 'plan/:type/:id?',
- name: 'EquipmentSourcePlanDetail',
- component: () => import('@/views/equipement/source/plan/detail.vue'),
- meta: {
- title: '溯源计划管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/planList',
- },
- },
- {
- path: 'resultConfirmList',
- name: 'EquipmentSourceResultConfirmList',
- component: () => import('@/views/equipement/source/resultConfirm/list.vue'),
- meta: {
- title: '溯源结果确认',
- auth: '/equipment/source/resultConfirm',
- icon: 'ep:key',
- },
- },
- {
- path: 'resultConfirm/:type/:id?',
- name: 'EquipmentSourceResultConfirmEdit',
- component: () => import('@/views/equipement/source/resultConfirm/edit.vue'),
- meta: {
- title: '溯源结果确认',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultConfirmList',
- },
- },
- {
- path: 'resultConfirmDoc/:type/:id?',
- name: 'EquipmentSourceResultConfirmDetail',
- component: () => import('@/views/equipement/source/resultConfirm/detail.vue'),
- meta: {
- title: '溯源结果确认',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultConfirmList',
- },
- },
- {
- path: 'resultCompleteList',
- name: 'EquipmentSourceResultCompleteList',
- component: () => import('@/views/equipement/source/resultComplete/list.vue'),
- meta: {
- title: '溯源结果完成情况',
- auth: '/equipment/source/resultComplete',
- icon: 'ep:key',
- },
- },
- {
- path: 'resultComplete/:type/:id?',
- name: 'EquipmentSourceResultCompleteEdit',
- component: () => import('@/views/equipement/source/resultComplete/edit.vue'),
- meta: {
- title: '溯源结果完成情况',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultCompleteList',
- },
- },
- {
- path: 'resultCompleteDoc/:type/:id?',
- name: 'EquipmentSourceResultCompleteDetail',
- component: () => import('@/views/equipement/source/resultComplete/detail.vue'),
- meta: {
- title: '溯源结果完成情况',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultCompleteList',
- },
- },
- {
- path: 'certList',
- name: 'EquipmentSourceCertList',
- component: () => import('@/views/equipement/source/cert/list.vue'),
- meta: {
- title: '溯源证书管理',
- auth: '/equipment/source/cert',
- icon: 'ep:key',
- },
- },
- {
- path: 'cert/:type/:id?',
- name: 'EquipmentSourceCertDetail',
- component: () => import('@/views/equipement/source/cert/detail.vue'),
- meta: {
- title: '溯源证书管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/certList',
- },
- },
- {
- path: 'changeList',
- name: 'EquipmentSourceChangeList',
- component: () => import('@/views/equipement/source/change/list.vue'),
- meta: {
- title: '溯源链变更管理',
- auth: '/equipment/source/change',
- icon: 'ep:key',
- },
- },
- {
- path: 'sourceChange/:type/:id?',
- name: 'EquipmentSourceChangeDetail',
- component: () => import('@/views/equipement/source/change/edit.vue'),
- meta: {
- title: '溯源链变更管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/changeList',
- },
- },
- ],
- },
- {
- path: '/resume',
- component: Layout,
- redirect: '/resume/planList',
- name: 'Resume',
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- auth: '/equipment/resume',
- },
- children: [
- {
- path: 'unpackList',
- name: 'EquipmentResumeUnpackList',
- component: () => import('@/views/equipement/resume/unpack/list.vue'),
- meta: {
- title: '开箱验收管理',
- auth: '/equipment/resume/unpack',
- icon: 'ep:key',
- },
- },
- {
- path: 'unpack/:type/:id?',
- name: 'EquipmentResumeUnpackEdit',
- component: () => import('@/views/equipement/resume/unpack/edit.vue'),
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/unpackList',
- },
- },
- {
- path: '/unpackDoc/:type/:id?',
- name: 'EquipmentResumeUnpackDetail',
- component: () => import('@/views/equipement/resume/unpack/detail.vue'),
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/unpackList',
- },
- },
- {
- path: 'lendList',
- name: 'EquipmentResumeLendList',
- component: () => import('@/views/equipement/resume/lend/list.vue'),
- meta: {
- title: '设备借出管理',
- auth: '/equipment/resume/lend',
- icon: 'ep:key',
- },
- },
- {
- path: 'lend/:type/:id?',
- name: 'EquipmentResumeLendEdit',
- component: () => import('@/views/equipement/resume/lend/edit.vue'),
- meta: {
- title: '设备借出管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/lendList',
- },
- },
- {
- path: 'lendDoc/:type/:id?',
- name: 'EquipmentResumeLendDetail',
- component: () => import('@/views/equipement/resume/lend/detail.vue'),
- meta: {
- title: '设备借出管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/lendList',
- },
- },
- {
- path: 'borrowList',
- name: 'EquipmentResumeBorrowList',
- component: () => import('@/views/equipement/resume/borrow/list.vue'),
- meta: {
- title: '设备借用管理',
- auth: '/equipment/resume/borrow',
- icon: 'ep:key',
- },
- },
- {
- path: 'borrow/:type/:id?',
- name: 'EquipmentResumeBorrowEdit',
- component: () => import('@/views/equipement/resume/borrow/edit.vue'),
- meta: {
- title: '设备借用管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/borrowList',
- },
- },
- {
- path: 'borrowDoc/:type/:id?',
- name: 'EquipmentResumeBorrowDetail',
- component: () => import('@/views/equipement/resume/borrow/detail.vue'),
- meta: {
- title: '设备借用管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/borrowList',
- },
- },
- {
- path: 'encasementList',
- name: 'EquipmentResumeEncasementList',
- component: () => import('@/views/equipement/resume/encasement/list.vue'),
- meta: {
- title: '设备运输装箱管理',
- auth: '/equipment/resume/encasement',
- icon: 'ep:key',
- },
- },
- {
- path: 'encasement/:type/:id?',
- name: 'EquipmentResumeEncasementDetail',
- component: () => import('@/views/equipement/resume/encasement/edit.vue'),
- meta: {
- title: '设备运输装箱管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/encasementList',
- },
- },
- {
- path: 'encasementDoc/:type/:id?',
- name: 'EquipmentResumeEncasementDetailDoc',
- component: () => import('@/views/equipement/resume/encasement/detail.vue'),
- meta: {
- title: '设备运输装箱管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/encasementList',
- },
- },
- {
- path: 'courseList',
- name: 'EquipmentResumeCourseList',
- component: () => import('@/views/equipement/resume/course/list.vue'),
- meta: {
- title: '设备运输过程管理',
- auth: '/equipment/resume/course',
- icon: 'ep:key',
- },
- },
- {
- path: 'course/:type/:id?',
- name: 'EquipmentResumeCourseDetail',
- component: () => import('@/views/equipement/resume/course/edit.vue'),
- meta: {
- title: '设备运输过程管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/courseList',
- },
- },
- {
- path: 'courseDoc/:type/:id?',
- name: 'EquipmentResumeCourseDetailDoc',
- component: () => import('@/views/equipement/resume/course/detail.vue'),
- meta: {
- title: '设备运输过程管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/courseList',
- },
- },
- {
- path: 'errorList',
- name: 'EquipmentResumeErrorList',
- component: () => import('@/views/equipement/resume/error/list.vue'),
- meta: {
- title: '异常情况处置管理',
- auth: '/equipment/resume/error',
- icon: 'ep:key',
- },
- },
- {
- path: 'error/:type/:id?',
- name: 'EquipmentResumeErrorEdit',
- component: () => import('@/views/equipement/resume/error/edit.vue'),
- meta: {
- title: '异常情况处置管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/errorList',
- },
- },
- {
- path: 'errorDoc/:type/:id?',
- name: 'EquipmentResumeErrorDetail',
- component: () => import('@/views/equipement/resume/error/detail.vue'),
- meta: {
- title: '异常情况处置管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/errorList',
- },
- },
- {
- path: 'weekList',
- name: 'EquipmentResumeWeekList',
- component: () => import('@/views/equipement/resume/week/list.vue'),
- meta: {
- title: '周维护',
- auth: '/equipment/resume/week',
- icon: 'ep:key',
- },
- },
- {
- path: 'week/:type/:id?',
- name: 'EquipmentResumeWeekDetail',
- component: () => import('@/views/equipement/resume/week/detail.vue'),
- meta: {
- title: '周维护',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/weekList',
- },
- },
- {
- path: 'monthList',
- name: 'EquipmentResumeMonthList',
- component: () => import('@/views/equipement/resume/month/list.vue'),
- meta: {
- title: '月保养',
- auth: '/equipment/resume/month',
- icon: 'ep:key',
- },
- },
- {
- path: 'month/:type/:id?',
- name: 'EquipmentResumeMonthDetail',
- component: () => import('@/views/equipement/resume/month/detail.vue'),
- meta: {
- title: '月保养',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/monthList',
- },
- },
- ],
- },
- {
- path: '/monitor',
- component: Layout,
- redirect: '/monitor/deviceList',
- name: 'Monitor',
- meta: {
- title: '监测测试管理',
- icon: 'ep:key',
- auth: '/equipment/monitor',
- },
- children: [
- {
- path: 'deviceList',
- name: 'EquipmentResumeDeviceList',
- component: () => import('@/views/equipement/monitor/device/list.vue'),
- meta: {
- title: '监测设备',
- auth: '/equipment/monitor/device',
- icon: 'ep:key',
- },
- },
- {
- path: 'device/:type/:id?',
- name: 'EquipmentResumeDeviceDetail',
- component: () => import('@/views/equipement/monitor/device/detail.vue'),
- meta: {
- title: '监测设备',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/deviceList',
- },
- },
- {
- path: 'radioList',
- name: 'EquipmentResumeRadioList',
- component: () => import('@/views/equipement/monitor/radio/list.vue'),
- meta: {
- title: '无线电库',
- auth: '/equipment/monitor/radio',
- icon: 'ep:key',
- },
- },
- {
- path: 'radio/:type/:id?',
- name: 'EquipmentResumeRadioDetail',
- component: () => import('@/views/equipement/monitor/radio/detail.vue'),
- meta: {
- title: '无线电库',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/radioList',
- },
- },
- {
- path: 'taskList',
- name: 'EquipmentResumeTaskList',
- component: () => import('@/views/equipement/monitor/task/list.vue'),
- meta: {
- title: '任务监测',
- auth: '/equipment/monitor/task',
- icon: 'ep:key',
- },
- },
- {
- path: 'task/:type/:id?',
- name: 'EquipmentResumeTaskDetail',
- component: () => import('@/views/equipement/monitor/task/detail.vue'),
- meta: {
- title: '任务监测',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/taskList',
- },
- },
- ],
- },
+ }, */
]
export default routes
diff --git a/src/views/basic/device/addDeviceDialog.vue b/src/views/basic/device/addDeviceDialog.vue
new file mode 100644
index 0000000..018f123
--- /dev/null
+++ b/src/views/basic/device/addDeviceDialog.vue
@@ -0,0 +1,220 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/basic/device/detail.vue b/src/views/basic/device/detail.vue
index e43ca3c..c24bb42 100644
--- a/src/views/basic/device/detail.vue
+++ b/src/views/basic/device/detail.vue
@@ -25,6 +25,7 @@
const deviceInfo = ref({
id: '',
+ groupId: '',
devcode: '',
deviceName: '',
deviceType: '',
@@ -41,6 +42,7 @@
encipherType: '',
encipherTypeName: '',
createTime: '',
+ createUserId: '',
createUserName: '',
dataValue: '',
})
diff --git a/src/views/basic/device/device-info.ts b/src/views/basic/device/device-info.ts
index 7a1c228..9db63f4 100644
--- a/src/views/basic/device/device-info.ts
+++ b/src/views/basic/device/device-info.ts
@@ -1,13 +1,13 @@
// 列表查询参数接口
export interface IListQuery {
groupId: string // 分组
- productId: string
+ productId?: string
devcode: string
imei: string
deviceType: string
- status: string
- beginCell: string // 电量
- endCell: string //
+ status?: string
+ beginCell?: string // 电量
+ endCell?: string //
offset?: number
limit?: number
sort?: string
@@ -16,22 +16,24 @@
export interface IDeviceInfo {
id: string
+ groupId: string
devcode: string
- deviceName: string
+ deviceName?: string
deviceType: string
- deviceTypeName: string
- status: string
- statusName: string
- cell: string
+ deviceTypeName?: string
+ status?: string
+ statusName?: string
+ cell?: string
imei: string
iccid: string
model: string
- modelName: string
+ modelName?: string
productId: string
- productName: string
+ productName?: string
encipherType: string
- encipherTypeName: string
+ encipherTypeName?: string
createTime: string
- createUserName: string
- dataValue: string
+ createUserId: string
+ createUserName?: string
+ dataValue?: string
}
diff --git a/src/views/basic/device/list.vue b/src/views/basic/device/list.vue
index ba00120..140ecaf 100644
--- a/src/views/basic/device/list.vue
+++ b/src/views/basic/device/list.vue
@@ -7,7 +7,7 @@
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { getDictByCode } from '@/api/system/dict'
import { exportFile } from '@/utils/exportUtils'
-import { getGroupListPage } from '@/api/basic/group'
+import { getGroupList } from '@/api/basic/group'
import { delDevice, exportDevice, getDeviceListPage } from '@/api/basic/device'
const router = useRouter()
@@ -91,7 +91,7 @@
type: 'detail',
id: row.id,
},
- path: 'list/detail',
+ path: 'detail',
})
}
@@ -198,7 +198,7 @@
})
}
const getAllGroupList = async () => {
- await getGroupListPage({ offset: 1, limit: 20 }).then((res: any) => {
+ await getGroupList({}).then((res: any) => {
if (res.code === 200) {
groupList.value = res.data.rows
}
diff --git a/src/views/basic/device/listEmbedded.vue b/src/views/basic/device/listEmbedded.vue
new file mode 100644
index 0000000..90822b4
--- /dev/null
+++ b/src/views/basic/device/listEmbedded.vue
@@ -0,0 +1,266 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 批量删除
+
+
+ 新增
+
+
+ 导入列表
+
+
+ 导出列表
+
+
+ 导入模板下载
+
+
+
+
+
+
+
+
+ {{ (searchQuery.offset! - 1) * searchQuery.limit! + scope.$index + 1 }}
+
+
+
+
+
+
+
+
+ 查看
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/basic/group/addDialog.vue b/src/views/basic/group/addDialog.vue
deleted file mode 100644
index d1f3405..0000000
--- a/src/views/basic/group/addDialog.vue
+++ /dev/null
@@ -1,189 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/basic/group/addGroupDialog.vue b/src/views/basic/group/addGroupDialog.vue
new file mode 100644
index 0000000..d1f3405
--- /dev/null
+++ b/src/views/basic/group/addGroupDialog.vue
@@ -0,0 +1,189 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.env.production b/.env.production
index ed8a601..b5508a5 100644
--- a/.env.production
+++ b/.env.production
@@ -1,9 +1,9 @@
NODE_ENV = production
# 页面标题
-VITE_APP_TITLE = 标题
+VITE_APP_TITLE = 物联网设备管理平台
# 接口请求地址,会设置到 axios 的 baseURL 参数上
-VITE_APP_API_BASEURL = http://XXXXXXX:XXXXXXX
+VITE_APP_API_BASEURL = http://111.198.10.15:12206
# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空
VITE_APP_DEBUG_TOOL =
diff --git a/src/api/basic/group.ts b/src/api/basic/group.ts
index a20dea4..8b6a2ff 100644
--- a/src/api/basic/group.ts
+++ b/src/api/basic/group.ts
@@ -9,6 +9,14 @@
data,
})
}
+// 查询分组列表 不分页
+export function getGroupList(data: object) {
+ return request({
+ url: `${prefix}/list`,
+ method: 'post',
+ data,
+ })
+}
// 查询分组详情
export function detailGroup(data: object) {
return request({
diff --git a/src/assets/icons/icon-group.svg b/src/assets/icons/icon-group.svg
new file mode 100644
index 0000000..9d3193d
--- /dev/null
+++ b/src/assets/icons/icon-group.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/icon-ota.svg b/src/assets/icons/icon-ota.svg
new file mode 100644
index 0000000..bce1df0
--- /dev/null
+++ b/src/assets/icons/icon-ota.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/router/modules/basic.ts b/src/router/modules/basic.ts
index 66fb204..2308656 100644
--- a/src/router/modules/basic.ts
+++ b/src/router/modules/basic.ts
@@ -4,9 +4,45 @@
const routes: Route.recordRaw[] = [
{
- path: '/basic',
+ path: '/basic/group',
component: Layout,
- redirect: '/group/list',
+ redirect: '/basic/group/list',
+ name: 'Group',
+ meta: {
+ title: '分组管理',
+ icon: 'ep:key',
+ auth: '/basic/group',
+ },
+ children: [
+ {
+ path: 'list',
+ name: 'GroupList',
+ component: () => import('@/views/basic/group/list.vue'),
+ meta: {
+ title: '分组管理',
+ auth: '/basic/group',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/group',
+ },
+ },
+ {
+ path: 'detail/:id?',
+ name: 'GroupInfoDetail',
+ component: () => import('@/views/basic/group/detail.vue'),
+ meta: {
+ title: '分组详情',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/group',
+ },
+ },
+ ],
+ },
+ {
+ path: '/basic/device',
+ component: Layout,
+ redirect: '/basic/device/list',
name: 'Device',
meta: {
title: '设备管理',
@@ -15,101 +51,35 @@
},
children: [
{
- path: 'group/list',
- name: 'GroupList',
- component: () => import('@/views/basic/group/list.vue'),
- meta: {
- title: '分组管理',
- auth: '/basic/group/list',
- icon: 'ep:key',
- },
- },
- {
- path: 'group/list/detail',
- name: 'GroupInfoDetail',
- component: () => import('@/views/basic/group/detail.vue'),
- meta: {
- title: '分组详情',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/basic/group/list',
- },
- },
- {
- path: 'device/list',
+ path: 'list',
name: 'DeviceList',
component: () => import('@/views/basic/device/list.vue'),
meta: {
title: '设备管理',
- auth: '/basic/device/list',
- icon: 'ep:key',
+ auth: '/basic/device',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/device',
},
},
{
- path: 'device/list/detail',
+ path: 'detail/:id?',
name: 'DeviceInfoDetail',
component: () => import('@/views/basic/device/detail.vue'),
meta: {
title: '设备详情',
sidebar: false,
breadcrumb: true,
- activeMenu: '/basic/device/list',
+ activeMenu: '/basic/device',
},
},
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoBookDetail',
- // component: () => import('@/views/equipement/info/book/detail.vue'),
- // meta: {
- // title: '设备台账管理',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/bookList',
- // },
- // },
-
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoTableDetail',
- // component: () => import('@/views/equipement/info/table/detail.vue'),
- // meta: {
- // title: '参照标准、工作标准和关键测量设备表',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/tableList',
- // },
- // },
- {
- path: 'remindList',
- name: 'EquipmentInfoRemindList',
- component: () => import('@/views/equipement/info/remind/list.vue'),
- meta: {
- title: '到期提醒列表',
- auth: '/equipment/info/remind',
- icon: 'ep:key',
- },
- },
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoRemindDetail',
- // component: () => import('@/views/equipement/info/remind/detail.vue'),
- // meta: {
- // title: '到期提醒',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/remindList',
- // },
- // },
],
},
{
- path: '/product',
+ path: '/basic/product',
component: Layout,
- redirect: '/basic/product',
- name: 'StateMaintenance',
+ redirect: '/basic/product/list',
+ name: 'Product',
meta: {
title: '产品管理',
icon: 'ep:key',
@@ -117,866 +87,53 @@
},
children: [
{
- path: '/product/list',
+ path: 'list',
name: 'ProductList',
- component: () => import('@/views/equipement/stateMaintenance/unseal/list.vue'),
+ component: () => import('@/views/basic/product/list.vue'),
meta: {
title: '产品管理',
- auth: '/product/list',
- icon: 'ep:key',
- },
- },
- {
- path: 'unseal/:type/:id?',
- name: 'UnsealDetail',
- component: () => import('@/views/equipement/stateMaintenance/unseal/edit.vue'),
- meta: {
- title: '设备启封申请',
- icon: 'ep:key',
+ auth: '/basic/product',
sidebar: false,
breadcrumb: true,
- activeMenu: '/stateMaintenance/unsealList',
+ activeMenu: '/basic/product',
},
},
+ ],
+ },
+ /*
+ {
+ path: '/product',
+ component: Layout,
+ redirect: 'product/list',
+ name: 'Product',
+ meta: {
+ title: '产品管理',
+ icon: 'ep:key',
+ auth: '/basic/product',
+ },
+ children: [
{
- path: 'unsealDoc/:type/:id?',
- name: 'UnsealDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/unseal/detail.vue'),
+ path: 'product/list',
+ name: 'ProductList',
+ component: () => import('@/views/basic/group/list.vue'),
meta: {
- title: '设备启封申请',
+ title: '产品管理',
+ auth: '/basic/product/list',
icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/unsealList',
},
},
{
- path: '/product/ota',
- name: 'ProductOTA',
- component: () => import('@/views/equipement/stateMaintenance/seal/list.vue'),
+ path: 'product/ota',
+ name: 'ProductOTAList',
+ component: () => import('@/views/basic/group/list.vue'),
meta: {
title: '远程升级',
- auth: '/product/ota',
+ auth: '/basic/product/ota',
icon: 'ep:key',
},
},
- {
- path: 'seal/:type/:id?',
- name: 'SealDetail',
- component: () => import('@/views/equipement/stateMaintenance/seal/edit.vue'),
- meta: {
- title: '设备封存申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/sealList',
- },
- },
- {
- path: 'sealDoc/:type/:id?',
- name: 'SealDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/seal/detail.vue'),
- meta: {
- title: '设备封存申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/sealList',
- },
- },
- {
- path: 'banList',
- name: 'BanList',
- component: () => import('@/views/equipement/stateMaintenance/ban/list.vue'),
- meta: {
- title: '设备禁用申请',
- auth: '/equipment/stateMaintenance/ban',
- icon: 'ep:key',
- },
- },
- {
- path: 'ban/:type/:id?',
- name: 'BanDetail',
- component: () => import('@/views/equipement/stateMaintenance/ban/edit.vue'),
- meta: {
- title: '设备禁用申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/banList',
- },
- },
- {
- path: 'banDoc/:type/:id?',
- name: 'BanDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/ban/detail.vue'),
- meta: {
- title: '设备禁用申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/banList',
- },
- },
- {
- path: 'scrapList',
- name: 'ScrapList',
- component: () => import('@/views/equipement/stateMaintenance/scrap/list.vue'),
- meta: {
- title: '设备报废申请',
- auth: '/equipment/stateMaintenance/scrap',
- icon: 'ep:key',
- },
- },
- {
- path: 'scrap/:type/:id?',
- name: 'ScrapDetail',
- component: () => import('@/views/equipement/stateMaintenance/scrap/edit.vue'),
- meta: {
- title: '设备报废申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/scrapList',
- },
- },
- {
- path: 'scrapDoc/:type/:id?',
- name: 'ScrapDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/scrap/detail.vue'),
- meta: {
- title: '设备报废申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/scrapList',
- },
- },
],
- },
- {
- path: '/standard',
- component: Layout,
- redirect: '/standard/bookInfoList',
- name: 'Standard',
- meta: {
- title: '标准装置管理',
- icon: 'ep:key',
- auth: '/standard',
- },
- children: [
- {
- path: 'bookInfoList',
- name: 'BookInfoList',
- component: () => import('@/views/equipement/standard/book/list.vue'),
- meta: {
- title: '标准装置台账信息列表',
- auth: '/standard/bookInfo',
- icon: 'ep:key',
- },
- },
- {
- path: ':type/:id?',
- name: 'StandardBookInfoList',
- component: () => import('@/views/equipement/standard/book/detail.vue'),
- meta: {
- title: '标准装置台账信息',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/bookInfoList',
- },
- },
- {
- path: '/standardEquipmentConfig/:type/:id?',
- name: 'StandardBookInfoConfig',
- component: () => import('@/views/equipement/standard/book/components/config.vue'),
- meta: {
- title: '配置核查项',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/bookInfoList',
- },
- },
- {
- path: 'standardRemindList',
- name: 'StandardRemindList',
- component: () => import('@/views/equipement/standard/remind/list.vue'),
- meta: {
- title: '到期提醒',
- auth: '/standard/remind',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkDataList',
- name: 'CheckDataList',
- component: () => import('@/views/equipement/standard/checkData/list.vue'),
- meta: {
- title: '核查数据管理',
- auth: '/standard/checkData',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkData/:type/:id?',
- name: 'CheckDataDetail',
- component: () => import('@/views/equipement/standard/checkData/detail.vue'),
- meta: {
- title: '核查数据管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkDataList',
- },
- },
- {
- path: 'checkRecordList',
- name: 'CheckRecordList',
- component: () => import('@/views/equipement/standard/checkRecord/list.vue'),
- meta: {
- title: '核查记录管理',
- auth: '/standard/checkRecord',
- icon: 'ep:key',
- },
- },
- {
- path: '/equipmentCheckRecord/:type/:id?',
- name: 'CheckRecordDetail',
- component: () => import('@/views/equipement/standard/checkRecord/detail.vue'),
- meta: {
- title: '核查记录管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkRecordList',
- },
- },
- {
- path: 'checkItemClassificationList',
- name: 'CheckItemClassificationList',
- component: () => import('@/views/equipement/standard/checkItemClassification/list.vue'),
- meta: {
- title: '核查项分类管理',
- auth: '/standard/checkItemClassification',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkItemClassification/:type/:id?',
- name: 'CheckItemClassificationDetail',
- component: () => import('@/views/equipement/standard/checkItemClassification/detail.vue'),
- meta: {
- title: '核查项分类管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkItemClassificationList',
- },
- },
- {
- path: 'standardBuildList',
- name: 'StandardBuildList',
- component: () => import('@/views/equipement/standard/build/list.vue'),
- meta: {
- title: '建标管理',
- auth: '/standard/build',
- icon: 'ep:key',
- },
- },
- {
- path: '/build/:type/:id?',
- name: 'StandardBuildEdit',
- component: () => import('@/views/equipement/standard/build/edit.vue'),
- meta: {
- title: '建标管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/standardBuildList',
- },
- },
- {
- path: '/buildDoc/:type/:id?',
- name: 'StandardBuildDetail',
- component: () => import('@/views/equipement/standard/build/detail.vue'),
- meta: {
- title: '建标管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/standardBuildList',
- },
- },
- ],
- },
- {
- path: '/standardStateMaintenance',
- component: Layout,
- redirect: '/standardStateMaintenance/changeList',
- name: 'StandardStateMaintenance',
- meta: {
- title: '标准装置状态维护',
- icon: 'ep:key',
- auth: '/standard/stateMaintenance',
- },
- children: [
- {
- path: 'changeList',
- name: 'ChangeList',
- component: () => import('@/views/equipement/StandardStateMaintenance/change/list.vue'),
- meta: {
- title: '更换申请',
- auth: '/standard/change',
- icon: 'ep:key',
- },
- },
- {
- path: 'change/:type/:id?',
- name: 'ChangeDetail',
- component: () => import('@/views/equipement/StandardStateMaintenance/change/detail.vue'),
- meta: {
- title: '更换申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/changeList',
- },
- },
- {
- path: 'reviewList',
- name: 'ReviewList',
- component: () => import('@/views/equipement/StandardStateMaintenance/review/list.vue'),
- meta: {
- title: '复查申请',
- auth: '/standard/review',
- icon: 'ep:key',
- },
- },
- {
- path: 'review/:type/:id?',
- name: 'ReviewDetail',
- component: () => import('@/views/equipement/standardStateMaintenance/review/detail.vue'),
- meta: {
- title: '复查申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/reviewList',
- },
- },
- {
- path: 'revocationList',
- name: 'RevocationList',
- component: () => import('@/views/equipement/StandardStateMaintenance/revocation/list.vue'),
- meta: {
- title: '撤销申请',
- auth: '/standard/revocation',
- icon: 'ep:key',
- },
- },
- {
- path: 'revocation/:type/:id?',
- name: 'RevocationDetail',
- component: () => import('@/views/equipement/StandardStateMaintenance/revocation/detail.vue'),
- meta: {
- title: '撤销申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/revocationList',
- },
- },
- ],
- },
- {
- path: '/source',
- component: Layout,
- redirect: '/source/planList',
- name: 'Source',
- meta: {
- title: '溯源管理',
- icon: 'ep:key',
- auth: '/equipment/source',
- },
- children: [
- {
- path: 'planList',
- name: 'EquipmentSourcePlanList',
- component: () => import('@/views/equipement/source/plan/list.vue'),
- meta: {
- title: '溯源计划管理',
- auth: '/equipment/source/plan',
- icon: 'ep:key',
- },
- },
- {
- path: 'plan/:type/:id?',
- name: 'EquipmentSourcePlanDetail',
- component: () => import('@/views/equipement/source/plan/detail.vue'),
- meta: {
- title: '溯源计划管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/planList',
- },
- },
- {
- path: 'resultConfirmList',
- name: 'EquipmentSourceResultConfirmList',
- component: () => import('@/views/equipement/source/resultConfirm/list.vue'),
- meta: {
- title: '溯源结果确认',
- auth: '/equipment/source/resultConfirm',
- icon: 'ep:key',
- },
- },
- {
- path: 'resultConfirm/:type/:id?',
- name: 'EquipmentSourceResultConfirmEdit',
- component: () => import('@/views/equipement/source/resultConfirm/edit.vue'),
- meta: {
- title: '溯源结果确认',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultConfirmList',
- },
- },
- {
- path: 'resultConfirmDoc/:type/:id?',
- name: 'EquipmentSourceResultConfirmDetail',
- component: () => import('@/views/equipement/source/resultConfirm/detail.vue'),
- meta: {
- title: '溯源结果确认',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultConfirmList',
- },
- },
- {
- path: 'resultCompleteList',
- name: 'EquipmentSourceResultCompleteList',
- component: () => import('@/views/equipement/source/resultComplete/list.vue'),
- meta: {
- title: '溯源结果完成情况',
- auth: '/equipment/source/resultComplete',
- icon: 'ep:key',
- },
- },
- {
- path: 'resultComplete/:type/:id?',
- name: 'EquipmentSourceResultCompleteEdit',
- component: () => import('@/views/equipement/source/resultComplete/edit.vue'),
- meta: {
- title: '溯源结果完成情况',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultCompleteList',
- },
- },
- {
- path: 'resultCompleteDoc/:type/:id?',
- name: 'EquipmentSourceResultCompleteDetail',
- component: () => import('@/views/equipement/source/resultComplete/detail.vue'),
- meta: {
- title: '溯源结果完成情况',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultCompleteList',
- },
- },
- {
- path: 'certList',
- name: 'EquipmentSourceCertList',
- component: () => import('@/views/equipement/source/cert/list.vue'),
- meta: {
- title: '溯源证书管理',
- auth: '/equipment/source/cert',
- icon: 'ep:key',
- },
- },
- {
- path: 'cert/:type/:id?',
- name: 'EquipmentSourceCertDetail',
- component: () => import('@/views/equipement/source/cert/detail.vue'),
- meta: {
- title: '溯源证书管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/certList',
- },
- },
- {
- path: 'changeList',
- name: 'EquipmentSourceChangeList',
- component: () => import('@/views/equipement/source/change/list.vue'),
- meta: {
- title: '溯源链变更管理',
- auth: '/equipment/source/change',
- icon: 'ep:key',
- },
- },
- {
- path: 'sourceChange/:type/:id?',
- name: 'EquipmentSourceChangeDetail',
- component: () => import('@/views/equipement/source/change/edit.vue'),
- meta: {
- title: '溯源链变更管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/changeList',
- },
- },
- ],
- },
- {
- path: '/resume',
- component: Layout,
- redirect: '/resume/planList',
- name: 'Resume',
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- auth: '/equipment/resume',
- },
- children: [
- {
- path: 'unpackList',
- name: 'EquipmentResumeUnpackList',
- component: () => import('@/views/equipement/resume/unpack/list.vue'),
- meta: {
- title: '开箱验收管理',
- auth: '/equipment/resume/unpack',
- icon: 'ep:key',
- },
- },
- {
- path: 'unpack/:type/:id?',
- name: 'EquipmentResumeUnpackEdit',
- component: () => import('@/views/equipement/resume/unpack/edit.vue'),
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/unpackList',
- },
- },
- {
- path: '/unpackDoc/:type/:id?',
- name: 'EquipmentResumeUnpackDetail',
- component: () => import('@/views/equipement/resume/unpack/detail.vue'),
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/unpackList',
- },
- },
- {
- path: 'lendList',
- name: 'EquipmentResumeLendList',
- component: () => import('@/views/equipement/resume/lend/list.vue'),
- meta: {
- title: '设备借出管理',
- auth: '/equipment/resume/lend',
- icon: 'ep:key',
- },
- },
- {
- path: 'lend/:type/:id?',
- name: 'EquipmentResumeLendEdit',
- component: () => import('@/views/equipement/resume/lend/edit.vue'),
- meta: {
- title: '设备借出管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/lendList',
- },
- },
- {
- path: 'lendDoc/:type/:id?',
- name: 'EquipmentResumeLendDetail',
- component: () => import('@/views/equipement/resume/lend/detail.vue'),
- meta: {
- title: '设备借出管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/lendList',
- },
- },
- {
- path: 'borrowList',
- name: 'EquipmentResumeBorrowList',
- component: () => import('@/views/equipement/resume/borrow/list.vue'),
- meta: {
- title: '设备借用管理',
- auth: '/equipment/resume/borrow',
- icon: 'ep:key',
- },
- },
- {
- path: 'borrow/:type/:id?',
- name: 'EquipmentResumeBorrowEdit',
- component: () => import('@/views/equipement/resume/borrow/edit.vue'),
- meta: {
- title: '设备借用管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/borrowList',
- },
- },
- {
- path: 'borrowDoc/:type/:id?',
- name: 'EquipmentResumeBorrowDetail',
- component: () => import('@/views/equipement/resume/borrow/detail.vue'),
- meta: {
- title: '设备借用管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/borrowList',
- },
- },
- {
- path: 'encasementList',
- name: 'EquipmentResumeEncasementList',
- component: () => import('@/views/equipement/resume/encasement/list.vue'),
- meta: {
- title: '设备运输装箱管理',
- auth: '/equipment/resume/encasement',
- icon: 'ep:key',
- },
- },
- {
- path: 'encasement/:type/:id?',
- name: 'EquipmentResumeEncasementDetail',
- component: () => import('@/views/equipement/resume/encasement/edit.vue'),
- meta: {
- title: '设备运输装箱管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/encasementList',
- },
- },
- {
- path: 'encasementDoc/:type/:id?',
- name: 'EquipmentResumeEncasementDetailDoc',
- component: () => import('@/views/equipement/resume/encasement/detail.vue'),
- meta: {
- title: '设备运输装箱管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/encasementList',
- },
- },
- {
- path: 'courseList',
- name: 'EquipmentResumeCourseList',
- component: () => import('@/views/equipement/resume/course/list.vue'),
- meta: {
- title: '设备运输过程管理',
- auth: '/equipment/resume/course',
- icon: 'ep:key',
- },
- },
- {
- path: 'course/:type/:id?',
- name: 'EquipmentResumeCourseDetail',
- component: () => import('@/views/equipement/resume/course/edit.vue'),
- meta: {
- title: '设备运输过程管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/courseList',
- },
- },
- {
- path: 'courseDoc/:type/:id?',
- name: 'EquipmentResumeCourseDetailDoc',
- component: () => import('@/views/equipement/resume/course/detail.vue'),
- meta: {
- title: '设备运输过程管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/courseList',
- },
- },
- {
- path: 'errorList',
- name: 'EquipmentResumeErrorList',
- component: () => import('@/views/equipement/resume/error/list.vue'),
- meta: {
- title: '异常情况处置管理',
- auth: '/equipment/resume/error',
- icon: 'ep:key',
- },
- },
- {
- path: 'error/:type/:id?',
- name: 'EquipmentResumeErrorEdit',
- component: () => import('@/views/equipement/resume/error/edit.vue'),
- meta: {
- title: '异常情况处置管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/errorList',
- },
- },
- {
- path: 'errorDoc/:type/:id?',
- name: 'EquipmentResumeErrorDetail',
- component: () => import('@/views/equipement/resume/error/detail.vue'),
- meta: {
- title: '异常情况处置管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/errorList',
- },
- },
- {
- path: 'weekList',
- name: 'EquipmentResumeWeekList',
- component: () => import('@/views/equipement/resume/week/list.vue'),
- meta: {
- title: '周维护',
- auth: '/equipment/resume/week',
- icon: 'ep:key',
- },
- },
- {
- path: 'week/:type/:id?',
- name: 'EquipmentResumeWeekDetail',
- component: () => import('@/views/equipement/resume/week/detail.vue'),
- meta: {
- title: '周维护',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/weekList',
- },
- },
- {
- path: 'monthList',
- name: 'EquipmentResumeMonthList',
- component: () => import('@/views/equipement/resume/month/list.vue'),
- meta: {
- title: '月保养',
- auth: '/equipment/resume/month',
- icon: 'ep:key',
- },
- },
- {
- path: 'month/:type/:id?',
- name: 'EquipmentResumeMonthDetail',
- component: () => import('@/views/equipement/resume/month/detail.vue'),
- meta: {
- title: '月保养',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/monthList',
- },
- },
- ],
- },
- {
- path: '/monitor',
- component: Layout,
- redirect: '/monitor/deviceList',
- name: 'Monitor',
- meta: {
- title: '监测测试管理',
- icon: 'ep:key',
- auth: '/equipment/monitor',
- },
- children: [
- {
- path: 'deviceList',
- name: 'EquipmentResumeDeviceList',
- component: () => import('@/views/equipement/monitor/device/list.vue'),
- meta: {
- title: '监测设备',
- auth: '/equipment/monitor/device',
- icon: 'ep:key',
- },
- },
- {
- path: 'device/:type/:id?',
- name: 'EquipmentResumeDeviceDetail',
- component: () => import('@/views/equipement/monitor/device/detail.vue'),
- meta: {
- title: '监测设备',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/deviceList',
- },
- },
- {
- path: 'radioList',
- name: 'EquipmentResumeRadioList',
- component: () => import('@/views/equipement/monitor/radio/list.vue'),
- meta: {
- title: '无线电库',
- auth: '/equipment/monitor/radio',
- icon: 'ep:key',
- },
- },
- {
- path: 'radio/:type/:id?',
- name: 'EquipmentResumeRadioDetail',
- component: () => import('@/views/equipement/monitor/radio/detail.vue'),
- meta: {
- title: '无线电库',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/radioList',
- },
- },
- {
- path: 'taskList',
- name: 'EquipmentResumeTaskList',
- component: () => import('@/views/equipement/monitor/task/list.vue'),
- meta: {
- title: '任务监测',
- auth: '/equipment/monitor/task',
- icon: 'ep:key',
- },
- },
- {
- path: 'task/:type/:id?',
- name: 'EquipmentResumeTaskDetail',
- component: () => import('@/views/equipement/monitor/task/detail.vue'),
- meta: {
- title: '任务监测',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/taskList',
- },
- },
- ],
- },
+ }, */
]
export default routes
diff --git a/src/views/basic/device/addDeviceDialog.vue b/src/views/basic/device/addDeviceDialog.vue
new file mode 100644
index 0000000..018f123
--- /dev/null
+++ b/src/views/basic/device/addDeviceDialog.vue
@@ -0,0 +1,220 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/basic/device/detail.vue b/src/views/basic/device/detail.vue
index e43ca3c..c24bb42 100644
--- a/src/views/basic/device/detail.vue
+++ b/src/views/basic/device/detail.vue
@@ -25,6 +25,7 @@
const deviceInfo = ref({
id: '',
+ groupId: '',
devcode: '',
deviceName: '',
deviceType: '',
@@ -41,6 +42,7 @@
encipherType: '',
encipherTypeName: '',
createTime: '',
+ createUserId: '',
createUserName: '',
dataValue: '',
})
diff --git a/src/views/basic/device/device-info.ts b/src/views/basic/device/device-info.ts
index 7a1c228..9db63f4 100644
--- a/src/views/basic/device/device-info.ts
+++ b/src/views/basic/device/device-info.ts
@@ -1,13 +1,13 @@
// 列表查询参数接口
export interface IListQuery {
groupId: string // 分组
- productId: string
+ productId?: string
devcode: string
imei: string
deviceType: string
- status: string
- beginCell: string // 电量
- endCell: string //
+ status?: string
+ beginCell?: string // 电量
+ endCell?: string //
offset?: number
limit?: number
sort?: string
@@ -16,22 +16,24 @@
export interface IDeviceInfo {
id: string
+ groupId: string
devcode: string
- deviceName: string
+ deviceName?: string
deviceType: string
- deviceTypeName: string
- status: string
- statusName: string
- cell: string
+ deviceTypeName?: string
+ status?: string
+ statusName?: string
+ cell?: string
imei: string
iccid: string
model: string
- modelName: string
+ modelName?: string
productId: string
- productName: string
+ productName?: string
encipherType: string
- encipherTypeName: string
+ encipherTypeName?: string
createTime: string
- createUserName: string
- dataValue: string
+ createUserId: string
+ createUserName?: string
+ dataValue?: string
}
diff --git a/src/views/basic/device/list.vue b/src/views/basic/device/list.vue
index ba00120..140ecaf 100644
--- a/src/views/basic/device/list.vue
+++ b/src/views/basic/device/list.vue
@@ -7,7 +7,7 @@
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { getDictByCode } from '@/api/system/dict'
import { exportFile } from '@/utils/exportUtils'
-import { getGroupListPage } from '@/api/basic/group'
+import { getGroupList } from '@/api/basic/group'
import { delDevice, exportDevice, getDeviceListPage } from '@/api/basic/device'
const router = useRouter()
@@ -91,7 +91,7 @@
type: 'detail',
id: row.id,
},
- path: 'list/detail',
+ path: 'detail',
})
}
@@ -198,7 +198,7 @@
})
}
const getAllGroupList = async () => {
- await getGroupListPage({ offset: 1, limit: 20 }).then((res: any) => {
+ await getGroupList({}).then((res: any) => {
if (res.code === 200) {
groupList.value = res.data.rows
}
diff --git a/src/views/basic/device/listEmbedded.vue b/src/views/basic/device/listEmbedded.vue
new file mode 100644
index 0000000..90822b4
--- /dev/null
+++ b/src/views/basic/device/listEmbedded.vue
@@ -0,0 +1,266 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 批量删除
+
+
+ 新增
+
+
+ 导入列表
+
+
+ 导出列表
+
+
+ 导入模板下载
+
+
+
+
+
+
+
+
+ {{ (searchQuery.offset! - 1) * searchQuery.limit! + scope.$index + 1 }}
+
+
+
+
+
+
+
+
+ 查看
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/basic/group/addDialog.vue b/src/views/basic/group/addDialog.vue
deleted file mode 100644
index d1f3405..0000000
--- a/src/views/basic/group/addDialog.vue
+++ /dev/null
@@ -1,189 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/basic/group/addGroupDialog.vue b/src/views/basic/group/addGroupDialog.vue
new file mode 100644
index 0000000..d1f3405
--- /dev/null
+++ b/src/views/basic/group/addGroupDialog.vue
@@ -0,0 +1,189 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/basic/group/detail.vue b/src/views/basic/group/detail.vue
index d88ad97..eec4dd8 100644
--- a/src/views/basic/group/detail.vue
+++ b/src/views/basic/group/detail.vue
@@ -3,6 +3,7 @@
import { ElLoading, ElMessage, ElMessageBox, dayjs } from 'element-plus'
import type { IGroupInfo } from './group-info'
import { detailGroup } from '@/api/basic/group'
+import DeviceListEmbedded from '@/views/basic/device/listEmbedded.vue'
// 从路由中传过来的参数
const type = ref('')
@@ -12,155 +13,52 @@
const router = useRouter()
const title = ref('')
-const basicFormRef = ref()
-const refFilterDialog = ref()
+const radioItems = ref([
+ { name: '设备管理', value: 'group-device' },
+ { name: '订阅管理', value: 'group-subscribe' },
+])
+const current = ref('')
+const currentLabel = ref('')
-const sealInfo = ref({
+const basicFormRef = ref()
+
+const groupInfo = ref({
id: '',
- sealNo: '',
- sealName: '',
- sealType: '',
- sealTypeName: '',
- status: '',
- statusName: '',
- applyTime: '',
- abandonTime: '',
- ratifyTime: '',
+ groupNo: '',
+ groupName: '',
+ deptid: '',
+ deptName: '',
+ descn: '',
+ createUserId: '',
createTime: '',
- approverId: '',
- approverName: '',
- minioFileName: '',
- minioFileUrl: '',
})
-const sealInfoRules = ref({
- sealNo: [{ required: true, message: '印章编号不能为空', trigger: 'blur' }],
- sealName: [{ required: true, message: '印章名称不能为空', trigger: 'blur' }],
- sealType: [{ required: true, message: '印章类型不能为空,请选择', trigger: ['blur', 'change'] }],
- approverId: [{ required: true, message: '批准人不能为空', trigger: ['blur', 'change'] }],
- applyTime: [{ required: true, message: '申请时间不能为空,请选择', trigger: 'blur' }],
- ratifyTime: [{ required: true, message: '批准时间不能为空,请选择', trigger: 'blur' }],
- status: [{ required: true, message: '在用状态不能为空,请选择', trigger: ['blur', 'change'] }],
- minioFileName: [{ required: true, message: '图形不能为空,请选择一个文件上传', trigger: 'blur' }],
-}) // 表单验证规则
-
-const minioFileUrl = ref('')
-
// 逻辑
-
const resetForm = () => {
- sessionStorage.removeItem('sealInfo') // 返回列表时 将缓存中的数据删除
router.go(-1)
}
-// 添加
-const saveSealInfoForm = () => {
- // 将创建时间改为提交的时间
- sealInfo.value.createTime = dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss')
- addSealInfo(sealInfo.value).then((res) => {
- if (res.code === 200) {
- // 提示保存成功
- ElMessage.success('保存成功')
- type.value = 'detail'
- title.value = '印章管理登记(详情)'
- }
- else {
- // 提示失败信息
- ElMessage.error(`保存失败:${res.message}`)
- }
- })
-}
-// 编辑
-const updateSealInfoById = () => {
- updateSealInfo(sealInfo.value).then((res) => {
- if (res.code === 200) {
- // 提示保存成功
- ElMessage.success('保存成功')
- type.value = 'detail'
- title.value = '印章管理登记(详情)'
- }
- else {
- // 提示失败信息
- ElMessage.error(`保存失败:${res.message}`)
- }
- })
-}
-
-// 保存
-const saveForm = async () => {
- if (!basicFormRef) { return }
-
- await basicFormRef.value.validate((valid: boolean, fields: any) => {
- if (valid === true) {
- ElMessageBox.confirm(
- '确认保存吗?',
- '提示',
- {
- confirmButtonText: '确认',
- cancelButtonText: '取消',
- type: 'warning',
- },
- ).then(() => {
- if (type.value === 'create') {
- saveSealInfoForm()
- }
- else if (type.value === 'update') {
- updateSealInfoById()
- }
- })
- }
- })
-}
-
-// 上传请求
-const uploadQuarterlyEvaluateFile: any = (file: any) => {
- const fd = new FormData()
- fd.append('multipartFile', file.file)
- const loading = ElLoading.service({
- lock: true,
- background: 'rgba(255, 255, 255, 0.8)',
- })
- UploadFile(fd).then((res) => {
- if (res.code === 200) {
- ElMessage.success('上传成功')
- sealInfo.value.minioFileName = res.data[0]
- loading.close()
-
- basicFormRef.value.validateField('minioFileName', () => {})
- }
- }).catch(() => {
- loading.close()
- ElMessage.error('上传失败')
- })
-}
-
-// 上传之前的验证
-const beforeAvatarUpload: UploadProps['beforeUpload'] = (rawFile) => {
- if (rawFile.type !== 'image/jpeg' && rawFile.type !== 'image/png' && rawFile.type !== 'image/jpg') {
- ElMessage.error('只能上传png/jpeg/jpg格式的图片')
- return false
+// 详情页的各个tab切换操作
+const radioChangeHandler = (newVal: string | number | boolean) => {
+ const radioTarget = radioItems.value.filter(item => item.name === newVal)
+ if (radioTarget.length > 0) {
+ currentLabel.value = radioTarget[0].name
+ current.value = radioTarget[0].value
}
- else if (rawFile.size / 1024 / 1024 > 2) {
- ElMessage.error('图片不能大于2MB')
- return false
+ else {
+ currentLabel.value = radioItems.value[0].name
+ current.value = radioItems.value[0].value
}
- return true
}
-// 预览文件
-const previewSealImage = (url: string) => {
- console.log(url)
-}
-
-// 从用户账号中筛选进行人员登记
-const showFilterSysUser = () => {
- refFilterDialog.value.showOrHideFilterDialog(true)
-}
-
-const recordSelectedHandler = (row: any) => {
- refFilterDialog.value.showOrHideFilterDialog(false)
- sealInfo.value.approverName = row.name
- sealInfo.value.approverId = row.id
+// 查询详情
+const detailById = (id: string) => {
+ detailGroup({ id }).then((res) => {
+ if (res.code === 200) {
+ groupInfo.value = res.data
+ groupInfo.value.createTime = dayjs(groupInfo.value.createTime).format('YYYY-MM-DD') === 'Invalid Date' ? '' : dayjs(groupInfo.value.createTime).format('YYYY-MM-DD HH:mm:ss')
+ }
+ })
}
const initDialog = (params: any) => {
@@ -168,26 +66,16 @@
type.value = params.type
id.value = params.id !== undefined ? params.id : ''
+ // 默认显示第一个tab内容
+ current.value = radioItems.value[0].value
+ currentLabel.value = radioItems.value[0].name
+
switch (params.type) {
- case 'create' :
- title.value = '印章管理登记(新增)'
-
- // 创建时间设置默认值
- sealInfo.value.createTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
-
- break
- case 'update':
- title.value = '印章管理登记(编辑)'
- id.value = params.id
-
- sealInfo.value = JSON.parse(sessionStorage.getItem('sealInfo')!)
-
- break
case 'detail':
- title.value = '印章管理登记(详情)'
+ title.value = '分组详情'
id.value = params.id
- sealInfo.value = JSON.parse(sessionStorage.getItem('sealInfo')!)
+ detailById(id.value)
break
default:
@@ -196,44 +84,6 @@
}
}
-// 监听 显示中文 立即监听
-watch(() => sealInfo.value.sealType, (newVal) => {
- if (sealTypeDict.value.length === 0) {
- sealTypeDict.value = JSON.parse(sessionStorage.getItem('bizSealType')!)
- }
- const targetList = sealTypeDict.value.filter(item => item.value === newVal)
- if (targetList.length > 0) {
- sealInfo.value.sealTypeName = targetList[0].name
- }
- else {
- sealInfo.value.sealTypeName = ''
- }
-}, { immediate: true })
-
-// 监听 显示中文 立即监听
-watch(() => sealInfo.value.status, (newVal) => {
- if (sealStatusDict.value.length === 0) {
- sealStatusDict.value = JSON.parse(sessionStorage.getItem('bizSealStatus')!)
- }
- const targetList = sealStatusDict.value.filter(item => item.value === newVal)
- if (targetList.length > 0) {
- sealInfo.value.statusName = targetList[0].name
- }
- else {
- sealInfo.value.statusName = ''
- }
-}, { immediate: true })
-
-watch(() => sealInfo.value.minioFileName, (newVal) => {
- if (newVal !== '') {
- getPhotoUrl(newVal).then((res) => {
- if (res.code === 200) {
- minioFileUrl.value = res.data
- }
- })
- }
-})
-
onMounted(async () => {
initDialog(route.query)
})
@@ -243,85 +93,38 @@
-
- 保存
-
关闭
-
+
-
-
-
-
-
-
+
+ {{ groupInfo.groupNo }}
-
-
-
-
-
-
+
+ {{ groupInfo.groupName }}
-
-
-
-
-
-
-
-
-
-
-
-
+
+ {{ groupInfo.deptName }}
-
-
-
-
- 选择
-
-
-
-
-
-
-
-
+
+ {{ groupInfo.createTime }}
@@ -329,62 +132,28 @@
-
-
-
-
-
-
-
-
-
+
+ {{ groupInfo.descn }}
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ 敬请期待
+
+
+
-
-
-
-
-./group-info
diff --git a/.env.production b/.env.production
index ed8a601..b5508a5 100644
--- a/.env.production
+++ b/.env.production
@@ -1,9 +1,9 @@
NODE_ENV = production
# 页面标题
-VITE_APP_TITLE = 标题
+VITE_APP_TITLE = 物联网设备管理平台
# 接口请求地址,会设置到 axios 的 baseURL 参数上
-VITE_APP_API_BASEURL = http://XXXXXXX:XXXXXXX
+VITE_APP_API_BASEURL = http://111.198.10.15:12206
# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空
VITE_APP_DEBUG_TOOL =
diff --git a/src/api/basic/group.ts b/src/api/basic/group.ts
index a20dea4..8b6a2ff 100644
--- a/src/api/basic/group.ts
+++ b/src/api/basic/group.ts
@@ -9,6 +9,14 @@
data,
})
}
+// 查询分组列表 不分页
+export function getGroupList(data: object) {
+ return request({
+ url: `${prefix}/list`,
+ method: 'post',
+ data,
+ })
+}
// 查询分组详情
export function detailGroup(data: object) {
return request({
diff --git a/src/assets/icons/icon-group.svg b/src/assets/icons/icon-group.svg
new file mode 100644
index 0000000..9d3193d
--- /dev/null
+++ b/src/assets/icons/icon-group.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/icon-ota.svg b/src/assets/icons/icon-ota.svg
new file mode 100644
index 0000000..bce1df0
--- /dev/null
+++ b/src/assets/icons/icon-ota.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/router/modules/basic.ts b/src/router/modules/basic.ts
index 66fb204..2308656 100644
--- a/src/router/modules/basic.ts
+++ b/src/router/modules/basic.ts
@@ -4,9 +4,45 @@
const routes: Route.recordRaw[] = [
{
- path: '/basic',
+ path: '/basic/group',
component: Layout,
- redirect: '/group/list',
+ redirect: '/basic/group/list',
+ name: 'Group',
+ meta: {
+ title: '分组管理',
+ icon: 'ep:key',
+ auth: '/basic/group',
+ },
+ children: [
+ {
+ path: 'list',
+ name: 'GroupList',
+ component: () => import('@/views/basic/group/list.vue'),
+ meta: {
+ title: '分组管理',
+ auth: '/basic/group',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/group',
+ },
+ },
+ {
+ path: 'detail/:id?',
+ name: 'GroupInfoDetail',
+ component: () => import('@/views/basic/group/detail.vue'),
+ meta: {
+ title: '分组详情',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/group',
+ },
+ },
+ ],
+ },
+ {
+ path: '/basic/device',
+ component: Layout,
+ redirect: '/basic/device/list',
name: 'Device',
meta: {
title: '设备管理',
@@ -15,101 +51,35 @@
},
children: [
{
- path: 'group/list',
- name: 'GroupList',
- component: () => import('@/views/basic/group/list.vue'),
- meta: {
- title: '分组管理',
- auth: '/basic/group/list',
- icon: 'ep:key',
- },
- },
- {
- path: 'group/list/detail',
- name: 'GroupInfoDetail',
- component: () => import('@/views/basic/group/detail.vue'),
- meta: {
- title: '分组详情',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/basic/group/list',
- },
- },
- {
- path: 'device/list',
+ path: 'list',
name: 'DeviceList',
component: () => import('@/views/basic/device/list.vue'),
meta: {
title: '设备管理',
- auth: '/basic/device/list',
- icon: 'ep:key',
+ auth: '/basic/device',
+ sidebar: false,
+ breadcrumb: true,
+ activeMenu: '/basic/device',
},
},
{
- path: 'device/list/detail',
+ path: 'detail/:id?',
name: 'DeviceInfoDetail',
component: () => import('@/views/basic/device/detail.vue'),
meta: {
title: '设备详情',
sidebar: false,
breadcrumb: true,
- activeMenu: '/basic/device/list',
+ activeMenu: '/basic/device',
},
},
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoBookDetail',
- // component: () => import('@/views/equipement/info/book/detail.vue'),
- // meta: {
- // title: '设备台账管理',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/bookList',
- // },
- // },
-
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoTableDetail',
- // component: () => import('@/views/equipement/info/table/detail.vue'),
- // meta: {
- // title: '参照标准、工作标准和关键测量设备表',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/tableList',
- // },
- // },
- {
- path: 'remindList',
- name: 'EquipmentInfoRemindList',
- component: () => import('@/views/equipement/info/remind/list.vue'),
- meta: {
- title: '到期提醒列表',
- auth: '/equipment/info/remind',
- icon: 'ep:key',
- },
- },
- // {
- // path: ':type/:id?',
- // name: 'EquipmentInfoRemindDetail',
- // component: () => import('@/views/equipement/info/remind/detail.vue'),
- // meta: {
- // title: '到期提醒',
- // icon: 'ep:key',
- // sidebar: false,
- // breadcrumb: true,
- // activeMenu: '/equipmentInfo/remindList',
- // },
- // },
],
},
{
- path: '/product',
+ path: '/basic/product',
component: Layout,
- redirect: '/basic/product',
- name: 'StateMaintenance',
+ redirect: '/basic/product/list',
+ name: 'Product',
meta: {
title: '产品管理',
icon: 'ep:key',
@@ -117,866 +87,53 @@
},
children: [
{
- path: '/product/list',
+ path: 'list',
name: 'ProductList',
- component: () => import('@/views/equipement/stateMaintenance/unseal/list.vue'),
+ component: () => import('@/views/basic/product/list.vue'),
meta: {
title: '产品管理',
- auth: '/product/list',
- icon: 'ep:key',
- },
- },
- {
- path: 'unseal/:type/:id?',
- name: 'UnsealDetail',
- component: () => import('@/views/equipement/stateMaintenance/unseal/edit.vue'),
- meta: {
- title: '设备启封申请',
- icon: 'ep:key',
+ auth: '/basic/product',
sidebar: false,
breadcrumb: true,
- activeMenu: '/stateMaintenance/unsealList',
+ activeMenu: '/basic/product',
},
},
+ ],
+ },
+ /*
+ {
+ path: '/product',
+ component: Layout,
+ redirect: 'product/list',
+ name: 'Product',
+ meta: {
+ title: '产品管理',
+ icon: 'ep:key',
+ auth: '/basic/product',
+ },
+ children: [
{
- path: 'unsealDoc/:type/:id?',
- name: 'UnsealDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/unseal/detail.vue'),
+ path: 'product/list',
+ name: 'ProductList',
+ component: () => import('@/views/basic/group/list.vue'),
meta: {
- title: '设备启封申请',
+ title: '产品管理',
+ auth: '/basic/product/list',
icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/unsealList',
},
},
{
- path: '/product/ota',
- name: 'ProductOTA',
- component: () => import('@/views/equipement/stateMaintenance/seal/list.vue'),
+ path: 'product/ota',
+ name: 'ProductOTAList',
+ component: () => import('@/views/basic/group/list.vue'),
meta: {
title: '远程升级',
- auth: '/product/ota',
+ auth: '/basic/product/ota',
icon: 'ep:key',
},
},
- {
- path: 'seal/:type/:id?',
- name: 'SealDetail',
- component: () => import('@/views/equipement/stateMaintenance/seal/edit.vue'),
- meta: {
- title: '设备封存申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/sealList',
- },
- },
- {
- path: 'sealDoc/:type/:id?',
- name: 'SealDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/seal/detail.vue'),
- meta: {
- title: '设备封存申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/sealList',
- },
- },
- {
- path: 'banList',
- name: 'BanList',
- component: () => import('@/views/equipement/stateMaintenance/ban/list.vue'),
- meta: {
- title: '设备禁用申请',
- auth: '/equipment/stateMaintenance/ban',
- icon: 'ep:key',
- },
- },
- {
- path: 'ban/:type/:id?',
- name: 'BanDetail',
- component: () => import('@/views/equipement/stateMaintenance/ban/edit.vue'),
- meta: {
- title: '设备禁用申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/banList',
- },
- },
- {
- path: 'banDoc/:type/:id?',
- name: 'BanDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/ban/detail.vue'),
- meta: {
- title: '设备禁用申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/banList',
- },
- },
- {
- path: 'scrapList',
- name: 'ScrapList',
- component: () => import('@/views/equipement/stateMaintenance/scrap/list.vue'),
- meta: {
- title: '设备报废申请',
- auth: '/equipment/stateMaintenance/scrap',
- icon: 'ep:key',
- },
- },
- {
- path: 'scrap/:type/:id?',
- name: 'ScrapDetail',
- component: () => import('@/views/equipement/stateMaintenance/scrap/edit.vue'),
- meta: {
- title: '设备报废申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/scrapList',
- },
- },
- {
- path: 'scrapDoc/:type/:id?',
- name: 'ScrapDocDetail',
- component: () => import('@/views/equipement/stateMaintenance/scrap/detail.vue'),
- meta: {
- title: '设备报废申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/stateMaintenance/scrapList',
- },
- },
],
- },
- {
- path: '/standard',
- component: Layout,
- redirect: '/standard/bookInfoList',
- name: 'Standard',
- meta: {
- title: '标准装置管理',
- icon: 'ep:key',
- auth: '/standard',
- },
- children: [
- {
- path: 'bookInfoList',
- name: 'BookInfoList',
- component: () => import('@/views/equipement/standard/book/list.vue'),
- meta: {
- title: '标准装置台账信息列表',
- auth: '/standard/bookInfo',
- icon: 'ep:key',
- },
- },
- {
- path: ':type/:id?',
- name: 'StandardBookInfoList',
- component: () => import('@/views/equipement/standard/book/detail.vue'),
- meta: {
- title: '标准装置台账信息',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/bookInfoList',
- },
- },
- {
- path: '/standardEquipmentConfig/:type/:id?',
- name: 'StandardBookInfoConfig',
- component: () => import('@/views/equipement/standard/book/components/config.vue'),
- meta: {
- title: '配置核查项',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/bookInfoList',
- },
- },
- {
- path: 'standardRemindList',
- name: 'StandardRemindList',
- component: () => import('@/views/equipement/standard/remind/list.vue'),
- meta: {
- title: '到期提醒',
- auth: '/standard/remind',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkDataList',
- name: 'CheckDataList',
- component: () => import('@/views/equipement/standard/checkData/list.vue'),
- meta: {
- title: '核查数据管理',
- auth: '/standard/checkData',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkData/:type/:id?',
- name: 'CheckDataDetail',
- component: () => import('@/views/equipement/standard/checkData/detail.vue'),
- meta: {
- title: '核查数据管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkDataList',
- },
- },
- {
- path: 'checkRecordList',
- name: 'CheckRecordList',
- component: () => import('@/views/equipement/standard/checkRecord/list.vue'),
- meta: {
- title: '核查记录管理',
- auth: '/standard/checkRecord',
- icon: 'ep:key',
- },
- },
- {
- path: '/equipmentCheckRecord/:type/:id?',
- name: 'CheckRecordDetail',
- component: () => import('@/views/equipement/standard/checkRecord/detail.vue'),
- meta: {
- title: '核查记录管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkRecordList',
- },
- },
- {
- path: 'checkItemClassificationList',
- name: 'CheckItemClassificationList',
- component: () => import('@/views/equipement/standard/checkItemClassification/list.vue'),
- meta: {
- title: '核查项分类管理',
- auth: '/standard/checkItemClassification',
- icon: 'ep:key',
- },
- },
- {
- path: 'checkItemClassification/:type/:id?',
- name: 'CheckItemClassificationDetail',
- component: () => import('@/views/equipement/standard/checkItemClassification/detail.vue'),
- meta: {
- title: '核查项分类管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/checkItemClassificationList',
- },
- },
- {
- path: 'standardBuildList',
- name: 'StandardBuildList',
- component: () => import('@/views/equipement/standard/build/list.vue'),
- meta: {
- title: '建标管理',
- auth: '/standard/build',
- icon: 'ep:key',
- },
- },
- {
- path: '/build/:type/:id?',
- name: 'StandardBuildEdit',
- component: () => import('@/views/equipement/standard/build/edit.vue'),
- meta: {
- title: '建标管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/standardBuildList',
- },
- },
- {
- path: '/buildDoc/:type/:id?',
- name: 'StandardBuildDetail',
- component: () => import('@/views/equipement/standard/build/detail.vue'),
- meta: {
- title: '建标管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/standard/standardBuildList',
- },
- },
- ],
- },
- {
- path: '/standardStateMaintenance',
- component: Layout,
- redirect: '/standardStateMaintenance/changeList',
- name: 'StandardStateMaintenance',
- meta: {
- title: '标准装置状态维护',
- icon: 'ep:key',
- auth: '/standard/stateMaintenance',
- },
- children: [
- {
- path: 'changeList',
- name: 'ChangeList',
- component: () => import('@/views/equipement/StandardStateMaintenance/change/list.vue'),
- meta: {
- title: '更换申请',
- auth: '/standard/change',
- icon: 'ep:key',
- },
- },
- {
- path: 'change/:type/:id?',
- name: 'ChangeDetail',
- component: () => import('@/views/equipement/StandardStateMaintenance/change/detail.vue'),
- meta: {
- title: '更换申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/changeList',
- },
- },
- {
- path: 'reviewList',
- name: 'ReviewList',
- component: () => import('@/views/equipement/StandardStateMaintenance/review/list.vue'),
- meta: {
- title: '复查申请',
- auth: '/standard/review',
- icon: 'ep:key',
- },
- },
- {
- path: 'review/:type/:id?',
- name: 'ReviewDetail',
- component: () => import('@/views/equipement/standardStateMaintenance/review/detail.vue'),
- meta: {
- title: '复查申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/reviewList',
- },
- },
- {
- path: 'revocationList',
- name: 'RevocationList',
- component: () => import('@/views/equipement/StandardStateMaintenance/revocation/list.vue'),
- meta: {
- title: '撤销申请',
- auth: '/standard/revocation',
- icon: 'ep:key',
- },
- },
- {
- path: 'revocation/:type/:id?',
- name: 'RevocationDetail',
- component: () => import('@/views/equipement/StandardStateMaintenance/revocation/detail.vue'),
- meta: {
- title: '撤销申请',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/StandardStateMaintenance/revocationList',
- },
- },
- ],
- },
- {
- path: '/source',
- component: Layout,
- redirect: '/source/planList',
- name: 'Source',
- meta: {
- title: '溯源管理',
- icon: 'ep:key',
- auth: '/equipment/source',
- },
- children: [
- {
- path: 'planList',
- name: 'EquipmentSourcePlanList',
- component: () => import('@/views/equipement/source/plan/list.vue'),
- meta: {
- title: '溯源计划管理',
- auth: '/equipment/source/plan',
- icon: 'ep:key',
- },
- },
- {
- path: 'plan/:type/:id?',
- name: 'EquipmentSourcePlanDetail',
- component: () => import('@/views/equipement/source/plan/detail.vue'),
- meta: {
- title: '溯源计划管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/planList',
- },
- },
- {
- path: 'resultConfirmList',
- name: 'EquipmentSourceResultConfirmList',
- component: () => import('@/views/equipement/source/resultConfirm/list.vue'),
- meta: {
- title: '溯源结果确认',
- auth: '/equipment/source/resultConfirm',
- icon: 'ep:key',
- },
- },
- {
- path: 'resultConfirm/:type/:id?',
- name: 'EquipmentSourceResultConfirmEdit',
- component: () => import('@/views/equipement/source/resultConfirm/edit.vue'),
- meta: {
- title: '溯源结果确认',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultConfirmList',
- },
- },
- {
- path: 'resultConfirmDoc/:type/:id?',
- name: 'EquipmentSourceResultConfirmDetail',
- component: () => import('@/views/equipement/source/resultConfirm/detail.vue'),
- meta: {
- title: '溯源结果确认',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultConfirmList',
- },
- },
- {
- path: 'resultCompleteList',
- name: 'EquipmentSourceResultCompleteList',
- component: () => import('@/views/equipement/source/resultComplete/list.vue'),
- meta: {
- title: '溯源结果完成情况',
- auth: '/equipment/source/resultComplete',
- icon: 'ep:key',
- },
- },
- {
- path: 'resultComplete/:type/:id?',
- name: 'EquipmentSourceResultCompleteEdit',
- component: () => import('@/views/equipement/source/resultComplete/edit.vue'),
- meta: {
- title: '溯源结果完成情况',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultCompleteList',
- },
- },
- {
- path: 'resultCompleteDoc/:type/:id?',
- name: 'EquipmentSourceResultCompleteDetail',
- component: () => import('@/views/equipement/source/resultComplete/detail.vue'),
- meta: {
- title: '溯源结果完成情况',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/resultCompleteList',
- },
- },
- {
- path: 'certList',
- name: 'EquipmentSourceCertList',
- component: () => import('@/views/equipement/source/cert/list.vue'),
- meta: {
- title: '溯源证书管理',
- auth: '/equipment/source/cert',
- icon: 'ep:key',
- },
- },
- {
- path: 'cert/:type/:id?',
- name: 'EquipmentSourceCertDetail',
- component: () => import('@/views/equipement/source/cert/detail.vue'),
- meta: {
- title: '溯源证书管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/certList',
- },
- },
- {
- path: 'changeList',
- name: 'EquipmentSourceChangeList',
- component: () => import('@/views/equipement/source/change/list.vue'),
- meta: {
- title: '溯源链变更管理',
- auth: '/equipment/source/change',
- icon: 'ep:key',
- },
- },
- {
- path: 'sourceChange/:type/:id?',
- name: 'EquipmentSourceChangeDetail',
- component: () => import('@/views/equipement/source/change/edit.vue'),
- meta: {
- title: '溯源链变更管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/source/changeList',
- },
- },
- ],
- },
- {
- path: '/resume',
- component: Layout,
- redirect: '/resume/planList',
- name: 'Resume',
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- auth: '/equipment/resume',
- },
- children: [
- {
- path: 'unpackList',
- name: 'EquipmentResumeUnpackList',
- component: () => import('@/views/equipement/resume/unpack/list.vue'),
- meta: {
- title: '开箱验收管理',
- auth: '/equipment/resume/unpack',
- icon: 'ep:key',
- },
- },
- {
- path: 'unpack/:type/:id?',
- name: 'EquipmentResumeUnpackEdit',
- component: () => import('@/views/equipement/resume/unpack/edit.vue'),
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/unpackList',
- },
- },
- {
- path: '/unpackDoc/:type/:id?',
- name: 'EquipmentResumeUnpackDetail',
- component: () => import('@/views/equipement/resume/unpack/detail.vue'),
- meta: {
- title: '开箱验收管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/unpackList',
- },
- },
- {
- path: 'lendList',
- name: 'EquipmentResumeLendList',
- component: () => import('@/views/equipement/resume/lend/list.vue'),
- meta: {
- title: '设备借出管理',
- auth: '/equipment/resume/lend',
- icon: 'ep:key',
- },
- },
- {
- path: 'lend/:type/:id?',
- name: 'EquipmentResumeLendEdit',
- component: () => import('@/views/equipement/resume/lend/edit.vue'),
- meta: {
- title: '设备借出管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/lendList',
- },
- },
- {
- path: 'lendDoc/:type/:id?',
- name: 'EquipmentResumeLendDetail',
- component: () => import('@/views/equipement/resume/lend/detail.vue'),
- meta: {
- title: '设备借出管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/lendList',
- },
- },
- {
- path: 'borrowList',
- name: 'EquipmentResumeBorrowList',
- component: () => import('@/views/equipement/resume/borrow/list.vue'),
- meta: {
- title: '设备借用管理',
- auth: '/equipment/resume/borrow',
- icon: 'ep:key',
- },
- },
- {
- path: 'borrow/:type/:id?',
- name: 'EquipmentResumeBorrowEdit',
- component: () => import('@/views/equipement/resume/borrow/edit.vue'),
- meta: {
- title: '设备借用管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/borrowList',
- },
- },
- {
- path: 'borrowDoc/:type/:id?',
- name: 'EquipmentResumeBorrowDetail',
- component: () => import('@/views/equipement/resume/borrow/detail.vue'),
- meta: {
- title: '设备借用管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/borrowList',
- },
- },
- {
- path: 'encasementList',
- name: 'EquipmentResumeEncasementList',
- component: () => import('@/views/equipement/resume/encasement/list.vue'),
- meta: {
- title: '设备运输装箱管理',
- auth: '/equipment/resume/encasement',
- icon: 'ep:key',
- },
- },
- {
- path: 'encasement/:type/:id?',
- name: 'EquipmentResumeEncasementDetail',
- component: () => import('@/views/equipement/resume/encasement/edit.vue'),
- meta: {
- title: '设备运输装箱管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/encasementList',
- },
- },
- {
- path: 'encasementDoc/:type/:id?',
- name: 'EquipmentResumeEncasementDetailDoc',
- component: () => import('@/views/equipement/resume/encasement/detail.vue'),
- meta: {
- title: '设备运输装箱管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/encasementList',
- },
- },
- {
- path: 'courseList',
- name: 'EquipmentResumeCourseList',
- component: () => import('@/views/equipement/resume/course/list.vue'),
- meta: {
- title: '设备运输过程管理',
- auth: '/equipment/resume/course',
- icon: 'ep:key',
- },
- },
- {
- path: 'course/:type/:id?',
- name: 'EquipmentResumeCourseDetail',
- component: () => import('@/views/equipement/resume/course/edit.vue'),
- meta: {
- title: '设备运输过程管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/courseList',
- },
- },
- {
- path: 'courseDoc/:type/:id?',
- name: 'EquipmentResumeCourseDetailDoc',
- component: () => import('@/views/equipement/resume/course/detail.vue'),
- meta: {
- title: '设备运输过程管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/courseList',
- },
- },
- {
- path: 'errorList',
- name: 'EquipmentResumeErrorList',
- component: () => import('@/views/equipement/resume/error/list.vue'),
- meta: {
- title: '异常情况处置管理',
- auth: '/equipment/resume/error',
- icon: 'ep:key',
- },
- },
- {
- path: 'error/:type/:id?',
- name: 'EquipmentResumeErrorEdit',
- component: () => import('@/views/equipement/resume/error/edit.vue'),
- meta: {
- title: '异常情况处置管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/errorList',
- },
- },
- {
- path: 'errorDoc/:type/:id?',
- name: 'EquipmentResumeErrorDetail',
- component: () => import('@/views/equipement/resume/error/detail.vue'),
- meta: {
- title: '异常情况处置管理',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/errorList',
- },
- },
- {
- path: 'weekList',
- name: 'EquipmentResumeWeekList',
- component: () => import('@/views/equipement/resume/week/list.vue'),
- meta: {
- title: '周维护',
- auth: '/equipment/resume/week',
- icon: 'ep:key',
- },
- },
- {
- path: 'week/:type/:id?',
- name: 'EquipmentResumeWeekDetail',
- component: () => import('@/views/equipement/resume/week/detail.vue'),
- meta: {
- title: '周维护',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/weekList',
- },
- },
- {
- path: 'monthList',
- name: 'EquipmentResumeMonthList',
- component: () => import('@/views/equipement/resume/month/list.vue'),
- meta: {
- title: '月保养',
- auth: '/equipment/resume/month',
- icon: 'ep:key',
- },
- },
- {
- path: 'month/:type/:id?',
- name: 'EquipmentResumeMonthDetail',
- component: () => import('@/views/equipement/resume/month/detail.vue'),
- meta: {
- title: '月保养',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/resume/monthList',
- },
- },
- ],
- },
- {
- path: '/monitor',
- component: Layout,
- redirect: '/monitor/deviceList',
- name: 'Monitor',
- meta: {
- title: '监测测试管理',
- icon: 'ep:key',
- auth: '/equipment/monitor',
- },
- children: [
- {
- path: 'deviceList',
- name: 'EquipmentResumeDeviceList',
- component: () => import('@/views/equipement/monitor/device/list.vue'),
- meta: {
- title: '监测设备',
- auth: '/equipment/monitor/device',
- icon: 'ep:key',
- },
- },
- {
- path: 'device/:type/:id?',
- name: 'EquipmentResumeDeviceDetail',
- component: () => import('@/views/equipement/monitor/device/detail.vue'),
- meta: {
- title: '监测设备',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/deviceList',
- },
- },
- {
- path: 'radioList',
- name: 'EquipmentResumeRadioList',
- component: () => import('@/views/equipement/monitor/radio/list.vue'),
- meta: {
- title: '无线电库',
- auth: '/equipment/monitor/radio',
- icon: 'ep:key',
- },
- },
- {
- path: 'radio/:type/:id?',
- name: 'EquipmentResumeRadioDetail',
- component: () => import('@/views/equipement/monitor/radio/detail.vue'),
- meta: {
- title: '无线电库',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/radioList',
- },
- },
- {
- path: 'taskList',
- name: 'EquipmentResumeTaskList',
- component: () => import('@/views/equipement/monitor/task/list.vue'),
- meta: {
- title: '任务监测',
- auth: '/equipment/monitor/task',
- icon: 'ep:key',
- },
- },
- {
- path: 'task/:type/:id?',
- name: 'EquipmentResumeTaskDetail',
- component: () => import('@/views/equipement/monitor/task/detail.vue'),
- meta: {
- title: '任务监测',
- icon: 'ep:key',
- sidebar: false,
- breadcrumb: true,
- activeMenu: '/monitor/taskList',
- },
- },
- ],
- },
+ }, */
]
export default routes
diff --git a/src/views/basic/device/addDeviceDialog.vue b/src/views/basic/device/addDeviceDialog.vue
new file mode 100644
index 0000000..018f123
--- /dev/null
+++ b/src/views/basic/device/addDeviceDialog.vue
@@ -0,0 +1,220 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/basic/device/detail.vue b/src/views/basic/device/detail.vue
index e43ca3c..c24bb42 100644
--- a/src/views/basic/device/detail.vue
+++ b/src/views/basic/device/detail.vue
@@ -25,6 +25,7 @@
const deviceInfo = ref({
id: '',
+ groupId: '',
devcode: '',
deviceName: '',
deviceType: '',
@@ -41,6 +42,7 @@
encipherType: '',
encipherTypeName: '',
createTime: '',
+ createUserId: '',
createUserName: '',
dataValue: '',
})
diff --git a/src/views/basic/device/device-info.ts b/src/views/basic/device/device-info.ts
index 7a1c228..9db63f4 100644
--- a/src/views/basic/device/device-info.ts
+++ b/src/views/basic/device/device-info.ts
@@ -1,13 +1,13 @@
// 列表查询参数接口
export interface IListQuery {
groupId: string // 分组
- productId: string
+ productId?: string
devcode: string
imei: string
deviceType: string
- status: string
- beginCell: string // 电量
- endCell: string //
+ status?: string
+ beginCell?: string // 电量
+ endCell?: string //
offset?: number
limit?: number
sort?: string
@@ -16,22 +16,24 @@
export interface IDeviceInfo {
id: string
+ groupId: string
devcode: string
- deviceName: string
+ deviceName?: string
deviceType: string
- deviceTypeName: string
- status: string
- statusName: string
- cell: string
+ deviceTypeName?: string
+ status?: string
+ statusName?: string
+ cell?: string
imei: string
iccid: string
model: string
- modelName: string
+ modelName?: string
productId: string
- productName: string
+ productName?: string
encipherType: string
- encipherTypeName: string
+ encipherTypeName?: string
createTime: string
- createUserName: string
- dataValue: string
+ createUserId: string
+ createUserName?: string
+ dataValue?: string
}
diff --git a/src/views/basic/device/list.vue b/src/views/basic/device/list.vue
index ba00120..140ecaf 100644
--- a/src/views/basic/device/list.vue
+++ b/src/views/basic/device/list.vue
@@ -7,7 +7,7 @@
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { getDictByCode } from '@/api/system/dict'
import { exportFile } from '@/utils/exportUtils'
-import { getGroupListPage } from '@/api/basic/group'
+import { getGroupList } from '@/api/basic/group'
import { delDevice, exportDevice, getDeviceListPage } from '@/api/basic/device'
const router = useRouter()
@@ -91,7 +91,7 @@
type: 'detail',
id: row.id,
},
- path: 'list/detail',
+ path: 'detail',
})
}
@@ -198,7 +198,7 @@
})
}
const getAllGroupList = async () => {
- await getGroupListPage({ offset: 1, limit: 20 }).then((res: any) => {
+ await getGroupList({}).then((res: any) => {
if (res.code === 200) {
groupList.value = res.data.rows
}
diff --git a/src/views/basic/device/listEmbedded.vue b/src/views/basic/device/listEmbedded.vue
new file mode 100644
index 0000000..90822b4
--- /dev/null
+++ b/src/views/basic/device/listEmbedded.vue
@@ -0,0 +1,266 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 批量删除
+
+
+ 新增
+
+
+ 导入列表
+
+
+ 导出列表
+
+
+ 导入模板下载
+
+
+
+
+
+
+
+
+ {{ (searchQuery.offset! - 1) * searchQuery.limit! + scope.$index + 1 }}
+
+
+
+
+
+
+
+
+ 查看
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/basic/group/addDialog.vue b/src/views/basic/group/addDialog.vue
deleted file mode 100644
index d1f3405..0000000
--- a/src/views/basic/group/addDialog.vue
+++ /dev/null
@@ -1,189 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/basic/group/addGroupDialog.vue b/src/views/basic/group/addGroupDialog.vue
new file mode 100644
index 0000000..d1f3405
--- /dev/null
+++ b/src/views/basic/group/addGroupDialog.vue
@@ -0,0 +1,189 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/basic/group/detail.vue b/src/views/basic/group/detail.vue
index d88ad97..eec4dd8 100644
--- a/src/views/basic/group/detail.vue
+++ b/src/views/basic/group/detail.vue
@@ -3,6 +3,7 @@
import { ElLoading, ElMessage, ElMessageBox, dayjs } from 'element-plus'
import type { IGroupInfo } from './group-info'
import { detailGroup } from '@/api/basic/group'
+import DeviceListEmbedded from '@/views/basic/device/listEmbedded.vue'
// 从路由中传过来的参数
const type = ref('')
@@ -12,155 +13,52 @@
const router = useRouter()
const title = ref('')
-const basicFormRef = ref()
-const refFilterDialog = ref()
+const radioItems = ref([
+ { name: '设备管理', value: 'group-device' },
+ { name: '订阅管理', value: 'group-subscribe' },
+])
+const current = ref('')
+const currentLabel = ref('')
-const sealInfo = ref({
+const basicFormRef = ref()
+
+const groupInfo = ref({
id: '',
- sealNo: '',
- sealName: '',
- sealType: '',
- sealTypeName: '',
- status: '',
- statusName: '',
- applyTime: '',
- abandonTime: '',
- ratifyTime: '',
+ groupNo: '',
+ groupName: '',
+ deptid: '',
+ deptName: '',
+ descn: '',
+ createUserId: '',
createTime: '',
- approverId: '',
- approverName: '',
- minioFileName: '',
- minioFileUrl: '',
})
-const sealInfoRules = ref({
- sealNo: [{ required: true, message: '印章编号不能为空', trigger: 'blur' }],
- sealName: [{ required: true, message: '印章名称不能为空', trigger: 'blur' }],
- sealType: [{ required: true, message: '印章类型不能为空,请选择', trigger: ['blur', 'change'] }],
- approverId: [{ required: true, message: '批准人不能为空', trigger: ['blur', 'change'] }],
- applyTime: [{ required: true, message: '申请时间不能为空,请选择', trigger: 'blur' }],
- ratifyTime: [{ required: true, message: '批准时间不能为空,请选择', trigger: 'blur' }],
- status: [{ required: true, message: '在用状态不能为空,请选择', trigger: ['blur', 'change'] }],
- minioFileName: [{ required: true, message: '图形不能为空,请选择一个文件上传', trigger: 'blur' }],
-}) // 表单验证规则
-
-const minioFileUrl = ref('')
-
// 逻辑
-
const resetForm = () => {
- sessionStorage.removeItem('sealInfo') // 返回列表时 将缓存中的数据删除
router.go(-1)
}
-// 添加
-const saveSealInfoForm = () => {
- // 将创建时间改为提交的时间
- sealInfo.value.createTime = dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss')
- addSealInfo(sealInfo.value).then((res) => {
- if (res.code === 200) {
- // 提示保存成功
- ElMessage.success('保存成功')
- type.value = 'detail'
- title.value = '印章管理登记(详情)'
- }
- else {
- // 提示失败信息
- ElMessage.error(`保存失败:${res.message}`)
- }
- })
-}
-// 编辑
-const updateSealInfoById = () => {
- updateSealInfo(sealInfo.value).then((res) => {
- if (res.code === 200) {
- // 提示保存成功
- ElMessage.success('保存成功')
- type.value = 'detail'
- title.value = '印章管理登记(详情)'
- }
- else {
- // 提示失败信息
- ElMessage.error(`保存失败:${res.message}`)
- }
- })
-}
-
-// 保存
-const saveForm = async () => {
- if (!basicFormRef) { return }
-
- await basicFormRef.value.validate((valid: boolean, fields: any) => {
- if (valid === true) {
- ElMessageBox.confirm(
- '确认保存吗?',
- '提示',
- {
- confirmButtonText: '确认',
- cancelButtonText: '取消',
- type: 'warning',
- },
- ).then(() => {
- if (type.value === 'create') {
- saveSealInfoForm()
- }
- else if (type.value === 'update') {
- updateSealInfoById()
- }
- })
- }
- })
-}
-
-// 上传请求
-const uploadQuarterlyEvaluateFile: any = (file: any) => {
- const fd = new FormData()
- fd.append('multipartFile', file.file)
- const loading = ElLoading.service({
- lock: true,
- background: 'rgba(255, 255, 255, 0.8)',
- })
- UploadFile(fd).then((res) => {
- if (res.code === 200) {
- ElMessage.success('上传成功')
- sealInfo.value.minioFileName = res.data[0]
- loading.close()
-
- basicFormRef.value.validateField('minioFileName', () => {})
- }
- }).catch(() => {
- loading.close()
- ElMessage.error('上传失败')
- })
-}
-
-// 上传之前的验证
-const beforeAvatarUpload: UploadProps['beforeUpload'] = (rawFile) => {
- if (rawFile.type !== 'image/jpeg' && rawFile.type !== 'image/png' && rawFile.type !== 'image/jpg') {
- ElMessage.error('只能上传png/jpeg/jpg格式的图片')
- return false
+// 详情页的各个tab切换操作
+const radioChangeHandler = (newVal: string | number | boolean) => {
+ const radioTarget = radioItems.value.filter(item => item.name === newVal)
+ if (radioTarget.length > 0) {
+ currentLabel.value = radioTarget[0].name
+ current.value = radioTarget[0].value
}
- else if (rawFile.size / 1024 / 1024 > 2) {
- ElMessage.error('图片不能大于2MB')
- return false
+ else {
+ currentLabel.value = radioItems.value[0].name
+ current.value = radioItems.value[0].value
}
- return true
}
-// 预览文件
-const previewSealImage = (url: string) => {
- console.log(url)
-}
-
-// 从用户账号中筛选进行人员登记
-const showFilterSysUser = () => {
- refFilterDialog.value.showOrHideFilterDialog(true)
-}
-
-const recordSelectedHandler = (row: any) => {
- refFilterDialog.value.showOrHideFilterDialog(false)
- sealInfo.value.approverName = row.name
- sealInfo.value.approverId = row.id
+// 查询详情
+const detailById = (id: string) => {
+ detailGroup({ id }).then((res) => {
+ if (res.code === 200) {
+ groupInfo.value = res.data
+ groupInfo.value.createTime = dayjs(groupInfo.value.createTime).format('YYYY-MM-DD') === 'Invalid Date' ? '' : dayjs(groupInfo.value.createTime).format('YYYY-MM-DD HH:mm:ss')
+ }
+ })
}
const initDialog = (params: any) => {
@@ -168,26 +66,16 @@
type.value = params.type
id.value = params.id !== undefined ? params.id : ''
+ // 默认显示第一个tab内容
+ current.value = radioItems.value[0].value
+ currentLabel.value = radioItems.value[0].name
+
switch (params.type) {
- case 'create' :
- title.value = '印章管理登记(新增)'
-
- // 创建时间设置默认值
- sealInfo.value.createTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
-
- break
- case 'update':
- title.value = '印章管理登记(编辑)'
- id.value = params.id
-
- sealInfo.value = JSON.parse(sessionStorage.getItem('sealInfo')!)
-
- break
case 'detail':
- title.value = '印章管理登记(详情)'
+ title.value = '分组详情'
id.value = params.id
- sealInfo.value = JSON.parse(sessionStorage.getItem('sealInfo')!)
+ detailById(id.value)
break
default:
@@ -196,44 +84,6 @@
}
}
-// 监听 显示中文 立即监听
-watch(() => sealInfo.value.sealType, (newVal) => {
- if (sealTypeDict.value.length === 0) {
- sealTypeDict.value = JSON.parse(sessionStorage.getItem('bizSealType')!)
- }
- const targetList = sealTypeDict.value.filter(item => item.value === newVal)
- if (targetList.length > 0) {
- sealInfo.value.sealTypeName = targetList[0].name
- }
- else {
- sealInfo.value.sealTypeName = ''
- }
-}, { immediate: true })
-
-// 监听 显示中文 立即监听
-watch(() => sealInfo.value.status, (newVal) => {
- if (sealStatusDict.value.length === 0) {
- sealStatusDict.value = JSON.parse(sessionStorage.getItem('bizSealStatus')!)
- }
- const targetList = sealStatusDict.value.filter(item => item.value === newVal)
- if (targetList.length > 0) {
- sealInfo.value.statusName = targetList[0].name
- }
- else {
- sealInfo.value.statusName = ''
- }
-}, { immediate: true })
-
-watch(() => sealInfo.value.minioFileName, (newVal) => {
- if (newVal !== '') {
- getPhotoUrl(newVal).then((res) => {
- if (res.code === 200) {
- minioFileUrl.value = res.data
- }
- })
- }
-})
-
onMounted(async () => {
initDialog(route.query)
})
@@ -243,85 +93,38 @@
-
- 保存
-
关闭
-
+
-
-
-
-
-
-
+
+ {{ groupInfo.groupNo }}
-
-
-
-
-
-
+
+ {{ groupInfo.groupName }}
-
-
-
-
-
-
-
-
-
-
-
-
+
+ {{ groupInfo.deptName }}
-
-
-
-
- 选择
-
-
-
-
-
-
-
-
+
+ {{ groupInfo.createTime }}
@@ -329,62 +132,28 @@
-
-
-
-
-
-
-
-
-
+
+ {{ groupInfo.descn }}
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ 敬请期待
+
+
+
-
-
-
-
-./group-info
diff --git a/src/views/basic/group/list.vue b/src/views/basic/group/list.vue
index 2af82fb..4b0fceb 100644
--- a/src/views/basic/group/list.vue
+++ b/src/views/basic/group/list.vue
@@ -3,7 +3,7 @@
import { ElMessage, ElMessageBox, dayjs } from 'element-plus'
import type { DateModelType } from 'element-plus'
import type { IGroupInfo, IListQuery } from './group-info'
-import AddGroupDialog from './addDialog.vue'
+import AddGroupDialog from './addGroupDialog.vue'
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { delGroup, getGroupListPage } from '@/api/basic/group'
import { getDictByCode } from '@/api/system/dict'
@@ -50,7 +50,7 @@
type: 'detail',
id: row.id,
},
- path: 'list/detail',
+ path: 'detail',
})
}