Browse Source

根据站内的要求,修改样式

master
douyage 2 weeks ago
parent
commit
a5659775f4
13 changed files with 312 additions and 270 deletions
  1. +13
    -1
      src/assets/styles/element-ui.scss
  2. +40
    -0
      src/assets/styles/sidebar.scss
  3. +2
    -1
      src/assets/styles/variables.scss
  4. +1
    -1
      src/layout/components/AppMain.vue
  5. +7
    -1
      src/layout/components/Sidebar/Item.vue
  6. +20
    -0
      src/layout/components/Sidebar/index.vue
  7. +2
    -1
      src/layout/components/TagsView/ScrollPane.vue
  8. +36
    -49
      src/layout/components/TagsView/index.vue
  9. +23
    -83
      src/layout/index.vue
  10. +1
    -1
      src/router/index.js
  11. +80
    -66
      src/views/cards/patrolPlan/summary_editTask.vue
  12. +80
    -66
      src/views/cards/patrolPlan/summary_newTask.vue
  13. +7
    -0
      src/views/cards/site_management/site_management.vue

+ 13
- 1
src/assets/styles/element-ui.scss View File

@ -89,4 +89,16 @@
> .el-submenu__title
.el-submenu__icon-arrow {
display: none;
}
}
// 隐藏 el-scrollbar 内部的原生滚动条全局样式会把 6px 原生滚动条染成灰色
// overflow: scroll .el-scrollbar__wrap 因此常驻显示一条滚动槽滚动功能不受影响
.el-scrollbar__wrap {
scrollbar-width: none;
-ms-overflow-style: none;
&::-webkit-scrollbar {
display: none;
width: 0;
height: 0;
}
}

+ 40
- 0
src/assets/styles/sidebar.scss View File

@ -78,6 +78,24 @@
transition: filter 0.2s ease;
}
.menu-item-inner {
display: inline-flex;
align-items: center;
min-width: 0;
}
.menu-item-inner.is-root {
width: 100%;
justify-content: center;
gap: 10px;
}
.menu-item-inner.is-root .svg-icon,
.menu-item-inner.is-root .menu-icon-img,
.menu-item-inner.is-root .menu-icon-placeholder {
margin-right: 0;
}
.el-menu-item.is-active .menu-icon-img,
.el-submenu.is-active > .el-submenu__title .menu-icon-img {
filter: none;
@ -111,6 +129,18 @@
white-space: nowrap !important;
}
// Center the first-level icon/text group inside the narrower sidebar.
.el-menu > div > a > .submenu-title-noDropdown,
.el-menu > div > .el-submenu > .el-submenu__title {
display: flex !important;
align-items: center;
justify-content: center;
width: 100%;
padding-left: 0 !important;
padding-right: 0 !important;
box-sizing: border-box;
}
// menu hover
.submenu-title-noDropdown,
.el-submenu__title {
@ -142,6 +172,16 @@
}
}
.sidebarWide.openSidebar {
.main-container {
margin-left: $base-sidebar-wide-width;
}
.sidebar-container {
width: $base-sidebar-wide-width !important;
}
}
.hideSidebar {
.sidebar-container {
width: 54px !important;


+ 2
- 1
src/assets/styles/variables.scss View File

@ -40,7 +40,8 @@ $base-sub-menu-background:#000c17;
$base-sub-menu-hover:#001528;
*/
$base-sidebar-width: 200px;
$base-sidebar-width: 160px;
$base-sidebar-wide-width: 200px;
// the :export directive is the magic sauce for webpack
// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass


+ 1
- 1
src/layout/components/AppMain.vue View File

@ -57,7 +57,7 @@ export default {
}
.app-main.hasTagsView {
/* 126 = navbar + subbar + module title = 50 + 36 + 40 */
/* 130 = navbar + subbar + tags view = 50 + 40 + 40 */
height: calc(100vh - 130px);
min-height: 0;
}


+ 7
- 1
src/layout/components/Sidebar/Item.vue View File

@ -79,7 +79,13 @@ export default {
vnodes.push(<span slot='title'>{(title)}</span>)
}
}
return vnodes
return h(
"span",
{
class: ["menu-item-inner", { "is-nest": isNest, "is-root": !isNest }],
},
vnodes
)
}
}
</script>


