boke-devops 0.0.30 → 0.0.38

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. package/package.json +14 -11
  2. package/packages/boke-devops-vue/package-lock.json +15276 -3531
  3. package/packages/boke-devops-vue/package.json +60 -58
  4. package/packages/boke-devops-vue/src/Provider/Provider.vue +6 -0
  5. package/packages/boke-devops-vue/src/Provider/store.ts +7 -2
  6. package/packages/boke-devops-vue/src/{AegisUser → UserAvatar}/__tests__/__snapshots__/Avatar.test.js.snap +63 -60
  7. package/packages/boke-devops-vue/src/{AegisUser/store.ts → UserAvatar/avatar.store.ts} +10 -1
  8. package/packages/boke-devops-vue/src/UserAvatar/user-avatar-card.vue +188 -0
  9. package/packages/boke-devops-vue/src/{AegisUser → UserAvatar}/user-avatar-group.vue +2 -2
  10. package/packages/boke-devops-vue/src/{AegisUser → UserAvatar}/user-avatar.vue +79 -68
  11. package/packages/boke-devops-vue/src/{AegisUser → UserSelect}/multiple-user-select.vue +13 -22
  12. package/packages/boke-devops-vue/src/index.ts +22 -22
  13. package/packages/boke-devops-vue/src/utils/encode.ts +132 -0
  14. package/packages/boke-devops-vue/types/Provider/store.d.ts +4 -0
  15. package/packages/boke-devops-vue/types/UserAvatar/avatar.store.d.ts +9 -0
  16. package/packages/boke-devops-vue/types/UserAvatar/encode.d.ts +1 -0
  17. package/packages/boke-devops-vue/types/UserAvatar/user-avatar-card.vue.d.ts +24 -0
  18. package/packages/boke-devops-vue/types/UserAvatar/user-avatar-group.vue.d.ts +44 -0
  19. package/packages/boke-devops-vue/types/UserAvatar/user-avatar.vue.d.ts +207 -0
  20. package/packages/boke-devops-vue/types/UserSelect/multiple-user-select.vue.d.ts +106 -0
  21. package/packages/boke-devops-vue/types/index.d.ts +10 -8
  22. package/packages/boke-devops-vue/vite.config.ts +29 -29
  23. package/packages/boke-docs/.dumirc.ts +3 -2
  24. package/packages/boke-docs/docs/components/Avatar/__test__/__snapshots__/user_avatar.test.js.snap +255 -0
  25. package/packages/boke-docs/docs/components/Avatar/__test__/user_avatar.test.js +18 -0
  26. package/packages/boke-docs/docs/components/Avatar/demo/normal.vue +1 -0
  27. package/packages/boke-docs/docs/components/Avatar/index.md +18 -0
  28. package/packages/boke-docs/docs/components/AvatarGroup/__test__/__snapshots__/user_avatar.test.js.snap +174 -0
  29. package/packages/boke-docs/docs/components/AvatarGroup/__test__/user_avatar.test.js +18 -0
  30. package/packages/boke-docs/docs/components/AvatarGroup/demo/normal.vue +36 -0
  31. package/packages/boke-docs/docs/components/AvatarGroup/demo/with_provider.vue +59 -0
  32. package/packages/boke-docs/docs/components/AvatarGroup/index.md +28 -0
  33. package/packages/boke-docs/docs/components/UserSelect/__test__/__snapshots__/user_select.test.js.snap +347 -0
  34. package/packages/boke-docs/docs/components/UserSelect/__test__/user_select.test.js +18 -0
  35. package/packages/boke-docs/docs/components/UserSelect/demo/normal.vue +14 -0
  36. package/packages/boke-docs/docs/components/UserSelect/index.md +29 -2
  37. package/packages/boke-docs/node_modules/.cache/logger/umi.log +14 -0
  38. package/packages/boke-docs/package.json +1 -1
  39. package/packages/boke-docs/public/logo.png +0 -0
  40. package/packages/boke-js-bridge/package.json +2 -2
  41. package/test-setup-env.js +52 -0
  42. package/vitest.config.js +6 -1
  43. package/packages/boke-devops-vue/demo/App.vue +0 -62
  44. package/packages/boke-devops-vue/demo/main.ts +0 -7
  45. /package/packages/boke-devops-vue/src/{AegisUser → UserAvatar}/__tests__/Avatar.test.js +0 -0
  46. /package/packages/boke-devops-vue/src/{style/variables.less → utils/style.global.less} +0 -0
