vue2-client 1.18.36 → 1.18.37

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 (95) hide show
  1. package/.eslintrc.js +90 -90
  2. package/Components.md +60 -60
  3. package/docs/index.md +30 -30
  4. package/index.js +31 -31
  5. package/jest-transform-stub.js +8 -8
  6. package/jest.setup.js +7 -7
  7. package/package.json +1 -1
  8. package/src/assets/img/querySlotDemo.svg +15 -15
  9. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  10. package/src/base-client/components/common/CitySelect/index.js +3 -3
  11. package/src/base-client/components/common/CitySelect/index.md +109 -109
  12. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  13. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  14. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  15. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  16. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  17. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  18. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  19. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  20. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  21. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  22. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  23. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  24. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  25. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  26. package/src/base-client/components/common/Tree/index.js +2 -2
  27. package/src/base-client/components/common/Upload/index.js +3 -3
  28. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  29. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  30. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  31. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  32. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  33. package/src/base-client/components/common/XDescriptions/XDescriptions.vue +174 -174
  34. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  35. package/src/base-client/components/common/XDescriptions/index.md +322 -322
  36. package/src/base-client/components/common/XForm/index.md +178 -178
  37. package/src/base-client/components/common/XFormTable/demo.vue +125 -125
  38. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
  39. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  40. package/src/base-client/components/common/XStepView/index.js +3 -3
  41. package/src/base-client/components/common/XStepView/index.md +31 -31
  42. package/src/base-client/components/common/XTable/XTable.vue +1715 -1715
  43. package/src/base-client/components/common/XTable/XTableWrapper.vue +759 -756
  44. package/src/base-client/components/common/XTable/index.md +255 -255
  45. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  46. package/src/base-client/plugins/Config.js +19 -19
  47. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  48. package/src/components/Charts/Bar.vue +62 -62
  49. package/src/components/Charts/ChartCard.vue +134 -134
  50. package/src/components/Charts/Liquid.vue +67 -67
  51. package/src/components/Charts/MiniArea.vue +39 -39
  52. package/src/components/Charts/MiniBar.vue +39 -39
  53. package/src/components/Charts/MiniProgress.vue +75 -75
  54. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  55. package/src/components/Charts/Radar.vue +68 -68
  56. package/src/components/Charts/RankList.vue +77 -77
  57. package/src/components/Charts/TagCloud.vue +113 -113
  58. package/src/components/Charts/TransferBar.vue +64 -64
  59. package/src/components/Charts/Trend.vue +82 -82
  60. package/src/components/Charts/chart.less +12 -12
  61. package/src/components/Charts/smooth.area.less +13 -13
  62. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  63. package/src/components/NumberInfo/index.js +3 -3
  64. package/src/components/NumberInfo/index.less +54 -54
  65. package/src/components/NumberInfo/index.md +43 -43
  66. package/src/components/card/ChartCard.vue +79 -79
  67. package/src/components/chart/Bar.vue +60 -60
  68. package/src/components/chart/MiniArea.vue +67 -67
  69. package/src/components/chart/MiniBar.vue +59 -59
  70. package/src/components/chart/MiniProgress.vue +57 -57
  71. package/src/components/chart/Radar.vue +80 -80
  72. package/src/components/chart/RankingList.vue +60 -60
  73. package/src/components/chart/Trend.vue +79 -79
  74. package/src/components/chart/index.less +9 -9
  75. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  76. package/src/components/input/IInput.vue +66 -66
  77. package/src/components/menu/SideMenu.vue +75 -75
  78. package/src/components/menu/menu.js +273 -273
  79. package/src/components/tool/AStepItem.vue +60 -60
  80. package/src/config/CreateQueryConfig.js +325 -325
  81. package/src/layouts/CommonLayout.vue +56 -56
  82. package/src/layouts/header/HeaderNotice.vue +177 -177
  83. package/src/lib.js +1 -1
  84. package/src/mock/extend/index.js +84 -84
  85. package/src/mock/goods/index.js +108 -108
  86. package/src/pages/XTreeOneProExample/index.vue +67 -67
  87. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  88. package/src/pages/system/dictionary/index.vue +44 -44
  89. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  90. package/src/pages/system/monitor/operLog/index.vue +37 -37
  91. package/src/services/api/cas.js +79 -79
  92. package/src/store/modules/setting.js +119 -119
  93. package/src/utils/authority-utils.js +85 -85
  94. package/src/utils/errorCode.js +6 -6
  95. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
