@ebiz/designer-components 0.1.7 → 0.1.9
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/dist/designer-components.css +1 -1
- package/dist/index.mjs +15132 -14615
- package/package.json +1 -1
- package/src/components/EbizEmployeeSelector.vue +2 -1
- package/src/components/EbizSApprovalProcess.vue +1132 -0
- package/src/components/mItems/UserInfo.vue +343 -0
- package/src/index.js +88 -86
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="user-info" :class="{ 'user-info-loading': state.loading }">
|
|
3
|
+
<div v-if="state.loading && showLoading" class="user-loading">
|
|
4
|
+
<div class="loading-avatar"></div>
|
|
5
|
+
<div class="loading-text"></div>
|
|
6
|
+
</div>
|
|
7
|
+
<div v-else class="user-content" :class="layout">
|
|
8
|
+
<!-- 头像 -->
|
|
9
|
+
<div class="user-avatar" :class="avatarSize">
|
|
10
|
+
<img
|
|
11
|
+
v-if="state.userInfo?.avatar"
|
|
12
|
+
:src="state.userInfo.avatar"
|
|
13
|
+
:alt="state.userInfo.name || '用户头像'"
|
|
14
|
+
@error="handleAvatarError"
|
|
15
|
+
/>
|
|
16
|
+
<div v-else class="default-avatar">
|
|
17
|
+
{{ getAvatarText() }}
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
<!-- 用户信息 -->
|
|
22
|
+
<div class="user-details" v-if="showDetails">
|
|
23
|
+
<div class="user-name" :class="nameSize">
|
|
24
|
+
{{ state.userInfo?.name || userId || '--' }}
|
|
25
|
+
</div>
|
|
26
|
+
<div v-if="showJobNumber && state.userInfo?.jobNumber" class="user-job-number">
|
|
27
|
+
工号:{{ state.userInfo.jobNumber }}
|
|
28
|
+
</div>
|
|
29
|
+
<div v-if="showDepartment && state.userInfo?.department" class="user-department">
|
|
30
|
+
{{ state.userInfo.department }}
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
</template>
|
|
36
|
+
|
|
37
|
+
<script setup>
|
|
38
|
+
import * as vue from 'vue'
|
|
39
|
+
import { defineProps, defineEmits } from 'vue'
|
|
40
|
+
|
|
41
|
+
const props = defineProps({
|
|
42
|
+
userId: {
|
|
43
|
+
type: String,
|
|
44
|
+
default: ''
|
|
45
|
+
},
|
|
46
|
+
userInfo: {
|
|
47
|
+
type: Object,
|
|
48
|
+
default: null
|
|
49
|
+
},
|
|
50
|
+
layout: {
|
|
51
|
+
type: String,
|
|
52
|
+
default: 'horizontal', // horizontal, vertical
|
|
53
|
+
validator: (value) => ['horizontal', 'vertical'].includes(value)
|
|
54
|
+
},
|
|
55
|
+
avatarSize: {
|
|
56
|
+
type: String,
|
|
57
|
+
default: 'medium', // small, medium, large
|
|
58
|
+
validator: (value) => ['small', 'medium', 'large'].includes(value)
|
|
59
|
+
},
|
|
60
|
+
nameSize: {
|
|
61
|
+
type: String,
|
|
62
|
+
default: 'normal', // small, normal, large
|
|
63
|
+
validator: (value) => ['small', 'normal', 'large'].includes(value)
|
|
64
|
+
},
|
|
65
|
+
showDetails: {
|
|
66
|
+
type: Boolean,
|
|
67
|
+
default: true
|
|
68
|
+
},
|
|
69
|
+
showJobNumber: {
|
|
70
|
+
type: Boolean,
|
|
71
|
+
default: true
|
|
72
|
+
},
|
|
73
|
+
showDepartment: {
|
|
74
|
+
type: Boolean,
|
|
75
|
+
default: false
|
|
76
|
+
},
|
|
77
|
+
showLoading: {
|
|
78
|
+
type: Boolean,
|
|
79
|
+
default: false
|
|
80
|
+
},
|
|
81
|
+
clickable: {
|
|
82
|
+
type: Boolean,
|
|
83
|
+
default: false
|
|
84
|
+
}
|
|
85
|
+
})
|
|
86
|
+
|
|
87
|
+
const emit = defineEmits(['user-loaded', 'user-click'])
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
// 标准化用户信息格式
|
|
91
|
+
const normalizeUserInfo = (userInfo, userId) => {
|
|
92
|
+
return {
|
|
93
|
+
id: userInfo.id || userId,
|
|
94
|
+
name: userInfo.name || userInfo.userName || userInfo.realName,
|
|
95
|
+
avatar: userInfo.avatar || userInfo.avatarUrl || userInfo.photo,
|
|
96
|
+
jobNumber: userInfo.jobNumber || userInfo.employeeId || userInfo.employeeNo,
|
|
97
|
+
department: userInfo.department || userInfo.deptName,
|
|
98
|
+
email: userInfo.email,
|
|
99
|
+
phone: userInfo.phone
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
const state = vue.reactive({
|
|
104
|
+
loading: false,
|
|
105
|
+
userInfo: null,
|
|
106
|
+
error: null
|
|
107
|
+
})
|
|
108
|
+
|
|
109
|
+
// 获取头像文字(取姓名最后一个字符)
|
|
110
|
+
const getAvatarText = () => {
|
|
111
|
+
const name = state.userInfo?.name || props.userId || '?'
|
|
112
|
+
return name.slice(-1)
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// 头像加载错误处理
|
|
116
|
+
const handleAvatarError = (event) => {
|
|
117
|
+
console.warn('头像加载失败:', event.target.src)
|
|
118
|
+
// 可以在这里设置默认头像或者隐藏img标签
|
|
119
|
+
event.target.style.display = 'none'
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// 用户点击事件
|
|
123
|
+
const handleUserClick = () => {
|
|
124
|
+
if (props.clickable) {
|
|
125
|
+
emit('user-click', {
|
|
126
|
+
userId: props.userId,
|
|
127
|
+
userInfo: state.userInfo
|
|
128
|
+
})
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// 获取用户信息
|
|
133
|
+
const fetchUserInfo = (userId) => {
|
|
134
|
+
// 如果直接传入了用户信息,优先使用传入的信息
|
|
135
|
+
if (props.userInfo) {
|
|
136
|
+
state.userInfo = normalizeUserInfo(props.userInfo, userId)
|
|
137
|
+
emit('user-loaded', state.userInfo)
|
|
138
|
+
return
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
if (!userId) {
|
|
142
|
+
state.userInfo = null
|
|
143
|
+
return
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// 如果已经有相同用户的信息,直接返回
|
|
147
|
+
if (state.userInfo && state.userInfo.id === userId) {
|
|
148
|
+
return
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
state.loading = true
|
|
152
|
+
state.error = null
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// 监听userId变化
|
|
156
|
+
vue.watch(
|
|
157
|
+
() => props.userId,
|
|
158
|
+
(newUserId) => {
|
|
159
|
+
if (newUserId || props.userInfo) {
|
|
160
|
+
fetchUserInfo(newUserId)
|
|
161
|
+
} else {
|
|
162
|
+
state.userInfo = null
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
{ immediate: true }
|
|
166
|
+
)
|
|
167
|
+
|
|
168
|
+
// 监听userInfo变化
|
|
169
|
+
vue.watch(
|
|
170
|
+
() => props.userInfo,
|
|
171
|
+
(newUserInfo) => {
|
|
172
|
+
if (newUserInfo) {
|
|
173
|
+
state.userInfo = normalizeUserInfo(newUserInfo, props.userId)
|
|
174
|
+
emit('user-loaded', state.userInfo)
|
|
175
|
+
} else if (props.userId) {
|
|
176
|
+
fetchUserInfo(props.userId)
|
|
177
|
+
} else {
|
|
178
|
+
state.userInfo = null
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
{ immediate: true, deep: true }
|
|
182
|
+
)
|
|
183
|
+
</script>
|
|
184
|
+
|
|
185
|
+
<style scoped>
|
|
186
|
+
.user-info {
|
|
187
|
+
display: inline-flex;
|
|
188
|
+
align-items: center;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.user-info.clickable {
|
|
192
|
+
cursor: pointer;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.user-info.clickable:hover {
|
|
196
|
+
opacity: 0.8;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.user-content {
|
|
200
|
+
display: flex;
|
|
201
|
+
align-items: center;
|
|
202
|
+
gap: 8px;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
.user-content.vertical {
|
|
206
|
+
flex-direction: column;
|
|
207
|
+
text-align: center;
|
|
208
|
+
gap: 4px;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.user-content.horizontal {
|
|
212
|
+
flex-direction: row;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/* 头像样式 */
|
|
216
|
+
.user-avatar {
|
|
217
|
+
position: relative;
|
|
218
|
+
border-radius: 50%;
|
|
219
|
+
overflow: hidden;
|
|
220
|
+
background-color: #f0f0f0;
|
|
221
|
+
display: flex;
|
|
222
|
+
align-items: center;
|
|
223
|
+
justify-content: center;
|
|
224
|
+
flex-shrink: 0;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.user-avatar.small {
|
|
228
|
+
width: 24px;
|
|
229
|
+
height: 24px;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
.user-avatar.medium {
|
|
233
|
+
width: 32px;
|
|
234
|
+
height: 32px;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
.user-avatar.large {
|
|
238
|
+
width: 40px;
|
|
239
|
+
height: 40px;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
.user-avatar img {
|
|
243
|
+
width: 100%;
|
|
244
|
+
height: 100%;
|
|
245
|
+
object-fit: cover;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.default-avatar {
|
|
249
|
+
width: 100%;
|
|
250
|
+
height: 100%;
|
|
251
|
+
display: flex;
|
|
252
|
+
align-items: center;
|
|
253
|
+
justify-content: center;
|
|
254
|
+
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
255
|
+
color: white;
|
|
256
|
+
font-weight: 500;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
.user-avatar.small .default-avatar {
|
|
260
|
+
font-size: 10px;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
.user-avatar.medium .default-avatar {
|
|
264
|
+
font-size: 12px;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.user-avatar.large .default-avatar {
|
|
268
|
+
font-size: 14px;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/* 用户详情样式 */
|
|
272
|
+
.user-details {
|
|
273
|
+
display: flex;
|
|
274
|
+
flex-direction: column;
|
|
275
|
+
gap: 2px;
|
|
276
|
+
min-width: 0;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
.user-name {
|
|
280
|
+
font-weight: 500;
|
|
281
|
+
color: #333;
|
|
282
|
+
line-height: 1.2;
|
|
283
|
+
word-break: break-all;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
.user-name.small {
|
|
287
|
+
font-size: 12px;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
.user-name.normal {
|
|
291
|
+
font-size: 14px;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
.user-name.large {
|
|
295
|
+
font-size: 16px;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
.user-job-number,
|
|
299
|
+
.user-department {
|
|
300
|
+
font-size: 11px;
|
|
301
|
+
color: #666;
|
|
302
|
+
line-height: 1.2;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
/* 加载状态 */
|
|
306
|
+
.user-loading {
|
|
307
|
+
display: flex;
|
|
308
|
+
align-items: center;
|
|
309
|
+
gap: 8px;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
.loading-avatar {
|
|
313
|
+
width: 32px;
|
|
314
|
+
height: 32px;
|
|
315
|
+
border-radius: 50%;
|
|
316
|
+
background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
|
|
317
|
+
background-size: 200% 100%;
|
|
318
|
+
animation: loading 1.5s infinite;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
.loading-text {
|
|
322
|
+
width: 60px;
|
|
323
|
+
height: 12px;
|
|
324
|
+
background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
|
|
325
|
+
background-size: 200% 100%;
|
|
326
|
+
animation: loading 1.5s infinite;
|
|
327
|
+
border-radius: 6px;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
@keyframes loading {
|
|
331
|
+
0% {
|
|
332
|
+
background-position: 200% 0;
|
|
333
|
+
}
|
|
334
|
+
100% {
|
|
335
|
+
background-position: -200% 0;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
/* 垂直布局时的样式调整 */
|
|
340
|
+
.user-content.vertical .user-details {
|
|
341
|
+
align-items: center;
|
|
342
|
+
}
|
|
343
|
+
</style>
|
package/src/index.js
CHANGED
|
@@ -1,100 +1,100 @@
|
|
|
1
|
-
import MyComponent from
|
|
2
|
-
import MyTable from
|
|
3
|
-
import EbizFormContainer from
|
|
4
|
-
import EbizButton from
|
|
5
|
-
import EbizTdesignButton from
|
|
6
|
-
import EbizTdesignIcon from
|
|
7
|
-
import EbizTdesignInput from
|
|
8
|
-
import EbizTdesignSelect from
|
|
9
|
-
import EbizTdesignForm from
|
|
10
|
-
import EbizTdesignFormItem from
|
|
11
|
-
import EbizTdesignDatePicker from
|
|
12
|
-
import EbizTdesignCard from
|
|
13
|
-
import EbizTdesignImage from
|
|
14
|
-
import EbizTdesignImageViewer from
|
|
15
|
-
import EbizDataContainer from
|
|
16
|
-
import EbizTitle from
|
|
17
|
-
import EbizDivider from
|
|
18
|
-
import EbizStatsCard from
|
|
19
|
-
import EbizOkrTree from
|
|
20
|
-
import EbizRemoteSelect from
|
|
21
|
-
import EbizRouteBreadcrumb from
|
|
22
|
-
import EbizFileUpload from
|
|
23
|
-
import EbizTabHeader from
|
|
24
|
-
import EbizPageHeader from
|
|
25
|
-
import TdesignCalendar from
|
|
26
|
-
import TdesignCollapse from
|
|
27
|
-
import TdesignCollapsePanel from
|
|
28
|
-
import EbizTag from
|
|
29
|
-
import EbizSwiper from
|
|
30
|
-
import EbizSwiperItem from
|
|
31
|
-
import EbizSpace from
|
|
32
|
-
import EbizPagination from
|
|
33
|
-
import EbizCheckbox from
|
|
34
|
-
import EbizCheckboxGroup from
|
|
35
|
-
import EbizRadio from
|
|
36
|
-
import EbizRadioGroup from
|
|
37
|
-
import EbizSwitch from
|
|
38
|
-
import EbizTextarea from
|
|
39
|
-
import EbizUpload from
|
|
40
|
-
import EbizGrid from
|
|
41
|
-
import EbizCol from
|
|
42
|
-
import EbizTabs from
|
|
43
|
-
import EbizTabPanel from
|
|
44
|
-
import EbizStatistic from
|
|
45
|
-
import EbizWatermark from
|
|
46
|
-
import EbizAvatar from
|
|
47
|
-
import EbizEmployeeInfo from
|
|
48
|
-
import EbizEmployeeSelector from
|
|
49
|
-
import EbizAlert from
|
|
50
|
-
import EbizDialog from
|
|
51
|
-
import EbizTable from
|
|
52
|
-
import EbizTableColumn from './components/EbizTableColumn.vue'
|
|
53
|
-
import EbizTableSort from './components/EbizTableSort.vue'
|
|
54
|
-
import EbizDetailBlock from './components/EbizDetailBlock.vue'
|
|
55
|
-
import EbizTree from './components/EbizTree.vue'
|
|
56
|
-
import EbizTreeSelector from './components/EbizTreeSelector.vue'
|
|
57
|
-
import EbizTimePicker from './components/EbizTimePicker.vue'
|
|
58
|
-
import EbizPopconfirm from './components/EbizPopconfirm.vue'
|
|
59
|
-
import EbizTreeMergeTable from './components/EbizTreeMergeTable.vue'
|
|
60
|
-
import EbizTdesignLoading from './components/EbizTdesignLoading.vue'
|
|
61
|
-
import EbizAutoForm from './components/EbizAutoForm.vue'
|
|
62
|
-
import EbizDepartmentSelector from './components/EbizDepartmentSelector.vue'
|
|
63
|
-
import EbizTdesignButtonDialog from './components/EbizTdesignButtonDialog.vue'
|
|
64
|
-
import { MessagePlugin as EbizMessage } from 'tdesign-vue-next'
|
|
65
|
-
import EbizApproval from './components/EbizApproval.vue'
|
|
66
|
-
import EbizDiv from './components/EbizDiv.vue'
|
|
1
|
+
import MyComponent from './components/MyComponent.vue'
|
|
2
|
+
import MyTable from './components/Table.vue'
|
|
3
|
+
import EbizFormContainer from './components/Form.vue'
|
|
4
|
+
import EbizButton from './components/Button.vue'
|
|
5
|
+
import EbizTdesignButton from './components/TdesignButton.vue'
|
|
6
|
+
import EbizTdesignIcon from './components/TdesignIcon.vue'
|
|
7
|
+
import EbizTdesignInput from './components/TdesignInput.vue'
|
|
8
|
+
import EbizTdesignSelect from './components/TdesignSelect.vue'
|
|
9
|
+
import EbizTdesignForm from './components/TdesignForm.vue'
|
|
10
|
+
import EbizTdesignFormItem from './components/TdesignFormItem.vue'
|
|
11
|
+
import EbizTdesignDatePicker from './components/TdesignDatePicker.vue'
|
|
12
|
+
import EbizTdesignCard from './components/TdesignCard.vue'
|
|
13
|
+
import EbizTdesignImage from './components/TdesignImage.vue'
|
|
14
|
+
import EbizTdesignImageViewer from './components/TdesignImageViewer.vue'
|
|
15
|
+
import EbizDataContainer from './components/DataContainer.vue'
|
|
16
|
+
import EbizTitle from './components/EbizTitle.vue'
|
|
17
|
+
import EbizDivider from './components/EbizDivider.vue'
|
|
18
|
+
import EbizStatsCard from './components/EbizStatsCard.vue'
|
|
19
|
+
import EbizOkrTree from './components/EbizOkrTree.vue'
|
|
20
|
+
import EbizRemoteSelect from './components/EbizRemoteSelect.vue'
|
|
21
|
+
import EbizRouteBreadcrumb from './components/EbizRouteBreadcrumb.vue'
|
|
22
|
+
import EbizFileUpload from './components/EbizFileUpload.vue'
|
|
23
|
+
import EbizTabHeader from './components/EbizTabHeader.vue'
|
|
24
|
+
import EbizPageHeader from './components/EbizPageHeader.vue'
|
|
25
|
+
import TdesignCalendar from './components/TdesignCalendar/index.vue'
|
|
26
|
+
import TdesignCollapse from './components/TdesignCollapse.vue'
|
|
27
|
+
import TdesignCollapsePanel from './components/TdesignCollapsePanel.vue'
|
|
28
|
+
import EbizTag from './components/TdesignTag.vue'
|
|
29
|
+
import EbizSwiper from './components/EbizSwiper.vue'
|
|
30
|
+
import EbizSwiperItem from './components/EbizSwiperItem.vue'
|
|
31
|
+
import EbizSpace from './components/EbizSpace.vue'
|
|
32
|
+
import EbizPagination from './components/EbizPagination.vue'
|
|
33
|
+
import EbizCheckbox from './components/EbizCheckbox.vue'
|
|
34
|
+
import EbizCheckboxGroup from './components/EbizCheckboxGroup.vue'
|
|
35
|
+
import EbizRadio from './components/EbizRadio.vue'
|
|
36
|
+
import EbizRadioGroup from './components/EbizRadioGroup.vue'
|
|
37
|
+
import EbizSwitch from './components/EbizSwitch.vue'
|
|
38
|
+
import EbizTextarea from './components/TdesignTextarea.vue'
|
|
39
|
+
import EbizUpload from './components/TdesignUpload.vue'
|
|
40
|
+
import EbizGrid from './components/TdesignGrid.vue'
|
|
41
|
+
import EbizCol from './components/TdesignCol.vue'
|
|
42
|
+
import EbizTabs from './components/EbizTabs.vue'
|
|
43
|
+
import EbizTabPanel from './components/EbizTabPanel.vue'
|
|
44
|
+
import EbizStatistic from './components/EbizStatistic.vue'
|
|
45
|
+
import EbizWatermark from './components/TdesignWatermark.vue'
|
|
46
|
+
import EbizAvatar from './components/EbizAvatar.vue'
|
|
47
|
+
import EbizEmployeeInfo from './components/EbizEmployeeInfo.vue'
|
|
48
|
+
import EbizEmployeeSelector from './components/EbizEmployeeSelector.vue'
|
|
49
|
+
import EbizAlert from './components/TdesignAlert.vue'
|
|
50
|
+
import EbizDialog from './components/TdesignDialog.vue'
|
|
51
|
+
import EbizTable from './components/EbizTable.vue'
|
|
52
|
+
import EbizTableColumn from './components/EbizTableColumn.vue'
|
|
53
|
+
import EbizTableSort from './components/EbizTableSort.vue'
|
|
54
|
+
import EbizDetailBlock from './components/EbizDetailBlock.vue'
|
|
55
|
+
import EbizTree from './components/EbizTree.vue'
|
|
56
|
+
import EbizTreeSelector from './components/EbizTreeSelector.vue'
|
|
57
|
+
import EbizTimePicker from './components/EbizTimePicker.vue'
|
|
58
|
+
import EbizPopconfirm from './components/EbizPopconfirm.vue'
|
|
59
|
+
import EbizTreeMergeTable from './components/EbizTreeMergeTable.vue'
|
|
60
|
+
import EbizTdesignLoading from './components/EbizTdesignLoading.vue'
|
|
61
|
+
import EbizAutoForm from './components/EbizAutoForm.vue'
|
|
62
|
+
import EbizDepartmentSelector from './components/EbizDepartmentSelector.vue'
|
|
63
|
+
import EbizTdesignButtonDialog from './components/EbizTdesignButtonDialog.vue'
|
|
64
|
+
import { MessagePlugin as EbizMessage } from 'tdesign-vue-next'
|
|
65
|
+
import EbizApproval from './components/EbizApproval.vue'
|
|
66
|
+
import EbizDiv from './components/EbizDiv.vue'
|
|
67
|
+
import EbizSApprovalProcess from './components/EbizSApprovalProcess.vue'
|
|
67
68
|
|
|
68
69
|
// import EbizDescriptions from './components/EbizDescriptions.vue';
|
|
69
70
|
// import EbizDescriptionsItem from './components/EbizDescriptionsItem.vue'
|
|
70
|
-
import { Descriptions as EbizDescriptions } from 'tdesign-vue-next'
|
|
71
|
-
import { DescriptionsItem as EbizDescriptionsItem } from 'tdesign-vue-next'
|
|
72
|
-
import { DescriptionsItem as TDescriptionsItem } from 'tdesign-vue-next'
|
|
71
|
+
import { Descriptions as EbizDescriptions } from 'tdesign-vue-next'
|
|
72
|
+
import { DescriptionsItem as EbizDescriptionsItem } from 'tdesign-vue-next'
|
|
73
|
+
import { DescriptionsItem as TDescriptionsItem } from 'tdesign-vue-next'
|
|
73
74
|
|
|
74
75
|
// 导入简洁数据服务
|
|
75
|
-
import dataService from
|
|
76
|
+
import dataService from './apiService/simpleDataService'
|
|
76
77
|
|
|
77
|
-
import
|
|
78
|
+
import 'tdesign-vue-next/es/style/index.css'
|
|
78
79
|
|
|
79
80
|
// 导入图表样式
|
|
80
|
-
import
|
|
81
|
+
import './assets/styles/charts/main.less'
|
|
81
82
|
|
|
82
83
|
// 时间轴组件
|
|
83
|
-
import EbizTimeline from
|
|
84
|
-
import {TimelineItem as EbizTimelineItem} from 'tdesign-vue-next'
|
|
85
|
-
import { LoadingPlugin as EbizLoading } from 'tdesign-vue-next'
|
|
84
|
+
import EbizTimeline from './components/TdesignTimeline.vue'
|
|
85
|
+
import { TimelineItem as EbizTimelineItem } from 'tdesign-vue-next'
|
|
86
|
+
import { LoadingPlugin as EbizLoading } from 'tdesign-vue-next'
|
|
86
87
|
|
|
87
|
-
import EbizMap from './components/EbizMap.vue'
|
|
88
|
-
|
|
89
|
-
import EbizSData from './components/senior/EbizSData/index.vue';
|
|
90
|
-
import EbizSForm from './components/senior/EbizSForm/index.vue';
|
|
91
|
-
import EbizSFormItem from './components/senior/EbizSForm/item.vue';
|
|
92
|
-
import EbizSDialog from "./components/senior/EbizSDialog/index.vue";
|
|
93
|
-
import EbizMeetingRoomSelector from './components/EbizMeetingRoomSelector.vue';
|
|
94
|
-
import EbizMobileMeetingRoomSelector from './components/EbizMobileMeetingRoomSelector.vue';
|
|
95
|
-
import EbizDropdown from './components/EbizDropdown.vue';
|
|
96
|
-
import EbizDropdownItem from './components/EbizDropdownItem.vue';
|
|
88
|
+
import EbizMap from './components/EbizMap.vue'
|
|
97
89
|
|
|
90
|
+
import EbizSData from './components/senior/EbizSData/index.vue'
|
|
91
|
+
import EbizSForm from './components/senior/EbizSForm/index.vue'
|
|
92
|
+
import EbizSFormItem from './components/senior/EbizSForm/item.vue'
|
|
93
|
+
import EbizSDialog from './components/senior/EbizSDialog/index.vue'
|
|
94
|
+
import EbizMeetingRoomSelector from './components/EbizMeetingRoomSelector.vue'
|
|
95
|
+
import EbizMobileMeetingRoomSelector from './components/EbizMobileMeetingRoomSelector.vue'
|
|
96
|
+
import EbizDropdown from './components/EbizDropdown.vue'
|
|
97
|
+
import EbizDropdownItem from './components/EbizDropdownItem.vue'
|
|
98
98
|
|
|
99
99
|
// 导出组件
|
|
100
100
|
export {
|
|
@@ -226,5 +226,7 @@ export {
|
|
|
226
226
|
// 会议室选择器组件
|
|
227
227
|
EbizMeetingRoomSelector,
|
|
228
228
|
// 新增 EbizMobileMeetingRoomSelector 组件
|
|
229
|
-
EbizMobileMeetingRoomSelector
|
|
229
|
+
EbizMobileMeetingRoomSelector,
|
|
230
|
+
// 新增 EbizSApprovalProcess 组件
|
|
231
|
+
EbizSApprovalProcess
|
|
230
232
|
}
|