@@ -0,0 +1,207 @@
1
+ declare const _default: import("vue").DefineComponent<{
2
+ size: {
3
+ type: (StringConstructor | NumberConstructor)[];
4
+ required: false;
5
+ default: number;
6
+ };
7
+ hidePopover: {
8
+ type: BooleanConstructor;
9
+ required: false;
10
+ default: boolean;
11
+ };
12
+ onlyIcon: {
13
+ type: BooleanConstructor;
14
+ required: false;
15
+ default: boolean;
16
+ };
17
+ onlyName: {
18
+ type: BooleanConstructor;
19
+ required: false;
20
+ default: boolean;
21
+ };
22
+ noID: {
23
+ type: BooleanConstructor;
24
+ required: false;
25
+ default: boolean;
26
+ };
27
+ linkType: {
28
+ type: null;
29
+ required: false;
30
+ default: string;
31
+ };
32
+ data: {
33
+ type: null;
34
+ required: false;
35
+ default: null;
36
+ };
37
+ shape: {
38
+ type: StringConstructor;
39
+ required: false;
40
+ default: string;
41
+ };
42
+ disabledPopover: {
43
+ type: BooleanConstructor;
44
+ required: false;
45
+ default: boolean;
46
+ };
47
+ tag: {
48
+ type: BooleanConstructor;
49
+ required: false;
50
+ default: boolean;
51
+ };
52
+ closable: {
53
+ type: BooleanConstructor;
54
+ required: false;
55
+ default: boolean;
56
+ };
57
+ color: {
58
+ type: StringConstructor;
59
+ required: false;
60
+ default: string;
61
+ };
62
+ disabled: {
63
+ type: BooleanConstructor;
64
+ required: false;
65
+ default: boolean;
66
+ };
67
+ suffix: {
68
+ type: StringConstructor;
69
+ required: false;
70
+ default: string;
71
+ };
72
+ is_highlight: {
73
+ type: FunctionConstructor;
74
+ required: false;
75
+ default: () => boolean;
76
+ };
77
+ }, {
78
+ user_name: import("vue").ComputedRef<any>;
79
+ dept_name: import("vue").ComputedRef<any>;
80
+ user_id: import("vue").ComputedRef<any>;
81
+ data: import("vue").Ref<any>;
82
+ user_icon: import("vue").Ref<any>;
83
+ isLoading: import("vue").Ref<boolean>;
84
+ isHigh: () => any;
85
+ props: import(".pnpm/@vue+shared@3.4.31/node_modules/@vue/shared").LooseRequired<{
86
+ readonly size: string | number;
87
+ readonly data: any;
88
+ readonly color: string;
89
+ readonly closable: boolean;
90
+ readonly shape: string;
91
+ readonly disabled: boolean;
92
+ readonly hidePopover: boolean;
93
+ readonly onlyIcon: boolean;
94
+ readonly onlyName: boolean;
95
+ readonly noID: boolean;
96
+ readonly linkType: any;
97
+ readonly disabledPopover: boolean;
98
+ readonly tag: boolean;
99
+ readonly suffix: string;
100
+ readonly is_highlight: Function;
101
+ readonly onClose?: ((...args: any[]) => any) | undefined;
102
+ } & {}>;
103
+ attrs: {
104
+ [x: string]: unknown;
105
+ };
106
+ emit: (event: "close", ...args: any[]) => void;
107
+ onClose: () => void;
108
+ global_disabled_avatar_card: boolean;
109
+ targetRef: import("vue").Ref<any>;
110
+ avatarRef: import("vue").Ref<any>;
111
+ popoverVisible: import("vue").Ref<boolean>;
112
+ }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "close"[], "close", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
113
+ size: {
114
+ type: (StringConstructor | NumberConstructor)[];
115
+ required: false;
116
+ default: number;
117
+ };
118
+ hidePopover: {
119
+ type: BooleanConstructor;
120
+ required: false;
121
+ default: boolean;
122
+ };
123
+ onlyIcon: {
124
+ type: BooleanConstructor;
125
+ required: false;
126
+ default: boolean;
127
+ };
128
+ onlyName: {
129
+ type: BooleanConstructor;
130
+ required: false;
131
+ default: boolean;
132
+ };
133
+ noID: {
134
+ type: BooleanConstructor;
135
+ required: false;
136
+ default: boolean;
137
+ };
138
+ linkType: {
139
+ type: null;
140
+ required: false;
141
+ default: string;
142
+ };
143
+ data: {
144
+ type: null;
145
+ required: false;
146
+ default: null;
147
+ };
148
+ shape: {
149
+ type: StringConstructor;
150
+ required: false;
151
+ default: string;
152
+ };
153
+ disabledPopover: {
154
+ type: BooleanConstructor;
155
+ required: false;
156
+ default: boolean;
157
+ };
158
+ tag: {
159
+ type: BooleanConstructor;
160
+ required: false;
161
+ default: boolean;
162
+ };
163
+ closable: {
164
+ type: BooleanConstructor;
165
+ required: false;
166
+ default: boolean;
167
+ };
168
+ color: {
169
+ type: StringConstructor;
170
+ required: false;
171
+ default: string;
172
+ };
173
+ disabled: {
174
+ type: BooleanConstructor;
175
+ required: false;
176
+ default: boolean;
177
+ };
178
+ suffix: {
179
+ type: StringConstructor;
180
+ required: false;
181
+ default: string;
182
+ };
183
+ is_highlight: {
184
+ type: FunctionConstructor;
185
+ required: false;
186
+ default: () => boolean;
187
+ };
188
+ }>> & {
189
+ onClose?: ((...args: any[]) => any) | undefined;
190
+ }, {
191
+ size: string | number;
192
+ data: any;
193
+ color: string;
194
+ closable: boolean;
195
+ shape: string;
196
+ disabled: boolean;
197
+ hidePopover: boolean;
198
+ onlyIcon: boolean;
199
+ onlyName: boolean;
200
+ noID: boolean;
201
+ linkType: any;
202
+ disabledPopover: boolean;
203
+ tag: boolean;
204
+ suffix: string;
205
+ is_highlight: Function;
206
+ }, {}>;
207
+ export default _default;
@@ -0,0 +1,106 @@
1
+ declare const _default: {
2
+ new (...args: any[]): import("vue").CreateComponentPublicInstance<Readonly<import("vue").ExtractPropTypes<Readonly<{
3
+ disabled?: any;
4
+ placeholder?: any;
5
+ modelValue?: any;
6
+ options?: any;
7
+ optionDisabledProp?: any;
8
+ hideValues?: any;
9
+ maxTagCount?: any;
10
+ tagRenderProps?: any;
11
+ }>>> & {
12
+ onFocus?: ((...args: any[]) => any) | undefined;
13
+ onBlur?: ((...args: any[]) => any) | undefined;
14
+ onChange?: ((...args: any[]) => any) | undefined;
15
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
16
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("focus" | "update:modelValue" | "blur" | "change")[], import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<import("vue").ExtractPropTypes<Readonly<{
17
+ disabled?: any;
18
+ placeholder?: any;
19
+ modelValue?: any;
20
+ options?: any;
21
+ optionDisabledProp?: any;
22
+ hideValues?: any;
23
+ maxTagCount?: any;
24
+ tagRenderProps?: any;
25
+ }>>> & {
26
+ onFocus?: ((...args: any[]) => any) | undefined;
27
+ onBlur?: ((...args: any[]) => any) | undefined;
28
+ onChange?: ((...args: any[]) => any) | undefined;
29
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
30
+ }, {
31
+ readonly disabled?: any;
32
+ readonly placeholder?: any;
33
+ readonly modelValue?: any;
34
+ readonly options?: any;
35
+ readonly optionDisabledProp?: any;
36
+ readonly hideValues?: any;
37
+ readonly maxTagCount?: any;
38
+ readonly tagRenderProps?: any;
39
+ }, true, {}, {}, {
40
+ P: {};
41
+ B: {};
42
+ D: {};
43
+ C: {};
44
+ M: {};
45
+ Defaults: {};
46
+ }, Readonly<import("vue").ExtractPropTypes<Readonly<{
47
+ disabled?: any;
48
+ placeholder?: any;
49
+ modelValue?: any;
50
+ options?: any;
51
+ optionDisabledProp?: any;
52
+ hideValues?: any;
53
+ maxTagCount?: any;
54
+ tagRenderProps?: any;
55
+ }>>> & {
56
+ onFocus?: ((...args: any[]) => any) | undefined;
57
+ onBlur?: ((...args: any[]) => any) | undefined;
58
+ onChange?: ((...args: any[]) => any) | undefined;
59
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
60
+ }, {}, {}, {}, {}, {
61
+ readonly disabled?: any;
62
+ readonly placeholder?: any;
63
+ readonly modelValue?: any;
64
+ readonly options?: any;
65
+ readonly optionDisabledProp?: any;
66
+ readonly hideValues?: any;
67
+ readonly maxTagCount?: any;
68
+ readonly tagRenderProps?: any;
69
+ }>;
70
+ __isFragment?: undefined;
71
+ __isTeleport?: undefined;
72
+ __isSuspense?: undefined;
73
+ } & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<Readonly<{
74
+ disabled?: any;
75
+ placeholder?: any;
76
+ modelValue?: any;
77
+ options?: any;
78
+ optionDisabledProp?: any;
79
+ hideValues?: any;
80
+ maxTagCount?: any;
81
+ tagRenderProps?: any;
82
+ }>>> & {
83
+ onFocus?: ((...args: any[]) => any) | undefined;
84
+ onBlur?: ((...args: any[]) => any) | undefined;
85
+ onChange?: ((...args: any[]) => any) | undefined;
86
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
87
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("focus" | "update:modelValue" | "blur" | "change")[], "focus" | "update:modelValue" | "blur" | "change", {
88
+ readonly disabled?: any;
89
+ readonly placeholder?: any;
90
+ readonly modelValue?: any;
91
+ readonly options?: any;
92
+ readonly optionDisabledProp?: any;
93
+ readonly hideValues?: any;
94
+ readonly maxTagCount?: any;
95
+ readonly tagRenderProps?: any;
96
+ }, {}, string, {}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
97
+ $slots: {
98
+ tagRender: (_: {
99
+ label: any;
100
+ closable: any;
101
+ onClose: any;
102
+ option: any;
103
+ }) => any;
104
+ };
105
+ });
106
+ export default _default;
@@ -1,12 +1,14 @@
1
- import BokeUserAvatar from './AegisUser/user-avatar.vue';
2
- import BokeUserAvatarGroup from './AegisUser/user-avatar-group.vue';
1
+ import BokeUserAvatar from './UserAvatar/user-avatar.vue';
2
+ import BokeUserAvatarGroup from './UserAvatar/user-avatar-group.vue';
3
3
  import BokeProvider from './Provider/Provider.vue';
