vue2-client 1.6.21 → 1.6.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +569 -569
- package/index.js +30 -30
- package/package.json +1 -1
- package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +226 -226
- package/src/base-client/components/common/AmapMarker/index.js +3 -3
- package/src/base-client/components/common/CitySelect/CitySelect.vue +247 -247
- package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +733 -733
- package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +508 -508
- package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +140 -140
- package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +165 -165
- package/src/base-client/components/common/JSONToTree/jsontotree.vue +275 -275
- package/src/base-client/components/common/XAddForm/XAddForm.vue +326 -326
- package/src/base-client/components/common/XCard/XCard.vue +64 -64
- package/src/base-client/components/common/XForm/XForm.vue +180 -180
- package/src/base-client/components/common/XFormTable/XFormTable.vue +336 -336
- package/src/base-client/components/common/XFormTable/index.md +97 -97
- package/src/base-client/components/common/XTreeOne/XTreeOne.vue +109 -109
- package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
- package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +807 -807
- package/src/base-client/components/ticket/TicketDetailsView/index.md +29 -29
- package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +260 -260
- package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +532 -532
- package/src/base-client/components/ticket/TicketSubmitSuccessView/index.md +29 -29
- package/src/base-client/plugins/AppData.js +76 -76
- package/src/base-client/plugins/GetLoginInfoService.js +179 -179
- package/src/base-client/plugins/PagedList.js +177 -177
- package/src/base-client/plugins/compatible/LoginServiceOA.js +20 -20
- package/src/base-client/plugins/i18n-extend.js +32 -32
- package/src/components/Ellipsis/Ellipsis.vue +65 -65
- package/src/components/Ellipsis/index.md +38 -38
- package/src/components/NumberInfo/index.md +43 -43
- package/src/components/STable/README.md +341 -341
- package/src/components/STable/index.js +318 -318
- package/src/components/Trend/index.md +45 -45
- package/src/components/checkbox/ColorCheckbox.vue +157 -157
- package/src/components/checkbox/ImgCheckbox.vue +163 -163
- package/src/components/exception/ExceptionPage.vue +70 -70
- package/src/components/form/FormRow.vue +52 -52
- package/src/components/index.js +36 -36
- package/src/components/menu/SideMenu.vue +62 -62
- package/src/components/menu/menu.js +273 -273
- package/src/components/page/header/index.less +40 -40
- package/src/components/setting/Setting.vue +235 -235
- package/src/components/table/StandardTable.vue +141 -141
- package/src/components/table/advance/ActionColumns.vue +158 -158
- package/src/components/table/advance/SearchArea.vue +355 -355
- package/src/components/tool/AStepItem.vue +60 -60
- package/src/components/tool/AvatarList.vue +68 -68
- package/src/components/tool/Drawer.vue +142 -142
- package/src/components/tool/TagSelect.vue +83 -83
- package/src/components/transition/PageToggleTransition.vue +97 -97
- package/src/config/default/admin.config.js +18 -18
- package/src/config/default/setting.config.js +46 -46
- package/src/config/replacer/resolve.config.js +67 -67
- package/src/layouts/CommonLayout.vue +42 -42
- package/src/layouts/ComponentLayoutOne.vue +47 -47
- package/src/layouts/PageLayout.vue +151 -151
- package/src/layouts/SinglePageView.vue +111 -111
- package/src/layouts/footer/PageFooter.vue +49 -49
- package/src/layouts/header/AdminHeader.vue +134 -134
- package/src/layouts/header/HeaderAvatar.vue +64 -64
- package/src/layouts/header/HeaderNotice.vue +176 -176
- package/src/layouts/header/HeaderSearch.vue +67 -67
- package/src/layouts/header/InstitutionDetail.vue +181 -181
- package/src/layouts/header/index.less +92 -92
- package/src/layouts/tabs/TabsHead.vue +190 -190
- package/src/layouts/tabs/TabsView.vue +379 -379
- package/src/mock/goods/index.js +108 -108
- package/src/pages/exception/404.vue +25 -25
- package/src/pages/login/Login.vue +363 -363
- package/src/pages/report/ReportTable.js +124 -124
- package/src/pages/report/ReportTableHome.vue +28 -28
- package/src/pages/resourceManage/orgListManage.vue +98 -98
- package/src/pages/system/file/index.vue +317 -317
- package/src/pages/system/settings/index.vue +126 -126
- package/src/pages/system/settings/modifyPassword.vue +109 -109
- package/src/router/async/config.async.js +28 -28
- package/src/router/async/router.map.js +68 -68
- package/src/router/index.js +27 -27
- package/src/services/api/DictionaryDetailsViewApi.js +6 -6
- package/src/services/api/LogDetailsViewApi.js +10 -10
- package/src/services/api/QueryParamsDetailsViewApi.js +6 -6
- package/src/services/api/TicketDetailsViewApi.js +34 -34
- package/src/services/api/cas.js +79 -79
- package/src/services/api/commonTempTable.js +10 -10
- package/src/services/api/index.js +17 -17
- package/src/services/api/logininfor/index.js +6 -6
- package/src/services/api/manage.js +8 -8
- package/src/services/apiService.js +14 -14
- package/src/services/user.js +64 -64
- package/src/store/modules/index.js +4 -4
- package/src/theme/default/nprogress.less +76 -76
- package/src/theme/default/style.less +47 -47
- package/src/utils/colors.js +107 -107
- package/src/utils/excel/Blob.js +180 -180
- package/src/utils/excel/Export2Excel.js +141 -141
- package/src/utils/formatter.js +68 -68
- package/src/utils/i18n.js +80 -80
- package/src/utils/map-utils.js +37 -37
- package/src/utils/request.js +311 -311
- package/src/utils/theme-color-replacer-extend.js +91 -91
- package/src/utils/themeUtil.js +100 -100
- package/src/utils/util.js +230 -230
- package/vue.config.js +106 -106
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="tag-select">
|
|
3
|
-
<tag-select-option @click="toggleCheck">全部</tag-select-option>
|
|
4
|
-
<slot></slot>
|
|
5
|
-
<a v-show="showTrigger" ref="trigger" class="trigger" @click="toggle">展开<a-icon :type="collapsed ? 'down' : 'up'" style="margin-left: 5px"/></a>
|
|
6
|
-
</div>
|
|
7
|
-
</template>
|
|
8
|
-
|
|
9
|
-
<script>
|
|
10
|
-
import TagSelectOption from './TagSelectOption'
|
|
11
|
-
|
|
12
|
-
export default {
|
|
13
|
-
name: 'TagSelect',
|
|
14
|
-
Option: TagSelectOption,
|
|
15
|
-
components: { TagSelectOption },
|
|
16
|
-
data () {
|
|
17
|
-
return {
|
|
18
|
-
showTrigger: false,
|
|
19
|
-
collapsed: true,
|
|
20
|
-
screenWidth: document.body.clientWidth,
|
|
21
|
-
checkAll: false
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
watch: {
|
|
25
|
-
screenWidth: function () {
|
|
26
|
-
this.showTrigger = this.needTrigger()
|
|
27
|
-
},
|
|
28
|
-
collapsed: function (val) {
|
|
29
|
-
this.$el.style.maxHeight = val ? '39px' : '78px'
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
mounted () {
|
|
33
|
-
const _this = this
|
|
34
|
-
// 此处延迟执行,是为解决mouted未完全完成情况下引发的trigger显示bug
|
|
35
|
-
setTimeout(() => {
|
|
36
|
-
_this.showTrigger = _this.needTrigger()
|
|
37
|
-
_this.$refs.trigger.style.display = _this.showTrigger ? 'inline' : 'none'
|
|
38
|
-
}, 1)
|
|
39
|
-
window.onresize = () => {
|
|
40
|
-
return (() => {
|
|
41
|
-
window.screenWidth = document.body.clientWidth
|
|
42
|
-
_this.screenWidth = window.screenWidth
|
|
43
|
-
})()
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
methods: {
|
|
47
|
-
needTrigger () {
|
|
48
|
-
return this.$el.clientHeight < this.$el.scrollHeight || this.$el.scrollHeight > 39
|
|
49
|
-
},
|
|
50
|
-
toggle () {
|
|
51
|
-
this.collapsed = !this.collapsed
|
|
52
|
-
},
|
|
53
|
-
getAllTags () {
|
|
54
|
-
return this.$children.filter((item) => {
|
|
55
|
-
return item.isTagSelectOption
|
|
56
|
-
})
|
|
57
|
-
},
|
|
58
|
-
toggleCheck () {
|
|
59
|
-
this.checkAll = !this.checkAll
|
|
60
|
-
const tagList = this.getAllTags()
|
|
61
|
-
tagList.forEach((item) => {
|
|
62
|
-
item.checked = this.checkAll
|
|
63
|
-
})
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
</script>
|
|
68
|
-
|
|
69
|
-
<style lang="less" scoped>
|
|
70
|
-
.tag-select{
|
|
71
|
-
user-select: none;
|
|
72
|
-
position: relative;
|
|
73
|
-
overflow: hidden;
|
|
74
|
-
max-height: 39px;
|
|
75
|
-
padding-right: 50px;
|
|
76
|
-
display: inline-block;
|
|
77
|
-
}
|
|
78
|
-
.trigger{
|
|
79
|
-
position: absolute;
|
|
80
|
-
top: 0;
|
|
81
|
-
right: 0;
|
|
82
|
-
}
|
|
83
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="tag-select">
|
|
3
|
+
<tag-select-option @click="toggleCheck">全部</tag-select-option>
|
|
4
|
+
<slot></slot>
|
|
5
|
+
<a v-show="showTrigger" ref="trigger" class="trigger" @click="toggle">展开<a-icon :type="collapsed ? 'down' : 'up'" style="margin-left: 5px"/></a>
|
|
6
|
+
</div>
|
|
7
|
+
</template>
|
|
8
|
+
|
|
9
|
+
<script>
|
|
10
|
+
import TagSelectOption from './TagSelectOption'
|
|
11
|
+
|
|
12
|
+
export default {
|
|
13
|
+
name: 'TagSelect',
|
|
14
|
+
Option: TagSelectOption,
|
|
15
|
+
components: { TagSelectOption },
|
|
16
|
+
data () {
|
|
17
|
+
return {
|
|
18
|
+
showTrigger: false,
|
|
19
|
+
collapsed: true,
|
|
20
|
+
screenWidth: document.body.clientWidth,
|
|
21
|
+
checkAll: false
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
watch: {
|
|
25
|
+
screenWidth: function () {
|
|
26
|
+
this.showTrigger = this.needTrigger()
|
|
27
|
+
},
|
|
28
|
+
collapsed: function (val) {
|
|
29
|
+
this.$el.style.maxHeight = val ? '39px' : '78px'
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
mounted () {
|
|
33
|
+
const _this = this
|
|
34
|
+
// 此处延迟执行,是为解决mouted未完全完成情况下引发的trigger显示bug
|
|
35
|
+
setTimeout(() => {
|
|
36
|
+
_this.showTrigger = _this.needTrigger()
|
|
37
|
+
_this.$refs.trigger.style.display = _this.showTrigger ? 'inline' : 'none'
|
|
38
|
+
}, 1)
|
|
39
|
+
window.onresize = () => {
|
|
40
|
+
return (() => {
|
|
41
|
+
window.screenWidth = document.body.clientWidth
|
|
42
|
+
_this.screenWidth = window.screenWidth
|
|
43
|
+
})()
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
methods: {
|
|
47
|
+
needTrigger () {
|
|
48
|
+
return this.$el.clientHeight < this.$el.scrollHeight || this.$el.scrollHeight > 39
|
|
49
|
+
},
|
|
50
|
+
toggle () {
|
|
51
|
+
this.collapsed = !this.collapsed
|
|
52
|
+
},
|
|
53
|
+
getAllTags () {
|
|
54
|
+
return this.$children.filter((item) => {
|
|
55
|
+
return item.isTagSelectOption
|
|
56
|
+
})
|
|
57
|
+
},
|
|
58
|
+
toggleCheck () {
|
|
59
|
+
this.checkAll = !this.checkAll
|
|
60
|
+
const tagList = this.getAllTags()
|
|
61
|
+
tagList.forEach((item) => {
|
|
62
|
+
item.checked = this.checkAll
|
|
63
|
+
})
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
</script>
|
|
68
|
+
|
|
69
|
+
<style lang="less" scoped>
|
|
70
|
+
.tag-select{
|
|
71
|
+
user-select: none;
|
|
72
|
+
position: relative;
|
|
73
|
+
overflow: hidden;
|
|
74
|
+
max-height: 39px;
|
|
75
|
+
padding-right: 50px;
|
|
76
|
+
display: inline-block;
|
|
77
|
+
}
|
|
78
|
+
.trigger{
|
|
79
|
+
position: absolute;
|
|
80
|
+
top: 0;
|
|
81
|
+
right: 0;
|
|
82
|
+
}
|
|
83
|
+
</style>
|
|
@@ -1,97 +1,97 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<transition
|
|
3
|
-
v-if="!disabled"
|
|
4
|
-
:enter-active-class="`animated ${enterAnimate} page-toggle-enter-active`"
|
|
5
|
-
:leave-active-class="`animated ${leaveAnimate} page-toggle-leave-active`"
|
|
6
|
-
>
|
|
7
|
-
<slot></slot>
|
|
8
|
-
</transition>
|
|
9
|
-
<div v-else><slot></slot></div>
|
|
10
|
-
</template>
|
|
11
|
-
|
|
12
|
-
<script>
|
|
13
|
-
import { preset as animates } from '@vue2-client/config/default/animate.config'
|
|
14
|
-
|
|
15
|
-
export default {
|
|
16
|
-
name: 'PageToggleTransition',
|
|
17
|
-
props: {
|
|
18
|
-
disabled: {
|
|
19
|
-
type: Boolean,
|
|
20
|
-
default: false
|
|
21
|
-
},
|
|
22
|
-
animate: {
|
|
23
|
-
type: String,
|
|
24
|
-
validator (value) {
|
|
25
|
-
return animates.findIndex(item => item.name === value) !== -1
|
|
26
|
-
},
|
|
27
|
-
default: 'bounce'
|
|
28
|
-
},
|
|
29
|
-
// eslint-disable-next-line vue/require-default-prop
|
|
30
|
-
direction: {
|
|
31
|
-
type: String,
|
|
32
|
-
validator (value) {
|
|
33
|
-
return ['x', 'y', 'left', 'right', 'up', 'down', 'downLeft', 'upRight', 'downRight', 'upLeft', 'downBig',
|
|
34
|
-
'upBig', 'downLeft', 'downRight', 'topRight', 'bottomLeft', 'topLeft', 'bottomRight', 'default'].indexOf(value) > -1
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
reverse: {
|
|
38
|
-
type: Boolean,
|
|
39
|
-
default: true
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
computed: {
|
|
43
|
-
enterAnimate () {
|
|
44
|
-
return this.activeClass(false)
|
|
45
|
-
},
|
|
46
|
-
leaveAnimate () {
|
|
47
|
-
return this.activeClass(true)
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
methods: {
|
|
51
|
-
activeClass (isLeave) {
|
|
52
|
-
const animate = animates.find(item => this.animate === item.name)
|
|
53
|
-
if (animate === undefined) {
|
|
54
|
-
return ''
|
|
55
|
-
}
|
|
56
|
-
let direction = ''
|
|
57
|
-
if (this.direction === undefined) {
|
|
58
|
-
direction = animate.directions[0]
|
|
59
|
-
} else {
|
|
60
|
-
direction = animate.directions.find(item => item === this.direction)
|
|
61
|
-
}
|
|
62
|
-
direction = (direction === undefined || direction === 'default') ? '' : direction
|
|
63
|
-
if (direction !== '') {
|
|
64
|
-
direction = isLeave && this.reverse ? this.reversePosition(direction, animate.directions) : direction
|
|
65
|
-
direction = direction[0].toUpperCase() + direction.substring(1)
|
|
66
|
-
}
|
|
67
|
-
const t = isLeave ? 'Out' : 'In'
|
|
68
|
-
return animate.name + t + direction
|
|
69
|
-
},
|
|
70
|
-
reversePosition (direction, directions) {
|
|
71
|
-
if (direction.length === 0 || direction === 'x' || direction === 'y') {
|
|
72
|
-
return direction
|
|
73
|
-
}
|
|
74
|
-
let index = directions.indexOf(direction)
|
|
75
|
-
index = (index % 2 === 1) ? index - 1 : index + 1
|
|
76
|
-
return directions[index]
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
</script>
|
|
81
|
-
|
|
82
|
-
<style lang="less">
|
|
83
|
-
.page-toggle-enter-active{
|
|
84
|
-
position: absolute !important;
|
|
85
|
-
animation-duration: 0.8s !important;
|
|
86
|
-
width: calc(100%) !important;
|
|
87
|
-
}
|
|
88
|
-
.page-toggle-leave-active{
|
|
89
|
-
position: absolute !important;
|
|
90
|
-
animation-duration: 0.8s !important;
|
|
91
|
-
width: calc(100%) !important;
|
|
92
|
-
}
|
|
93
|
-
.page-toggle-enter{
|
|
94
|
-
}
|
|
95
|
-
.page-toggle-leave-to{
|
|
96
|
-
}
|
|
97
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<transition
|
|
3
|
+
v-if="!disabled"
|
|
4
|
+
:enter-active-class="`animated ${enterAnimate} page-toggle-enter-active`"
|
|
5
|
+
:leave-active-class="`animated ${leaveAnimate} page-toggle-leave-active`"
|
|
6
|
+
>
|
|
7
|
+
<slot></slot>
|
|
8
|
+
</transition>
|
|
9
|
+
<div v-else><slot></slot></div>
|
|
10
|
+
</template>
|
|
11
|
+
|
|
12
|
+
<script>
|
|
13
|
+
import { preset as animates } from '@vue2-client/config/default/animate.config'
|
|
14
|
+
|
|
15
|
+
export default {
|
|
16
|
+
name: 'PageToggleTransition',
|
|
17
|
+
props: {
|
|
18
|
+
disabled: {
|
|
19
|
+
type: Boolean,
|
|
20
|
+
default: false
|
|
21
|
+
},
|
|
22
|
+
animate: {
|
|
23
|
+
type: String,
|
|
24
|
+
validator (value) {
|
|
25
|
+
return animates.findIndex(item => item.name === value) !== -1
|
|
26
|
+
},
|
|
27
|
+
default: 'bounce'
|
|
28
|
+
},
|
|
29
|
+
// eslint-disable-next-line vue/require-default-prop
|
|
30
|
+
direction: {
|
|
31
|
+
type: String,
|
|
32
|
+
validator (value) {
|
|
33
|
+
return ['x', 'y', 'left', 'right', 'up', 'down', 'downLeft', 'upRight', 'downRight', 'upLeft', 'downBig',
|
|
34
|
+
'upBig', 'downLeft', 'downRight', 'topRight', 'bottomLeft', 'topLeft', 'bottomRight', 'default'].indexOf(value) > -1
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
reverse: {
|
|
38
|
+
type: Boolean,
|
|
39
|
+
default: true
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
computed: {
|
|
43
|
+
enterAnimate () {
|
|
44
|
+
return this.activeClass(false)
|
|
45
|
+
},
|
|
46
|
+
leaveAnimate () {
|
|
47
|
+
return this.activeClass(true)
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
methods: {
|
|
51
|
+
activeClass (isLeave) {
|
|
52
|
+
const animate = animates.find(item => this.animate === item.name)
|
|
53
|
+
if (animate === undefined) {
|
|
54
|
+
return ''
|
|
55
|
+
}
|
|
56
|
+
let direction = ''
|
|
57
|
+
if (this.direction === undefined) {
|
|
58
|
+
direction = animate.directions[0]
|
|
59
|
+
} else {
|
|
60
|
+
direction = animate.directions.find(item => item === this.direction)
|
|
61
|
+
}
|
|
62
|
+
direction = (direction === undefined || direction === 'default') ? '' : direction
|
|
63
|
+
if (direction !== '') {
|
|
64
|
+
direction = isLeave && this.reverse ? this.reversePosition(direction, animate.directions) : direction
|
|
65
|
+
direction = direction[0].toUpperCase() + direction.substring(1)
|
|
66
|
+
}
|
|
67
|
+
const t = isLeave ? 'Out' : 'In'
|
|
68
|
+
return animate.name + t + direction
|
|
69
|
+
},
|
|
70
|
+
reversePosition (direction, directions) {
|
|
71
|
+
if (direction.length === 0 || direction === 'x' || direction === 'y') {
|
|
72
|
+
return direction
|
|
73
|
+
}
|
|
74
|
+
let index = directions.indexOf(direction)
|
|
75
|
+
index = (index % 2 === 1) ? index - 1 : index + 1
|
|
76
|
+
return directions[index]
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
</script>
|
|
81
|
+
|
|
82
|
+
<style lang="less">
|
|
83
|
+
.page-toggle-enter-active{
|
|
84
|
+
position: absolute !important;
|
|
85
|
+
animation-duration: 0.8s !important;
|
|
86
|
+
width: calc(100%) !important;
|
|
87
|
+
}
|
|
88
|
+
.page-toggle-leave-active{
|
|
89
|
+
position: absolute !important;
|
|
90
|
+
animation-duration: 0.8s !important;
|
|
91
|
+
width: calc(100%) !important;
|
|
92
|
+
}
|
|
93
|
+
.page-toggle-enter{
|
|
94
|
+
}
|
|
95
|
+
.page-toggle-leave-to{
|
|
96
|
+
}
|
|
97
|
+
</style>
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
// admin 配置
|
|
2
|
-
const ADMIN = {
|
|
3
|
-
palettes: ['#f5222d', '#fa541c', '#fadb14', '#3eaf7c', '#13c2c2', '#1890ff', '#722ed1', '#eb2f96', '#507CAD'],
|
|
4
|
-
animates: require('./animate.config').preset,
|
|
5
|
-
theme: {
|
|
6
|
-
mode: {
|
|
7
|
-
DARK: 'dark',
|
|
8
|
-
LIGHT: 'light',
|
|
9
|
-
NIGHT: 'night'
|
|
10
|
-
}
|
|
11
|
-
},
|
|
12
|
-
layout: {
|
|
13
|
-
SIDE: 'side',
|
|
14
|
-
HEAD: 'head'
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
module.exports = ADMIN
|
|
1
|
+
// admin 配置
|
|
2
|
+
const ADMIN = {
|
|
3
|
+
palettes: ['#f5222d', '#fa541c', '#fadb14', '#3eaf7c', '#13c2c2', '#1890ff', '#722ed1', '#eb2f96', '#507CAD'],
|
|
4
|
+
animates: require('./animate.config').preset,
|
|
5
|
+
theme: {
|
|
6
|
+
mode: {
|
|
7
|
+
DARK: 'dark',
|
|
8
|
+
LIGHT: 'light',
|
|
9
|
+
NIGHT: 'night'
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
layout: {
|
|
13
|
+
SIDE: 'side',
|
|
14
|
+
HEAD: 'head'
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
module.exports = ADMIN
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
// 此配置为系统默认设置
|
|
2
|
-
module.exports = {
|
|
3
|
-
lang: 'CN', // 语言,可选 CN(简体)、HK(繁体)、US(英语),也可扩展其它语言
|
|
4
|
-
theme: { // 主题
|
|
5
|
-
color: '#1890ff', // 主题色
|
|
6
|
-
mode: 'dark', // 主题模式 可选 dark、 light 和 night
|
|
7
|
-
success: '#52c41a', // 成功色
|
|
8
|
-
warning: '#faad14', // 警告色
|
|
9
|
-
error: '#f5222f' // 错误色
|
|
10
|
-
},
|
|
11
|
-
layout: 'side', // 导航布局,可选 side 和 head,分别为侧边导航和顶部导航
|
|
12
|
-
fixedHeader: true, // 固定头部状态栏,true:固定,false:不固定
|
|
13
|
-
fixedSideBar: true, // 固定侧边栏,true:固定,false:不固定
|
|
14
|
-
fixedTabs: true, // 固定页签头,true:固定,false:不固定
|
|
15
|
-
pageWidth: 'fixed', // 内容区域宽度,fixed:固定宽度,fluid:流式宽度
|
|
16
|
-
weekMode: false, // 色弱模式,true:开启,false:不开启
|
|
17
|
-
multiPage: true, // 多页签模式,true:开启,false:不开启
|
|
18
|
-
cachePage: true, // 是否缓存页面数据,仅多页签模式下生效,true 缓存, false 不缓存
|
|
19
|
-
hideSetting: false, // 隐藏设置抽屉,true:隐藏,false:不隐藏
|
|
20
|
-
homePage: '/dashboard/workplace', // 首页路由, 登陆后默认打开
|
|
21
|
-
ticketPage: '/submitTicket', // 提交工单路由
|
|
22
|
-
systemName: 'V4基础组件平台', // 系统名称
|
|
23
|
-
logoSrc: '/defaultLogo.png', // LOGO路径
|
|
24
|
-
systemNameFontSize: '20px', // 系统名称字体大小
|
|
25
|
-
systemDesc: '为PC端中、后台系统业务开发提供支持', // 系统描述
|
|
26
|
-
copyright: '2022 AoFengSoft', // copyright
|
|
27
|
-
copyrightStyle: undefined,
|
|
28
|
-
asyncRoutes: true, // 异步加载路由,true:开启,false:不开启
|
|
29
|
-
showPageTitle: true, // 是否显示页面标题(PageLayout 布局中的页面标题),true:显示,false:不显示
|
|
30
|
-
filterMenu: true, // 根据权限过滤菜单,true:过滤,false:不过滤
|
|
31
|
-
animate: { // 动画设置
|
|
32
|
-
disabled: true, // 禁用动画,true:禁用,false:启用
|
|
33
|
-
name: 'lightSpeed', // 动画效果,支持的动画效果可参考 ./animate.config.js
|
|
34
|
-
direction: 'left' // 动画方向,切换页面时动画的方向,参考 ./animate.config.js
|
|
35
|
-
},
|
|
36
|
-
footerLinks: [ // 页面底部链接,{link: '链接地址', name: '名称/显示文字', icon: '图标,支持 ant design vue 图标库'}
|
|
37
|
-
],
|
|
38
|
-
// 旧系统路径
|
|
39
|
-
iframeSrc: '../singlepage/page.html',
|
|
40
|
-
// 兼容旧版本 V3(最新V3产品) OA(公司OA)
|
|
41
|
-
compatible: 'V3',
|
|
42
|
-
// 路由资源名称
|
|
43
|
-
routeName: '智慧燃气',
|
|
44
|
-
// 自定义组件集合 格式为组件名: 组件路径(不需要带@/)
|
|
45
|
-
customizeComponent: {}
|
|
46
|
-
}
|
|
1
|
+
// 此配置为系统默认设置
|
|
2
|
+
module.exports = {
|
|
3
|
+
lang: 'CN', // 语言,可选 CN(简体)、HK(繁体)、US(英语),也可扩展其它语言
|
|
4
|
+
theme: { // 主题
|
|
5
|
+
color: '#1890ff', // 主题色
|
|
6
|
+
mode: 'dark', // 主题模式 可选 dark、 light 和 night
|
|
7
|
+
success: '#52c41a', // 成功色
|
|
8
|
+
warning: '#faad14', // 警告色
|
|
9
|
+
error: '#f5222f' // 错误色
|
|
10
|
+
},
|
|
11
|
+
layout: 'side', // 导航布局,可选 side 和 head,分别为侧边导航和顶部导航
|
|
12
|
+
fixedHeader: true, // 固定头部状态栏,true:固定,false:不固定
|
|
13
|
+
fixedSideBar: true, // 固定侧边栏,true:固定,false:不固定
|
|
14
|
+
fixedTabs: true, // 固定页签头,true:固定,false:不固定
|
|
15
|
+
pageWidth: 'fixed', // 内容区域宽度,fixed:固定宽度,fluid:流式宽度
|
|
16
|
+
weekMode: false, // 色弱模式,true:开启,false:不开启
|
|
17
|
+
multiPage: true, // 多页签模式,true:开启,false:不开启
|
|
18
|
+
cachePage: true, // 是否缓存页面数据,仅多页签模式下生效,true 缓存, false 不缓存
|
|
19
|
+
hideSetting: false, // 隐藏设置抽屉,true:隐藏,false:不隐藏
|
|
20
|
+
homePage: '/dashboard/workplace', // 首页路由, 登陆后默认打开
|
|
21
|
+
ticketPage: '/submitTicket', // 提交工单路由
|
|
22
|
+
systemName: 'V4基础组件平台', // 系统名称
|
|
23
|
+
logoSrc: '/defaultLogo.png', // LOGO路径
|
|
24
|
+
systemNameFontSize: '20px', // 系统名称字体大小
|
|
25
|
+
systemDesc: '为PC端中、后台系统业务开发提供支持', // 系统描述
|
|
26
|
+
copyright: '2022 AoFengSoft', // copyright
|
|
27
|
+
copyrightStyle: undefined,
|
|
28
|
+
asyncRoutes: true, // 异步加载路由,true:开启,false:不开启
|
|
29
|
+
showPageTitle: true, // 是否显示页面标题(PageLayout 布局中的页面标题),true:显示,false:不显示
|
|
30
|
+
filterMenu: true, // 根据权限过滤菜单,true:过滤,false:不过滤
|
|
31
|
+
animate: { // 动画设置
|
|
32
|
+
disabled: true, // 禁用动画,true:禁用,false:启用
|
|
33
|
+
name: 'lightSpeed', // 动画效果,支持的动画效果可参考 ./animate.config.js
|
|
34
|
+
direction: 'left' // 动画方向,切换页面时动画的方向,参考 ./animate.config.js
|
|
35
|
+
},
|
|
36
|
+
footerLinks: [ // 页面底部链接,{link: '链接地址', name: '名称/显示文字', icon: '图标,支持 ant design vue 图标库'}
|
|
37
|
+
],
|
|
38
|
+
// 旧系统路径
|
|
39
|
+
iframeSrc: '../singlepage/page.html',
|
|
40
|
+
// 兼容旧版本 V3(最新V3产品) OA(公司OA)
|
|
41
|
+
compatible: 'V3',
|
|
42
|
+
// 路由资源名称
|
|
43
|
+
routeName: '智慧燃气',
|
|
44
|
+
// 自定义组件集合 格式为组件名: 组件路径(不需要带@/)
|
|
45
|
+
customizeComponent: {}
|
|
46
|
+
}
|
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* webpack-theme-color-replacer 插件的 resolve 配置
|
|
3
|
-
* 为特定的 css 选择器(selector)配置 resolve 规则。
|
|
4
|
-
*
|
|
5
|
-
* key 为 css selector 值或合法的正则表达式字符串
|
|
6
|
-
* 当 key 设置 css selector 值时,会匹配对应的 css
|
|
7
|
-
* 当 key 设置为正则表达式时,会匹配所有满足此正则表达式的的 css
|
|
8
|
-
*
|
|
9
|
-
* value 可以设置为 boolean 值 false 或 一个对象
|
|
10
|
-
* 当 value 为 false 时,则会忽略此 css,即此 css 不纳入 webpack-theme-color-replacer 管理
|
|
11
|
-
* 当 value 为 对象时,会调用该对象的 resolve 函数,并传入 cssText(原始的 css文本) 和 cssObj(css对象)参数; resolve函数应该返
|
|
12
|
-
* 回一个处理后的、合法的 css字符串(包含 selector)
|
|
13
|
-
* 注意: value 不能设置为 true
|
|
14
|
-
*/
|
|
15
|
-
const cssResolve = {
|
|
16
|
-
'.ant-checkbox-checked .ant-checkbox-inner::after': {
|
|
17
|
-
resolve (cssText, cssObj) {
|
|
18
|
-
cssObj.rules.push('border-top:0', 'border-left:0')
|
|
19
|
-
return cssObj.toText()
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
'.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after': {
|
|
23
|
-
resolve (cssText, cssObj) {
|
|
24
|
-
cssObj.rules.push('border-top:0', 'border-left:0')
|
|
25
|
-
return cssObj.toText()
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
'.ant-checkbox-checked .ant-checkbox-inner:after': {
|
|
29
|
-
resolve (cssText, cssObj) {
|
|
30
|
-
cssObj.rules.push('border-top:0', 'border-left:0')
|
|
31
|
-
return cssObj.toText()
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
'.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after': {
|
|
35
|
-
resolve (cssText, cssObj) {
|
|
36
|
-
cssObj.rules.push('border-top:0', 'border-left:0')
|
|
37
|
-
return cssObj.toText()
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
'.ant-menu-dark .ant-menu-inline.ant-menu-sub': {
|
|
41
|
-
resolve (cssText, cssObj) {
|
|
42
|
-
cssObj.rules = cssObj.rules.filter(rule => rule.indexOf('box-shadow') === -1)
|
|
43
|
-
return cssObj.toText()
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
'.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu:hover,.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-submenu-active,.ant-menu-horizontal>.ant-menu-item-open,.ant-menu-horizontal>.ant-menu-submenu-open,.ant-menu-horizontal>.ant-menu-item-selected,.ant-menu-horizontal>.ant-menu-submenu-selected': {
|
|
47
|
-
resolve (cssText, cssObj) {
|
|
48
|
-
cssObj.selector = cssObj.selector.replace(/.ant-menu-horizontal/g, '.ant-menu-horizontal:not(.ant-menu-dark)')
|
|
49
|
-
return cssObj.toText()
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
'.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item-open,.ant-menu-horizontal>.ant-menu-item-selected,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu-active,.ant-menu-horizontal>.ant-menu-submenu-open,.ant-menu-horizontal>.ant-menu-submenu-selected,.ant-menu-horizontal>.ant-menu-submenu:hover': {
|
|
53
|
-
resolve (cssText, cssObj) {
|
|
54
|
-
cssObj.selector = cssObj.selector.replace(/.ant-menu-horizontal/g, '.ant-menu-horizontal:not(.ant-menu-dark)')
|
|
55
|
-
return cssObj.toText()
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
'.ant-layout-sider': {
|
|
59
|
-
resolve (cssText, cssObj) {
|
|
60
|
-
cssObj.selector = '.ant-layout-sider-dark'
|
|
61
|
-
return cssObj.toText()
|
|
62
|
-
}
|
|
63
|
-
},
|
|
64
|
-
'/keyframes/': false
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
module.exports = cssResolve
|
|
1
|
+
/**
|
|
2
|
+
* webpack-theme-color-replacer 插件的 resolve 配置
|
|
3
|
+
* 为特定的 css 选择器(selector)配置 resolve 规则。
|
|
4
|
+
*
|
|
5
|
+
* key 为 css selector 值或合法的正则表达式字符串
|
|
6
|
+
* 当 key 设置 css selector 值时,会匹配对应的 css
|
|
7
|
+
* 当 key 设置为正则表达式时,会匹配所有满足此正则表达式的的 css
|
|
8
|
+
*
|
|
9
|
+
* value 可以设置为 boolean 值 false 或 一个对象
|
|
10
|
+
* 当 value 为 false 时,则会忽略此 css,即此 css 不纳入 webpack-theme-color-replacer 管理
|
|
11
|
+
* 当 value 为 对象时,会调用该对象的 resolve 函数,并传入 cssText(原始的 css文本) 和 cssObj(css对象)参数; resolve函数应该返
|
|
12
|
+
* 回一个处理后的、合法的 css字符串(包含 selector)
|
|
13
|
+
* 注意: value 不能设置为 true
|
|
14
|
+
*/
|
|
15
|
+
const cssResolve = {
|
|
16
|
+
'.ant-checkbox-checked .ant-checkbox-inner::after': {
|
|
17
|
+
resolve (cssText, cssObj) {
|
|
18
|
+
cssObj.rules.push('border-top:0', 'border-left:0')
|
|
19
|
+
return cssObj.toText()
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
'.ant-tree-checkbox-checked .ant-tree-checkbox-inner::after': {
|
|
23
|
+
resolve (cssText, cssObj) {
|
|
24
|
+
cssObj.rules.push('border-top:0', 'border-left:0')
|
|
25
|
+
return cssObj.toText()
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
'.ant-checkbox-checked .ant-checkbox-inner:after': {
|
|
29
|
+
resolve (cssText, cssObj) {
|
|
30
|
+
cssObj.rules.push('border-top:0', 'border-left:0')
|
|
31
|
+
return cssObj.toText()
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
'.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after': {
|
|
35
|
+
resolve (cssText, cssObj) {
|
|
36
|
+
cssObj.rules.push('border-top:0', 'border-left:0')
|
|
37
|
+
return cssObj.toText()
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
'.ant-menu-dark .ant-menu-inline.ant-menu-sub': {
|
|
41
|
+
resolve (cssText, cssObj) {
|
|
42
|
+
cssObj.rules = cssObj.rules.filter(rule => rule.indexOf('box-shadow') === -1)
|
|
43
|
+
return cssObj.toText()
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
'.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu:hover,.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-submenu-active,.ant-menu-horizontal>.ant-menu-item-open,.ant-menu-horizontal>.ant-menu-submenu-open,.ant-menu-horizontal>.ant-menu-item-selected,.ant-menu-horizontal>.ant-menu-submenu-selected': {
|
|
47
|
+
resolve (cssText, cssObj) {
|
|
48
|
+
cssObj.selector = cssObj.selector.replace(/.ant-menu-horizontal/g, '.ant-menu-horizontal:not(.ant-menu-dark)')
|
|
49
|
+
return cssObj.toText()
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
'.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item-open,.ant-menu-horizontal>.ant-menu-item-selected,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu-active,.ant-menu-horizontal>.ant-menu-submenu-open,.ant-menu-horizontal>.ant-menu-submenu-selected,.ant-menu-horizontal>.ant-menu-submenu:hover': {
|
|
53
|
+
resolve (cssText, cssObj) {
|
|
54
|
+
cssObj.selector = cssObj.selector.replace(/.ant-menu-horizontal/g, '.ant-menu-horizontal:not(.ant-menu-dark)')
|
|
55
|
+
return cssObj.toText()
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
'.ant-layout-sider': {
|
|
59
|
+
resolve (cssText, cssObj) {
|
|
60
|
+
cssObj.selector = '.ant-layout-sider-dark'
|
|
61
|
+
return cssObj.toText()
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
'/keyframes/': false
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
module.exports = cssResolve
|