vue2-client 1.19.20 → 1.19.21

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 (85) hide show
  1. package/.claude/settings.local.json +30 -30
  2. package/.eslintrc.js +74 -74
  3. package/Components.md +60 -60
  4. package/docs/index.md +30 -30
  5. package/index.js +31 -31
  6. package/jest-transform-stub.js +8 -8
  7. package/jest.setup.js +7 -7
  8. package/package.json +1 -1
  9. package/src/assets/img/querySlotDemo.svg +15 -15
  10. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  11. package/src/base-client/components/common/CitySelect/index.js +3 -3
  12. package/src/base-client/components/common/CitySelect/index.md +109 -109
  13. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  14. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  15. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  16. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  17. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  18. package/src/base-client/components/common/Tree/index.js +2 -2
  19. package/src/base-client/components/common/Upload/index.js +3 -3
  20. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +10 -1
  21. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  22. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  23. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  24. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  25. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  26. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  27. package/src/base-client/components/common/XForm/XFormItem.vue +11 -0
  28. package/src/base-client/components/common/XForm/index.md +178 -178
  29. package/src/base-client/components/common/XFormGroup/XFormGroup.vue +6 -3
  30. package/src/base-client/components/common/XFormGroup/demo.vue +5 -1
  31. package/src/base-client/components/common/XFormTable/demo.vue +2 -2
  32. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  33. package/src/base-client/components/common/XStepView/index.js +3 -3
  34. package/src/base-client/components/common/XStepView/index.md +31 -31
  35. package/src/base-client/components/common/XTable/XTableWrapper.vue +1 -6
  36. package/src/base-client/components/common/XTable/index.md +255 -255
  37. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  38. package/src/base-client/plugins/Config.js +19 -19
  39. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  40. package/src/components/Charts/Bar.vue +62 -62
  41. package/src/components/Charts/ChartCard.vue +134 -134
  42. package/src/components/Charts/Liquid.vue +67 -67
  43. package/src/components/Charts/MiniArea.vue +39 -39
  44. package/src/components/Charts/MiniBar.vue +39 -39
  45. package/src/components/Charts/MiniProgress.vue +75 -75
  46. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  47. package/src/components/Charts/Radar.vue +68 -68
  48. package/src/components/Charts/RankList.vue +77 -77
  49. package/src/components/Charts/TagCloud.vue +113 -113
  50. package/src/components/Charts/TransferBar.vue +64 -64
  51. package/src/components/Charts/Trend.vue +82 -82
  52. package/src/components/Charts/chart.less +12 -12
  53. package/src/components/Charts/smooth.area.less +13 -13
  54. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  55. package/src/components/NumberInfo/index.js +3 -3
  56. package/src/components/NumberInfo/index.less +54 -54
  57. package/src/components/NumberInfo/index.md +43 -43
  58. package/src/components/card/ChartCard.vue +79 -79
  59. package/src/components/chart/Bar.vue +60 -60
  60. package/src/components/chart/MiniArea.vue +67 -67
  61. package/src/components/chart/MiniBar.vue +59 -59
  62. package/src/components/chart/MiniProgress.vue +57 -57
  63. package/src/components/chart/Radar.vue +80 -80
  64. package/src/components/chart/RankingList.vue +60 -60
  65. package/src/components/chart/Trend.vue +79 -79
  66. package/src/components/chart/index.less +9 -9
  67. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  68. package/src/components/input/IInput.vue +66 -66
  69. package/src/components/menu/SideMenu.vue +75 -75
  70. package/src/components/menu/menu.js +273 -273
  71. package/src/components/tool/AStepItem.vue +60 -60
  72. package/src/layouts/CommonLayout.vue +56 -56
  73. package/src/layouts/header/HeaderNotice.vue +177 -177
  74. package/src/lib.js +1 -1
  75. package/src/mock/extend/index.js +84 -84
  76. package/src/mock/goods/index.js +108 -108
  77. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  78. package/src/pages/system/dictionary/index.vue +44 -44
  79. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  80. package/src/pages/system/monitor/operLog/index.vue +37 -37
  81. package/src/services/api/cas.js +79 -79
  82. package/src/store/modules/setting.js +119 -119
  83. package/src/utils/authority-utils.js +85 -85
  84. package/src/utils/errorCode.js +6 -6
  85. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
