@cmstops/pro-compo 0.1.12 → 0.1.14
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/index.css +76 -17
- package/dist/index.min.css +1 -1
- package/es/index.css +76 -17
- package/es/mediaFilter/components/DocFilter.js +17 -12
- package/es/mediaFilter/index.d.ts +1 -0
- package/es/mediaFilter/script/types.d.ts +16 -0
- package/es/mediaFilter/style/index.css +16 -16
- package/es/mediaFilter/style/index.less +94 -92
- package/es/selectAvatarList/component.js +66 -46
- package/es/userDirector/component.js +192 -75
- package/es/userDirector/components/userTree.d.ts +0 -0
- package/es/userDirector/components/userTree.js +77 -0
- package/es/userDirector/style/index.css +60 -1
- package/es/userDirector/style/index.less +63 -1
- package/lib/index.css +76 -17
- package/lib/mediaFilter/components/DocFilter.js +17 -12
- package/lib/mediaFilter/style/index.css +16 -16
- package/lib/mediaFilter/style/index.less +94 -92
- package/lib/selectAvatarList/component.js +66 -46
- package/lib/userDirector/component.js +189 -72
- package/lib/userDirector/components/userTree.js +78 -0
- package/lib/userDirector/style/index.css +60 -1
- package/lib/userDirector/style/index.less +63 -1
- package/package.json +7 -2
|
@@ -1,65 +1,77 @@
|
|
|
1
|
-
import { defineComponent, ref, onMounted, computed, openBlock, createBlock, unref, withCtx, createTextVNode, toDisplayString, createElementVNode, createVNode } from "vue";
|
|
2
|
-
import { Modal,
|
|
1
|
+
import { defineComponent, ref, onMounted, computed, openBlock, createBlock, unref, withCtx, createTextVNode, toDisplayString, createElementVNode, createVNode, createElementBlock, Fragment, renderList, normalizeStyle } from "vue";
|
|
2
|
+
import { Modal, Select, Option, Collapse, CollapseItem, Scrollbar, Button, Avatar, Message } from "@arco-design/web-vue";
|
|
3
|
+
import { IconDelete } from "@arco-design/web-vue/es/icon";
|
|
3
4
|
import { DEFAULT_BASE_API } from "../config.js";
|
|
4
|
-
import
|
|
5
|
+
import _sfc_main$1 from "./components/userTree.js";
|
|
6
|
+
import { getRepoRoleList, getDepartList, getRepoUserList, getRoleAllUser, getDepartUserList } from "./script/api.js";
|
|
5
7
|
const _hoisted_1 = { class: "user-select-content" };
|
|
6
8
|
const _hoisted_2 = { class: "user-select-left" };
|
|
7
|
-
const _hoisted_3 =
|
|
9
|
+
const _hoisted_3 = { class: "user-select-right" };
|
|
10
|
+
const _hoisted_4 = { class: "user-select-right-title" };
|
|
11
|
+
const _hoisted_5 = { class: "left" };
|
|
12
|
+
const _hoisted_6 = { class: "alias" };
|
|
13
|
+
const _hoisted_7 = { class: "action" };
|
|
8
14
|
const _sfc_main = defineComponent({
|
|
9
15
|
...{ name: "userDirector" },
|
|
10
16
|
__name: "component",
|
|
11
17
|
props: {
|
|
12
18
|
BASE_API: {},
|
|
13
19
|
repositoryId: {},
|
|
20
|
+
defaultData: {},
|
|
14
21
|
visible: { type: Boolean },
|
|
15
22
|
title: {}
|
|
16
23
|
},
|
|
17
|
-
emits: ["update:visible"],
|
|
24
|
+
emits: ["update:visible", "submit"],
|
|
18
25
|
setup(__props, { emit: __emit }) {
|
|
19
26
|
const props = __props;
|
|
20
27
|
const BASE_API = props.BASE_API || DEFAULT_BASE_API;
|
|
21
28
|
const emit = __emit;
|
|
22
|
-
const loadMore = () => {
|
|
23
|
-
};
|
|
24
29
|
const RoleTreeData = ref([]);
|
|
25
30
|
const DepartTreeData = ref([]);
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
key: "node_key"
|
|
31
|
+
const userSelectedList = ref([]);
|
|
32
|
+
const clearUserSelectedList = () => {
|
|
33
|
+
userSelectedList.value = [];
|
|
30
34
|
};
|
|
31
|
-
const
|
|
32
|
-
|
|
35
|
+
const loadRoleAllUser = async (id) => {
|
|
36
|
+
const res = await getRoleAllUser(BASE_API, { id });
|
|
37
|
+
if (res.code === 0) {
|
|
38
|
+
return res.message.map((item) => {
|
|
39
|
+
item.node_key = `role_${id}_${item.uid}`;
|
|
40
|
+
item.isUser = true;
|
|
41
|
+
item.isLeaf = true;
|
|
42
|
+
return item;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
return [];
|
|
33
46
|
};
|
|
34
47
|
const expandRoleNode = async (selectedKeys, data) => {
|
|
35
48
|
if (data.node.isRole) {
|
|
36
|
-
|
|
37
|
-
if (res.code === 0) {
|
|
38
|
-
data.node.children = res.message.map((item) => {
|
|
39
|
-
item.node_key = `role_${data.node.id}_${item.uid}`;
|
|
40
|
-
item.isUser = true;
|
|
41
|
-
item.isLeaf = true;
|
|
42
|
-
return item;
|
|
43
|
-
});
|
|
44
|
-
}
|
|
49
|
+
data.node.children = await loadRoleAllUser(data.node.id);
|
|
45
50
|
}
|
|
46
51
|
};
|
|
47
|
-
const
|
|
48
|
-
|
|
52
|
+
const loadDepartUserList = async (id) => {
|
|
53
|
+
const res = await getDepartUserList(BASE_API, { pid: id });
|
|
54
|
+
if (res.code === 0) {
|
|
55
|
+
return res.message.map((item) => {
|
|
56
|
+
item.node_key = `depart_${id}_${item.uid}`;
|
|
57
|
+
item.isUser = true;
|
|
58
|
+
item.isLeaf = true;
|
|
59
|
+
return item;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
return [];
|
|
49
63
|
};
|
|
50
64
|
const expandDepartNode = async (selectedKeys, data) => {
|
|
51
65
|
if (data.node.isDepart) {
|
|
52
|
-
|
|
53
|
-
if (res.code === 0) {
|
|
54
|
-
data.node.children = res.message.map((item) => {
|
|
55
|
-
item.node_key = `depart_${data.node.id}_${item.uid}`;
|
|
56
|
-
item.isUser = true;
|
|
57
|
-
item.isLeaf = true;
|
|
58
|
-
return item;
|
|
59
|
-
});
|
|
60
|
-
}
|
|
66
|
+
data.node.children = await loadDepartUserList(data.node.id);
|
|
61
67
|
}
|
|
62
68
|
};
|
|
69
|
+
const collapseStyle = ref({
|
|
70
|
+
paddingLfet: "0px",
|
|
71
|
+
paddingRigth: "0px",
|
|
72
|
+
border: "none",
|
|
73
|
+
background: "white"
|
|
74
|
+
});
|
|
63
75
|
const collapseChange = async (keys) => {
|
|
64
76
|
if (keys.includes("Role")) {
|
|
65
77
|
getRepoRoleList(BASE_API, { repoID: props.repositoryId }).then((res) => {
|
|
@@ -85,22 +97,61 @@ const _sfc_main = defineComponent({
|
|
|
85
97
|
}
|
|
86
98
|
};
|
|
87
99
|
const allUserList = ref([]);
|
|
88
|
-
const completeUser = ref();
|
|
89
100
|
const getUserList = async () => {
|
|
90
101
|
const res = await getRepoUserList(BASE_API, { id: props.repositoryId });
|
|
91
102
|
if (res.code === 0) {
|
|
92
|
-
allUserList.value = res.message
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
103
|
+
allUserList.value = res.message;
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
const searchUserChange = (value) => {
|
|
107
|
+
const target = allUserList.value.find((item) => item.uid === value);
|
|
108
|
+
if (target) {
|
|
109
|
+
addUserSelectedList(target);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
const userSelectedListFilter = (user) => {
|
|
113
|
+
const result = { ...user };
|
|
114
|
+
const userList = [].concat(userSelectedList.value);
|
|
115
|
+
for (const i of userList) {
|
|
116
|
+
if (result.id === i.id) {
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return result;
|
|
121
|
+
};
|
|
122
|
+
const addItem = async (nodeData) => {
|
|
123
|
+
if (nodeData.isUser) {
|
|
124
|
+
addUserSelectedList(nodeData);
|
|
125
|
+
}
|
|
126
|
+
if (nodeData.isRole) {
|
|
127
|
+
const users = await loadRoleAllUser(nodeData.id);
|
|
128
|
+
users.forEach((user) => {
|
|
129
|
+
addUserSelectedList(user, false);
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
if (nodeData.isDepart) {
|
|
133
|
+
const users = await loadDepartUserList(nodeData.id);
|
|
134
|
+
users.forEach((user) => {
|
|
135
|
+
addUserSelectedList(user, false);
|
|
96
136
|
});
|
|
97
137
|
}
|
|
98
138
|
};
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
139
|
+
const addUserSelectedList = (user, tip = true) => {
|
|
140
|
+
user = userSelectedListFilter(user);
|
|
141
|
+
if (user) {
|
|
142
|
+
user.rtype = "user";
|
|
143
|
+
userSelectedList.value.push(user);
|
|
144
|
+
} else if (tip) {
|
|
145
|
+
Message.warning("\u6210\u5458\u5DF2\u5B58\u5728");
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
const removeUserSelected = (index) => {
|
|
149
|
+
userSelectedList.value.splice(index, 1);
|
|
150
|
+
};
|
|
151
|
+
const handleOpen = () => {
|
|
152
|
+
if (props.defaultData) {
|
|
153
|
+
userSelectedList.value = [].concat(props.defaultData || []);
|
|
154
|
+
}
|
|
104
155
|
};
|
|
105
156
|
onMounted(() => {
|
|
106
157
|
getUserList();
|
|
@@ -117,7 +168,7 @@ const _sfc_main = defineComponent({
|
|
|
117
168
|
emit("update:visible", bool);
|
|
118
169
|
};
|
|
119
170
|
const handleOk = () => {
|
|
120
|
-
|
|
171
|
+
emit("submit", JSON.parse(JSON.stringify(userSelectedList.value)));
|
|
121
172
|
};
|
|
122
173
|
const handleCancel = () => {
|
|
123
174
|
setVisible(false);
|
|
@@ -125,11 +176,12 @@ const _sfc_main = defineComponent({
|
|
|
125
176
|
return (_ctx, _cache) => {
|
|
126
177
|
return openBlock(), createBlock(unref(Modal), {
|
|
127
178
|
visible: visible.value,
|
|
128
|
-
width: "
|
|
179
|
+
width: "700px",
|
|
129
180
|
"mask-closable": false,
|
|
130
|
-
footer: false,
|
|
131
181
|
"title-align": "start",
|
|
182
|
+
"body-class": "user-director-modal-body",
|
|
132
183
|
"unmount-on-close": "",
|
|
184
|
+
onOpen: handleOpen,
|
|
133
185
|
onOk: handleOk,
|
|
134
186
|
onCancel: handleCancel
|
|
135
187
|
}, {
|
|
@@ -139,57 +191,122 @@ const _sfc_main = defineComponent({
|
|
|
139
191
|
default: withCtx(() => [
|
|
140
192
|
createElementVNode("div", _hoisted_1, [
|
|
141
193
|
createElementVNode("div", _hoisted_2, [
|
|
142
|
-
createVNode(unref(
|
|
143
|
-
modelValue: completeUser.value,
|
|
144
|
-
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => completeUser.value = $event),
|
|
145
|
-
data: allUserList.value,
|
|
194
|
+
createVNode(unref(Select), {
|
|
146
195
|
placeholder: "\u641C\u7D22\u59D3\u540D\u3001\u7528\u6237\u540D",
|
|
147
|
-
|
|
148
|
-
|
|
196
|
+
"allow-search": "",
|
|
197
|
+
size: "large",
|
|
198
|
+
onChange: searchUserChange
|
|
199
|
+
}, {
|
|
200
|
+
default: withCtx(() => [
|
|
201
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(allUserList.value, (item) => {
|
|
202
|
+
return openBlock(), createBlock(unref(Option), {
|
|
203
|
+
key: item.uid,
|
|
204
|
+
value: item.uid,
|
|
205
|
+
label: item.alias
|
|
206
|
+
}, null, 8, ["value", "label"]);
|
|
207
|
+
}), 128))
|
|
208
|
+
]),
|
|
209
|
+
_: 1
|
|
210
|
+
}),
|
|
149
211
|
createVNode(unref(Collapse), {
|
|
150
212
|
accordion: "",
|
|
213
|
+
bordered: false,
|
|
151
214
|
onChange: collapseChange
|
|
152
215
|
}, {
|
|
153
216
|
default: withCtx(() => [
|
|
154
217
|
createVNode(unref(CollapseItem), {
|
|
155
218
|
key: "Role",
|
|
156
|
-
header: "\u6309\u89D2\u8272\u9009\u62E9"
|
|
219
|
+
header: "\u6309\u89D2\u8272\u9009\u62E9",
|
|
220
|
+
style: normalizeStyle(collapseStyle.value)
|
|
157
221
|
}, {
|
|
158
222
|
default: withCtx(() => [
|
|
159
|
-
createVNode(unref(
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
223
|
+
createVNode(unref(Scrollbar), { style: { "height": "40vh", "overflow": "auto" } }, {
|
|
224
|
+
default: withCtx(() => [
|
|
225
|
+
createVNode(_sfc_main$1, {
|
|
226
|
+
list: RoleTreeData.value,
|
|
227
|
+
onExpand: expandRoleNode,
|
|
228
|
+
onAdd: addItem
|
|
229
|
+
}, null, 8, ["list"])
|
|
230
|
+
]),
|
|
231
|
+
_: 1
|
|
232
|
+
})
|
|
167
233
|
]),
|
|
168
234
|
_: 1
|
|
169
|
-
}),
|
|
235
|
+
}, 8, ["style"]),
|
|
170
236
|
createVNode(unref(CollapseItem), {
|
|
171
237
|
key: "Depart",
|
|
172
|
-
header: "\u6309\u7EC4\u7EC7\u67B6\u6784\u9009\u62E9"
|
|
238
|
+
header: "\u6309\u7EC4\u7EC7\u67B6\u6784\u9009\u62E9",
|
|
239
|
+
style: normalizeStyle(collapseStyle.value)
|
|
173
240
|
}, {
|
|
174
241
|
default: withCtx(() => [
|
|
175
|
-
createVNode(unref(
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
}
|
|
242
|
+
createVNode(unref(Scrollbar), { style: { "height": "40vh", "overflow": "auto" } }, {
|
|
243
|
+
default: withCtx(() => [
|
|
244
|
+
createVNode(_sfc_main$1, {
|
|
245
|
+
list: DepartTreeData.value,
|
|
246
|
+
onExpand: expandDepartNode,
|
|
247
|
+
onAdd: addItem
|
|
248
|
+
}, null, 8, ["list"])
|
|
249
|
+
]),
|
|
250
|
+
_: 1
|
|
251
|
+
})
|
|
185
252
|
]),
|
|
186
253
|
_: 1
|
|
187
|
-
})
|
|
254
|
+
}, 8, ["style"])
|
|
188
255
|
]),
|
|
189
256
|
_: 1
|
|
190
257
|
})
|
|
191
258
|
]),
|
|
192
|
-
_hoisted_3
|
|
259
|
+
createElementVNode("div", _hoisted_3, [
|
|
260
|
+
createElementVNode("div", _hoisted_4, [
|
|
261
|
+
createElementVNode("span", null, "\u5DF2\u9009\u6210\u5458(" + toDisplayString(userSelectedList.value.length) + "\u4EBA)", 1),
|
|
262
|
+
createVNode(unref(Button), {
|
|
263
|
+
type: "text",
|
|
264
|
+
size: "mini",
|
|
265
|
+
onClick: clearUserSelectedList
|
|
266
|
+
}, {
|
|
267
|
+
default: withCtx(() => [
|
|
268
|
+
createTextVNode("\u5168\u90E8\u6E05\u9664")
|
|
269
|
+
]),
|
|
270
|
+
_: 1
|
|
271
|
+
})
|
|
272
|
+
]),
|
|
273
|
+
createVNode(unref(Scrollbar), {
|
|
274
|
+
"outer-class": "scroll",
|
|
275
|
+
style: { "height": "100%", "overflow": "auto" }
|
|
276
|
+
}, {
|
|
277
|
+
default: withCtx(() => [
|
|
278
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(userSelectedList.value, (item, index) => {
|
|
279
|
+
return openBlock(), createElementBlock("div", {
|
|
280
|
+
key: item.uid,
|
|
281
|
+
class: "user-item padding"
|
|
282
|
+
}, [
|
|
283
|
+
createElementVNode("div", _hoisted_5, [
|
|
284
|
+
createVNode(unref(Avatar), {
|
|
285
|
+
class: "avatar",
|
|
286
|
+
size: 32,
|
|
287
|
+
"image-url": item.avatar
|
|
288
|
+
}, null, 8, ["image-url"]),
|
|
289
|
+
createElementVNode("div", _hoisted_6, toDisplayString(item.alias), 1)
|
|
290
|
+
]),
|
|
291
|
+
createElementVNode("div", _hoisted_7, [
|
|
292
|
+
createVNode(unref(Button), {
|
|
293
|
+
type: "primary",
|
|
294
|
+
size: "mini",
|
|
295
|
+
shape: "circle",
|
|
296
|
+
onClick: ($event) => removeUserSelected(index)
|
|
297
|
+
}, {
|
|
298
|
+
default: withCtx(() => [
|
|
299
|
+
createVNode(unref(IconDelete))
|
|
300
|
+
]),
|
|
301
|
+
_: 2
|
|
302
|
+
}, 1032, ["onClick"])
|
|
303
|
+
])
|
|
304
|
+
]);
|
|
305
|
+
}), 128))
|
|
306
|
+
]),
|
|
307
|
+
_: 1
|
|
308
|
+
})
|
|
309
|
+
])
|
|
193
310
|
])
|
|
194
311
|
]),
|
|
195
312
|
_: 1
|
|
File without changes
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { defineComponent, openBlock, createBlock, unref, withCtx, createCommentVNode, createElementVNode, toDisplayString, createVNode } from "vue";
|
|
2
|
+
import { Tree, Avatar, Button } from "@arco-design/web-vue";
|
|
3
|
+
import { IconUserGroup, IconPlus } from "@arco-design/web-vue/es/icon";
|
|
4
|
+
const _hoisted_1 = { class: "user-item" };
|
|
5
|
+
const _hoisted_2 = { class: "left" };
|
|
6
|
+
const _sfc_main = defineComponent({
|
|
7
|
+
__name: "userTree",
|
|
8
|
+
props: {
|
|
9
|
+
list: {}
|
|
10
|
+
},
|
|
11
|
+
emits: ["select", "expand", "add"],
|
|
12
|
+
setup(__props, { emit: __emit }) {
|
|
13
|
+
const props = __props;
|
|
14
|
+
const loadMore = () => {
|
|
15
|
+
};
|
|
16
|
+
const fieldNames = {
|
|
17
|
+
children: "children",
|
|
18
|
+
title: "alias",
|
|
19
|
+
key: "node_key"
|
|
20
|
+
};
|
|
21
|
+
const emit = __emit;
|
|
22
|
+
const select = (selectedKeys, data) => {
|
|
23
|
+
emit("select", selectedKeys, data);
|
|
24
|
+
};
|
|
25
|
+
const expand = (expandedKeys, data) => {
|
|
26
|
+
emit("expand", expandedKeys, data);
|
|
27
|
+
};
|
|
28
|
+
const addItem = (nodeData) => {
|
|
29
|
+
emit("add", nodeData);
|
|
30
|
+
};
|
|
31
|
+
return (_ctx, _cache) => {
|
|
32
|
+
return openBlock(), createBlock(unref(Tree), {
|
|
33
|
+
data: props.list,
|
|
34
|
+
"load-more": loadMore,
|
|
35
|
+
"block-node": "",
|
|
36
|
+
size: "large",
|
|
37
|
+
"field-names": fieldNames,
|
|
38
|
+
"action-on-node-click": "expand",
|
|
39
|
+
onSelect: select,
|
|
40
|
+
onExpand: expand
|
|
41
|
+
}, {
|
|
42
|
+
icon: withCtx((node) => [
|
|
43
|
+
!node.isLeaf ? (openBlock(), createBlock(unref(IconUserGroup), { key: 0 })) : createCommentVNode("v-if", true)
|
|
44
|
+
]),
|
|
45
|
+
title: withCtx((nodeData) => [
|
|
46
|
+
createElementVNode("div", _hoisted_1, [
|
|
47
|
+
createElementVNode("div", _hoisted_2, [
|
|
48
|
+
nodeData.isUser ? (openBlock(), createBlock(unref(Avatar), {
|
|
49
|
+
key: 0,
|
|
50
|
+
class: "avatar",
|
|
51
|
+
size: 22,
|
|
52
|
+
"image-url": nodeData.avatar
|
|
53
|
+
}, null, 8, ["image-url"])) : createCommentVNode("v-if", true),
|
|
54
|
+
createElementVNode("span", null, toDisplayString(nodeData.alias), 1)
|
|
55
|
+
])
|
|
56
|
+
])
|
|
57
|
+
]),
|
|
58
|
+
extra: withCtx((nodeData) => [
|
|
59
|
+
createVNode(unref(Button), {
|
|
60
|
+
class: "tree-action",
|
|
61
|
+
type: "primary",
|
|
62
|
+
size: "mini",
|
|
63
|
+
shape: "circle",
|
|
64
|
+
onClick: ($event) => addItem(nodeData)
|
|
65
|
+
}, {
|
|
66
|
+
default: withCtx(() => [
|
|
67
|
+
createVNode(unref(IconPlus))
|
|
68
|
+
]),
|
|
69
|
+
_: 2
|
|
70
|
+
}, 1032, ["onClick"])
|
|
71
|
+
]),
|
|
72
|
+
_: 1
|
|
73
|
+
}, 8, ["data"]);
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
export { _sfc_main as default };
|
|
@@ -1,8 +1,67 @@
|
|
|
1
|
+
.user-director-modal-body {
|
|
2
|
+
padding: 0;
|
|
3
|
+
}
|
|
4
|
+
.user-director-modal-body .arco-collapse {
|
|
5
|
+
height: calc(100% - 36px);
|
|
6
|
+
}
|
|
7
|
+
.user-director-modal-body .arco-collapse-item-content {
|
|
8
|
+
padding-left: 10px;
|
|
9
|
+
padding-right: 0;
|
|
10
|
+
background: white;
|
|
11
|
+
}
|
|
1
12
|
.user-select-content {
|
|
2
|
-
height:
|
|
13
|
+
height: 50vh;
|
|
14
|
+
display: flex;
|
|
3
15
|
}
|
|
4
16
|
.user-select-content .user-select-left,
|
|
5
17
|
.user-select-content .user-select-right {
|
|
6
18
|
width: 50%;
|
|
7
19
|
height: 100%;
|
|
8
20
|
}
|
|
21
|
+
.user-select-content .user-select-left {
|
|
22
|
+
border-right: 1px solid var(--color-neutral-3);
|
|
23
|
+
}
|
|
24
|
+
.user-select-content .user-select-right .scroll {
|
|
25
|
+
height: calc(100% - 40px);
|
|
26
|
+
}
|
|
27
|
+
.user-select-content .user-select-right .user-select-right-title {
|
|
28
|
+
display: flex;
|
|
29
|
+
justify-content: space-between;
|
|
30
|
+
font-size: 14px;
|
|
31
|
+
font-weight: 500;
|
|
32
|
+
padding: 6px 16px;
|
|
33
|
+
border-bottom: 1px solid var(--color-neutral-3);
|
|
34
|
+
}
|
|
35
|
+
.user-select-content .user-item {
|
|
36
|
+
display: flex;
|
|
37
|
+
align-items: center;
|
|
38
|
+
justify-content: space-between;
|
|
39
|
+
}
|
|
40
|
+
.user-select-content .user-item.padding {
|
|
41
|
+
padding: 5px 16px;
|
|
42
|
+
}
|
|
43
|
+
.user-select-content .user-item .left {
|
|
44
|
+
display: flex;
|
|
45
|
+
align-items: center;
|
|
46
|
+
}
|
|
47
|
+
.user-select-content .user-item .left .avatar {
|
|
48
|
+
margin-right: 10px;
|
|
49
|
+
}
|
|
50
|
+
.user-select-content .user-item .action {
|
|
51
|
+
display: none;
|
|
52
|
+
}
|
|
53
|
+
.user-select-content .user-item:hover {
|
|
54
|
+
background-color: var(--color-fill-1);
|
|
55
|
+
}
|
|
56
|
+
.user-select-content .user-item:hover .action {
|
|
57
|
+
display: flex;
|
|
58
|
+
}
|
|
59
|
+
.user-select-content .tree-action {
|
|
60
|
+
position: absolute;
|
|
61
|
+
top: 7px;
|
|
62
|
+
right: 30px;
|
|
63
|
+
display: none;
|
|
64
|
+
}
|
|
65
|
+
.user-select-content .arco-tree-node:hover .tree-action {
|
|
66
|
+
display: inline-block;
|
|
67
|
+
}
|
|
@@ -1,8 +1,70 @@
|
|
|
1
|
+
.user-director-modal-body {
|
|
2
|
+
padding: 0;
|
|
3
|
+
.arco-collapse {
|
|
4
|
+
height: calc(100% - 36px);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.arco-collapse-item-content {
|
|
8
|
+
padding-left: 10px;
|
|
9
|
+
padding-right: 0;
|
|
10
|
+
background: white;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
1
13
|
.user-select-content {
|
|
2
|
-
height:
|
|
14
|
+
height: 50vh;
|
|
15
|
+
display: flex;
|
|
3
16
|
.user-select-left,
|
|
4
17
|
.user-select-right {
|
|
5
18
|
width: 50%;
|
|
6
19
|
height: 100%;
|
|
7
20
|
}
|
|
21
|
+
.user-select-left {
|
|
22
|
+
border-right: 1px solid var(--color-neutral-3);
|
|
23
|
+
}
|
|
24
|
+
.user-select-right {
|
|
25
|
+
.scroll {
|
|
26
|
+
height: calc(100% - 40px);
|
|
27
|
+
}
|
|
28
|
+
.user-select-right-title {
|
|
29
|
+
display: flex;
|
|
30
|
+
justify-content: space-between;
|
|
31
|
+
font-size: 14px;
|
|
32
|
+
font-weight: 500;
|
|
33
|
+
padding: 6px 16px;
|
|
34
|
+
border-bottom: 1px solid var(--color-neutral-3);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
.user-item {
|
|
38
|
+
display: flex;
|
|
39
|
+
align-items: center;
|
|
40
|
+
justify-content: space-between;
|
|
41
|
+
&.padding {
|
|
42
|
+
padding: 5px 16px;
|
|
43
|
+
}
|
|
44
|
+
.left {
|
|
45
|
+
display: flex;
|
|
46
|
+
align-items: center;
|
|
47
|
+
.avatar {
|
|
48
|
+
margin-right: 10px;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
.action {
|
|
52
|
+
display: none;
|
|
53
|
+
}
|
|
54
|
+
&:hover {
|
|
55
|
+
background-color: var(--color-fill-1);
|
|
56
|
+
.action {
|
|
57
|
+
display: flex;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
.tree-action {
|
|
62
|
+
position: absolute;
|
|
63
|
+
top: 7px;
|
|
64
|
+
right: 30px;
|
|
65
|
+
display: none;
|
|
66
|
+
}
|
|
67
|
+
.arco-tree-node:hover .tree-action {
|
|
68
|
+
display: inline-block;
|
|
69
|
+
}
|
|
8
70
|
}
|