+ 20
- 0
src/layout/components/Sidebar/index.vue View File

@ -139,6 +139,26 @@ export default {
isCollapse() {
return !this.sidebar.opened;
},
hasNestedMenus() {
return this.displayedRoutes.some(route => this.hasVisibleNestedMenu(route));
},
},
watch: {
hasNestedMenus: {
immediate: true,
handler(hasNestedMenus) {
this.$emit("menu-depth-change", hasNestedMenus);
},
},
},
methods: {
hasVisibleNestedMenu(route) {
const visibleChildren = (route.children || []).filter(child => !child.hidden);
if (route.alwaysShow || visibleChildren.length > 1) {
return true;
}
return visibleChildren.some(child => this.hasVisibleNestedMenu(child));
},
}
};
</script>

+ 2
- 1
src/layout/components/TagsView/ScrollPane.vue View File

@ -83,8 +83,9 @@ export default {
overflow: hidden;
width: 100%;
::v-deep {
//
.el-scrollbar__bar {
bottom: 0px;
display: none;
}
.el-scrollbar__wrap {
height: 49px;


+ 36
- 49
src/layout/components/TagsView/index.vue View File

@ -1,6 +1,5 @@
<template>
<div id="tags-view-container" class="tags-view-container">
<breadcrumb class="module-breadcrumb" />
<div v-if="isVideoLivePreview" class="video-layout-switch" aria-label="画面布局">
<el-tooltip
v-for="item in videoLayouts"
@ -47,7 +46,7 @@
{{ view.label }}
</button>
</div>
<scroll-pane ref="scrollPane" class="tags-view-wrapper tags-view-wrapper-hidden" @scroll="handleScroll">
<scroll-pane ref="scrollPane" class="tags-view-wrapper" @scroll="handleScroll">
<router-link
v-for="tag in visitedViews"
ref="tag"
@ -56,7 +55,6 @@
:to="{ path: tag.path, query: tag.query, fullPath: tag.fullPath }"
tag="span"
class="tags-view-item"
:style="activeStyle(tag)"
@click.middle.native="!isAffix(tag)?closeSelectedTag(tag):''"
@contextmenu.prevent.native="openMenu(tag,$event)"
>
@ -76,12 +74,11 @@
</template>
<script>
import Breadcrumb from '@/components/Breadcrumb'
import ScrollPane from './ScrollPane'
import path from 'path'
export default {
components: { Breadcrumb, ScrollPane },
components: { ScrollPane },
data() {
return {
visible: false,
@ -112,9 +109,6 @@ export default {
routes() {
return this.$store.state.permission.routes
},
theme() {
return this.$store.state.settings.theme;
},
scheduleView() {
return this.$route.query.view || 'year'
},
@ -176,13 +170,6 @@ export default {
isActive(route) {
return route.path === this.$route.path
},
activeStyle(tag) {
if (!this.isActive(tag)) return {};
return {
"background-color": this.theme,
"border-color": this.theme
};
},
isAffix(tag) {
return tag.meta && tag.meta.affix
},
@ -381,13 +368,6 @@ export default {
border: none;
box-shadow: none;
.module-breadcrumb {
position: relative;
z-index: 1;
margin-left: 12px;
line-height: 40px !important;
}
.video-layout-switch {
position: absolute;
z-index: 2;
@ -507,48 +487,54 @@ export default {
}
}
.tags-view-wrapper-hidden {
position: absolute;
width: 0;
height: 0;
overflow: hidden;
opacity: 0;
pointer-events: none;
}
.tags-view-wrapper {
height: 100%;
padding: 0 18px 0 12px;
box-sizing: border-box;
.tags-view-item {
display: inline-block;
position: relative;
cursor: pointer;
height: 26px;
line-height: 26px;
border: 1px solid #d8dce5;
color: #495060;
background: #fff;
padding: 0 8px;
line-height: 24px;
border: 1px solid rgba(72, 167, 255, 0.45);
color: #b9d8ff;
background: rgba(11, 36, 96, 0.85);
padding: 0 10px;
font-size: 12px;
margin-left: 5px;
margin-top: 4px;
margin-left: 8px;
margin-top: 6px;
vertical-align: top;
box-sizing: border-box;
transition: color .2s, background-color .2s, border-color .2s, box-shadow .2s;
&:first-of-type {
margin-left: 15px;
margin-left: 0;
}
&:last-of-type {
margin-right: 15px;
&:hover {
color: #54ffff;
border-color: rgba(84, 255, 255, 0.55);
}
&.active {
background-color: #42b983;
color: #fff;
border-color: #42b983;
color: #ffffff;
background: linear-gradient(180deg, #1a7ad4 0%, #0f56a8 100%);
border-color: rgba(84, 255, 255, 0.65);
box-shadow: 0 0 8px rgba(23, 107, 194, 0.55);
&::before {
content: '';
background: #fff;
background: #3ffffe;
display: inline-block;
width: 8px;
height: 8px;
width: 6px;
height: 6px;
border-radius: 50%;
position: relative;
margin-right: 2px;
margin-right: 5px;
vertical-align: 1px;
box-shadow: 0 0 4px rgba(63, 255, 254, 0.9);
}
}
}
@ -583,6 +569,7 @@ export default {
.tags-view-wrapper {
.tags-view-item {
.el-icon-close {
margin-left: 4px;
width: 16px;
height: 16px;
vertical-align: 2px;
@ -596,7 +583,7 @@ export default {
vertical-align: -3px;
}
&:hover {
background-color: #b4bccc;
background-color: rgba(84, 255, 255, 0.25);
color: #fff;
}
}


+ 23
- 83
src/layout/index.vue View File

@ -2,7 +2,12 @@
<div :class="classObj" class="app-wrapper" :style="{'--current-color': theme}">
<div v-if="device==='mobile'&&sidebar.opened" class="drawer-bg" @click="handleClickOutside"/>
<!-- Desktop keeps the vertical navigation visible alongside the new horizontal bar. -->
<sidebar v-if="device !== 'mobile' || sidebar.opened" class="sidebar-container"/>
<sidebar
v-if="device !== 'mobile' || sidebar.opened"
class="sidebar-container"
:class="{ 'sidebar-wide': sidebarWide }"
@menu-depth-change="setSidebarWide"
/>
<div :class="{hasTagsView:needTagsView,sidebarHide:sidebar.hide}" class="main-container">
<div class="layout-header" :class="{'fixed-header':fixedHeader}">
<navbar />
@ -18,21 +23,6 @@
>{{ item.label }}</button>
</div>
<!-- station selector removed -->
<!-- <el-select
v-model="selectedStation"
class="station-select"
size="mini"
popper-class="station-select-popper"
placeholder="请选择场站"
@change="handleStationChange"
>
<el-option
v-for="station in stationOptions"
:key="station.value"
:label="station.label"
:value="station.value"
/>
</el-select> -->
</div>
<tags-view v-if="needTagsView"/>
</div>
@ -50,7 +40,6 @@ import { AppMain, Navbar, Settings, Sidebar, TagsView } from './components'
import ResizeMixin from './mixin/ResizeHandler'
import { mapState } from 'vuex'
import variables from '@/assets/styles/variables.scss'
import { getList as getStationList } from '@/api/basedata/station'
export default {
name: 'Layout',
@ -64,10 +53,9 @@ export default {
},
data() {
return {
stationOptions: [],
selectedStation: '',
sidebarWide: false,
moduleLinks: [
{ key: 'home', label: '动环巡检', path: '/index' }
{ key: 'home', label: '', path: '/index' }
]
}
},
@ -87,7 +75,8 @@ export default {
openSidebar: this.sidebar.opened,
withoutAnimation: this.sidebar.withoutAnimation,
mobile: this.device === 'mobile',
patrolWorkspace: this.isPatrolWorkspace
patrolWorkspace: this.isPatrolWorkspace,
sidebarWide: this.sidebarWide
}
},
isPatrolWorkspace() {
@ -100,32 +89,13 @@ export default {
return variables;
}
},
mounted() {
this.loadStations()
},
methods: {
async loadStations() {
try {
const result = await getStationList({ pageNum: 1, pageSize: 1000 })
const rows = Array.isArray(result && result.rows)
? result.rows
: (Array.isArray(result && result.data) ? result.data : [])
this.stationOptions = rows.map((item, index) => {
const value = item.stationCode || item.stationId || item.id || item.code
const label = index === 0 ? '白杨坪升压站' : (item.stationName || item.name || String(value || ''))
return { value: value == null ? '' : String(value), label }
}).filter(item => item.value && item.label)
} catch (error) {
this.stationOptions = []
}
this.selectedStation = this.$route.query.stationCode || (this.stationOptions[0] && this.stationOptions[0].value) || ''
},
handleStationChange(value) {
this.$router.replace({ query: { ...this.$route.query, stationCode: value } }).catch(() => undefined)
},
goModule(path) {
if (this.$route.path !== path) this.$router.push({ path }).catch(() => undefined)
},
setSidebarWide(hasNestedMenus) {
this.sidebarWide = hasNestedMenus
},
handleClickOutside() {
this.$store.dispatch('app/closeSideBar', { withoutAnimation: false })
}
@ -248,46 +218,6 @@ export default {
box-shadow: none;
}
.module-link.active::after {
content: '';
position: absolute;
left: 0;
right: 0;
bottom: -2px;
height: 24px;
transform: scaleX(-1) scaleY(-1);
background-image: radial-gradient(circle at 50% 0%, #00CBDA 0%, rgba(23, 88, 93, 0) 47%, rgba(23, 47, 93, 0) 61%);
background-size: 100% 100%;
pointer-events: none;
}
.station-select {
width: 176px;
}
.station-select ::v-deep .el-input__inner {
height: 26px;
padding: 0 30px 0 12px;
color: #dcecff;
font-size: 14px;
letter-spacing: 1px;
font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
line-height: 24px;
background: rgba(9, 31, 89, .82);
border: 1px solid #6b9deb;
border-radius: 2px;
}
.station-select ::v-deep .el-input__suffix {
color: #b5d9ff;
}
::v-deep .station-select-popper .el-select-dropdown__item {
font-size: 14px;
letter-spacing: 1px;
font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
}
.fixed-header {
position: fixed;
top: 0;
@ -310,6 +240,16 @@ export default {
}
.sidebarWide .layout-header {
margin-left: -$base-sidebar-wide-width;
width: calc(100% + #{$base-sidebar-wide-width});
.tags-view-container {
width: calc(100% - #{$base-sidebar-wide-width});
margin-left: $base-sidebar-wide-width;
}
}
.hideSidebar .module-links {
margin-left: 54px;
}


+ 1
- 1
src/router/index.js View File

@ -149,7 +149,7 @@ export const constantRoutes = [
path: 'index',
component: () => import('@/views/cards/taskSummary/inspectionTask'),
name: 'Index',
meta: { title: '动环巡检', icon: 'dashboard', affix: true, activeMenu: '/task-summary/inspectionTask' }
meta: { title: '巡视任务', icon: 'dashboard', affix: true, activeMenu: '/task-summary/inspectionTask' }
}
]
},


+ 80
- 66
src/views/cards/patrolPlan/summary_editTask.vue View File

@ -13,40 +13,6 @@
></el-input>
</div>
<!-- 任务类型 -->
<div class="form-row">
<div class="form-label">任务类型 <span>*</span></div>
<TreeSelect
:defaultExpandLevel="2"
:limit="0"
:limitText="(count) => `+${count}`"
v-model="formData.type"
:options="listPatroltype"
:show-count="true"
placeholder="请选择巡检类型"
@select="handlePatrolTypeSelect"
class="form-input"
/>
</div>
<!-- 点位类型 - 复选框组 -->
<div class="form-row checkbox-row">
<div class="form-label">点位类型 <span>*</span></div>
<div class="form-input checkbox-group-wrapper">
<el-checkbox-group
v-model="formData.pointTypeList"
@change="handlePointTypeChange"
>
<el-checkbox
v-for="item in pointTypeOptions"
:key="item.dictCode"
:label="String(item.dictCode)"
>{{ item.dictLabel }}</el-checkbox
>
</el-checkbox-group>
</div>
</div>
<!-- 时间周期选择 -->
<div class="form-row">
<div class="form-label">执行策略 <span>*</span></div>
@ -300,8 +266,42 @@
</div>
<!-- 右侧巡检区域树 + 按钮 -->
<!-- 右侧任务类型/点位类型 + 巡检区域树 -->
<div class="ac-on1-box ac-one1-right">
<!-- 任务类型 -->
<div class="form-row">
<div class="form-label">任务类型 <span>*</span></div>
<TreeSelect
:defaultExpandLevel="2"
:limit="0"
:limitText="(count) => `+${count}`"
v-model="formData.type"
:options="listPatroltype"
:show-count="true"
placeholder="请选择巡检类型"
@select="handlePatrolTypeSelect"
class="form-input"
/>
</div>
<!-- 点位类型 - 复选框组 -->
<div class="form-row checkbox-row">
<div class="form-label">点位类型 <span>*</span></div>
<div class="form-input checkbox-group-wrapper">
<el-checkbox-group
v-model="formData.pointTypeList"
@change="handlePointTypeChange"
>
<el-checkbox
v-for="item in pointTypeOptions"
:key="String(item.dictCode)"
:label="String(item.dictCode)"
>{{ item.dictLabel }}</el-checkbox
>
</el-checkbox-group>
</div>
</div>
<!-- 巡检区域筛选 -->
<div class="form-row area-filter-row">
<div class="form-label">巡检区域</div>
@ -313,7 +313,7 @@
</div>
<el-checkbox
style="margin-top: 10px;margin-left:65px"
style="margin-top: 10px;margin-left:130px"
v-model="checkAll"
@change="handleCheckAllChange"
>全选</el-checkbox
@ -331,15 +331,16 @@
class="transparent-tree"
/>
</div>
<div class="button-group-tree">
<el-button class="patrol-dialog-cancel-btn" @click="cancel">取消</el-button>
<el-button type="primary" @click="submit" :loading="isSubmitting" :disabled="isSubmitting"
>{{ isSubmitting ? '提交中...' : '保存' }}</el-button
>
</div>
</div>
</div>
<!-- 底部按钮整体面板下方 -->
<div class="button-group-tree">
<el-button class="patrol-dialog-cancel-btn" @click="cancel">取消</el-button>
<el-button type="primary" @click="submit" :loading="isSubmitting" :disabled="isSubmitting"
>{{ isSubmitting ? '提交中...' : '保存' }}</el-button
>
</div>
</div>
</template>
@ -1160,14 +1161,21 @@ export default {
height: 100%;
box-sizing: border-box;
overflow: hidden;
display: flex;
flex-direction: column;
}
.ac-on1 {
width: 100%;
height: 100%;
flex: 1 1 auto;
min-height: 0;
display: flex;
gap: 40px;
min-height: 0;
box-sizing: border-box;
//
border: 1px solid rgba(63, 127, 216, 0.72);
border-radius: 2px;
padding: 24px;
.ac-on1-box {
flex: 1;
@ -1190,14 +1198,19 @@ export default {
.form-label {
width: 130px;
flex-shrink: 0;
text-align: right;
font-size: 14px;
color: #fff;
line-height: 40px;
padding-right: 12px;
//
display: flex;
justify-content: flex-end;
align-items: center;
span {
color: #fa3239;
order: -1;
margin-right: 4px;
}
}
@ -1369,7 +1382,7 @@ export default {
.ac-one1-right {
background: transparent;
border-radius: 8px;
padding: 20px;
padding: 0;
display: flex;
flex-direction: column;
min-height: 0;
@ -1381,7 +1394,7 @@ export default {
flex: 1;
overflow: auto;
margin-top: 10px;
margin-left:65px;
margin-left:130px;
&::-webkit-scrollbar {
width: 6px;
}
@ -1406,29 +1419,30 @@ export default {
}
}
}
}
.button-group-tree {
margin-top: 35px;
text-align: right;
padding-top: 16px;
//
.button-group-tree {
flex: 0 0 auto;
margin-top: 20px;
text-align: right;
.el-button {
min-width: 100px;
margin-left: 12px;
}
.el-button {
min-width: 100px;
margin-left: 12px;
}
}
.patrol-dialog-cancel-btn {
border: 1px solid transparent !important;
background:
linear-gradient(#01016b, #01016b) padding-box,
linear-gradient(135deg, #3988ff, #0351c6) border-box !important;
color: #43c0ff !important;
.patrol-dialog-cancel-btn {
border: 1px solid transparent !important;
background:
linear-gradient(#01016b, #01016b) padding-box,
linear-gradient(135deg, #3988ff, #0351c6) border-box !important;
color: #43c0ff !important;
&:hover,
&:focus {
opacity: 0.9;
}
&:hover,
&:focus {
opacity: 0.9;
}
}


+ 80
- 66
src/views/cards/patrolPlan/summary_newTask.vue View File

@ -13,40 +13,6 @@
></el-input>
</div>
<!-- 任务类型 -->
<div class="form-row">
<div class="form-label">任务类型 <span>*</span></div>
<TreeSelect
:defaultExpandLevel="2"
:limit="0"
:limitText="(count) => `+${count}`"
v-model="type"
:options="listPatroltype"
:show-count="true"
placeholder="请选择巡检类型"
@select="handlePatrolTypeSelect"
class="form-input"
/>
</div>
<!-- 点位类型 - 复选框组 -->
<div class="form-row checkbox-row">
<div class="form-label">点位类型 <span>*</span></div>
<div class="form-input checkbox-group-wrapper">
<el-checkbox-group
v-model="pointTypeList"
@change="handlePointTypeChange"
>
<el-checkbox
v-for="item in pointTypeOptions"
:key="item.dictCode"
:label="item.dictCode"
>{{ item.dictLabel }}</el-checkbox
>
</el-checkbox-group>
</div>
</div>
<!-- 时间周期选择 -->
<div class="form-row">
<div class="form-label">执行策略 <span>*</span></div>
@ -298,8 +264,42 @@
</div>
<!-- 右侧巡检区域树 + 按钮 -->
<!-- 右侧任务类型/点位类型 + 巡检区域树 -->
<div class="ac-on1-box ac-one1-right">
<!-- 任务类型 -->
<div class="form-row">
<div class="form-label">任务类型 <span>*</span></div>
<TreeSelect
:defaultExpandLevel="2"
:limit="0"
:limitText="(count) => `+${count}`"
v-model="type"
:options="listPatroltype"
:show-count="true"
placeholder="请选择巡检类型"
@select="handlePatrolTypeSelect"
class="form-input"
/>
</div>
<!-- 点位类型 - 复选框组 -->
<div class="form-row checkbox-row">
<div class="form-label">点位类型 <span>*</span></div>
<div class="form-input checkbox-group-wrapper">
<el-checkbox-group
v-model="pointTypeList"
@change="handlePointTypeChange"
>
<el-checkbox
v-for="item in pointTypeOptions"
:key="item.dictCode"
:label="item.dictCode"
>{{ item.dictLabel }}</el-checkbox
>
</el-checkbox-group>
</div>
</div>
<!-- 巡检区域标签和输入框在同一行 -->
<div class="form-row area-filter-row">
<div class="form-label">巡检区域</div>
@ -311,7 +311,7 @@
</div>
<el-checkbox
style="margin-top: 10px;margin-left:65px;"
style="margin-top: 10px;margin-left:130px;"
v-model="checkAll"
@change="handleCheckAllChange"
>全选</el-checkbox
@ -329,15 +329,16 @@
class="transparent-tree"
/>
</div>
<div class="button-group-tree">
<el-button class="patrol-dialog-cancel-btn" @click="cancel">取消</el-button>
<el-button type="primary" @click="submit" :loading="isSubmitting" :disabled="isSubmitting"
>{{ isSubmitting ? '提交中...' : '完成' }}</el-button
>
</div>
</div>
</div>
<!-- 底部按钮整体面板下方 -->
<div class="button-group-tree">
<el-button class="patrol-dialog-cancel-btn" @click="cancel">取消</el-button>
<el-button type="primary" @click="submit" :loading="isSubmitting" :disabled="isSubmitting"
>{{ isSubmitting ? '提交中...' : '完成' }}</el-button
>
</div>
</div>
</template>
@ -1007,14 +1008,21 @@ export default {
height: 100%;
box-sizing: border-box;
overflow: hidden;
display: flex;
flex-direction: column;
}
.ac-on1 {
width: 100%;
height: 100%;
flex: 1 1 auto;
min-height: 0;
display: flex;
gap: 40px;
min-height: 0;
box-sizing: border-box;
//
border: 1px solid rgba(63, 127, 216, 0.72);
border-radius: 2px;
padding: 24px;
.ac-on1-box {
flex: 1;
@ -1037,14 +1045,19 @@ export default {
.form-label {
width: 130px;
flex-shrink: 0;
text-align: right;
font-size: 14px;
color: #fff;
line-height: 40px;
padding-right: 12px;
//
display: flex;
justify-content: flex-end;
align-items: center;
span {
color: #fa3239;
order: -1;
margin-right: 4px;
}
.el-button {
@ -1242,7 +1255,7 @@ export default {
.ac-one1-right {
background: transparent;
border-radius: 8px;
padding: 20px;
padding: 0;
display: flex;
flex-direction: column;
min-height: 0;
@ -1254,7 +1267,7 @@ export default {
flex: 1;
overflow: auto;
margin-top: 10px;
margin-left:65px;
margin-left:130px;
&::-webkit-scrollbar {
width: 6px;
@ -1280,29 +1293,30 @@ export default {
}
}
}
}
.button-group-tree {
margin-top: 35px;
text-align: right;
padding-top: 16px;
//
.button-group-tree {
flex: 0 0 auto;
margin-top: 20px;
text-align: right;
.el-button {
min-width: 100px;
margin-left: 12px;
}
.el-button {
min-width: 100px;
margin-left: 12px;
}
}
.patrol-dialog-cancel-btn {
border: 1px solid transparent !important;
background:
linear-gradient(#01016b, #01016b) padding-box,
linear-gradient(135deg, #3988ff, #0351c6) border-box !important;
color: #43c0ff !important;
.patrol-dialog-cancel-btn {
border: 1px solid transparent !important;
background:
linear-gradient(#01016b, #01016b) padding-box,
linear-gradient(135deg, #3988ff, #0351c6) border-box !important;
color: #43c0ff !important;
&:hover,
&:focus {
opacity: 0.9;
}
&:hover,
&:focus {
opacity: 0.9;
}
}


+ 7
- 0
src/views/cards/site_management/site_management.vue View File

@ -3798,6 +3798,13 @@ export default {
padding-right: 8px;
}
//
// 12px
::v-deep .xg_tree .el-tree-node__expand-icon.is-leaf {
display: inline-block;
width: 12px;
}
::v-deep .child-count {
color: #909399;
font-size: 14px;


Loading…
Cancel
Save