vue2-client 1.3.21 → 1.3.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.
Files changed (96) hide show
  1. package/CHANGELOG.md +328 -323
  2. package/index.js +30 -30
  3. package/package.json +76 -76
  4. package/public/img/login/background.svg +3 -0
  5. package/src/assets/login/illustration.svg +3 -0
  6. package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +225 -225
  7. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +551 -551
  8. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +777 -777
  9. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +553 -553
  10. package/src/base-client/components/common/CustomColumnsDrawer/index.md +46 -46
  11. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +165 -165
  12. package/src/base-client/components/common/JSONToTree/jsontotree.vue +275 -275
  13. package/src/base-client/components/common/Upload/Upload.vue +167 -162
  14. package/src/base-client/components/common/XAddForm/XAddForm.vue +354 -354
  15. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +327 -327
  16. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  17. package/src/base-client/components/common/XForm/XForm.vue +274 -274
  18. package/src/base-client/components/common/XForm/XFormItem.vue +389 -389
  19. package/src/base-client/components/common/XFormTable/index.md +96 -96
  20. package/src/base-client/components/common/XTable/XTable.vue +278 -278
  21. package/src/base-client/components/system/LogDetailsView/LogDetailsView.vue +376 -376
  22. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  23. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +807 -807
  24. package/src/base-client/components/ticket/TicketDetailsView/index.md +29 -29
  25. package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +260 -260
  26. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +532 -532
  27. package/src/base-client/components/ticket/TicketSubmitSuccessView/index.md +29 -29
  28. package/src/base-client/plugins/AppData.js +69 -69
  29. package/src/base-client/plugins/GetLoginInfoService.js +179 -179
  30. package/src/base-client/plugins/PagedList.js +177 -177
  31. package/src/base-client/plugins/compatible/LoginServiceOA.js +20 -20
  32. package/src/base-client/plugins/i18n-extend.js +32 -32
  33. package/src/components/Ellipsis/index.md +38 -38
  34. package/src/components/NumberInfo/index.md +43 -43
  35. package/src/components/STable/README.md +341 -341
  36. package/src/components/STable/index.js +318 -318
  37. package/src/components/Trend/index.md +45 -45
  38. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  39. package/src/components/checkbox/ImgCheckbox.vue +163 -163
  40. package/src/components/exception/ExceptionPage.vue +70 -70
  41. package/src/components/form/FormRow.vue +52 -52
  42. package/src/components/index.js +36 -36
  43. package/src/components/menu/SideMenu.vue +62 -62
  44. package/src/components/menu/menu.js +273 -273
  45. package/src/components/setting/Setting.vue +235 -235
  46. package/src/components/table/StandardTable.vue +141 -141
  47. package/src/components/table/advance/ActionColumns.vue +158 -158
  48. package/src/components/table/advance/SearchArea.vue +355 -355
  49. package/src/components/tool/AStepItem.vue +60 -60
  50. package/src/components/tool/AvatarList.vue +68 -68
  51. package/src/components/tool/Drawer.vue +142 -142
  52. package/src/components/tool/TagSelect.vue +83 -83
  53. package/src/components/transition/PageToggleTransition.vue +97 -97
  54. package/src/config/default/setting.config.js +41 -41
  55. package/src/config/replacer/resolve.config.js +67 -67
  56. package/src/layouts/AdminLayout.vue +174 -174
  57. package/src/layouts/header/AdminHeader.vue +104 -104
  58. package/src/layouts/header/HeaderNotice.vue +167 -167
  59. package/src/layouts/header/HeaderSearch.vue +67 -67
  60. package/src/layouts/header/InstitutionDetail.vue +181 -181
  61. package/src/layouts/tabs/TabsHead.vue +190 -190
  62. package/src/layouts/tabs/TabsView.vue +379 -379
  63. package/src/mock/goods/index.js +108 -108
  64. package/src/pages/CreateQueryPage.vue +65 -65
  65. package/src/pages/login/Login.vue +359 -277
  66. package/src/pages/report/ReportTable.js +124 -124
  67. package/src/pages/report/ReportTableHome.vue +28 -28
  68. package/src/pages/resourceManage/orgListManage.vue +98 -98
  69. package/src/pages/system/dictionary/index.vue +43 -43
  70. package/src/pages/system/file/index.vue +317 -317
  71. package/src/pages/system/queryParams/index.vue +43 -43
  72. package/src/router/async/config.async.js +27 -27
  73. package/src/router/async/router.map.js +56 -56
  74. package/src/router/index.js +27 -27
  75. package/src/services/api/DictionaryDetailsViewApi.js +6 -6
  76. package/src/services/api/LogDetailsViewApi.js +10 -10
  77. package/src/services/api/QueryParamsDetailsViewApi.js +6 -6
  78. package/src/services/api/TicketDetailsViewApi.js +34 -34
  79. package/src/services/api/common.js +58 -58
  80. package/src/services/api/commonTempTable.js +10 -10
  81. package/src/services/api/index.js +17 -17
  82. package/src/services/api/manage.js +8 -8
  83. package/src/store/mutation-types.js +2 -2
  84. package/src/theme/default/nprogress.less +76 -76
  85. package/src/theme/default/style.less +47 -47
  86. package/src/utils/colors.js +103 -103
  87. package/src/utils/excel/Blob.js +180 -180
  88. package/src/utils/excel/Export2Excel.js +141 -141
  89. package/src/utils/formatter.js +68 -68
  90. package/src/utils/i18n.js +80 -80
  91. package/src/utils/request.js +225 -225
  92. package/src/utils/routerUtil.js +364 -364
  93. package/src/utils/theme-color-replacer-extend.js +91 -91
  94. package/src/utils/themeUtil.js +100 -100
  95. package/src/utils/util.js +230 -230
  96. package/vue.config.js +99 -99