4
- import BokeUserSelect from './AegisUser/multiple-user-select.vue';
5
- import { Tag as BokeTag } from "ant-design-vue/es";
6
- import { Button as BokeButton } from "ant-design-vue/es";
7
- import BokeMicroAppProvider from "./Microapp/MicroAppProvider.vue";
8
- import "./style/variables.less";
9
- export { BokeUserAvatar, BokeProvider, BokeUserSelect, BokeTag, BokeButton, BokeUserAvatarGroup, BokeMicroAppProvider, };
4
+ import BokeUserSelect from './UserSelect/multiple-user-select.vue';
5
+ import { Tag as BokeTag } from 'ant-design-vue/es';
6
+ import { Button as BokeButton } from 'ant-design-vue/es';
7
+ import { Segmented as BokeSegmented } from 'ant-design-vue/es';
8
+ import BokeMicroAppProvider from './Microapp/MicroAppProvider.vue';
9
+ import './style.global.less';
10
+ export * as avatarStore from './UserAvatar/avatar.store';
11
+ export { BokeUserAvatar, BokeProvider, BokeUserSelect, BokeTag, BokeButton, BokeUserAvatarGroup, BokeMicroAppProvider, BokeSegmented };
10
12
  declare const _default: {
11
13
  install(app: any, customOptions?: {}): void;
12
14
  };
