8a640b55 by renchao@pashanhoo.com

style:上报配置修改

1 parent 6ca0b7a5
1 { 1 {
2 "TITLE": "汉中市数据上报系统", 2 "TITLE": "汉中市数据上报系统",
3 "THEME": "sb",
4 "LOGIN": "sb",
5 "CODE": "BDCSBPT", 3 "CODE": "BDCSBPT",
6 "AREARMAP": "610702", 4 "AREARMAP": "610702",
7 "XZQ": "汉中市", 5 "XZQ": "汉中市",
......
1 { 1 {
2 "TITLE": "玉树州数据上报系统", 2 "TITLE": "玉树州数据上报系统",
3 "THEME": "sb",
4 "LOGIN": "sb",
5 "CODE": "BDCSBPT", 3 "CODE": "BDCSBPT",
6 "AREARMAP": "632701", 4 "AREARMAP": "632701",
7 "XZQ": "玉树州", 5 "XZQ": "玉树州",
......
1 <template>
2 <section class="app-main">
3 <transition name="fade-transform" mode="out-in">
4 <router-view />
5 </transition>
6 </section>
7 </template>
8 <script>
9
10 export default {
11 name: 'AppMain',
12 computed: {
13 key () {
14 return this.$route.path
15 }
16 }
17 }
18 </script>
...\ No newline at end of file ...\ No newline at end of file
1 <template>
2 <div class="navbar-con">
3 <div class="navbar">
4 <div class="title">
5 {{ BASE_API.TITLE }}
6 </div>
7 <div class="user">
8 欢迎进入系统 {{ userName }}
9 <span @click="onCancel">
10 <svg-icon icon-class="close" class="closeStyle" />退出系统</span>
11 </div>
12 <div class="sidebarLeft">
13 <sidebarLeft />
14 </div>
15 <div class="sidebarRight d-center">
16 <sidebarRight />
17 </div>
18 </div>
19 </div>
20 </template>
21 <script>
22 import sidebarLeft from "./Sidebar/sidebarLeft";
23 import sidebarRight from "./Sidebar/sidebarRight";
24 import { logout } from "@/api/login.js";
25 import { mapGetters } from "vuex";
26 export default {
27 components: {
28 sidebarLeft,
29 sidebarRight,
30 },
31 computed: {
32 ...mapGetters(["userInfo"]),
33 userName () {
34 return this.userInfo ? this.userInfo.name : ""
35 }
36 },
37 methods: {
38 onCancel () {
39 logout()
40 .then((res) => {
41 sessionStorage.removeItem("token");
42 this.$store.dispatch("user/resetState");
43 this.$store.dispatch("permission/resetRoutes");
44 this.$router.replace({
45 path: "/jg"
46 })
47 })
48 .catch((error) => {
49 })
50 }
51 }
52 }
53 </script>
54 <style lang="scss" scoped>
55 .menubg {
56 height: 34px;
57 width: 130px !important;
58 text-align: center;
59 color: #ffffff;
60 background: url("~@/image/navbar.png") no-repeat;
61 background-size: 100% 100%;
62 }
63
64 /deep/.el-menu-item {
65 @extend .menubg;
66 }
67
68 /deep/.el-submenu {
69 @extend .menubg;
70 }
71
72 /deep/.el-submenu__title {
73 height: 34px;
74 color: #ffffff;
75 }
76
77 /deep/.el-submenu__title span {
78 font-size: 14px;
79 }
80
81 .sidebarLeft {
82 position: relative;
83 top: 13px;
84 width: 30%;
85 }
86
87 /deep/.el-menu {
88 display: flex;
89 justify-content: space-between;
90 width: 100%;
91 background: transparent !important;
92 }
93
94 /deep/.el-menu-item {
95 flex: 1;
96 width: 100%;
97 }
98
99 .sidebarRight {
100 position: relative;
101 top: 13px;
102 width: 30%;
103 }
104
105 // 导航选中背景色
106 .xuanzhong {
107 background: url("~@/image/selNavbar.png") no-repeat;
108 background-size: 100% 100%;
109 color: #ffffff !important;
110 font-weight: 700;
111 }
112
113 /deep/.el-menu-item:hover {
114 @extend .xuanzhong;
115 }
116
117 /deep/.el-submenu__title:hover {
118 @extend .xuanzhong;
119 }
120
121 /deep/.el-menu--horizontal .el-menu-item:not(.is-disabled):focus {
122 @extend .xuanzhong;
123 }
124
125 /deep/.is-active {
126 @extend .xuanzhong;
127 }
128
129 .navbar {
130 height: $headerHeight;
131 overflow: hidden;
132 position: relative;
133 display: flex;
134 align-items: center;
135 padding: 0 20px;
136 justify-content: space-between;
137 background: url("~@/image/header.png") no-repeat;
138 background-size: 100% 100%;
139
140 .user {
141 font-size: 12px;
142 color: #ffffff;
143 position: absolute;
144 right: 20px;
145 top: 0;
146 cursor: pointer;
147
148 .closeStyle {
149 margin-right: 5px;
150 }
151 }
152
153 .title {
154 position: absolute;
155 left: 0;
156 top: 10px;
157 bottom: 0;
158 right: 0;
159 margin: 0 auto;
160 font-size: 32px;
161 color: #ffffff;
162 font-weight: 700;
163 text-align: center;
164 }
165
166 .right-menu {
167 float: right;
168 height: 100%;
169 line-height: 50px;
170 display: flex;
171 align-items: center;
172
173 .shutdown {
174 font-size: 20px;
175 margin-left: 15px;
176 cursor: pointer;
177 }
178
179 .organization-item {
180 margin-right: 40px;
181 margin-top: -40px !important;
182 }
183
184 .item {
185 margin-right: 40px;
186 margin-top: -20px;
187 line-height: 18.4px;
188 cursor: pointer;
189 position: relative;
190
191 .item-box {
192 position: absolute;
193 top: -5px;
194 left: 3px;
195 width: 100%;
196 min-width: 25px;
197 height: 25px;
198 cursor: pointer;
199 z-index: 100;
200 }
201 }
202
203 &:focus {
204 outline: none;
205 }
206
207 .right-menu-item {
208 display: inline-block;
209 height: 100%;
210 font-size: 18px;
211 color: #fff;
212 vertical-align: text-bottom;
213
214 &.hover-effect {
215 cursor: pointer;
216 transition: background 0.3s;
217 display: flex;
218 align-items: center;
219
220 &:hover {
221 background: rgba(0, 0, 0, 0.025);
222 }
223 }
224 }
225
226 .avatar-wrapper {
227 position: relative;
228 display: flex;
229 height: 40px;
230 align-items: center;
231
232 .user-avatar {
233 cursor: pointer;
234 width: 35px;
235 height: 35px;
236 border-radius: 50%;
237 }
238
239 .el-icon-caret-bottom {
240 cursor: pointer;
241 position: absolute;
242 right: -15px;
243 top: 17px;
244 font-size: 12px;
245 }
246 }
247 }
248 }
249 </style>
1 export default {
2 computed: {
3 device() {
4 return this.$store.state.app.device
5 }
6 },
7 mounted() {
8 // In order to fix the click on menu on the ios device will trigger the mouseleave bug
9 // https://github.com/PanJiaChen/vue-element-admin/issues/1135
10 this.fixBugIniOS()
11 },
12 methods: {
13 fixBugIniOS() {
14 const $subMenu = this.$refs.subMenu
15 if ($subMenu) {
16 const handleMouseleave = $subMenu.handleMouseleave
17 $subMenu.handleMouseleave = (e) => {
18 if (this.device === 'mobile') {
19 return
20 }
21 handleMouseleave(e)
22 }
23 }
24 }
25 }
26 }
1 <script>
2 export default {
3 name: 'MenuItem',
4 functional: true,
5 props: {
6 icon: {
7 type: String,
8 default: ''
9 },
10 title: {
11 type: String,
12 default: ''
13 }
14 },
15 render (h, context) {
16 const { title } = context.props
17 const vnodes = []
18 if (title) {
19 vnodes.push(<span slot='title'>{(title)}</span>)
20 }
21 return vnodes
22 }
23 }
24 </script>
1 <template>
2 <component :is="type" v-bind="linkProps(to)">
3 <slot />
4 </component>
5 </template>
6
7 <script>
8 import { isExternal } from '@/utils/validate'
9
10 export default {
11 props: {
12 to: {
13 type: String,
14 required: true
15 }
16 },
17 computed: {
18 isExternal() {
19 return isExternal(this.to)
20 },
21 type() {
22 if (this.isExternal) {
23 return 'a'
24 }
25 return 'router-link'
26 }
27 },
28 methods: {
29 linkProps(to) {
30 if (this.isExternal) {
31 return {
32 href: to,
33 target: '_blank',
34 rel: 'noopener'
35 }
36 }
37 return {
38 to: to
39 }
40 }
41 }
42 }
43 </script>
1 <template>
2 <div class="sidebar-logo-container" :class="{ 'collapse': collapse }">
3 <transition name="sidebarLogoFade">
4 <router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
5 <img v-if="logo" :src="logo" class="sidebar-logo">
6 <h1 v-else class="sidebar-title">
7 {{ title }}
8 </h1>
9 </router-link>
10 <router-link v-else key="expand" class="sidebar-logo-link" to="/">
11 <h1 class="sidebar-title">
12 {{ title }}
13 </h1>
14 </router-link>
15 </transition>
16 </div>
17 </template>
18
19 <script>
20 import defaultSettings from '@/settings'
21 const { title } = defaultSettings
22 export default {
23 name: 'SidebarLogo',
24 props: {
25 collapse: {
26 type: Boolean,
27 required: true
28 }
29 },
30 data () {
31 return {
32 title: title,
33 }
34 }
35 }
36 </script>
37
38 <style lang="scss" scoped>
39 .sidebarLogoFade-enter-active {
40 transition: opacity 1.5s;
41 }
42
43 .sidebarLogoFade-enter,
44 .sidebarLogoFade-leave-to {
45 opacity: 0;
46 }
47
48 .sidebar-logo-container {
49 position: relative;
50 width: 100%;
51 text-align: center;
52 overflow: hidden;
53 height: 100px;
54
55 & .sidebar-logo-link {
56 height: 100%;
57 width: 100%;
58
59 & .sidebar-logo {
60 width: 41px;
61 height: 39px;
62 vertical-align: middle;
63 // margin-left: 47px;
64 // margin-right: 48px;
65 margin-top: 22px;
66 }
67
68 & .sidebar-title {
69 margin: 0;
70 margin-top: 10px;
71 margin-bottom: 20px;
72 color: #fff;
73 font-weight: 600;
74 line-height: 25px;
75 font-size: 16px;
76 font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif;
77 vertical-align: middle;
78 }
79 }
80
81 &.collapse {
82 .sidebar-logo {
83 margin-right: 0px;
84 width: 32.8px;
85 height: 31.2px;
86 }
87 }
88 }
89 </style>
1 <template>
2 <div v-if="!item.hidden">
3 <template
4 v-if="hasOneShowingChild(item.children, item) && (!onlyOneChild.children || onlyOneChild.noShowingChildren)">
5 <app-link v-if="onlyOneChild.meta" :to="resolvePath(onlyOneChild.path)">
6 <el-menu-item :index="resolvePath(onlyOneChild.path)" :class="{ 'submenu-title-noDropdown': !isNest }">
7 <item :icon="onlyOneChild.meta.icon || (item.meta && item.meta.icon)" :title="onlyOneChild.meta.title"
8 class="menu-icon" />
9 </el-menu-item>
10 </app-link>
11 </template>
12
13 <el-submenu v-else ref="subMenu" :index="resolvePath(item.path)" popper-append-to-body>
14 <template slot="title">
15 <item v-if="item.meta" :icon="item.meta && item.meta.icon" :title="item.meta.title" />
16 </template>
17 <sidebar-item v-for="child in item.children" :key="child.path" :is-nest="true" :item="child"
18 :base-path="resolvePath(child.path)" class="nest-menu" />
19 </el-submenu>
20 </div>
21 </template>
22
23 <script>
24 import path from 'path'
25 import { isExternal } from '@/utils/validate'
26 import Item from './Item'
27 import AppLink from './Link'
28 import FixiOSBug from './FixiOSBug'
29
30 export default {
31 name: 'SidebarItem',
32 components: { Item, AppLink },
33 mixins: [FixiOSBug],
34 props: {
35 // route object
36 item: {
37 type: Object,
38 required: true
39 },
40 isNest: {
41 type: Boolean,
42 default: false
43 },
44 basePath: {
45 type: String,
46 default: ''
47 }
48 },
49 data () {
50 // To fix https://github.com/PanJiaChen/vue-admin-template/issues/237
51 // TODO: refactor with render function
52 this.onlyOneChild = null
53 return {}
54 },
55 methods: {
56 hasOneShowingChild (children = [], parent) {
57 const showingChildren = children.filter(item => {
58 if (item.hidden) {
59 return false
60 } else {
61 // Temp set(will be used if only has one showing child)
62 this.onlyOneChild = item
63 return true
64 }
65 })
66
67 // When there is only one child router, the child router is displayed by default
68 if (showingChildren.length === 1) {
69 return true
70 }
71
72 // Show parent if there are no child router to display
73 if (showingChildren.length === 0) {
74 this.onlyOneChild = { ...parent, path: '', noShowingChildren: true }
75 return true
76 }
77
78 return false
79 },
80 resolvePath (routePath) {
81 if (isExternal(routePath)) {
82 return routePath
83 }
84 if (isExternal(this.basePath)) {
85 return this.basePath
86 }
87 return path.resolve(this.basePath, routePath)
88 }
89 }
90 }
91 </script>
...\ No newline at end of file ...\ No newline at end of file
1 <!--
2 * @Description: log
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-23 16:29:12
5 -->
6 <template>
7 <el-menu router :default-active="activeMenu" mode="horizontal">
8 <!-- 权限菜单 -->
9 <sidebar-item v-for="route in permission_routes.slice(4, 7)" :key="route.path" :item="route"
10 :base-path="route.path" />
11 <!-- 菜单全部展示 -->
12 <!-- <sidebar-item v-for="route in asyncRoutes" :key="route.path" :item="route" :base-path="route.path" /> -->
13 </el-menu>
14 </template>
15
16 <script>
17 import { mapGetters } from 'vuex'
18 import Logo from './Logo'
19 import SidebarItem from './SidebarItem'
20 import variables from '@/styles/variables.scss'
21 import { asyncRoutes } from '@/router'
22 export default {
23 components: { SidebarItem, Logo },
24 computed: {
25 ...mapGetters(['permission_routes', 'sidebar']),
26
27 activeMenu () {
28
29 const route = this.$route
30 const { meta, path } = route
31 if (meta.activeMenu) {
32 return meta.activeMenu
33 }
34 return path
35 },
36 variables () {
37 return variables
38 },
39 asyncRoutes () {
40 return asyncRoutes.slice(0, 3)
41 }
42 }
43 }
44 </script>
...\ No newline at end of file ...\ No newline at end of file
1 <!--
2 * @Author: xiaomiao 1158771342@qq.com
3 * @Date: 2023-01-10 09:03:06
4 * @LastEditors: Please set LastEditors
5 * @LastEditTime: 2023-03-23 16:29:24
6 * @FilePath: \监管系统\js-web-jianguan\src\layout\components\Sidebar\sidebarRight.vue
7 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8 -->
9 <template>
10 <el-menu router :default-active="activeMenu" mode="horizontal">
11 <!-- 权限菜单 -->
12 <sidebar-item v-for="route in permission_routes.slice(7, 10)" :key="route.path" :item="route"
13 :base-path="route.path" />
14 <!-- 菜单全部展示 -->
15 <!-- <sidebar-item v-for="route in asyncRoutes" :key="route.path" :item="route" :base-path="route.path" /> -->
16 </el-menu>
17 </template>
18
19 <script>
20 import { mapGetters } from 'vuex'
21 import Logo from './Logo'
22 import SidebarItem from './SidebarItem'
23 import variables from '@/styles/variables.scss'
24 import { asyncRoutes } from '@/router'
25 export default {
26 components: { SidebarItem, Logo },
27 computed: {
28 ...mapGetters(['permission_routes', 'sidebar']),
29 activeMenu () {
30 const route = this.$route
31 const { meta, path } = route
32 if (meta.activeMenu) {
33 return meta.activeMenu
34 }
35 return path
36 },
37 variables () {
38 return variables
39 },
40 asyncRoutes () {
41 return asyncRoutes.slice(3, 6)
42 }
43 }
44 }
45 </script>
1 <template>
2 <el-scrollbar ref="scrollContainer" :vertical="false" class="scroll-container" @wheel.native.prevent="handleScroll">
3 <slot />
4 </el-scrollbar>
5 </template>
6
7 <script>
8 const tagAndTagSpacing = 4 // tagAndTagSpacing
9
10 export default {
11 name: 'ScrollPane',
12 data () {
13 return {
14 left: 0
15 }
16 },
17 computed: {
18 scrollWrapper () {
19 return this.$refs.scrollContainer.$refs.wrap
20 }
21 },
22 mounted () {
23 this.scrollWrapper.addEventListener('scroll', this.emitScroll, true)
24 },
25 beforeDestroy () {
26 this.scrollWrapper.removeEventListener('scroll', this.emitScroll)
27 },
28 methods: {
29 handleScroll (e) {
30 const eventDelta = e.wheelDelta || -e.deltaY * 40
31 const $scrollWrapper = this.scrollWrapper
32 $scrollWrapper.scrollLeft = $scrollWrapper.scrollLeft + eventDelta / 4
33 },
34 emitScroll () {
35 this.$emit('scroll')
36 },
37 moveToTarget (currentTag) {
38 const $container = this.$refs.scrollContainer.$el
39 const $containerWidth = $container.offsetWidth
40 const $scrollWrapper = this.scrollWrapper
41 const tagList = this.$parent.$refs.tag
42
43 let firstTag = null
44 let lastTag = null
45
46 // find first tag and last tag
47 if (tagList.length > 0) {
48 firstTag = tagList[0]
49 lastTag = tagList[tagList.length - 1]
50 }
51
52 if (firstTag === currentTag) {
53 $scrollWrapper.scrollLeft = 0
54 } else if (lastTag === currentTag) {
55 $scrollWrapper.scrollLeft = $scrollWrapper.scrollWidth - $containerWidth
56 } else {
57 // find preTag and nextTag
58 const currentIndex = tagList.findIndex(item => item === currentTag)
59 const prevTag = tagList[currentIndex - 1]
60 const nextTag = tagList[currentIndex + 1]
61
62 // the tag's offsetLeft after of nextTag
63 const afterNextTagOffsetLeft = nextTag.$el.offsetLeft + nextTag.$el.offsetWidth + tagAndTagSpacing
64
65 // the tag's offsetLeft before of prevTag
66 const beforePrevTagOffsetLeft = prevTag.$el.offsetLeft - tagAndTagSpacing
67
68 if (afterNextTagOffsetLeft > $scrollWrapper.scrollLeft + $containerWidth) {
69 $scrollWrapper.scrollLeft = afterNextTagOffsetLeft - $containerWidth
70 } else if (beforePrevTagOffsetLeft < $scrollWrapper.scrollLeft) {
71 $scrollWrapper.scrollLeft = beforePrevTagOffsetLeft
72 }
73 }
74 }
75 }
76 }
77 </script>
78
79 <style lang="scss" scoped>
80 .scroll-container {
81 white-space: nowrap;
82 position: relative;
83 overflow: hidden;
84 width: 100%;
85 height: 100%;
86 }
87
88 /deep/ .el-scrollbar__view {
89 display: inline-block !important;
90 }
91
92 /deep/ .el-scrollbar__wrap {
93 overflow-x: hidden !important;
94 }
95 </style>
1 <template>
2 <div id="tags-view-container" class="tags-view-container">
3 <scroll-pane ref="scrollPane" class="tags-view-wrapper" @scroll="handleScroll">
4 <router-link v-for="tag in visitedViews" ref="tag" :key="tag.path" :class="isActive(tag)?'active':''"
5 :to="{ path: tag.path, query: tag.query, fullPath: tag.fullPath }" tag="span" class="tags-view-item"
6 @click.middle.native="!isAffix(tag)?closeSelectedTag(tag):''"
7 @contextmenu.prevent.native="openMenu(tag,$event)">
8 {{ tag.title }}
9 <span v-if="!isAffix(tag)" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)" />
10 </router-link>
11 </scroll-pane>
12 <ul v-show="visible" :style="{left:left+'px',top:top+'px'}" class="contextmenu">
13 <li @click="refreshSelectedTag(selectedTag)">Refresh</li>
14 <li v-if="!isAffix(selectedTag)" @click="closeSelectedTag(selectedTag)">Close</li>
15 <li @click="closeOthersTags">Close Others</li>
16 <li @click="closeAllTags(selectedTag)">Close All</li>
17 </ul>
18 </div>
19 </template>
20
21 <script>
22 import ScrollPane from './ScrollPane'
23 import path from 'path'
24
25 export default {
26 components: { ScrollPane },
27 data () {
28 return {
29 visible: false,
30 top: 0,
31 left: 0,
32 selectedTag: {},
33 affixTags: []
34 }
35 },
36 computed: {
37 visitedViews () {
38 return this.$store.state.tagsView.visitedViews
39 },
40 routes () {
41 return this.$store.state.permission.routes
42 }
43 },
44 watch: {
45 $route () {
46 this.addTags()
47 this.moveToCurrentTag()
48 },
49 visible (value) {
50 if (value) {
51 document.body.addEventListener('click', this.closeMenu)
52 } else {
53 document.body.removeEventListener('click', this.closeMenu)
54 }
55 }
56 },
57 mounted () {
58 this.initTags()
59 this.addTags()
60 },
61 methods: {
62 isActive (route) {
63 return route.path === this.$route.path
64 },
65 isAffix (tag) {
66 return tag.meta && tag.meta.affix
67 },
68 filterAffixTags (routes, basePath = '/') {
69 let tags = []
70 routes.forEach(route => {
71 if (route.meta && route.meta.affix) {
72 const tagPath = path.resolve(basePath, route.path)
73 tags.push({
74 fullPath: tagPath,
75 path: tagPath,
76 name: route.name,
77 meta: { ...route.meta }
78 })
79 }
80 if (route.children) {
81 const tempTags = this.filterAffixTags(route.children, route.path)
82 if (tempTags.length >= 1) {
83 tags = [...tags, ...tempTags]
84 }
85 }
86 })
87 return tags
88 },
89 initTags () {
90 const affixTags = this.affixTags = this.filterAffixTags(this.routes)
91 for (const tag of affixTags) {
92 // Must have tag name
93 if (tag.name) {
94 this.$store.dispatch('tagsView/addVisitedView', tag)
95 }
96 }
97 },
98 addTags () {
99 const { name } = this.$route
100 if (name) {
101 this.$store.dispatch('tagsView/addView', this.$route)
102 }
103 return false
104 },
105 moveToCurrentTag () {
106 const tags = this.$refs.tag
107 this.$nextTick(() => {
108 for (const tag of tags) {
109 if (tag.to.path === this.$route.path) {
110 this.$refs.scrollPane.moveToTarget(tag)
111 // when query is different then update
112 if (tag.to.fullPath !== this.$route.fullPath) {
113 this.$store.dispatch('tagsView/updateVisitedView', this.$route)
114 }
115 break
116 }
117 }
118 })
119 },
120 refreshSelectedTag (view) {
121 this.$store.dispatch('tagsView/delCachedView', view).then(() => {
122 const { fullPath } = view
123 this.$nextTick(() => {
124 this.$router.replace({
125 path: '/redirect' + fullPath
126 })
127 })
128 })
129 },
130 closeSelectedTag (view) {
131 this.$store.dispatch('tagsView/delView', view).then(({ visitedViews }) => {
132 if (this.isActive(view)) {
133 this.toLastView(visitedViews, view)
134 }
135 })
136 },
137 closeOthersTags () {
138 this.$router.push(this.selectedTag)
139 this.$store.dispatch('tagsView/delOthersViews', this.selectedTag).then(() => {
140 this.moveToCurrentTag()
141 })
142 },
143 closeAllTags (view) {
144 this.$store.dispatch('tagsView/delAllViews').then(({ visitedViews }) => {
145 if (this.affixTags.some(tag => tag.path === view.path)) {
146 return
147 }
148 this.toLastView(visitedViews, view)
149 })
150 },
151 toLastView (visitedViews, view) {
152 const latestView = visitedViews.slice(-1)[0]
153 if (latestView) {
154 this.$router.push(latestView.fullPath)
155 } else {
156 // now the default is to redirect to the home page if there is no tags-view,
157 // you can adjust it according to your needs.
158 if (view.name === 'Dashboard') {
159 // to reload home page
160 this.$router.replace({ path: '/redirect' + view.fullPath })
161 } else {
162 this.$router.push('/')
163 }
164 }
165 },
166 openMenu (tag, e) {
167 const menuMinWidth = 105
168 const offsetLeft = this.$el.getBoundingClientRect().left // container margin left
169 const offsetWidth = this.$el.offsetWidth // container width
170 const maxLeft = offsetWidth - menuMinWidth // left boundary
171 const left = e.clientX - offsetLeft + 15 // 15: margin right
172
173 if (left > maxLeft) {
174 this.left = maxLeft
175 } else {
176 this.left = left
177 }
178
179 this.top = e.clientY
180 this.visible = true
181 this.selectedTag = tag
182 },
183 closeMenu () {
184 this.visible = false
185 },
186 handleScroll () {
187 this.closeMenu()
188 }
189 }
190 }
191 </script>
192
193 <style lang="scss" scoped>
194 .tags-view-container {
195 height: 40px;
196 width: 100%;
197 background: #fff;
198 border-bottom: 1px solid #d8dce5;
199 box-sizing: border-box;
200 padding-top: 3px;
201 box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .12), 0 0 3px 0 rgba(0, 0, 0, .04);
202
203 .tags-view-wrapper {
204 .tags-view-item {
205 display: inline-block;
206 position: relative;
207 cursor: pointer;
208 height: 26px;
209 line-height: 26px;
210 border: 1px solid #d8dce5;
211 color: #495060;
212 background: #fff;
213 padding: 0 8px;
214 font-size: 12px;
215 margin-left: 5px;
216 margin-top: 4px;
217
218 &:first-of-type {
219 margin-left: 15px;
220 }
221
222 &:last-of-type {
223 margin-right: 15px;
224 }
225
226 &.active {
227 background-color: #0794FF;
228 color: #fff;
229 border-color: #0794FF;
230
231 &::before {
232 content: '';
233 background: #fff;
234 display: inline-block;
235 width: 8px;
236 height: 8px;
237 border-radius: 50%;
238 position: relative;
239 margin-right: 2px;
240 }
241 }
242 }
243 }
244
245 .contextmenu {
246 margin: 0;
247 background: #fff;
248 z-index: 3000;
249 position: absolute;
250 list-style-type: none;
251 padding: 5px 0;
252 border-radius: 4px;
253 font-size: 12px;
254 font-weight: 400;
255 color: #333;
256 box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, .3);
257
258 li {
259 margin: 0;
260 padding: 7px 16px;
261 cursor: pointer;
262
263 &:hover {
264 background: #eee;
265 }
266 }
267 }
268 }
269 </style>
270
271 <style lang="scss">
272 //reset element css of el-icon-close
273 .tags-view-wrapper {
274 .tags-view-item {
275 .el-icon-close {
276 width: 16px;
277 height: 16px;
278 vertical-align: 2px;
279 border-radius: 50%;
280 text-align: center;
281 transition: all .3s cubic-bezier(.645, .045, .355, 1);
282 transform-origin: 100% 50%;
283
284 &:before {
285 transform: scale(.6);
286 display: inline-block;
287 vertical-align: -3px;
288 }
289
290 &:hover {
291 background-color: #b4bccc;
292 color: #fff;
293 }
294 }
295 }
296 }
297 </style>
1 export { default as AppMain } from './AppMain'
2 export { default as Navbar } from './Navbar'
3 export { default as Sidebar } from './Sidebar/sidebarRight.vue'
4 export { default as TagsView } from './TagsView/index.vue'
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-23 15:17:24
5 -->
6 <template>
7 <div class="app-wrapper jgWrapper">
8 <navbar />
9 <div class="appMain">
10 <app-main />
11 </div>
12 </div>
13 </template>
14 <script>
15 import { AppMain, Navbar, Sidebar, TagsView } from './components'
16 import ResizeMixin from './mixin/ResizeHandler'
17 import { mapState } from 'vuex'
18 export default {
19 name: 'Layout',
20 components: {
21 AppMain,
22 Navbar,
23 Sidebar,
24 TagsView
25 },
26 created () {
27 this.$store.dispatch("products/setData", "BDCJGPT");
28 },
29 mixins: [ResizeMixin],
30 computed: {
31 ...mapState({
32 sidebar: state => state.app.sidebar,
33 needTagsView: state => state.settings.tagsView,
34 fixedHeader: state => state.settings.fixedHeader
35 })
36 }
37 }
38 </script>
39 <style lang="scss">
40 @import "~@/styles/jgSidebar.scss";
41 </style>
42 <style lang="scss" scoped>
43 @import "~@/styles/mixin.scss";
44
45 .app-wrapper {
46 @include clearfix;
47 position: relative;
48 height: 100%;
49 width: 100%;
50 min-width: 1280px;
51 background: url("~@/image/bg.png") no-repeat;
52 background-size: 100% 100%;
53 padding: 12px;
54 box-sizing: border-box;
55
56 &.mobile.openSidebar {
57 position: fixed;
58 top: 0;
59 }
60 }
61
62 .appMain {
63 // min-width: 1280px;
64 height: calc(100vh - 101px) !important;
65 box-sizing: border-box;
66
67 .app-main {
68 height: 100%;
69 }
70 }
71 </style>
1 import store from '@/store'
2
3 const { body } = document
4 const WIDTH = 992 // refer to Bootstrap's responsive design
5
6 export default {
7 watch: {
8 $route(route) {
9 if (this.device === 'mobile' && this.sidebar.opened) {
10 store.dispatch('app/closeSideBar', { withoutAnimation: false })
11 }
12 }
13 },
14 beforeMount() {
15 window.addEventListener('resize', this.$_resizeHandler)
16 },
17 beforeDestroy() {
18 window.removeEventListener('resize', this.$_resizeHandler)
19 },
20 mounted() {
21 const isMobile = this.$_isMobile()
22 if (isMobile) {
23 store.dispatch('app/toggleDevice', 'mobile')
24 store.dispatch('app/closeSideBar', { withoutAnimation: true })
25 }
26 },
27 methods: {
28 // use $_ for mixins properties
29 // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential
30 $_isMobile() {
31 const rect = body.getBoundingClientRect()
32 return rect.width - 1 < WIDTH
33 },
34 $_resizeHandler() {
35 if (!document.hidden) {
36 const isMobile = this.$_isMobile()
37 store.dispatch('app/toggleDevice', isMobile ? 'mobile' : 'desktop')
38
39 if (isMobile) {
40 store.dispatch('app/closeSideBar', { withoutAnimation: true })
41 }
42 }
43 }
44 }
45 }
1 import Vue from 'vue' 1 import Vue from 'vue'
2 import Router from 'vue-router' 2 import Router from 'vue-router'
3 Vue.use(Router) 3 Vue.use(Router)
4 import Layout from '@/layout' 4 import Layout from '@/layout1'
5 5
6 export const constantRoutes = [ 6 export const constantRoutes = [
7 { 7 {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
2 * @Author: xiaomiao 1158771342@qq.com 2 * @Author: xiaomiao 1158771342@qq.com
3 * @Date: 2023-03-09 15:24:53 3 * @Date: 2023-03-09 15:24:53
4 * @LastEditors: Please set LastEditors 4 * @LastEditors: Please set LastEditors
5 * @LastEditTime: 2023-03-23 10:19:35 5 * @LastEditTime: 2023-05-11 16:30:18
6 * @FilePath: \上报\bdcjg-web\src\store\modules\permission.js 6 * @FilePath: \上报\bdcjg-web\src\store\modules\permission.js
7 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE 7 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8 */ 8 */
...@@ -26,12 +26,7 @@ const mutations = { ...@@ -26,12 +26,7 @@ const mutations = {
26 const actions = { 26 const actions = {
27 // 添加全部菜单 27 // 添加全部菜单
28 generateRoutes ({ commit }, getMenuInfo) { 28 generateRoutes ({ commit }, getMenuInfo) {
29 let Layout; 29 let Layout = r => require.ensure([], () => r(require(`@/layout1`)))
30 if (Vue.prototype.BASE_API.THEME == 'sb') {
31 Layout = r => require.ensure([], () => r(require(`@/layout1`)))
32 } else {
33 Layout = r => require.ensure([], () => r(require(`@/layout`)))
34 }
35 function asyncRouter (routers) { 30 function asyncRouter (routers) {
36 routers.forEach(item => { 31 routers.forEach(item => {
37 if (!item.children) { 32 if (!item.children) {
......
1 // cover some element-ui styles
2 .el-breadcrumb__inner,
3 .el-breadcrumb__inner a {
4 font-weight: 400 !important;
5 color: #686666;
6 }
7
8 .el-table .cell {
9 line-height: 16px;
10 }
11
12 // input 样式
13 // 全局css 加上以下代码,可以隐藏上下箭头
14
15 // 取消input的上下箭头
16 input::-webkit-inner-spin-button {
17 -webkit-appearance: none !important;
18
19 }
20
21 input::-webkit-outer-spin-button {
22 -webkit-appearance: none !important;
23
24 }
25
26 input[type="number"] {
27 -moz-appearance: textfield;
28
29 }
30
31 .el-upload {
32 input[type="file"] {
33 display: none !important;
34 }
35 }
36
37 .el-upload__input {
38 display: none;
39 }
40
41 .cell {
42 .el-tag {
43 margin-right: 0px;
44 }
45 }
46
47 .small-padding {
48 .cell {
49 padding-left: 5px;
50 padding-right: 5px;
51 }
52 }
53
54 .fixed-width {
55 .el-button--mini {
56 padding: 7px 10px;
57 min-width: 60px;
58 }
59 }
60
61 .status-col {
62 .cell {
63 padding: 0 10px;
64 text-align: center;
65
66 .el-tag {
67 margin-right: 0px;
68 }
69 }
70 }
71
72 .el-icon-date,
73 .el-icon-time {
74 display: none;
75 }
76
77 // to fixed https://github.com/ElemeFE/element/issues/2461
78 // refine element ui upload
79 .el-input.is-disabled .el-input__inner {
80 color: #FFFFFF !important;
81 background-color: transparent !important;
82 border: 1px solid #224C7C !important;
83 }
84
85 .upload-container {
86 .el-upload {
87 width: 100%;
88
89 .el-upload-dragger {
90 width: 100%;
91 height: 200px;
92 }
93 }
94 }
95
96 // dropdown
97 .el-dropdown-menu {
98 a {
99 display: block
100 }
101 }
102
103 // fix date-picker ui bug in filter-item
104 .el-range-editor.el-input__inner {
105 display: inline-flex !important;
106 }
107
108 // to fix el-date-picker css style
109 .el-range-separator {
110 box-sizing: content-box;
111 }
112
113 .el-submenu__icon-arrow {
114 margin-top: -5px;
115 }
116
117 /* --------------进度条美化---------------- */
118 ::-webkit-scrollbar {
119 width: 7px;
120 height: 7px;
121 }
122
123 ::-webkit-scrollbar-corner {
124 display: none;
125 }
126
127 ::-webkit-scrollbar-track {
128 width: 7px;
129 background-color: rgba(0, 0, 0, 0);
130 -webkit-border-radius: 6px;
131 -moz-border-radius: 6px;
132 border-radius: 6px;
133 }
134
135 ::-webkit-scrollbar-thumb {
136 background: rgba(69, 138, 207, .6);
137 background-clip: padding-box;
138 min-height: 28px;
139 -webkit-border-radius: 6px;
140 -moz-border-radius: 6px;
141 border-radius: 6px;
142 }
143
144 ::-webkit-scrollbar-thumb:hover {
145 background: rgba(69, 138, 207, .6);
146 }
147
148 // 滚动条位置
149
150
151 // element 样式补丁
152 .el-menu--horizontal {
153 border-bottom: none !important;
154 }
155
156 .el-radio-group {
157 .el-radio-button__inner {
158 height: 36px;
159 line-height: 36px;
160 padding: 0 20px;
161 font-size: 14px;
162 }
163
164 .el-radio-button:first-child {
165 border-radius: 4px 0 0 4px;
166 }
167
168 .el-radio-button:last-child {
169 border-radius: 0 4px 4px 0;
170 }
171 }
172
173 .el-tabs__item:focus.is-active.is-focus:not(:active) {
174 box-shadow: none !important;
175 }
176
177 // Divider 分割线 样式的修改
178 .el-divider--horizontal {
179 margin: 10px 0 !important;
180 }
181
182 .el-row {
183 margin-bottom: 0 !important;
184 }
185
186 // form
187 .el-form-item__content {
188 margin-left: 0 !important;
189 }
190
191 .el-icon-full-screen,
192 .el-icon-rank {
193 cursor: pointer;
194 }
195
196 // element table 样式修改
197 //去掉表格内的线
198 table th {
199 border-bottom: none !important;
200 }
201
202 // .el-table__body {
203 // -webkit-border-vertical-spacing: 6px !important; // 垂直间距
204 // }
205
206 table td {
207 box-sizing: border-box;
208 border-bottom: 1px solid #458ACF !important;
209 }
210
211 //去掉最下面的那一条线
212 .el-table::before {
213 height: 0;
214 }
215
216 .el-table__body tr {
217 box-sizing: content-box !important;
218 cursor: pointer;
219 }
220
221 .el-table__body-wrapper .el-table__body tr:hover {
222 background: #063160 !important;
223 box-shadow: inset 0px 0px 20px 0px #03DBFF !important;
224 }
225
226 .el-table__body tr:hover>td,
227 .el-table__body tr.hover-row>td.el-table__cell {
228 background: none !important;
229 }
230
231 // table 固定列样式
232 .el-table__fixed-right-patch {
233 background-color: #073781;
234 border-bottom: none;
235 }
236
237 .el-table__fixed-right {
238 background-color: #073781
239 }
240
241 .el-table__fixed::before,
242 .el-table__fixed-right::before {
243 display: none;
244 }
245
246 // 表格样式
247 .el-table th {
248 height: 48px !important;
249 font-size: 14px;
250 color: #4A4A4A;
251 }
252
253 .twoLineCls {
254 text-overflow: -o-ellipsis-lastline;
255 overflow: hidden;
256 text-overflow: ellipsis;
257 display: -webkit-box;
258 -webkit-line-clamp: 2;
259 line-clamp: 2;
260 -webkit-box-orient: vertical;
261 }
262
263 .el-table tr td {
264 font-size: 14px;
265 color: #7A7A7A;
266 }
267
268 .lb-table .el-table {
269 border-bottom: none;
270 border-radius: 4px 4px 0 0;
271 }
272
273 .el-upload-list__item.is-success:focus:not(:hover) .el-icon-close-tip {
274 display: none !important
275 }
276
277 .el-message-box__btns {
278 display: flex;
279 flex-direction: row-reverse;
280 }
281
282 .el-message-box__btns .el-button--primary {
283 margin-right: 10px;
284 }
285
286 .el-form-item__content {
287 flex: 1;
288 }
289
290 .el-submenu__title {
291 .svg-icon {
292 position: relative;
293 top: 2px;
294 }
295 }
296
297
298 // element 下拉框样式
299 .el-menu--popup,
300 .el-select-dropdown {
301 background: url("~@/image/slbg.png") no-repeat;
302 background-size: 100% 100%;
303 padding: 10px;
304 border: none;
305 }
306
307 .el-popper[x-placement^="bottom"] .popper__arrow::after {
308 display: none;
309 }
310
311 .el-popper[x-placement^="bottom"] .popper__arrow {
312 display: none;
313 }
314
315 .el-popper[x-placement^="bottom"] {
316 margin-top: 0px;
317 }
318
319 // 时间选择框样式
320 .el-date-picker {
321 background: url("~@/image/slbg.png") no-repeat;
322 background-size: 100% 100%;
323 padding-top: 13px;
324 padding-bottom: 13px;
325 border: none;
326
327 margin-top: 5px !important;
328
329 table {
330 background: url("~@/image/rqjx.png") no-repeat;
331 background-size: 100% 100%;
332 padding: 8px;
333 }
334
335 table td {
336 box-sizing: border-box;
337 border-bottom: 0px solid #074487 !important;
338 }
339
340 .el-input__inner {
341 background-color: #031a46;
342 }
343
344 .el-picker-panel {
345 border: none;
346 }
347
348 .el-picker-panel__footer {
349 display: none;
350 background-color: #031a46;
351 }
352
353 .el-date-table td.disabled div {
354 background-color: #074487;
355 }
356
357 .el-date-picker__header {
358 margin-bottom: 0px;
359 }
360
361 .el-date-picker__header-label {
362 color: #A6CFD6;
363 }
364
365 .el-picker-panel__content {
366 padding-top: 0px;
367 margin-top: 0px;
368
369 .disabled {
370 background-color: #074487;
371
372 div {
373 span {
374 color: rgba(172, 239, 250, .5)
375 }
376 }
377
378 }
379 }
380
381
382 .el-picker-panel__icon-btn {
383 color: #A6CFD6;
384 }
385
386 .el-date-table th {
387 color: #02D9FD;
388 }
389
390 .el-date-table td span {
391 color: #DBFAFF
392 }
393
394 .el-date-table td span:hover {
395 background-color: #074487;
396 border: 1px solid #02D9FD;
397 color: #02D9FD
398 }
399
400 .el-date-table td.current:not(.disabled) span {
401 background-color: #074487;
402 // border:1px solid saddlebrown;
403 box-shadow: inset 0 0 7px #02D9FD;
404 border: 1px solid #02D9FD;
405 color: #02D9FD
406 }
407
408 }
409
410 // 时间选择框分两个框
411 .el-date-range-picker {
412 .el-date-range-picker__time-header>.el-icon-arrow-right {
413 color: #E3F1FF;
414 }
415
416 background-color: #074487;
417 color: #fff;
418
419 .el-input__inner {
420 background: color #074487;
421 }
422
423 .el-input.is-disabled .el-input__inner {
424 background-color: #074487;
425 }
426
427 .el-date-range-picker__time-header {
428 background-color: #031a46;
429 }
430
431 .el-time-panel {
432 background-color: #074487 !important;
433 color: #E3F1FF;
434 }
435
436 .el-picker-panel__icon-btn {
437 color: #E3F1FF;
438 }
439
440 .el-date-table th {
441 color: #E3F1FF;
442 }
443
444 .el-time-spinner__item {
445 color: #E3F1FF;
446 }
447
448 .el-time-spinner__item.active:not(.disabled) {
449 color: #fff;
450 }
451
452 .el-time-panel__btn {
453 color: #0F93F6;
454 }
455
456 .el-time-panel__btn.confirm {
457 width: 50px;
458 height: 25px;
459 line-height: 25px;
460 border-radius: 3px;
461 background-color: #fff;
462 }
463
464 .el-time-panel__footer {
465 background-color: #031a46;
466 }
467
468 .el-date-table td.in-range div {
469 background-color: #031a46;
470 }
471
472 .el-date-table td.start-date span,
473 .el-date-table td.end-date span {
474 background-color: #074487;
475 box-shadow: inset 0 0 7px #02D9FD;
476 border: 1px solid #02D9FD;
477 }
478 }
479
480 .el-button--text {
481 line-height: 10px;
482 }
483
484 // 时间组件input框部分
485 .el-date-editor {
486
487 [class^="el-icon-"],
488 [class*=" el-icon-"] {
489 // display: none;
490 }
491
492 .el-range-separator {
493 color: #E3F1FF;
494 }
495
496 .el-range-input {
497 background: none !important;
498 color: #fff;
499 }
500 }
501
502 .el-menu--horizontal .el-menu .el-menu-item,
503 .el-select-dropdown__item,
504 .el-menu--horizontal .el-menu .el-submenu__title {
505 background: url("~@/image/slitembg.png") no-repeat;
506 height: 26px;
507 line-height: 26px;
508 background-size: 100% 100%;
509 margin-bottom: 12px;
510 color: #02D9FD !important;
511 }
512
513 .el-select-dropdown {
514 margin-top: 5px !important;
515 }
516
517 .el-menu--horizontal .el-menu--popup .el-menu-item:not(.is-disabled):hover,
518 .el-select-dropdown__item:hover,
519 .el-select-dropdown__item.selected,
520 .el-menu--horizontal .el-menu .el-menu-item.is-active,
521 .el-menu--horizontal .el-menu--popup .el-menu-item:not(.is-disabled):focus {
522 background: url("~@/image/xzslitembg.png") no-repeat;
523 background-size: 100% 100%;
524 color: #FFFFFF !important;
525 font-weight: 700;
526 }
527
528 .el-select-dropdown__item.hover,
529 .el-select-dropdown__item:hover {
530 background-color: transparent !important;
531 }
532
533 // 提示框
534 .el-message-box {
535 background: #031A46;
536 -webkit-box-shadow: inset 0px 0px 12px 0px #02d9fd;
537 box-shadow: inset 0px 0px 12px 0px #02d9fd;
538 border-radius: 0px 2px 2px 2px;
539 border: 1px solid #6BC1FC;
540 padding: 15px;
541
542 .el-message-box__title {
543 color: white;
544 }
545
546 .el-message-box__content {
547 color: white;
548 }
549 }
550
551 // 上级菜单
552 .el-cascader__dropdown {
553 background-color: #031a46;
554 border: 1px solid #5f82c7;
555
556 }
557
558 .el-cascader-menu {
559 color: white;
560 }
561
562 .el-radio {
563 .el-cascader-menu:hover {
564 color: white;
565 }
566 }
567
568 .el-cascader-node:not(.is-disabled):hover,
569 .el-cascader-node:not(.is-disabled):focus {
570 background: #F5F7FA;
571 background-image: initial;
572 background-position-x: initial;
573 background-position-y: initial;
574 background-size: initial;
575 background-repeat-x: initial;
576 background-repeat-y: initial;
577 background-attachment: initial;
578 background-origin: initial;
579 background-clip: initial;
580 background-color: rgb(80, 142, 235);
581 }
582
583 // 下拉框
584 .el-menu--popup {
585 padding-top: 20px;
586 }
...\ No newline at end of file ...\ No newline at end of file
1 @import '~@/styles/jgElement-ui.scss';
2
3 .el-menu--horizontal {
4 display: flex;
5 background: none !important;
6 }
7
8 // 列表样式
9 .tableClass {
10 .el-table {
11 border: none !important;
12 border-radius: 0 !important;
13 background-color: rgba(0, 0, 0, 0);
14
15 .el-table__header-wrapper {
16 border-right: none;
17
18 }
19
20 .el-table__row .cell {
21 color: #8DEAF9 !important;
22 font-weight: 100 !important;
23 }
24
25 .el-table__row {
26 background: rgba(0, 0, 0, 0) !important;
27 }
28
29 thead {
30 background: #073781;
31 border-radius: 2px;
32 height: 42px;
33
34 & th {
35 //inherit:规定应该从父元素继承 background-color 属性的设置。
36 //transparent:默认。背景颜色为透明。
37 // background-color: inherit !important;
38 background-color: transparent;
39 color: #02D9FD;
40 }
41
42 & tr {
43 // background-color: inherit !important;
44 background-color: transparent;
45 }
46 }
47 }
48 }
49
50 //*****start*通用表单查询条件,列表样式******//
51 .bgc {
52 box-shadow: inset 0px 0px 8px 0px rgba(255, 255, 255, 0.5);
53 background-color: rgba(0, 0, 0, 0);
54 }
55
56 //input
57 .el-input__inner {
58 color: #FFFFFF !important;
59 padding: 0 7px !important;
60 }
61
62
63
64 // 查询表单样式
65 .from-clues {
66 height: 100%;
67 width: 100%;
68 // min-width: 1280px;
69 box-sizing: border-box;
70 overflow-x: hidden;
71 padding: 2px;
72
73 &-header {
74 width: 100%;
75 padding: 5px 30px 20px 24px;
76 box-sizing: border-box;
77 background: url("~@/image/formHeader.png") no-repeat;
78 background-size: 100% 100%;
79 margin-top: 15px;
80
81 .el-form-item__label {
82 color: #E3F1FF;
83 }
84
85
86
87 /deep/.el-icon-arrow-right {
88 color: rgb(228, 20, 20) !important;
89 }
90
91
92
93 .el-input__inner {
94 background: #07388B;
95 border-radius: 2px;
96 color: #E3F1FF !important;
97 border: 1px solid #6BC1FC;
98 }
99
100 .el-input__inner::placeholder {
101 color: #92BEDC !important;
102 }
103 }
104
105 .el-dialog__close {
106 font-size: 0;
107 }
108
109 .el-form-item {
110 display: flex;
111 width: 100%;
112 }
113
114 .advanced-search {
115 display: flex;
116 font-size: 12px;
117 flex-wrap: wrap;
118 padding-top: 5px;
119 height: 30px;
120
121 span {
122 display: flex;
123 align-items: center;
124 }
125
126 i {
127 color: $light-blue;
128 margin-left: 5px;
129 cursor: pointer;
130 }
131
132 ul {
133 display: flex;
134 align-items: center;
135
136 li {
137 color: $light-blue;
138 border: 1px solid $light-blue;
139 border-radius: 10px;
140 padding: 2px 8px;
141 line-height: 16px;
142 }
143 }
144
145 .clean-btn {
146 margin-left: 10px;
147 }
148 }
149
150 &-content {
151 width: 100%;
152 box-sizing: border-box;
153 margin-top: 15px;
154 background: url("~@/image/formContent.png") no-repeat;
155 background-size: 100% 100%;
156 padding: 22px 42px 20px;
157 //修改表头的背景颜色横向渐变色
158 @extend .tableClass;
159
160 .el-pagination__total {
161 color: #FFFFFF;
162 }
163
164 .el-pagination {
165 .el-input__inner {
166 color: #FFFFFF;
167 border: none;
168 @extend .bgc;
169 }
170
171 .el-pager li:not(.disabled).active {
172 box-shadow: inset 0px 0px 12px 0px #02D9FD;
173 border-radius: 1px;
174 border: 1px solid #02D9FD;
175 background-color: rgba(0, 0, 0, 0);
176 }
177
178 .el-pager li {
179 @extend .bgc;
180 color: #FFFFFF;
181 }
182 }
183 }
184
185
186
187 .el-form--inline .el-form-item {
188 width: auto;
189 margin-right: 0px;
190
191 .el-form-item__content {
192 width: auto;
193 }
194 }
195
196 .el-table__expand-icon {
197 color: #8DEAF9;
198
199 }
200
201 .el-form-item--small.el-form-item {
202 margin-bottom: 0px;
203 }
204 }
205
206 .echarts-box {
207 display: flex;
208 justify-content: center;
209 height: calc(100vh - 260px);
210 }
211
212 .complex-header {
213 .el-table--border th.el-table__cell {
214 border-bottom: 1px solid #458ACF !important;
215 }
216
217 .el-table--border .el-table__cell {
218 border-right: 1px solid #458ACF !important;
219 }
220
221 .el-table--group,
222 .el-table--border {
223 border: 1px solid #458ACF !important;
224 }
225 }
226
227 .el-pagination.is-background .btn-prev,
228 .el-pagination.is-background .btn-next {
229 @extend .bgc;
230 color: #FFFFFF;
231 }
232
233 // 通过 入库 样式
234 .adopt,
235 .success {
236 color: #00FAA8;
237 position: relative;
238 }
239
240 .warehousing {
241 color: #FFCA57;
242 position: relative;
243 }
244
245 .fail {
246 color: #F56C6C;
247 position: relative;
248 }
249
250
251 .adopt::before {
252 position: absolute;
253 content: '';
254 display: block;
255 width: 8px;
256 height: 8px;
257 left: -15px;
258 top: 5px;
259 background: #00FAA8;
260 border-radius: 50%;
261 border: 2px solid rgba(0, 0, 0, 0.2);
262 }
263
264 .warehousing::before {
265 position: absolute;
266 content: '';
267 display: block;
268 width: 8px;
269 height: 8px;
270 left: -15px;
271 top: 4px;
272 background: #FF9933;
273 border-radius: 50%;
274 border: 2px solid rgba(0, 0, 0, 0.2);
275 }
276
277 // 成功 失败
278 .success::before {
279 position: absolute;
280 content: '√';
281 display: block;
282 width: 0;
283 height: 8px;
284 left: -10px;
285 top: 2px;
286 background: #00FAA8;
287 color: #00FAA8;
288 }
289
290 .fail {
291 color: #FF7962;
292 position: relative;
293 }
294
295 .fail::before {
296 position: absolute;
297 content: '!';
298 display: block;
299 width: 0;
300 height: 8px;
301 left: -10px;
302 top: 2px;
303 background: #FF7962;
304 color: #FF7962;
305 }
306
307
308 //*****end*通用表单查询条件,列表样式******//
309 .el-range-separator {
310 line-height: 28px !important;
311 }
312
313 .width200px {
314 width: 200px;
315 }
316
317 .width300px {
318 width: 300px;
319 }
320
321
322 .slxx_title {
323 border-bottom: 1px solid $borderColor;
324 padding-left: 10px;
325 padding-bottom: 5px;
326 margin-bottom: 10px;
327 margin-top: 5px;
328 font-size: 16px;
329 font-weight: 500;
330 color: #4a4a4a;
331 }
332
333 // 搜索框按钮的位置
334 .btnColRight {
335 box-sizing: border-box;
336 text-align: right;
337
338
339 .is-disabled,
340 .is-disabled:hover,
341 .is-disabled:focus {
342 cursor: wait;
343 background: url("../image/btn.png") no-repeat 0 0;
344 background-size: cover;
345 }
346 }
347
348
349 // 角色管理人员菜单配置弹框样式
350 .roleconfiguration {
351 .el-dialog__body {
352 display: flex;
353 flex-direction: column;
354 }
355
356 .el-tabs {
357 color: #cef8ff;
358 }
359
360 .sjmx {
361 .el-tabs__item {
362 height: 50px;
363 padding-top: 6px;
364 }
365 }
366
367 .el-tabs__item {
368 color: #cef8ff !important;
369
370 display: flex;
371 flex-direction: row;
372 justify-content: center;
373 background: url("~@/image/tabitem.png") no-repeat;
374 background-size: 100% 100%;
375 border: none !important;
376 }
377
378 .obligee-item-name {
379 background: #05275b;
380 color: #ffffff;
381 background: url("~@/image/itembg.png") no-repeat;
382 background-size: 100% 100%;
383 }
384
385 .el-tabs__nav-scroll {
386 background: none;
387 }
388
389 .el-tabs__nav {
390 display: flex;
391 border: none !important;
392 }
393
394 .el-tabs__item.is-top {
395 border: 1px solid #dfe4ed;
396 border-top: 1px solid #dfe4ed;
397 border-bottom: 1px solid transparent;
398 }
399
400 .el-tabs__item.is-top:not(:last-child) {
401 margin-right: 5px;
402 }
403
404 .el-tabs__item.is-top {
405 background-color: none !important;
406 }
407
408 .el-tabs__item.is-active {
409 background: url("~@/image/tabitemse.png") no-repeat;
410 background-size: 100% 100%;
411 }
412
413 .success-images {
414 width: 30px;
415 height: 30px;
416 position: relative;
417 top: 10px;
418 right: 3px;
419 }
420
421 .tab-pane-item {
422 line-height: 20px;
423 color: #FFFFFF;
424
425 p {
426 text-align: center;
427 }
428 }
429
430 .edit-content {
431 overflow-y: auto;
432 overflow-x: hidden;
433 padding-right: 1px;
434 margin-bottom: 10px;
435 border-top: none;
436 }
437
438
439
440 .el-dialog__wrapper {
441 overflow: hidden;
442 }
443
444 .el-table {
445 background: none;
446
447 th.el-table__cell {
448 background-color: #073781;
449 color: #02d9fd;
450 }
451
452 tr {
453 background: none;
454
455 td {
456 color: white;
457 }
458 }
459 }
460 }
461
462 // 面包屑
463 .breadcrumb {
464 width: 80%;
465 text-indent: 10px;
466 background: url("~@/image/breadcrumb.png") no-repeat;
467 background-size: 100% 100%;
468 line-height: 32px;
469 height: 32px;
470 padding-left: 35px;
471 margin: 8px 0 10px 6px;
472 color: #CEF8FF;
473 }
474
475 // .el-icon-arrow-right {
476 // width: 2px;
477 // position: relative;
478 // left: 10px;
479 // color: #FFFFFF;
480 // }
481
482 .el-breadcrumb__inner {
483 color: #CEF8FF !important;
484 }
485
486 .breadcrumb1366 {
487 padding: 10px 0 !important;
488 }
489
490 .cur-location {
491 font-size: 16px;
492 color: white;
493 line-height: 40px;
494 float: left;
495
496 img {
497 position: relative;
498 top: 3px;
499 margin-right: 4px;
500 }
501 }
502
503 .el-breadcrumb__inner a,
504 .el-breadcrumb__inner.is-link {
505 color: white;
506 cursor: text;
507 font-weight: normal;
508 }
509
510 .button {
511 width: 76px;
512 height: 32px;
513 color: #ffffff;
514 cursor: pointer;
515 border: 0;
516 font-size: 12px;
517 }
518
519
520 // 按钮样式
521 .cx {
522 background: url("../image/btn.png") no-repeat 0 -34px;
523 background-size: cover;
524 }
525
526 .cx:hover {
527 background: url("../image/btn.png") no-repeat 0 -34px;
528 background-size: cover;
529 color: white;
530 }
531
532 .cz {
533 background: url("../image/btn.png") no-repeat 0 0;
534 background-size: cover;
535 }
536
537 .cz:hover {
538 background: url("../image/btn.png") no-repeat 0 0;
539 background-size: cover;
540 color: white;
541 }
542
543 .el-button:focus {
544 background: none;
545 }
546
547 .cx:focus {
548 background: url("../image/btn.png") no-repeat 0 -34px;
549 background-size: cover;
550 color: white;
551 }
552
553 .cz:focus {
554 background: url("../image/btn.png") no-repeat 0 0;
555 background-size: cover;
556 color: white;
557 }
558
559 // 监管弹框样式
560 .dialogBox {
561 overflow: hidden;
562 background: url("~@/image/dialogBg.png") no-repeat !important;
563 background-size: 100% 100% !important;
564
565 .dialog_title {
566 display: flex;
567 position: relative;
568 font-size: 22px;
569 top: -10px;
570 width: 38%;
571 height: 40px;
572 margin-left: 28px;
573 justify-content: center;
574 white-space: nowrap;
575
576 b {
577 font-weight: 200;
578 display: inline-block;
579 position: relative;
580 font-size: 24px;
581 top: -11px;
582 width: 38%;
583 height: 40px;
584 margin-left: 28px;
585 // @include flex-center;
586 display: flex;
587 justify-content: center;
588 }
589 }
590
591 .dialog_full {
592 position: absolute;
593 top: 0;
594 right: 30px;
595 }
596
597 .el-dialog__body {
598 max-height: 88vh;
599 overflow-x: hidden;
600 overflow-y: hidden;
601 }
602
603 .dialog_footer {
604 margin-bottom: 8px;
605 display: flex;
606 justify-content: center;
607 align-items: center;
608 }
609
610 .dialogBox-content {
611 height: auto
612 }
613
614 .editDialogBox-box {
615 background: #031A46;
616 box-shadow: inset 0px 0px 12px 0px #02D9FD;
617 border-radius: 2px;
618 border: 1px solid #6BC1FC;
619 margin: 0 18px 0 18px;
620 }
621
622 .item-content-input {
623 .el-input__inner {
624 border: none !important;
625 text-align: right;
626 color: #A5CBDA !important;
627 }
628 }
629
630 .regularHeight {
631 display: flex;
632 flex-direction: column;
633 height: 85vh;
634
635 .JsonEditor {
636 height: 75vh;
637
638 .editXML {
639 height: 100%;
640 padding: 15px;
641
642 .el-textarea {
643 height: 100% !important;
644 }
645
646 .el-textarea__inner {
647 height: 100% !important;
648 background: #04275B;
649 border-radius: 2px;
650 border: none;
651 }
652 }
653 }
654
655 // 响应结果
656 .xyjg {
657 height: 78vh;
658 padding: 15px;
659
660 .result-con {
661 height: 49%;
662 background: #04275B;
663 border-radius: 2px;
664 box-sizing: border-box;
665 padding: 10px;
666
667 .el-textarea {
668 height: 90%;
669 }
670
671 .el-textarea__inner {
672 height: 100%;
673 background: transparent;
674 border: none;
675 }
676
677 p {
678 color: #2188E3;
679 font-weight: 700;
680 font-size: 18px;
681 position: relative;
682 padding-left: 8px;
683 }
684
685 p:before {
686 content: '';
687 width: 3px;
688 height: 13px;
689 position: absolute;
690 left: 0;
691 top: 4px;
692 background-color: #2188E3;
693 }
694 }
695 }
696 }
697
698 .dialog-from {
699 padding: 13px;
700 border-radius: 2px;
701 box-sizing: border-box;
702 margin-top: 10px;
703
704 .el-row {
705 display: flex;
706 flex-wrap: nowrap;
707 }
708
709 .el-col {
710 line-height: 18px;
711 display: flex;
712 align-items: center;
713 margin-bottom: 3px;
714 color: #B5D6DC;
715 border-radius: 2px;
716 border: 1px solid #224C7C;
717
718 span {
719 display: inline-block;
720 padding: 3px;
721 border-radius: 3px;
722 overflow: hidden;
723 white-space: nowrap;
724 text-align: left;
725 color: #0288B0;
726 }
727
728 p {
729 flex: 1;
730 width: 100%;
731 padding-left: 5px;
732 line-height: 20px;
733 color: #c0c4cc;
734 cursor: not-allowed;
735 white-space: nowrap;
736 margin-right: 5px;
737 text-align: right;
738 }
739 }
740
741 }
742
743 .el-textarea__inner {
744 background: #04275B;
745 border-radius: 2px;
746 }
747
748 .el-input__inner {
749 border: 1px solid #224C7C !important;
750 margin: 0 !important;
751 width: 100% !important;
752 color: #A5CBDA !important;
753 background: transparent !important;
754 }
755
756 .el-dialog__header {
757 color: #FFFFFF;
758 height: 46px !important;
759 width: 97%;
760 margin: 0 auto;
761 margin-top: 2px;
762 }
763
764 .el-dialog__body {
765 padding-top: 0;
766 padding-bottom: 0;
767 // height: 95vh;
768 }
769
770 .el-dialog__headerbtn {
771 width: 42px;
772 height: 20px;
773 background: url("~@/image/closebg.png") no-repeat;
774 background-size: 100% 100%;
775 right: 40px;
776 top: 33px;
777
778 &:hover {
779 box-shadow: inset 0px 0px 12px 0px #02D9FD;
780 }
781 }
782
783 .el-dialog__close {
784 font-size: 0;
785 }
786
787 .el-form-item {
788 display: flex;
789 width: 100%;
790 }
791
792 }
793
794 .contentCenter {
795 position: absolute;
796 top: 50%;
797 left: 50%;
798 transform: translate(calc(-50% + 85px), -50%);
799 }
800
801 .mainCenter {
802 position: absolute;
803 top: 50%;
804 left: 50%;
805 transform: translate(-50%, -50%);
806
807 // 展开收起按钮位置
808 .el-input__suffix {
809 right: 10px;
810 }
811 }
812
813 .el-tabs__header {
814 border: none !important;
815 margin-bottom: 0;
816 }
817
818 // 登簿日志弹出框
819 .entryJournal {
820 .el-textarea__inner {
821 height: 67vh !important;
822 border: none !important;
823 background-color: #08346F !important;
824 color: #ffffff;
825 border: none !important;
826 }
827
828 .el-col {
829 margin: 5px;
830 }
831
832 .el-dialog__body {
833 display: flex;
834 flex-direction: column;
835 padding-bottom: 30px;
836 height: 100%;
837 flex: 1;
838 position: relative;
839 margin-top: 10px;
840 }
841
842 .el-tabs__item {
843 color: #CEF8FF !important;
844 display: flex;
845 flex-direction: row;
846 justify-content: center;
847 background: url("~@/image/tabitem.png") no-repeat;
848 background-size: 100% 100%;
849 border: none !important;
850 }
851
852 .el-tabs__nav {
853 display: flex;
854 border: none !important;
855 }
856
857 .el-tabs__item.is-top:not(:last-child) {
858 margin-right: 5px;
859 }
860
861 .el-icon-circle-close {
862 display: none;
863 }
864
865 .el-tabs__item.is-active {
866 background: url("~@/image/tabitemse.png") no-repeat;
867 background-size: 100% 100%;
868 }
869
870 .from-clues-content {
871 margin-top: 0;
872 background: none;
873 padding: 0;
874 }
875
876 .editDialogBox-box {
877 position: relative;
878 height: 98.5%;
879 }
880
881 .dialog-from {
882 padding-top: 0;
883
884 .el-col {
885 justify-content: space-between;
886 }
887
888 .bz {
889 height: 100%;
890 position: relative;
891 top: 3px;
892 }
893
894 .el-input {
895 flex: 1;
896 width: 100%;
897 }
898
899 .el-textarea__inner {
900 border: none !important;
901 margin: 0;
902 }
903
904 &_header {
905 margin: 0 -5px !important;
906 }
907
908 &_title {
909 font-size: 14px;
910 color: #d7eaee;
911 margin: 3px 0;
912 }
913 }
914 }
915
916 // 数据上报弹出框
917 .dataReporting {
918 .el-dialog__body {
919 display: flex;
920 flex-direction: column;
921 padding-bottom: 30px;
922 margin-top: 10px;
923 }
924
925 .el-tabs {
926 color: #cef8ff;
927 }
928
929 .d-center {
930 z-index: 1000;
931 }
932
933 .sjmx {
934 display: flex;
935 flex-direction: column;
936 height: 52vh;
937
938 .el-tabs__item {
939 height: 50px;
940 padding-top: 6px;
941 }
942 }
943
944 .result {
945 flex: 1;
946 height: 100%;
947 }
948
949 .editDialogBox-con {
950 flex: 1;
951 height: 100%;
952 overflow-y: hidden;
953 margin: 10px 18px;
954 }
955
956 .el-tabs__item {
957 color: #cef8ff !important;
958
959 display: flex;
960 flex-direction: row;
961 justify-content: center;
962 background: url("~@/image/tabitem.png") no-repeat;
963 background-size: 100% 100%;
964 border: none !important;
965 }
966
967 .obligee-item-name {
968 background: #05275b;
969 color: #ffffff;
970 background: url("~@/image/itembg.png") no-repeat;
971 background-size: 100% 100%;
972 }
973
974 .el-tabs__nav-scroll {
975 background: none;
976 }
977
978 .el-tabs__nav {
979 display: flex;
980 border: none !important;
981 }
982
983 .el-tabs__item.is-top {
984 border: 1px solid #dfe4ed;
985 border-top: 1px solid #dfe4ed;
986 border-bottom: 1px solid transparent;
987 }
988
989 .el-tabs__item.is-top:not(:last-child) {
990 margin-right: 5px;
991 }
992
993 .el-tabs__item.is-top {
994 background-color: none !important;
995 }
996
997 .el-tabs__item.is-active {
998 background: url("~@/image/tabitemse.png") no-repeat;
999 background-size: 100% 100%;
1000 }
1001
1002 .success-images {
1003 width: 30px;
1004 height: 30px;
1005 position: relative;
1006 top: 10px;
1007 right: 3px;
1008 }
1009
1010 .tab-pane-item {
1011 line-height: 20px;
1012 color: #02d9fd;
1013
1014 p {
1015 text-align: center;
1016 }
1017 }
1018
1019 .edit-content {
1020 overflow-y: auto;
1021 overflow-x: hidden;
1022 padding-right: 1px;
1023 border-top: none;
1024 }
1025
1026 .editDialogBox {
1027 border-radius: 8px;
1028 overflow: hidden;
1029 min-width: 1228px;
1030
1031 .el-dialog__header {
1032 display: flex;
1033 margin-bottom: 10px;
1034 }
1035
1036 .dialog_footer {
1037 flex-direction: column;
1038
1039 .dialog_button {
1040 margin-top: 8px;
1041 }
1042 }
1043
1044 .divider {
1045 width: 100%;
1046 border-bottom: 1px solid #ccc;
1047 }
1048 }
1049
1050 .el-dialog__wrapper {
1051 overflow: hidden;
1052 }
1053
1054 .dialog-from {
1055 padding-top: 0;
1056
1057 .el-col {
1058 justify-content: space-between;
1059 }
1060
1061 .bz {
1062 height: 100%;
1063 position: relative;
1064 top: 3px;
1065 }
1066
1067 .el-select {
1068 padding-right: 15px;
1069 }
1070
1071 .el-icon-circle-close {
1072 display: none;
1073 }
1074
1075 .el-input__suffix {
1076 right: -25px !important;
1077 top: -5px;
1078 }
1079
1080 .el-select,
1081 .el-input {
1082 flex: 1;
1083 width: 100%;
1084 }
1085
1086 .el-textarea__inner {
1087 border: none !important;
1088 margin: 0;
1089 }
1090
1091 &_header {
1092 margin: 0 -5px !important;
1093 }
1094
1095 &_title {
1096 font-size: 18px;
1097 color: #d7eaee;
1098 margin: 3px 0;
1099 }
1100 }
1101 }
1102
1103 // 人员管理上下移动按钮样式
1104 .el-button.is-disabled.el-button--text {
1105 width: 64px;
1106 height: 28px;
1107 background: rgba(255, 255, 255, 0.1);
1108 border-radius: 16px;
1109 }
1110
1111 // 人员管理角色管理菜单管理修改新增弹框样式
1112 .PersonnelDialog {
1113 .el-dialog__header {
1114 text-align: center;
1115 margin-bottom: 10px;
1116
1117 .el-dialog__title {
1118 color: white;
1119 }
1120 }
1121
1122 .el-form-item__label {
1123 color: white;
1124 }
1125
1126 .el-input__inner {
1127 background-color: #07388b;
1128 }
1129
1130 .el-input__inner {
1131 background: #07388b;
1132 border-radius: 2px;
1133 border: 1px solid #6bc1fc;
1134 }
1135
1136 .el-textarea__inner {
1137 background: #07388b;
1138 color: #fff;
1139 }
1140
1141 .el-form-item__label {
1142 color: #fff;
1143 }
1144
1145 .el-dialog__header {
1146 .dialog_title {
1147 display: -webkit-box;
1148 display: -ms-flexbox;
1149 display: flex;
1150 position: relative;
1151 top: -7px;
1152 width: 29%;
1153 height: 40px;
1154 margin-left: 28px;
1155 -webkit-box-pack: center;
1156 -ms-flex-pack: center;
1157 justify-content: center;
1158 white-space: nowrap;
1159
1160 b {
1161 font-size: 16px;
1162 }
1163 }
1164
1165 .el-dialog__headerbtn {
1166 right: 20px !important;
1167 top: 23px !important;
1168 }
1169 }
1170
1171 .selbig {
1172 width: 500px;
1173 }
1174
1175 }
1176
1177 // 弹框中间区域样式
1178 .dialogCon {
1179 background: #031A46;
1180 box-shadow: inset 0px 0px 12px 0px #02D9FD;
1181 border-radius: 0px 2px 2px 2px;
1182 border: 1px solid #6BC1FC;
1183 padding: 15px;
1184 }
1185
1186 //定时任务弹框
1187 .scheduledtaskdialog {
1188 .el-dialog__headerbtn {
1189 width: 42px;
1190 height: 20px;
1191 right: 26px;
1192 top: 23px;
1193 }
1194 }
1195
1196 // 修改密码界面样式
1197 .informationpassword {
1198 margin: 36px 200px;
1199 overflow-y: auto;
1200
1201 .form-wrapper {
1202 padding: 24px 120px 0px;
1203
1204 .el-form-item {
1205 margin-bottom: 24px;
1206
1207 .el-form-item__label {
1208 color: #ffffff;
1209 }
1210
1211 .el-input .el-input__inner {
1212 padding: 0 8px;
1213 height: 40px;
1214 line-height: 40px;
1215 border: 1px solid #6bc1fc;
1216 }
1217 }
1218 }
1219
1220 .bottom-wrapper {
1221 padding: 32px 120px 24px;
1222 text-align: center;
1223 }
1224 }
1225
1226 .information {
1227 .contentbox {
1228 height: 60vh;
1229 }
1230 }
1231
1232 // 修改基本信息界面样式
1233 .informationbase {
1234 margin: 0.1875rem 1.0417rem;
1235 overflow-y: auto;
1236
1237 .el-input__inner {
1238 background: #07388B;
1239 border-radius: 2px;
1240 color: #E3F1FF !important;
1241 border: 1px solid #6BC1FC;
1242 }
1243
1244 .form-wrapper {
1245 padding: 0px 120px 0px;
1246
1247 .el-form-item {
1248 /deep/.el-form-item__label {
1249 color: #ffffff;
1250 }
1251
1252 ::v-deep .el-input .el-input__inner {
1253 padding: 0 8px;
1254 height: 40px;
1255 line-height: 40px;
1256 border: 1px solid #6bc1fc;
1257 }
1258 }
1259
1260 .el-form-item--small.el-form-item {
1261 margin-bottom: 16px;
1262 }
1263 }
1264
1265 .bottom-wrapper {
1266 padding: 0px 120px 0px;
1267 text-align: center;
1268 }
1269 }
1270
1271 // 权利人信息样式
1272 .itemForm {
1273 position: relative;
1274 padding: 10px;
1275
1276 .el-select {
1277 width: 100%;
1278 }
1279
1280 .el-form-item__error {
1281 right: 25px;
1282 top: 15px;
1283 text-align: right;
1284 pointer-events: none;
1285 }
1286
1287 .el-date-editor {
1288 width: 100%;
1289 }
1290
1291 .el-date-editor--date {
1292 width: 100%;
1293 }
1294
1295 .el-cascader {
1296 width: 100%;
1297 }
1298
1299 // table 样式
1300 .el-form-item__label {
1301 border-right: none;
1302 text-align: center;
1303 padding: 0;
1304 color: #05bbdb;
1305 line-height: 16px;
1306 font-size: 12px;
1307 margin-top: 8px !important;
1308 }
1309
1310 .el-form-item__content {
1311 display: flex;
1312 margin-right: -1px;
1313 }
1314
1315 .obligee-item-name,
1316 .receivingInfo-item-name,
1317 .auditInfo-item-name {
1318 background: url("~@/image/itembg.png") no-repeat;
1319 background-size: 100% 100%;
1320 color: #FFFFFF;
1321 }
1322
1323 .el-textarea__inner {
1324 margin: 5px;
1325 width: 96%;
1326 background: none;
1327 color: #FFFFFF;
1328 border-radius: 2px;
1329 border: 1px solid #6BC1FC;
1330 }
1331
1332 .el-input-number {
1333 width: 100%;
1334 }
1335
1336 .el-input-number__increase {
1337 display: none;
1338 }
1339
1340 .el-input-number__decrease {
1341 display: none;
1342 }
1343
1344 .el-input__inner {
1345 margin: 5px;
1346 width: 96%;
1347 background: #05275B;
1348 border-radius: 2px;
1349 border: 1px solid #6BC1FC;
1350 text-align: left;
1351
1352 }
1353
1354 .el-form-item {
1355 margin-bottom: 0;
1356 margin-top: -1px;
1357 }
1358
1359 .item-label {
1360 display: flex;
1361 align-items: flex-end;
1362 flex-direction: column;
1363 font-size: 12px;
1364 flex: 0 0 90px;
1365 margin-right: 3px;
1366
1367 p {
1368 line-height: 16px;
1369 white-space: nowrap;
1370 text-align: right;
1371 }
1372
1373 p:nth-child(1) {
1374 position: relative;
1375 right: 5px;
1376 }
1377 }
1378 }
1379
1380 // 配置参数
1381 .configuration {
1382 color: white;
1383 margin-top: 6vh;
1384
1385 .el-dialog {
1386 background-color: #031a46 !important;
1387 border: 1px solid #5f82c7;
1388
1389 .el-dialog__header {
1390 .el-dialog__title {
1391 color: white !important;
1392 }
1393
1394 .el-dialog__headerbtn {
1395 top: 20px;
1396 }
1397 }
1398
1399 /deep/ .jsoneditor-vue {
1400 height: 100%;
1401 }
1402
1403 .fullScreen {
1404 position: absolute;
1405 right: 4%;
1406 top: 17%;
1407 cursor: pointer;
1408 color: #fff;
1409 }
1410
1411 /deep/ .jsoneditor-modes {
1412 display: none !important;
1413 }
1414
1415 /deep/.jsoneditor-poweredBy {
1416 display: none !important;
1417 }
1418
1419 .jsoneditor-menu {
1420 background-color: #031a46 !important;
1421 border-bottom: 1px solid #9c9e9f !important;
1422 }
1423
1424 .jsoneditor {
1425 border: 1px solid #9c9e9f !important;
1426 }
1427
1428 .el-collapse {
1429 border: 0;
1430 }
1431
1432 .el-collapse-item__header {
1433 height: 44px;
1434 }
1435 }
1436 }
1437
1438 // 监管
1439 .editDialogBox-box {
1440 .el-form-item__label {
1441 color: #0288B0 !important;
1442 line-height: 20px;
1443 margin-top: 20px;
1444 }
1445 }
1446
1447 // 预告登记弹框样式
1448 .auditInfo {
1449 .el-textarea.is-disabled .el-textarea__inner {
1450 background: none;
1451 color: #C0C4CC;
1452 border: 1px solid #224C7C !important;
1453 padding: 0;
1454 margin: 0;
1455 text-indent: 7px;
1456 }
1457 }
1 .jgWrapper {
2 .main-container {
3 width: 100%;
4 height: calc(100% - 74px);
5 transition: margin-left 0.28s;
6 display: flex;
7 background-color: $containerbg;
8 }
9
10 .sidebar-container {
11 transition: width 0.28s;
12 width: $sideBarWidth !important;
13 font-size: 0px;
14 margin-right: 15px;
15
16 .horizontal-collapse-transition {
17 transition: 0s width ease-in-out, 0s padding-left ease-in-out,
18 0s padding-right ease-in-out;
19 }
20
21 .scrollbar-wrapper {
22 overflow-x: hidden !important;
23 margin-right: 0 !important;
24
25 &::-webkit-scrollbar {
26 display: none;
27 }
28 }
29
30 a {
31 display: inline-block;
32 width: 100%;
33 overflow: hidden;
34 }
35
36 .svg-icon {
37 margin-right: 5px;
38 }
39
40 .sub-el-icon {
41 margin-right: 12px;
42 margin-left: -2px;
43 }
44
45 .el-menu {
46 background-color: transparent !important;
47 border: none;
48 height: 100%;
49 width: 100% !important;
50 }
51
52 // menu hover
53 .el-menu--collapse .el-submenu__title,
54 .el-menu--collapse .submenu-title-noDropdown {
55 margin-left: 0px !important;
56 }
57
58 // 有子级
59 .el-submenu__title {
60 padding-left: 10px !important;
61 color: $menuText;
62 height: 42px;
63 background: linear-gradient(90deg, #013874 0%, #081B56 100%);
64 margin-bottom: 8px;
65
66 &:hover {
67 color: $subMenuActiveText !important;
68 background: linear-gradient(90deg, #1D66DC 0%, #081B56 100%);
69
70 .svg-icon,
71 i,
72 span {
73 color: $subMenuActiveText !important;
74 }
75 }
76 }
77
78 // 没有子级
79 .submenu-title-noDropdown {
80 color: $menuText;
81 padding-left: 20px;
82 margin-bottom: 8px;
83 background: linear-gradient(90deg, #013874 0%, #081B56 100%);
84
85 &:hover {
86 color: $menuActiveText !important;
87 background: linear-gradient(90deg, #1D66DC 0%, #081B56 100%);
88
89 .svg-icon {
90 color: #1ea6f8 !important;
91 }
92
93 i {
94 color: #1ea6f8 !important;
95 }
96 }
97 }
98
99 .submenu-title-noDropdown.is-active,
100 .el-submenu__title.is-active {
101 color: $menuActiveText;
102 background: linear-gradient(90deg, #1D66DC 0%, #081B56 100%);
103
104 .svg-icon {
105 color: #1ea6f8 !important;
106 }
107
108 i {
109 color: #1ea6f8 !important;
110 }
111 }
112
113 .submenu-title-noDropdown,
114 .el-submenu__title {
115 font-weight: 600;
116 font-size: $sideBarFontSize;
117
118 // margin: 0 10px;
119 >i {
120 color: $subMenuActiveText !important;
121 transform: rotate(90deg);
122 -webkit-transform: rotate(90deg);
123 -moz-transform: rotate(90deg);
124 -ms-transform: rotate(90deg);
125 -o-transform: rotate(90deg);
126 margin-right: 10px;
127 }
128
129 .svg-icon {
130 font-size: 18px;
131 margin-top: -5px;
132 }
133 }
134
135 .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow {
136 transform: rotateZ(0deg) !important;
137 -webkit-transform: rotateZ(0deg) !important;
138 -moz-transform: rotateZ(0deg) !important;
139 -ms-transform: rotateZ(0deg) !important;
140 -o-transform: rotateZ(0deg) !important;
141 }
142
143 .is-active>.el-submenu__title {
144 color: #fff !important;
145 }
146
147 & .nest-menu .el-submenu>.el-submenu__title,
148 & .el-submenu .el-menu-item {
149 &.is-active {
150 background-color: $subMenuHover !important;
151 color: $menuActiveText !important;
152 }
153
154 &:hover {
155 background-color: $subMenuHover !important;
156 color: $menuActiveText !important;
157 }
158
159 min-width: 130px !important;
160 background-color: transparent !important;
161 font-weight: 600;
162 font-size: $sideBarFontSize;
163 margin: 0 10px;
164 // border-radius: 6px;
165 }
166 }
167
168 .hideSidebar {
169 .sidebar-container {
170 width: 54px !important;
171 }
172
173 .submenu-title-noDropdown {
174 padding: 0 !important;
175 position: relative;
176
177 .el-tooltip {
178 padding: 0 !important;
179
180 .svg-icon {
181 margin-left: 16px;
182 }
183
184 .sub-el-icon {
185 margin-left: 19px;
186 }
187 }
188 }
189
190 .el-submenu {
191 overflow: hidden;
192
193 &>.el-submenu__title {
194 padding: 0 !important;
195
196 .svg-icon {
197 margin-left: 16px;
198 }
199
200 .sub-el-icon {
201 margin-left: 19px;
202 }
203
204 .el-submenu__icon-arrow {
205 display: none;
206 }
207 }
208 }
209
210 .el-menu--collapse {
211 .el-submenu {
212 &>.el-submenu__title {
213 &>span {
214 height: 0;
215 width: 0;
216 overflow: hidden;
217 visibility: hidden;
218 display: inline-block;
219 }
220 }
221 }
222 }
223 }
224
225 .el-menu--collapse .el-menu .el-submenu {
226 min-width: $sideBarWidth !important;
227 }
228
229 // mobile responsive
230 .mobile {
231 .main-container {
232 margin-left: 0px;
233 }
234
235 .sidebar-container {
236 transition: transform 0.28s;
237 width: $sideBarWidth !important;
238 }
239
240 &.hideSidebar {
241 .sidebar-container {
242 pointer-events: none;
243 transition-duration: 0.3s;
244 transform: translate3d(-$sideBarWidth, 0, 0);
245 }
246 }
247 }
248
249 .withoutAnimation {
250
251 .main-container,
252 .sidebar-container {
253 transition: none;
254 }
255 }
256 }
257
258 // when menu collapsed
259 .el-menu--vertical {
260 &>.el-menu {
261 .svg-icon {
262 margin-right: 16px;
263 }
264
265 .sub-el-icon {
266 margin-right: 12px;
267 margin-left: -2px;
268 }
269 }
270
271 .nest-menu .el-submenu>.el-submenu__title,
272 .el-menu-item {
273 width: calc(100% - 12px);
274 border-top-right-radius: 8px;
275 border-bottom-right-radius: 8px;
276 font-weight: 600 !important;
277 font-size: 15px !important;
278 background-color: $menuHover !important;
279 color: $menuText !important;
280
281 &:hover {
282 background-color: $menuHover !important;
283 opacity: .9;
284
285 .svg-icon,
286 i,
287 span {
288 color: $menuText;
289 }
290 }
291 }
292
293 // the scroll bar appears when the subMenu is too long
294 >.el-menu--popup {
295 max-height: 100vh;
296 overflow-y: auto;
297 background-color: #32ACFE !important;
298 border-top-right-radius: 8px;
299 border-bottom-right-radius: 8px;
300 min-width: 140px;
301 padding: 12px 0;
302
303 &::-webkit-scrollbar-track-piece {
304 background: #d3dce6;
305 }
306
307 &::-webkit-scrollbar {
308 width: 6px;
309 }
310
311 &::-webkit-scrollbar-thumb {
312 background: #99a9bf;
313 border-radius: 20px;
314 }
315 }
316 }
317
318 .el-submenu__title {
319 display: flex;
320 align-items: center;
321 }
322
323 .el-submenu__title span {
324 white-space: normal;
325 word-break: break-all;
326 line-height: 20px;
327 flex: 1;
328 padding-right: 20px;
329 }
330
331 .el-menu-item {
332 height: 42px;
333 display: flex;
334 align-items: center;
335 padding-right: 20px !important;
336 }
337
338 .el-menu-item span {
339 white-space: normal;
340 word-break: break-all;
341 line-height: 20px;
342 flex: 1;
343 }
1 /* 1 /*
2 * @Description: 2 * @Description:
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2023-03-23 15:26:37 4 * @LastEditTime: 2023-05-11 16:31:01
5 */ 5 */
6 6
7 var Layout; 7 var Layout;
8 let ApiUrl = localStorage.getItem('ApiUrl') 8 let ApiUrl = localStorage.getItem('ApiUrl')
9 if (ApiUrl.THEME == 'sb') { 9 Layout = r => require.ensure([], () => r(require(`@/layout1`)))
10 Layout = r => require.ensure([], () => r(require(`@/layout1`)))
11 } else {
12 Layout = r => require.ensure([], () => r(require(`@/layout`)))
13 }
14
15 export default function filterAsyncRouter (routers) { 10 export default function filterAsyncRouter (routers) {
16 routers.forEach(item => { 11 routers.forEach(item => {
17 if (!item.children) { 12 if (!item.children) {
......
1 /* 1 /*
2 * @Description: 2 * @Description:
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2023-03-24 16:44:54 4 * @LastEditTime: 2023-05-11 16:25:43
5 */ 5 */
6 import Vue from 'vue' 6 import Vue from 'vue'
7 export default function getTheme (theme = Vue.prototype.BASE_API.THEME) { 7 export default function getTheme (theme = Vue.prototype.BASE_API.THEME) {
8 const resultMap = { 8 const resultMap = {
9 'jg': function () {
10 return import("@/styles/jgPublic.scss");
11 },
12 'sb': function () { 9 'sb': function () {
13 return import("@/styles/sbPublic.scss"); 10 return import("@/styles/sbPublic.scss");
14 }, 11 },
......