@@ -1,232 +1,232 @@
1
- <template>
2
- <a-drawer
3
- title="字典详情"
4
- placement="right"
5
- :width="isMobile ? screenWidth : screenWidth * 0.85"
6
- :visible="visible"
7
- @close="onClose"
8
- >
9
- <a-spin :spinning="loadDetails">
10
- <a-page-header
11
- :title="'字典名称:' + details.f_name"
12
- >
13
- <div class="row">
14
- <div class="content">
15
- <a-descriptions size="small" :column="isMobile ? 1 : 2">
16
- <a-descriptions-item label="字典编号">{{ details.id }}</a-descriptions-item>
17
- <a-descriptions-item label="字典键">{{ details.f_key }}</a-descriptions-item>
18
- <a-descriptions-item label="备注">{{ details.f_remark }}</a-descriptions-item>
19
- <a-descriptions-item label="创建时间">{{ format(details.f_input_date) }}</a-descriptions-item>
20
- </a-descriptions>
21
- </div>
22
- <div class="extra">
23
- <a-row class="status-list">
24
- <a-col :xs="12" :sm="24">
25
- </a-col>
26
- </a-row>
27
- </div>
28
- </div>
29
- <!-- actions -->
30
- <template #extra>
31
- <a-button-group style="margin-right: 4px;">
32
- <a-button type="dashed" @click="initView" :loading="loadDetails">刷新</a-button>
33
- </a-button-group>
34
- </template>
35
- <template slot="footer">
36
- <a-tabs :default-active-key="tabActiveKey" :activeKey="tabActiveKey" @change="handleTabChange" style="margin-bottom: 23px;">
37
- <template v-for="value in tabList">
38
- <a-tab-pane :key="value.key" :tab="value.tab"/>
39
- </template>
40
- </a-tabs>
41
- <div v-if="!loadDetails">
42
- <template v-if="tabActiveKey === '1'">
43
- <x-form-table
44
- title="字典数据配置"
45
- :fixed-add-form="fixedAddForm"
46
- :fixed-query-form="fixedQueryForm"
47
- serviceName="af-system"
48
- queryParamsName="crud_dictionary_value_manage"
49
- @afterSubmit="afterSubmit"
50
- >
51
- </x-form-table>
52
- </template>
53
- </div>
54
- </template>
55
- </a-page-header>
56
- </a-spin>
57
- </a-drawer>
58
- </template>
59
-
60
- <script>
61
- import { DictionaryDetailsViewApi, post } from '@vue2-client/services/api'
62
- import { mapState } from 'vuex'
63
- import { formatDate } from '@vue2-client/utils/util'
64
- import XFormTable from '@vue2-client/base-client/components/common/XFormTable/XFormTable'
65
-
66
- export default {
67
- name: 'DictionaryDetailsView',
68
- components: {
69
- XFormTable
70
- },
71
- data () {
72
- return {
73
- // 页面宽度
74
- screenWidth: document.documentElement.clientWidth,
75
- // Tab页签
76
- tabActiveKey: '1',
77
- // 字典详情
78
- details: {
79
- id: 0,
80
- f_name: '',
81
- f_key: '',
82
- f_remark: '',
83
- f_input_date: '',
84
- f_state: 0
85
- },
86
- tabList: [
87
- { key: '1', tab: '字典数据' }
88
- ],
89
- // 固定新增数据
90
- fixedAddForm: {},
91
- // 固定查询数据
92
- fixedQueryForm: {},
93
- // 详情加载
94
- loadDetails: true
95
- }
96
- },
97
- mounted () {
98
- this.initView()
99
- },
100
- computed: {
101
- ...mapState('account', { currUser: 'user' }),
102
- ...mapState('setting', ['isMobile'])
103
- },
104
- props: {
105
- id: {
106
- type: String,
107
- required: true
108
- },
109
- visible: {
110
- type: Boolean,
111
- default: false
112
- }
113
- },
114
- methods: {
115
- // 初始化组件
116
- initView () {
117
- this.tabActiveKey = '1'
118
- this.fixedQueryForm.v_f_dictionary_id = this.id
119
- this.fixedAddForm.v_f_dictionary_id = this.id
120
- this.getDetails(this.id)
121
- },
122
- onClose () {
123
- this.$emit('update:visible', false)
124
- },
125
- // 获取详情信息
126
- getDetails (userId) {
127
- this.loadDetails = true
128
- return post(DictionaryDetailsViewApi.getDictionaryDetails, {
129
- id: userId
130
- })
131
- .then(res => {
132
- this.details = res
133
- this.loadDetails = false
134
- }, err => {
135
- this.loadDetails = false
136
- console.error(err)
137
- })
138
- },
139
- // Tab切换
140
- handleTabChange (key) {
141
- this.tabActiveKey = key
142
- },
143
- // 日期格式化
144
- format (date, format) {
145
- return formatDate(date, format)
146
- },
147
- afterSubmit () {
148
- this.$appdata.load()
149
- }
150
- },
151
- watch: {
152
- 'visible' (val) {
153
- if (val) {
154
- this.initView()
155
- }
156
- }
157
- }
158
- }
159
- </script>
160
-
161
- <style lang="less" scoped>
162
- .business {
163
- color: #ffffff;
164
- }
165
- .business:enabled:hover {
166
- background-color: #85CE61 !important;
167
- border-color: #85CE61 !important;
168
- }
169
- .business:enabled {
170
- background-color: #67c23a;
171
- border-color: #67c23a;
172
- }
173
- .business:disabled {
174
- color: rgba(0, 0, 0, 0.25);
175
- }
176
- .detail-layout {
177
- margin-left: 44px;
178
- }
179
- .text {
180
- color: rgba(0, 0, 0, .45);
181
- }
182
-
183
- .heading {
184
- color: rgba(0, 0, 0, .85);
185
- font-size: 20px;
186
- }
187
-
188
- .no-data {
189
- color: rgba(0, 0, 0, .25);
190
- text-align: center;
191
- line-height: 64px;
192
- font-size: 16px;
193
-
194
- i {
195
- font-size: 24px;
196
- margin-right: 16px;
197
- position: relative;
198
- top: 3px;
199
- }
200
- }
201
-
202
- .mobile {
203
- .detail-layout {
204
- margin-left: unset;
205
- }
206
- .text {
207
-
208
- }
209
- .status-list {
210
- text-align: left;
211
- }
212
- }
213
-
214
- .row {
215
- display: flex;
216
-
217
- .content {
218
- -webkit-box-flex: 1;
219
- flex: auto;
220
- -ms-flex: auto;
221
- }
222
-
223
- .extra {
224
- flex: 0 1 auto;
225
- -webkit-box-flex: 0;
226
- -ms-flex: 0 1 auto;
227
- min-width: 242px;
228
- margin-left: 88px;
229
- text-align: right;
230
- }
231
- }
232
- </style>
1
+ <template>
2
+ <a-drawer
3
+ title="字典详情"
4
+ placement="right"
5
+ :width="isMobile ? screenWidth : screenWidth * 0.85"
6
+ :visible="visible"
7
+ @close="onClose"
8
+ >
9
+ <a-spin :spinning="loadDetails">
10
+ <a-page-header
11
+ :title="'字典名称:' + details.f_name"
12
+ >
13
+ <div class="row">
14
+ <div class="content">
15
+ <a-descriptions size="small" :column="isMobile ? 1 : 2">
16
+ <a-descriptions-item label="字典编号">{{ details.id }}</a-descriptions-item>
17
+ <a-descriptions-item label="字典键">{{ details.f_key }}</a-descriptions-item>
18
+ <a-descriptions-item label="备注">{{ details.f_remark }}</a-descriptions-item>
19
+ <a-descriptions-item label="创建时间">{{ format(details.f_input_date) }}</a-descriptions-item>
20
+ </a-descriptions>
21
+ </div>
22
+ <div class="extra">
23
+ <a-row class="status-list">
24
+ <a-col :xs="12" :sm="24">
25
+ </a-col>
26
+ </a-row>
27
+ </div>
28
+ </div>
29
+ <!-- actions -->
30
+ <template #extra>
31
+ <a-button-group style="margin-right: 4px;">
32
+ <a-button type="dashed" @click="initView" :loading="loadDetails">刷新</a-button>
33
+ </a-button-group>
34
+ </template>
35
+ <template slot="footer">
36
+ <a-tabs :default-active-key="tabActiveKey" :activeKey="tabActiveKey" @change="handleTabChange" style="margin-bottom: 23px;">
37
+ <template v-for="value in tabList">
38
+ <a-tab-pane :key="value.key" :tab="value.tab"/>
39
+ </template>
40
+ </a-tabs>
41
+ <div v-if="!loadDetails">
42
+ <template v-if="tabActiveKey === '1'">
43
+ <x-form-table
44
+ title="字典数据配置"
45
+ :fixed-add-form="fixedAddForm"
46
+ :fixed-query-form="fixedQueryForm"
47
+ serviceName="af-system"
48
+ queryParamsName="crud_dictionary_value_manage"
49
+ @afterSubmit="afterSubmit"
50
+ >
51
+ </x-form-table>
52
+ </template>
53
+ </div>
54
+ </template>
55
+ </a-page-header>
56
+ </a-spin>
57
+ </a-drawer>
58
+ </template>
59
+
60
+ <script>
61
+ import { DictionaryDetailsViewApi, post } from '@vue2-client/services/api'
62
+ import { mapState } from 'vuex'
63
+ import { formatDate } from '@vue2-client/utils/util'
64
+ import XFormTable from '@vue2-client/base-client/components/common/XFormTable/XFormTable'
65
+
66
+ export default {
67
+ name: 'DictionaryDetailsView',
68
+ components: {
69
+ XFormTable
70
+ },
71
+ data () {
72
+ return {
73
+ // 页面宽度
74
+ screenWidth: document.documentElement.clientWidth,
75
+ // Tab页签
76
+ tabActiveKey: '1',
77
+ // 字典详情
78
+ details: {
79
+ id: 0,
80
+ f_name: '',
81
+ f_key: '',
82
+ f_remark: '',
83
+ f_input_date: '',
84
+ f_state: 0
85
+ },
86
+ tabList: [
87
+ { key: '1', tab: '字典数据' }
88
+ ],
89
+ // 固定新增数据
90
+ fixedAddForm: {},
91
+ // 固定查询数据
92
+ fixedQueryForm: {},
93
+ // 详情加载
94
+ loadDetails: true
95
+ }
96
+ },
97
+ mounted () {
98
+ this.initView()
99
+ },
100
+ computed: {
101
+ ...mapState('account', { currUser: 'user' }),
102
+ ...mapState('setting', ['isMobile'])
103
+ },
104
+ props: {
105
+ id: {
106
+ type: String,
107
+ required: true
108
+ },
109
+ visible: {
110
+ type: Boolean,
111
+ default: false
112
+ }
113
+ },
114
+ methods: {
115
+ // 初始化组件
116
+ initView () {
117
+ this.tabActiveKey = '1'
118
+ this.fixedQueryForm.v_f_dictionary_id = this.id
119
+ this.fixedAddForm.v_f_dictionary_id = this.id
120
+ this.getDetails(this.id)
121
+ },
122
+ onClose () {
123
+ this.$emit('update:visible', false)
124
+ },
125
+ // 获取详情信息
126
+ getDetails (userId) {
127
+ this.loadDetails = true
128
+ return post(DictionaryDetailsViewApi.getDictionaryDetails, {
129
+ id: userId
130
+ })
131
+ .then(res => {
132
+ this.details = res
133
+ this.loadDetails = false
134
+ }, err => {
135
+ this.loadDetails = false
136
+ console.error(err)
137
+ })
138
+ },
139
+ // Tab切换
140
+ handleTabChange (key) {
141
+ this.tabActiveKey = key
142
+ },
143
+ // 日期格式化
144
+ format (date, format) {
145
+ return formatDate(date, format)
146
+ },
147
+ afterSubmit () {
148
+ this.$appdata.load()
149
+ }
150
+ },
151
+ watch: {
152
+ 'visible' (val) {
153
+ if (val) {
154
+ this.initView()
155
+ }
156
+ }
157
+ }
158
+ }
159
+ </script>
160
+
161
+ <style lang="less" scoped>
162
+ .business {
163
+ color: #ffffff;
164
+ }
165
+ .business:enabled:hover {
166
+ background-color: #85CE61 !important;
167
+ border-color: #85CE61 !important;
168
+ }
169
+ .business:enabled {
170
+ background-color: #67c23a;
171
+ border-color: #67c23a;
172
+ }
173
+ .business:disabled {
174
+ color: rgba(0, 0, 0, 0.25);
175
+ }
176
+ .detail-layout {
177
+ margin-left: 44px;
178
+ }
179
+ .text {
180
+ color: rgba(0, 0, 0, .45);
181
+ }
182
+
183
+ .heading {
184
+ color: rgba(0, 0, 0, .85);
185
+ font-size: 20px;
186
+ }
187
+
188
+ .no-data {
189
+ color: rgba(0, 0, 0, .25);
190
+ text-align: center;
191
+ line-height: 64px;
192
+ font-size: 16px;
193
+
194
+ i {
195
+ font-size: 24px;
196
+ margin-right: 16px;
197
+ position: relative;
198
+ top: 3px;
199
+ }
200
+ }
201
+
202
+ .mobile {
203
+ .detail-layout {
204
+ margin-left: unset;
205
+ }
206
+ .text {
207
+
208
+ }
209
+ .status-list {
210
+ text-align: left;
211
+ }
212
+ }
213
+
214
+ .row {
215
+ display: flex;
216
+
217
+ .content {
218
+ -webkit-box-flex: 1;
219
+ flex: auto;
220
+ -ms-flex: auto;
221
+ }
222
+
223
+ .extra {
224
+ flex: 0 1 auto;
225
+ -webkit-box-flex: 0;
226
+ -ms-flex: 0 1 auto;
227
+ min-width: 242px;
228
+ margin-left: 88px;
229
+ text-align: right;
230
+ }
231
+ }
232
+ </style>
@@ -1,19 +1,19 @@
1
- const asyncReady = async function (vm, name) {
2
- // 获取配置信息
3
- try {
4
- const res = await vm.$resetget('/rs/vue/' + name + '.json', { resolveMsg: null, rejectMsg: null })
5
- Object.assign(vm.config, res)
6
- } catch (error) {
7
- // 忽略704,文件找不到异常
8
- if (error.status !== 704) {
9
- throw error
10
- }
11
- }
12
- }
13
- export default {
14
- install (Vue) {
15
- Vue.getConfig = Vue.prototype.$getConfig = function (vm, name) {
16
- return asyncReady(vm, name)
17
- }
18
- }
19
- }
1
+ const asyncReady = async function (vm, name) {
2
+ // 获取配置信息
3
+ try {
4
+ const res = await vm.$resetget('/rs/vue/' + name + '.json', { resolveMsg: null, rejectMsg: null })
5
+ Object.assign(vm.config, res)
6
+ } catch (error) {
7
+ // 忽略704,文件找不到异常
8
+ if (error.status !== 704) {
9
+ throw error
10
+ }
11
+ }
12
+ }
13
+ export default {
14
+ install (Vue) {
15
+ Vue.getConfig = Vue.prototype.$getConfig = function (vm, name) {
16
+ return asyncReady(vm, name)
17
+ }
18
+ }
19
+ }
@@ -1,39 +1,39 @@
1
- const TabsPagePlugin = {
2
- install (Vue) {
3
- Vue.mixin({
4
- methods: {
5
- $closePage (closeRoute, nextRoute) {
6
- const event = new CustomEvent('page:close', { detail: { closeRoute, nextRoute } })
7
- window.dispatchEvent(event)
8
- },
9
- $refreshPage (route) {
10
- const path = typeof route === 'object' ? route.path : route
11
- const event = new CustomEvent('page:refresh', { detail: { pageKey: path } })
12
- window.dispatchEvent(event)
13
- },
14
- $openPage (route, title) {
15
- this.$setPageTitle(route, title)
16
- this.$router.push(route)
17
- },
18
- $setPageTitle (route, title) {
19
- if (title) {
20
- // let path = typeof route === 'object' ? route.path : route
21
- // path = path && path.split('?')[0]
22
- const path = typeof route === 'object' ? this.$router.resolve(route).route.fullPath : route
23
- this.$store.commit('setting/setCustomTitle', { path, title })
24
- }
25
- }
26
- },
27
- computed: {
28
- customTitle () {
29
- const customTitles = this.$store.state.setting.customTitles
30
- // const path = this.$route.path.split('?')[0]
31
- const custom = customTitles.find(item => item.path === this.$route.fullPath)
32
- return custom && custom.title
33
- }
34
- }
35
- })
36
- }
37
- }
38
-
39
- export default TabsPagePlugin
1
+ const TabsPagePlugin = {
2
+ install (Vue) {
3
+ Vue.mixin({
4
+ methods: {
5
+ $closePage (closeRoute, nextRoute) {
6
+ const event = new CustomEvent('page:close', { detail: { closeRoute, nextRoute } })
7
+ window.dispatchEvent(event)
8
+ },
9
+ $refreshPage (route) {
10
+ const path = typeof route === 'object' ? route.path : route
11
+ const event = new CustomEvent('page:refresh', { detail: { pageKey: path } })
12
+ window.dispatchEvent(event)
13
+ },
14
+ $openPage (route, title) {
15
+ this.$setPageTitle(route, title)
16
+ this.$router.push(route)
17
+ },
18
+ $setPageTitle (route, title) {
19
+ if (title) {
20
+ // let path = typeof route === 'object' ? route.path : route
21
+ // path = path && path.split('?')[0]
22
+ const path = typeof route === 'object' ? this.$router.resolve(route).route.fullPath : route
23
+ this.$store.commit('setting/setCustomTitle', { path, title })
24
+ }
25
+ }
26
+ },
27
+ computed: {
28
+ customTitle () {
29
+ const customTitles = this.$store.state.setting.customTitles
30
+ // const path = this.$route.path.split('?')[0]
31
+ const custom = customTitles.find(item => item.path === this.$route.fullPath)
32
+ return custom && custom.title
33
+ }
34
+ }
35
+ })
36
+ }
37
+ }
38
+
39
+ export default TabsPagePlugin