@@ -7,37 +7,37 @@ import vueJsx from "@vitejs/plugin-vue-jsx";
7
7
  import { visualizer } from 'rollup-plugin-visualizer';
8
8
  import vueTest from '@vitejs/plugin-vue';
9
9
  import vueJsxTest from '@vitejs/plugin-vue-jsx';
10
+ import pkg from './package.json';
10
11
  const isCustomElement = (tag) => tag.startsWith('td-') || tag.startsWith('tdesign-theme');
12
+ const banner = `/**
13
+ * @devops/boke-devops-vue v${pkg.version}
14
+ * (c) ${new Date().getFullYear()} ${pkg.author}
15
+ * @license ${pkg.license}
16
+ */
17
+ `;
11
18
  // https://vitejs.dev/config/
12
19
  export default defineConfig({
13
- build:
14
- process.argv[2] === "build"
15
- ? {
16
- lib: {
17
- entry: resolve(__dirname, "src/index.ts"),
18
- name: "index",
19
- formats: ["es", "umd"],
20
- fileName: (format) => `index.${format}.js`,
21
- },
22
- rollupOptions: {
23
- external: ["vue", "lodash"],
24
- output: {
25
- globals: {
26
- vue: "Vue",
27
- lodash: "Lodash",
28
- },
29
- },
30
-
31
- },
32
- }
33
- : {
34
- rollupOptions: {
35
- external: ["omi"],
36
- input: {
37
- index: resolve(__dirname, "index.html"),
38
- },
39
- },
20
+ build: {
21
+ lib: {
22
+ entry: resolve(__dirname, "src/index.ts"),
23
+ name: "index",
24
+ formats: ["es", "umd", "cjs"],
25
+ fileName: (format) => `index.${format}.js`,
26
+ },
27
+ rollupOptions: {
28
+ external: ["vue", "lodash"],
29
+ output: {
30
+ name: "BokeDevopsVue",
31
+ banner: banner,
32
+ sourcemap: true,
33
+ globals: {
34
+ vue: "Vue",
35
+ lodash: "Lodash",
40
36
  },
37
+ },
38
+
39
+ },
40
+ },
41
41
  plugins: [
42
42
  createVuePlugin({
43
43
  ssr: false,
@@ -64,7 +64,7 @@ export default defineConfig({
64
64
  },
65
65
  resolve: {
66
66
  alias: {
67
- "@": resolve(__dirname, "./demo"),
67
+ "@": resolve(__dirname, "./src"),
68
68
  "boke-devops-ui": resolve(__dirname, "./src/index"),
69
69
  },
70
70
  dedupe: ["vue", "lodash"],
@@ -73,7 +73,7 @@ export default defineConfig({
73
73
  preprocessorOptions: {
74
74
  less: {
75
75
  modifyVars: {
76
- hack: `true; @import (reference) "${resolve('src/style/variables.less')}";`,
76
+ hack: `true; @import (reference) "${resolve('src/utils/style.global.less')}";`,
77
77
  },
78
78
  math: "strict",
79
79
  javascriptEnabled: true,
@@ -43,10 +43,11 @@ export default ({
43
43
  { title: '组件', link: '/components' },
44
44
  { title: '3rd party framework', link: '/framework-test' },
45
45
  ],
46
- name: "boke-devops"
46
+ name: "BOKE\rDEVOPS",
47
+ logo: "/logo.png",
48
+ footer: "Powered by ❤️"
47
49
  },
48
50
  chainWebpack(memo: any) {
49
-
50
51
  // memo.resolve.symlinks(false)
51
52
  memo.plugin('unplugin-element-plus').use(
52
53
  require('unplugin-element-plus/webpack')({
@@ -0,0 +1,255 @@
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
+
3
+ exports[`user avatar is normal 1`] = `
4
+ <div>
5
+ <div
6
+ data-v-7871c292=""
7
+ style="display: inline-flex;"
8
+ >
9
+ <span
10
+ class="ant-tag css-dev-only-do-not-override-16pw25h ant-tag-default boke-useravator-wrapper is_tag"
11
+ data-v-7871c292=""
12
+ style="padding: 2px 12px 2px 2px; border-radius: 50px;"
13
+ >
14
+
15
+ <div
16
+ class="left-icon"
17
+ data-v-7871c292=""
18
+ >
19
+
20
+ <span
21
+ class="avator-icon ant-avatar ant-avatar-circle ant-avatar-image css-dev-only-do-not-override-16pw25h"
22
+ data-v-7871c292=""
23
+ style="width: 28px; height: 28px; line-height: 28px; font-size: 18px;"
24
+ >
25
+ <img
26
+ src="https://s1-imfile.feishucdn.com/static-resource/v1/v3_009p_b3b75461-971a-41e0-ac58-f755d34ef05g~?image_size=noop&cut_type=&quality=&format=png&sticker_format=.webp"
27
+ />
28
+ </span>
29
+ <!---->
30
+
31
+ </div>
32
+
33
+
34
+ <div
35
+ class="label"
36
+ data-v-7871c292=""
37
+ >
38
+ <span
39
+ class="realname"
40
+ data-v-7871c292=""
41
+ >
42
+ Julone
43
+ </span>
44
+ <span
45
+ class="id"
46
+ data-v-7871c292=""
47
+ >
48
+ <span
49
+ data-v-7871c292=""
50
+ >
51
+ 运维部
52
+ </span>
53
+ </span>
54
+ </div>
55
+ <!--v-if-->
56
+ <!--v-if-->
57
+
58
+
59
+
60
+ <!---->
61
+ </span>
62
+ </div>
63
+ 无数据的时候
64
+ <div
65
+ data-v-7871c292=""
66
+ style="display: inline-flex;"
67
+ >
68
+ <span
69
+ class="ant-tag css-dev-only-do-not-override-16pw25h ant-tag-default boke-useravator-wrapper is_tag"
70
+ data-v-7871c292=""
71
+ style="padding: 2px 12px 2px 2px; border-radius: 50px;"
72
+ >
73
+
74
+ <div
75
+ class="left-icon"
76
+ data-v-7871c292=""
77
+ >
78
+
79
+ <span
80
+ class="avator-icon ant-avatar ant-avatar-circle css-dev-only-do-not-override-16pw25h"
81
+ data-v-7871c292=""
82
+ style="width: 28px; height: 28px; line-height: 28px; font-size: 18px;"
83
+ >
84
+ <span
85
+ class="ant-avatar-string"
86
+ style="opacity: 0;"
87
+ >
88
+ <!---->
89
+ </span>
90
+ </span>
91
+ <!---->
92
+
93
+ </div>
94
+
95
+
96
+ <div
97
+ class="label"
98
+ data-v-7871c292=""
99
+ >
100
+ <span
101
+ class="realname"
102
+ data-v-7871c292=""
103
+ >
104
+ 未知用户
105
+ </span>
106
+ <span
107
+ class="id"
108
+ data-v-7871c292=""
109
+ >
110
+ <span
111
+ data-v-7871c292=""
112
+ >
113
+ 未知部门
114
+ </span>
115
+ </span>
116
+ </div>
117
+ <!--v-if-->
118
+ <!--v-if-->
119
+
120
+
121
+
122
+ <!---->
123
+ </span>
124
+ </div>
125
+ </div>
126
+ `;
127
+
128
+ exports[`with provider 1`] = `
129
+ <div>
130
+ <h4>
131
+ Inside of Provider
132
+ </h4>
133
+
134
+ <div
135
+ data-v-7871c292=""
136
+ style="display: inline-flex;"
137
+ >
138
+ <span
139
+ class="ant-tag css-dev-only-do-not-override-16pw25h ant-tag-default boke-useravator-wrapper is_tag is_highlight"
140
+ data-v-7871c292=""
141
+ style="padding: 2px 12px 2px 2px; border-radius: 50px;"
142
+ >
143
+
144
+ <div
145
+ class="left-icon"
146
+ data-v-7871c292=""
147
+ >
148
+
149
+ <span
150
+ class="avator-icon ant-avatar ant-avatar-circle ant-avatar-image css-dev-only-do-not-override-16pw25h"
151
+ data-v-7871c292=""
152
+ style="width: 28px; height: 28px; line-height: 28px; font-size: 18px;"
153
+ >
154
+ <img
155
+ src="https://s1-imfile.feishucdn.com/static-resource/v1/v3_009p_b3b75461-971a-41e0-ac58-f755d34ef05g~?image_size=noop&cut_type=&quality=&format=png&sticker_format=.webp"
156
+ />
157
+ </span>
158
+ <!---->
159
+
160
+ </div>
161
+
162
+
163
+ <div
164
+ class="label"
165
+ data-v-7871c292=""
166
+ >
167
+ <span
168
+ class="realname"
169
+ data-v-7871c292=""
170
+ >
171
+ Julone-new
172
+ </span>
173
+ <span
174
+ class="id"
175
+ data-v-7871c292=""
176
+ >
177
+ <span
178
+ data-v-7871c292=""
179
+ >
180
+ 运维部
181
+ </span>
182
+ </span>
183
+ </div>
184
+ <!--v-if-->
185
+ <!--v-if-->
186
+
187
+
188
+
189
+ <!---->
190
+ </span>
191
+ </div>
192
+
193
+ <h4>
194
+ Out of Provider
195
+ </h4>
196
+ <div
197
+ data-v-7871c292=""
198
+ style="display: inline-flex;"
199
+ >
200
+ <span
201
+ class="ant-tag css-dev-only-do-not-override-16pw25h ant-tag-default boke-useravator-wrapper is_tag"
202
+ data-v-7871c292=""
203
+ style="padding: 2px 12px 2px 2px; border-radius: 50px;"
204
+ >
205
+
206
+ <div
207
+ class="left-icon"
208
+ data-v-7871c292=""
209
+ >
210
+
211
+ <span
212
+ class="avator-icon ant-avatar ant-avatar-circle ant-avatar-image css-dev-only-do-not-override-16pw25h"
213
+ data-v-7871c292=""
214
+ style="width: 28px; height: 28px; line-height: 28px; font-size: 18px;"
215
+ >
216
+ <img
217
+ src="https://s1-imfile.feishucdn.com/static-resource/v1/v3_009p_b3b75461-971a-41e0-ac58-f755d34ef05g~?image_size=noop&cut_type=&quality=&format=png&sticker_format=.webp"
218
+ />
219
+ </span>
220
+ <!---->
221
+
222
+ </div>
223
+
224
+
225
+ <div
226
+ class="label"
227
+ data-v-7871c292=""
228
+ >
229
+ <span
230
+ class="realname"
231
+ data-v-7871c292=""
232
+ >
233
+ Julone
234
+ </span>
235
+ <span
236
+ class="id"
237
+ data-v-7871c292=""
238
+ >
239
+ <span
240
+ data-v-7871c292=""
241
+ >
242
+ 运维部
243
+ </span>
244
+ </span>
245
+ </div>
246
+ <!--v-if-->
247
+ <!--v-if-->
248
+
249
+
250
+
251
+ <!---->
252
+ </span>
253
+ </div>
254
+ </div>
255
+ `;