@@ -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,41 +1,41 @@
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: '/system/dictionaryManage', // 首页路由, 登陆后默认打开
21
- ticketPage: '/submitTicket', // 提交工单路由
22
- systemName: '基础组件平台', // 系统名称
23
- logoSrc: '/defaultLogo.png', // LOGO路径
24
- systemNameFontSize: '20px', // 系统名称字体大小
25
- systemDesc: '为PC端中、后台系统业务开发提供支持', // 系统描述
26
- copyright: '2022 AoFengSoft', // copyright
27
- asyncRoutes: true, // 异步加载路由,true:开启,false:不开启
28
- showPageTitle: true, // 是否显示页面标题(PageLayout 布局中的页面标题),true:显示,false:不显示
29
- filterMenu: true, // 根据权限过滤菜单,true:过滤,false:不过滤
30
- animate: { // 动画设置
31
- disabled: true, // 禁用动画,true:禁用,false:启用
32
- name: 'lightSpeed', // 动画效果,支持的动画效果可参考 ./animate.config.js
33
- direction: 'left' // 动画方向,切换页面时动画的方向,参考 ./animate.config.js
34
- },
35
- footerLinks: [ // 页面底部链接,{link: '链接地址', name: '名称/显示文字', icon: '图标,支持 ant design vue 图标库'}
36
- ],
37
- // 旧系统路径
38
- iframeSrc: '../singlepage/page.html',
39
- // 兼容旧版本 V3(最新V3产品) OA(公司OA)
40
- compatible: 'V3'
41
- }
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: '/system/dictionaryManage', // 首页路由, 登陆后默认打开
21
+ ticketPage: '/submitTicket', // 提交工单路由
22
+ systemName: 'V4基础组件平台', // 系统名称
23
+ logoSrc: '/defaultLogo.png', // LOGO路径
24
+ systemNameFontSize: '20px', // 系统名称字体大小
25
+ systemDesc: '为PC端中、后台系统业务开发提供支持', // 系统描述
26
+ copyright: '2022 AoFengSoft', // copyright
27
+ asyncRoutes: true, // 异步加载路由,true:开启,false:不开启
28
+ showPageTitle: true, // 是否显示页面标题(PageLayout 布局中的页面标题),true:显示,false:不显示
29
+ filterMenu: true, // 根据权限过滤菜单,true:过滤,false:不过滤
30
+ animate: { // 动画设置
31
+ disabled: true, // 禁用动画,true:禁用,false:启用
32
+ name: 'lightSpeed', // 动画效果,支持的动画效果可参考 ./animate.config.js
33
+ direction: 'left' // 动画方向,切换页面时动画的方向,参考 ./animate.config.js
34
+ },
35
+ footerLinks: [ // 页面底部链接,{link: '链接地址', name: '名称/显示文字', icon: '图标,支持 ant design vue 图标库'}
36
+ ],
37
+ // 旧系统路径
38
+ iframeSrc: '../singlepage/page.html',
39
+ // 兼容旧版本 V3(最新V3产品) OA(公司OA)
40
+ compatible: 'V3'
41
+ }
@@ -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