diff --git a/.env.development b/.env.development
index 1143454..09664d8 100644
--- a/.env.development
+++ b/.env.development
@@ -8,7 +8,6 @@ ENV = 'development'
VUE_APP_BASE_API = '/dev-api'
VUE_APP_NVR_API = '/nvr-api'
-VUE_APP_DEVICE_TREE_API = 'http://192.168.1.116:18891/app/htjc6/api'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true
diff --git a/.env.htjc6 b/.env.htjc6
index 265c82e..85525cc 100644
--- a/.env.htjc6
+++ b/.env.htjc6
@@ -2,9 +2,8 @@ NODE_ENV = 'production'
ENV = 'production'
VUE_APP_TITLE = 智能巡视
-VUE_APP_BASE_API = '/prod-api'
-VUE_APP_NVR_API = 'http://192.168.1.86:28081'
-VUE_APP_DEVICE_TREE_API = 'http://192.168.1.116:18891/app/htjc6/api'
+VUE_APP_BASE_API = '/app/htjc6/api'
+VUE_APP_NVR_API = '/nvr-api'
VUE_APP_PUBLIC_PATH = '/app/htjc6/'
VUE_APP_OUTPUT_DIR = 'dist/app/htjc6'
diff --git a/.env.production b/.env.production
index 3ee2ee3..10200d5 100644
--- a/.env.production
+++ b/.env.production
@@ -7,5 +7,4 @@ ENV = 'production'
# 若依管理系统/生产环境
VUE_APP_BASE_API = '/prod-api'
-VUE_APP_NVR_API = 'http://192.168.1.86:28081'
-VUE_APP_DEVICE_TREE_API = 'http://192.168.1.116:18891/app/htjc6/api'
+VUE_APP_NVR_API = '/nvr-api'
diff --git a/src/api/videosMonitor/index.js b/src/api/videosMonitor/index.js
index efe759c..582a713 100644
--- a/src/api/videosMonitor/index.js
+++ b/src/api/videosMonitor/index.js
@@ -14,7 +14,6 @@ export function getAreaEqubookTreeSelect(params) {
query.patroldeviceTypeFlag || "ipc"
);
return request({
- baseURL: process.env.VUE_APP_DEVICE_TREE_API,
url:
"/basedata/eqpbook/getAreaEqubookTreeSelectForFilter" +
`?patroldeviceName=${patroldeviceName}` +
diff --git a/src/assets/styles/ruoyi.scss b/src/assets/styles/ruoyi.scss
index 12474a5..f6f841d 100644
--- a/src/assets/styles/ruoyi.scss
+++ b/src/assets/styles/ruoyi.scss
@@ -698,6 +698,68 @@
background-color: rgba(8, 25, 69, 0.82) !important;
}
+/* Consistent single- and multi-select appearance across the application. */
+.el-select .el-input__inner {
+ color: #dcecff !important;
+ background-color: rgba(27, 42, 94, 0.94) !important;
+ border-color: #6f95de !important;
+}
+
+.el-select .el-input__inner:hover,
+.el-select .el-input.is-focus .el-input__inner,
+.el-select .el-input__inner:focus {
+ border-color: #43cfff !important;
+}
+
+.el-select-dropdown {
+ background-color: #0b2351 !important;
+ border-color: #173f89 !important;
+}
+
+.el-select-dropdown .el-scrollbar,
+.el-select-dropdown .el-scrollbar__wrap,
+.el-select-dropdown .el-scrollbar__view,
+.el-select-dropdown .el-select-dropdown__list {
+ background-color: #0b2351 !important;
+}
+
+.el-select-dropdown .el-select-dropdown__item {
+ color: #dcecff !important;
+ background-color: transparent !important;
+}
+
+.el-select-dropdown .el-select-dropdown__item.hover,
+.el-select-dropdown .el-select-dropdown__item:hover {
+ color: #00ffff !important;
+ background-color: #002a7f !important;
+}
+
+.el-select-dropdown .el-select-dropdown__item.selected {
+ color: #00ffff !important;
+ background-color: #002a7f !important;
+ font-weight: 600;
+}
+
+.el-select-dropdown.is-multiple .el-select-dropdown__item.selected::after {
+ color: #00ffff !important;
+}
+
+.el-select .el-tag {
+ color: #00ffff !important;
+ background-color: #002a7f !important;
+ border-color: #3988ff !important;
+}
+
+.el-select .el-tag .el-tag__close {
+ color: #00ffff !important;
+ background-color: transparent !important;
+}
+
+.el-select .el-tag .el-tag__close:hover {
+ color: #ffffff !important;
+ background-color: #002a7f !important;
+}
+
.el-select-dropdown .el-scrollbar,
.el-select-dropdown__wrap,
.el-select-dropdown__list,
@@ -730,6 +792,82 @@
border-top-color: #0f124a !important;
}
+/* Keep select option containers on the same blue surface as the menu. */
+.el-select-dropdown .el-scrollbar,
+.el-select-dropdown .el-scrollbar__wrap,
+.el-select-dropdown .el-scrollbar__view,
+.el-select-dropdown .el-select-dropdown__list {
+ background-color: #0b2351 !important;
+}
+
+.el-select-dropdown[x-placement^="bottom"] .popper__arrow::after {
+ border-bottom-color: #0b2351 !important;
+}
+
+.el-select-dropdown[x-placement^="top"] .popper__arrow::after {
+ border-top-color: #0b2351 !important;
+}
+
+/* Match vue-treeselect controls (including append-to-body menus) to el-select. */
+.vue-treeselect__control {
+ color: #dcecff !important;
+ background-color: rgba(27, 42, 94, 0.94) !important;
+ border-color: #6f95de !important;
+}
+
+.vue-treeselect--open .vue-treeselect__control {
+ border-color: #43cfff !important;
+}
+
+.vue-treeselect__menu {
+ color: #dcecff !important;
+ background: #0b2351 !important;
+ border-color: #173f89 !important;
+}
+
+.vue-treeselect__option,
+.vue-treeselect__label,
+.vue-treeselect__tip-text {
+ color: #dcecff !important;
+}
+
+.vue-treeselect__option--highlight,
+.vue-treeselect--single .vue-treeselect__option--selected,
+.vue-treeselect__option:has(.vue-treeselect__checkbox--checked) {
+ color: #00ffff !important;
+ background: #002a7f !important;
+}
+
+.vue-treeselect__option--highlight .vue-treeselect__label,
+.vue-treeselect--single .vue-treeselect__option--selected .vue-treeselect__label,
+.vue-treeselect__option:has(.vue-treeselect__checkbox--checked) .vue-treeselect__label {
+ color: #00ffff !important;
+}
+
+.vue-treeselect__checkbox--checked,
+.vue-treeselect__checkbox--indeterminate {
+ background: #002a7f !important;
+ border-color: #00ffff !important;
+}
+
+.vue-treeselect__multi-value-item {
+ color: #00ffff !important;
+ background: #002a7f !important;
+ border-color: #3988ff !important;
+}
+
+.vue-treeselect__value-remove {
+ color: #00ffff !important;
+}
+
+.vue-treeselect__placeholder {
+ color: rgba(220, 236, 255, 0.5) !important;
+}
+
+.vue-treeselect__input {
+ color: #dcecff !important;
+}
+
.splitpanes.default-theme .splitpanes__splitter {
background-color: #0B2567 !important;
border-color: #0B2567 !important;
diff --git a/src/components/Breadcrumb/index.vue b/src/components/Breadcrumb/index.vue
index e77313a..f0ceea8 100644
--- a/src/components/Breadcrumb/index.vue
+++ b/src/components/Breadcrumb/index.vue
@@ -45,11 +45,11 @@ export default {
} else {
matched = router.matched.filter(item => item.meta && item.meta.title)
}
- // 判断是否为首页
- if (!this.isPatrolWorkspace() && !this.isDashboard(matched[0])) {
- matched = [{ path: "/index", meta: { title: "首页" } }].concat(matched)
- }
- this.levelList = matched.filter(item => item.meta && item.meta.title && item.meta.breadcrumb !== false)
+ const breadcrumb = matched.filter(item => item.meta && item.meta.title && item.meta.breadcrumb !== false)
+ // 单层菜单的父级和子级可能配置了相同标题,只保留一层。
+ this.levelList = breadcrumb.filter((item, index) => {
+ return index === 0 || item.meta.title !== breadcrumb[index - 1].meta.title
+ })
},
findPathNum(str, char = "/") {
let index = str.indexOf(char)
@@ -70,13 +70,6 @@ export default {
}
}
},
- isDashboard(route) {
- const name = route && route.name
- if (!name) {
- return false
- }
- return name.trim() === 'Index'
- },
handleLink(item) {
const { redirect, path } = item
if (redirect) {
@@ -85,9 +78,6 @@ export default {
}
this.$router.push(path)
},
- isPatrolWorkspace() {
- return this.$route.matched.some(route => route.meta && route.meta.patrolWorkspace)
- },
titleFn(item, children) {
let str = "";
let lang = localStorage.getItem("language");
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index da5a576..3143872 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -18,23 +18,6 @@
-
-
- {{ $t('navBar.LayoutSetting') }}
-
-
+
{{ $t('navBar.LogOut') }}
@@ -72,7 +52,6 @@ import TopNav from "@/components/TopNav";
import Screenfull from "@/components/Screenfull";
import headerLogo from "@/assets/images/header/logo.png";
import loginAvatar from "@/assets/images/aa-logo.png";
-// import { changeLanguage } from "@/api/login";
export default {
components: {
TopNav,
@@ -86,25 +65,10 @@ export default {
},
computed: {
...mapGetters(["avatar", "device"]),
- setting: {
- get() {
- return this.$store.state.settings.showSettings;
- },
- set(val) {
- this.$store.dispatch("settings/changeSetting", {
- key: "showSettings",
- value: val,
- });
- },
- },
topNav: {
get() {
return this.$store.state.settings.topNav;
},
- },
- language() {
- localStorage.setItem("language", this.$store.getters.language)
- return this.$store.getters.language
}
},
methods: {
@@ -120,16 +84,6 @@ export default {
});
})
.catch(() => {});
- },
- handleSetLanguage(value) {
- this.$i18n.locale = value
- this.$store.dispatch('app/setLanguage', value)
- this.$message({ message: '设置语言成功', type: 'success' })
- window.location.reload();
- return
- changeLanguage(value).then(response => {
- window.location.reload();
- });
}
},
};
diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue
index 220a336..3280c76 100644
--- a/src/layout/components/Sidebar/index.vue
+++ b/src/layout/components/Sidebar/index.vue
@@ -36,18 +36,26 @@ export default {
...mapState(["settings"]),
...mapGetters(["sidebarRouters", "sidebar"]),
displayedRoutes() {
- const filterHiddenNavigation = (routes = []) => routes.reduce((result, route) => {
+ const temporarilyHiddenRootMenus = new Set([
+ "设备管理",
+ "系统管理",
+ "区域管理",
+ "系统监控",
+ "基础数据",
+ ]);
+ const filterHiddenNavigation = (routes = [], depth = 0) => routes.reduce((result, route) => {
const title = String(route.meta && route.meta.title || "").split("|")[0];
const isTaskManagement = title === "巡视任务管理";
const isImplementationPoints = title === "点位管理" &&
route.path !== "/site-management" &&
route.path !== "/inspection-workspace/points";
- if (isTaskManagement || isImplementationPoints) return result;
+ const isTemporarilyHiddenRootMenu = depth === 0 && temporarilyHiddenRootMenus.has(title);
+ if (isTaskManagement || isImplementationPoints || isTemporarilyHiddenRootMenu) return result;
result.push({
...route,
children: route.children
- ? filterHiddenNavigation(route.children)
+ ? filterHiddenNavigation(route.children, depth + 1)
: route.children,
});
return result;
diff --git a/src/router/index.js b/src/router/index.js
index c10d1a5..9ad0015 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -128,12 +128,13 @@ export const constantRoutes = [
path: '',
component: Layout,
redirect: 'index',
+ hidden: true,
children: [
{
path: 'index',
component: () => import('@/views/index'),
name: 'Index',
- meta: { title: '首页', icon: 'dashboard', affix: true }
+ meta: { title: '首页', icon: 'dashboard', affix: true, breadcrumb: false }
}
]
},
diff --git a/src/views/administration/administration copy.vue b/src/views/administration/administration copy.vue
index 475cd07..61f8369 100644
--- a/src/views/administration/administration copy.vue
+++ b/src/views/administration/administration copy.vue
@@ -862,10 +862,6 @@ export default {
this.loading = false;
this.dataList = res.rows;
this.total = res.total;
- this.$message({
- message: this.$t("prompt.success.queryWasSuccessful"),
- type: "success",
- });
}
});
},
@@ -964,7 +960,7 @@ export default {
postRemove(this.ids.toString()).then((res) => {
if (res.code == 200) {
this.$message({
- message: this.$t("prompt.success.queryWasSuccessful"),
+ message: "删除成功",
type: "success",
});
this.init();
diff --git a/src/views/administration/administration.vue b/src/views/administration/administration.vue
index 83747a9..fcd035e 100644
--- a/src/views/administration/administration.vue
+++ b/src/views/administration/administration.vue
@@ -517,10 +517,6 @@ export default {
this.loading = false;
this.dataList = res.rows;
this.total = res.total;
- this.$message({
- message: this.$t("prompt.success.queryWasSuccessful"),
- type: "success",
- });
}
});
},
@@ -631,7 +627,7 @@ export default {
postRemove(this.ids.toString()).then((res) => {
if (res.code == 200) {
this.$message({
- message: this.$t("prompt.success.queryWasSuccessful"),
+ message: "删除成功",
type: "success",
});
this.init();
diff --git a/src/views/area/area.vue b/src/views/area/area.vue
index 82b0bb3..b58995d 100644
--- a/src/views/area/area.vue
+++ b/src/views/area/area.vue
@@ -274,10 +274,6 @@ export default {
this.tableData = res.data;
}
- this.$message({
- type: "success",
- message: "查询成功",
- });
}
});
},
diff --git a/src/views/area/area_management.vue b/src/views/area/area_management.vue
index 8cff3e9..95e21f5 100644
--- a/src/views/area/area_management.vue
+++ b/src/views/area/area_management.vue
@@ -289,10 +289,6 @@ export default {
if (res.code == 200) {
this.tableData = res.rows;
this.total = res.total;
- this.$message({
- message: `查询成功`,
- type: "success",
- });
}
});
},
diff --git a/src/views/basedata/alg/index.vue b/src/views/basedata/alg/index.vue
index 7f8b574..d51e1b2 100644
--- a/src/views/basedata/alg/index.vue
+++ b/src/views/basedata/alg/index.vue
@@ -157,10 +157,6 @@ export default {
if (res.code == 200) {
this.tableData = res.rows;
this.total = res.total;
- this.$message({
- message: `查询成功`,
- type: "success",
- });
}
});
},
diff --git a/src/views/basedata/alg/subtype/index.vue b/src/views/basedata/alg/subtype/index.vue
index 5477947..897c212 100644
--- a/src/views/basedata/alg/subtype/index.vue
+++ b/src/views/basedata/alg/subtype/index.vue
@@ -266,10 +266,6 @@ export default {
if (res.code == 200) {
this.tableData = res.rows;
this.total = res.total;
- this.$message({
- message: `查询成功`,
- type: "success",
- });
}
});
},
diff --git a/src/views/basedata/station/index.vue b/src/views/basedata/station/index.vue
index 697446e..971d154 100644
--- a/src/views/basedata/station/index.vue
+++ b/src/views/basedata/station/index.vue
@@ -258,10 +258,6 @@ export default {
if (res.code == 200) {
this.tableData = res.rows;
this.total = res.total;
- this.$message({
- message: `查询成功`,
- type: "success",
- });
}
});
},
diff --git a/src/views/cards/patrolPlan/notstart.vue b/src/views/cards/patrolPlan/notstart.vue
index ad8340f..ff64911 100644
--- a/src/views/cards/patrolPlan/notstart.vue
+++ b/src/views/cards/patrolPlan/notstart.vue
@@ -98,6 +98,7 @@
border
stripe
:height="tableHeight"
+ @header-dragend="handleHeaderDragend"
>
-
-
-
+
+
+
+ :resizable="true"
+ >
+
+
+ {{ scope.row.areaName || "-" }}
+
+
+
@@ -130,7 +143,7 @@
prop="taskCycle"
:formatter="stateTask"
/> -->
-
+
{
+ if (this.$refs.tableRef) {
+ this.$refs.tableRef.doLayout();
+ }
+ });
+ },
// 获取区域列表
getAreaList() {
var data = {"dictType":"sys_area_list"}
@@ -509,7 +529,12 @@ export default {
.card-page ::v-deep .el-table__header-wrapper,
.card-page ::v-deep .el-table__fixed-header-wrapper {
- background: #dbe7fb !important;
+ background: #06347f !important;
+}
+
+.card-page ::v-deep .el-table__header,
+.card-page ::v-deep .el-table__body {
+ min-width: 100% !important;
}
.card-page ::v-deep .el-table__body-wrapper,
@@ -529,6 +554,28 @@ export default {
color: #ffffff !important;
}
+.card-page ::v-deep .el-table th.el-table__cell.is-resizable:not(:last-child) .cell::after {
+ content: "";
+ position: absolute;
+ top: 25%;
+ right: 1px;
+ width: 2px;
+ height: 50%;
+ background: rgba(255, 255, 255, 0.45);
+ cursor: col-resize;
+}
+
+.card-page ::v-deep .el-table__resize-proxy {
+ border-left: 2px solid #43c0ff;
+}
+
+.area-name-cell {
+ display: block;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+
.card-page ::v-deep .el-table td.el-table__cell {
background: transparent !important;
border-color: #c7d7f4 !important;
@@ -554,7 +601,7 @@ export default {
.card-page ::v-deep .el-table__body-wrapper {
overflow-y: auto;
- overflow-x: hidden;
+ overflow-x: auto;
scrollbar-width: none;
-ms-overflow-style: none;
}
@@ -639,6 +686,14 @@ export default {
overflow-y: auto;
}
+