@@ -1,64 +1,64 @@
1
- <template>
2
- <div>
3
- <a-card :body-style="{ margin: 0, padding: 0 }" :bordered="false">
4
- <a-skeleton v-show="loadState === 'loading'" active style="padding: 16px"/>
5
- <a-empty v-show="loadState === 'empty'">
6
- <a-button type="dashed" @click="retry">
7
- 重新加载
8
- </a-button>
9
- </a-empty>
10
- <a-card
11
- v-show="loadState === 'error'"
12
- :body-style="{ margin: '0 auto' }"
13
- :bordered="false"
14
- :hoverable="true"
15
- class="retryCard"
16
- @click="retry" >
17
- <a-icon :style="{ fontSize: '28px' }" type="global"/>
18
- <p class="noSelect" style="margin-top: 20px">网络好像开小差了,点击重新加载...</p>
19
- </a-card>
20
- <div v-show="loadState === 'success'">
21
- <slot></slot>
22
- </div>
23
- </a-card>
24
- </div>
25
- </template>
26
-
27
- <script>
28
-
29
- export default {
30
- name: 'XCard',
31
- props: {
32
- loadState: {
33
- type: String,
34
- default: 'success'
35
- },
36
- retry: {
37
- type: Function,
38
- default: () => {
39
- console.error('未实现重新加载')
40
- }
41
- }
42
- },
43
- data () {
44
- return {
45
-
46
- }
47
- }
48
- }
49
- </script>
50
-
51
- <style scoped>
52
- .retryCard {
53
- text-align: center;
54
- }
55
- .noSelect {
56
- -webkit-touch-callout: none; /* iOS Safari */
57
- -webkit-user-select: none; /* Chrome/Safari/Opera */
58
- -khtml-user-select: none; /* Konqueror */
59
- -moz-user-select: none; /* Firefox */
60
- -ms-user-select: none; /* Internet Explorer/Edge */
61
- user-select: none; /* Non-prefixed version, currently
62
- not supported by any browser */
63
- }
64
- </style>
1
+ <template>
2
+ <div>
3
+ <a-card :body-style="{ margin: 0, padding: 0 }" :bordered="false">
4
+ <a-skeleton v-show="loadState === 'loading'" active style="padding: 16px"/>
5
+ <a-empty v-show="loadState === 'empty'">
6
+ <a-button type="dashed" @click="retry">
7
+ 重新加载
8
+ </a-button>
9
+ </a-empty>
10
+ <a-card
11
+ v-show="loadState === 'error'"
12
+ :body-style="{ margin: '0 auto' }"
13
+ :bordered="false"
14
+ :hoverable="true"
15
+ class="retryCard"
16
+ @click="retry" >
17
+ <a-icon :style="{ fontSize: '28px' }" type="global"/>
18
+ <p class="noSelect" style="margin-top: 20px">网络好像开小差了,点击重新加载...</p>
19
+ </a-card>
20
+ <div v-show="loadState === 'success'">
21
+ <slot></slot>
22
+ </div>
23
+ </a-card>
24
+ </div>
25
+ </template>
26
+
27
+ <script>
28
+
29
+ export default {
30
+ name: 'XCard',
31
+ props: {
32
+ loadState: {
33
+ type: String,
34
+ default: 'success'
35
+ },
36
+ retry: {
37
+ type: Function,
38
+ default: () => {
39
+ console.error('未实现重新加载')
40
+ }
41
+ }
42
+ },
43
+ data () {
44
+ return {
45
+
46
+ }
47
+ }
48
+ }
49
+ </script>
50
+
51
+ <style scoped>
52
+ .retryCard {
53
+ text-align: center;
54
+ }
55
+ .noSelect {
56
+ -webkit-touch-callout: none; /* iOS Safari */
57
+ -webkit-user-select: none; /* Chrome/Safari/Opera */
58
+ -khtml-user-select: none; /* Konqueror */
59
+ -moz-user-select: none; /* Firefox */
60
+ -ms-user-select: none; /* Internet Explorer/Edge */
61
+ user-select: none; /* Non-prefixed version, currently
62
+ not supported by any browser */
63
+ }
64
+ </style>
@@ -1,180 +1,180 @@
1
- <template>
2
- <a-drawer
3
- :visible="visible"
4
- :width="isMobile ? screenWidth : screenWidth * 0.85"
5
- placement="right"
6
- :title="title"
7
- @close="onClose"
8
- >
9
- <a-spin :spinning="loading">
10
- <a-page-header :title="getPageHeaderTitle">
11
- <div class="row">
12
- <div class="content">
13
- <slot name="contentDescriptions" :datas="details"></slot>
14
- </div>
15
- <div class="extra">
16
- <a-row class="status-list" v-for="(item,index) in extraStatusList" :key="'extraStatus' + index">
17
- <a-col :sm="24" :xs="12">
18
- <div class="text">{{ item.text }}</div>
19
- <div class="heading">
20
- <x-badge :is-external-text="true" :value="item.key" :badge-key="item.keyMap ? item.keyMap : 'none'"/>
21
- </div>
22
- </a-col>
23
- </a-row>
24
- </div>
25
- </div>
26
- <!-- actions -->
27
- <template #extra>
28
- <a-button-group style="margin-right: 4px;">
29
- <a-button :loading="loading" type="dashed" @click="initView('1')">刷新</a-button>
30
- </a-button-group>
31
- <a-button-group style="margin-right: 4px;">
32
- <slot name="extraActions" :datas="details"></slot>
33
- </a-button-group>
34
- </template>
35
- <template #footer>
36
- <slot name="footerContent" :datas="details"></slot>
37
- </template>
38
- </a-page-header>
39
- </a-spin>
40
- </a-drawer>
41
- </template>
42
-
43
- <script>
44
- import { mapState } from 'vuex'
45
- import XBadge from '@vue2-client/base-client/components/common/XBadge/XBadge'
46
-
47
- export default {
48
- name: 'InstructDetailsView',
49
- components: {
50
- XBadge
51
- },
52
- data () {
53
- return {
54
- // 页面宽度
55
- screenWidth: document.documentElement.clientWidth,
56
- // Tab页签
57
- tabActiveKey: '1',
58
- // 数据详情
59
- details: {},
60
- // 加载状态
61
- loading: true
62
- }
63
- },
64
- mounted () {
65
- this.initView('1')
66
- },
67
- computed: {
68
- ...mapState('account', { currUser: 'user' }),
69
- ...mapState('setting', ['isMobile'])
70
- },
71
- props: {
72
- title: {
73
- type: String,
74
- required: true
75
- },
76
- extraStatusList: {
77
- type: Array,
78
- default: () => {
79
- return []
80
- }
81
- },
82
- visible: {
83
- type: Boolean,
84
- default: false
85
- }
86
- },
87
- methods: {
88
- // 初始化组件
89
- initView (tabActiveKey) {
90
- this.tabActiveKey = tabActiveKey || '1'
91
- this.getDatas()
92
- },
93
- // 获取详情信息
94
- getDatas () {
95
- this.loading = true
96
- this.$emit('load').then(res => {
97
- this.details = res
98
- }, err => {
99
- console.error(err)
100
- }).finally(() => {
101
- this.loading = false
102
- })
103
- },
104
- // 获取页头标题
105
- getPageHeaderTitle () {
106
- this.$emit('getPageHeaderTitle', this.details)
107
- },
108
- // 关闭抽屉时回调
109
- onClose () {
110
- this.$emit('update:visible', false)
111
- }
112
- },
113
- watch: {
114
- 'visible' (val) {
115
- if (val) {
116
- this.initView('1')
117
- }
118
- }
119
- }
120
- }
121
- </script>
122
-
123
- <style lang="less" scoped>
124
- .detail-layout {
125
- margin-left: 44px;
126
- }
127
- .text {
128
- color: rgba(0, 0, 0, .45);
129
- }
130
-
131
- .heading {
132
- color: rgba(0, 0, 0, .85);
133
- font-size: 20px;
134
- }
135
-
136
- .no-data {
137
- color: rgba(0, 0, 0, .25);
138
- text-align: center;
139
- line-height: 64px;
140
- font-size: 16px;
141
-
142
- i {
143
- font-size: 24px;
144
- margin-right: 16px;
145
- position: relative;
146
- top: 3px;
147
- }
148
- }
149
-
150
- .mobile {
151
- .detail-layout {
152
- margin-left: unset;
153
- }
154
- .text {
155
-
156
- }
157
- .status-list {
158
- text-align: left;
159
- }
160
- }
161
-
162
- .row {
163
- display: flex;
164
-
165
- .content {
166
- -webkit-box-flex: 1;
167
- flex: auto;
168
- -ms-flex: auto;
169
- }
170
-
171
- .extra {
172
- flex: 0 1 auto;
173
- -webkit-box-flex: 0;
174
- -ms-flex: 0 1 auto;
175
- min-width: 242px;
176
- margin-left: 88px;
177
- text-align: right;
178
- }
179
- }
180
- </style>
1
+ <template>
2
+ <a-drawer
3
+ :visible="visible"
4
+ :width="isMobile ? screenWidth : screenWidth * 0.85"
5
+ placement="right"
6
+ :title="title"
7
+ @close="onClose"
8
+ >
9
+ <a-spin :spinning="loading">
10
+ <a-page-header :title="getPageHeaderTitle">
11
+ <div class="row">
12
+ <div class="content">
13
+ <slot name="contentDescriptions" :datas="details"></slot>
14
+ </div>
15
+ <div class="extra">
16
+ <a-row class="status-list" v-for="(item,index) in extraStatusList" :key="'extraStatus' + index">
17
+ <a-col :sm="24" :xs="12">
18
+ <div class="text">{{ item.text }}</div>
19
+ <div class="heading">
20
+ <x-badge :is-external-text="true" :value="item.key" :badge-key="item.keyMap ? item.keyMap : 'none'"/>
21
+ </div>
22
+ </a-col>
23
+ </a-row>
24
+ </div>
25
+ </div>
26
+ <!-- actions -->
27
+ <template #extra>
28
+ <a-button-group style="margin-right: 4px;">
29
+ <a-button :loading="loading" type="dashed" @click="initView('1')">刷新</a-button>
30
+ </a-button-group>
31
+ <a-button-group style="margin-right: 4px;">
32
+ <slot name="extraActions" :datas="details"></slot>
33
+ </a-button-group>
34
+ </template>
35
+ <template #footer>
36
+ <slot name="footerContent" :datas="details"></slot>
37
+ </template>
38
+ </a-page-header>
39
+ </a-spin>
40
+ </a-drawer>
41
+ </template>
42
+
43
+ <script>
44
+ import { mapState } from 'vuex'
45
+ import XBadge from '@vue2-client/base-client/components/common/XBadge/XBadge'
46
+
47
+ export default {
48
+ name: 'InstructDetailsView',
49
+ components: {
50
+ XBadge
51
+ },
52
+ data () {
53
+ return {
54
+ // 页面宽度
55
+ screenWidth: document.documentElement.clientWidth,
56
+ // Tab页签
57
+ tabActiveKey: '1',
58
+ // 数据详情
59
+ details: {},
60
+ // 加载状态
61
+ loading: true
62
+ }
63
+ },
64
+ mounted () {
65
+ this.initView('1')
66
+ },
67
+ computed: {
68
+ ...mapState('account', { currUser: 'user' }),
69
+ ...mapState('setting', ['isMobile'])
70
+ },
71
+ props: {
72
+ title: {
73
+ type: String,
74
+ required: true
75
+ },
76
+ extraStatusList: {
77
+ type: Array,
78
+ default: () => {
79
+ return []
80
+ }
81
+ },
82
+ visible: {
83
+ type: Boolean,
84
+ default: false
85
+ }
86
+ },
87
+ methods: {
88
+ // 初始化组件
89
+ initView (tabActiveKey) {
90
+ this.tabActiveKey = tabActiveKey || '1'
91
+ this.getDatas()
92
+ },
93
+ // 获取详情信息
94
+ getDatas () {
95
+ this.loading = true
96
+ this.$emit('load').then(res => {
97
+ this.details = res
98
+ }, err => {
99
+ console.error(err)
100
+ }).finally(() => {
101
+ this.loading = false
102
+ })
103
+ },
104
+ // 获取页头标题
105
+ getPageHeaderTitle () {
106
+ this.$emit('getPageHeaderTitle', this.details)
107
+ },
108
+ // 关闭抽屉时回调
109
+ onClose () {
110
+ this.$emit('update:visible', false)
111
+ }
112
+ },
113
+ watch: {
114
+ 'visible' (val) {
115
+ if (val) {
116
+ this.initView('1')
117
+ }
118
+ }
119
+ }
120
+ }
121
+ </script>
122
+
123
+ <style lang="less" scoped>
124
+ .detail-layout {
125
+ margin-left: 44px;
126
+ }
127
+ .text {
128
+ color: rgba(0, 0, 0, .45);
129
+ }
130
+
131
+ .heading {
132
+ color: rgba(0, 0, 0, .85);
133
+ font-size: 20px;
134
+ }
135
+
136
+ .no-data {
137
+ color: rgba(0, 0, 0, .25);
138
+ text-align: center;
139
+ line-height: 64px;
140
+ font-size: 16px;
141
+
142
+ i {
143
+ font-size: 24px;
144
+ margin-right: 16px;
145
+ position: relative;
146
+ top: 3px;
147
+ }
148
+ }
149
+
150
+ .mobile {
151
+ .detail-layout {
152
+ margin-left: unset;
153
+ }
154
+ .text {
155
+
156
+ }
157
+ .status-list {
158
+ text-align: left;
159
+ }
160
+ }
161
+
162
+ .row {
163
+ display: flex;
164
+
165
+ .content {
166
+ -webkit-box-flex: 1;
167
+ flex: auto;
168
+ -ms-flex: auto;
169
+ }
170
+
171
+ .extra {
172
+ flex: 0 1 auto;
173
+ -webkit-box-flex: 0;
174
+ -ms-flex: 0 1 auto;
175
+ min-width: 242px;
176
+ margin-left: 88px;
177
+ text-align: right;
178
+ }
179
+ }
180
+ </style>
@@ -1,3 +1,3 @@
1
- import XDataDrawer from './XDataDrawer'
2
-
3
- export default XDataDrawer
1
+ import XDataDrawer from './XDataDrawer'
2
+
3
+ export default XDataDrawer
@@ -1,41 +1,41 @@
1
- # XForm
2
-
3
- 通用数据抽屉控件,快速制作数据详情抽屉
4
-
5
-
6
- ## 何时使用
7
-
8
- 当需要一个通用数据抽屉时
9
-
10
-
11
- 引用方式:
12
-
13
- ```javascript
14
- import XDataDrawer from '@vue2-client/base-client/components/XDataDrawer/XDataDrawer'
15
-
16
- export default {
17
- components: {
18
- XDataDrawer
19
- }
20
- }
21
- ```
22
-
23
-
24
-
25
- ## 代码演示
26
-
27
- ```html
28
- <x-data-drawer
29
- :isExports="true"
30
- @onSubmit="onSubmit">
31
- </x-data-drawer>
32
- ```
33
-
34
- ## API
35
-
36
- | 参数 | 说明 | 类型 | 默认值 |
37
- |-----------|--------------------------|---------|------|
38
- | jsonData | JSON配置,根据[工具>查询配置生成]功能生成 | Object | {} |
39
- | isExports | 是否显示导出按钮 | Boolean | true |
40
- | getDataParams | 调用logic获取数据源的追加参数 | Object | - |
41
- | @onSubmit | 表单的提交事件 | event | - |
1
+ # XForm
2
+
3
+ 通用数据抽屉控件,快速制作数据详情抽屉
4
+
5
+
6
+ ## 何时使用
7
+
8
+ 当需要一个通用数据抽屉时
9
+
10
+
11
+ 引用方式:
12
+
13
+ ```javascript
14
+ import XDataDrawer from '@vue2-client/base-client/components/XDataDrawer/XDataDrawer'
15
+
16
+ export default {
17
+ components: {
18
+ XDataDrawer
19
+ }
20
+ }
21
+ ```
22
+
23
+
24
+
25
+ ## 代码演示
26
+
27
+ ```html
28
+ <x-data-drawer
29
+ :isExports="true"
30
+ @onSubmit="onSubmit">
31
+ </x-data-drawer>
32
+ ```
33
+
34
+ ## API
35
+
36
+ | 参数 | 说明 | 类型 | 默认值 |
37
+ |-----------|--------------------------|---------|------|
38
+ | jsonData | JSON配置,根据[工具>查询配置生成]功能生成 | Object | {} |
39
+ | isExports | 是否显示导出按钮 | Boolean | true |
40
+ | getDataParams | 调用logic获取数据源的追加参数 | Object | - |
41
+ | @onSubmit | 表单的提交事件 | event | - |
@@ -1,3 +1,3 @@
1
- import XDescriptions from './XDescriptions.vue'
2
-
3
- export default XDescriptions
1
+ import XDescriptions from './XDescriptions.vue'
2
+
3
+ export default XDescriptions
@@ -983,9 +983,20 @@ export default {
983
983
  // 表单组上下文(通过注入传递)
984
984
  formGroupContext: {
985
985
  default: null
986
+ },
987
+ // 外部数据(通过 XAddNativeForm 的 provide 传递)
988
+ _getExternalData: {
989
+ default: () => ({})
986
990
  }
987
991
  },
988
992
  methods: {
993
+ /**
994
+ * 获取外部数据
995
+ * @returns {Object} 外部扩展数据对象 比如收费表单中俄的 用户信息要参与表单判断
996
+ */
997
+ getExternalData() {
998
+ return this._getExternalData() || {}
999
+ },
989
1000
  // 处理 queryParams 结果并更新 rowChooseFixedQueryValue
990
1001
  handleQueryParamsResult(obj) {
991
1002
  let configName = ''