boke-devops 0.0.30 → 0.0.38

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 (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
+ `;