@cmstops/pro-compo 0.1.11 → 0.1.13

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 (34) hide show
  1. package/dist/index.css +134 -1
  2. package/dist/index.min.css +1 -1
  3. package/es/index.css +134 -1
  4. package/es/mediaFilter/component.js +2 -2
  5. package/es/mediaFilter/components/DocFilter.js +23 -21
  6. package/es/mediaFilter/components/FilterGroup.js +4 -7
  7. package/es/mediaFilter/components/FilterItem.js +2 -5
  8. package/es/mediaFilter/index.d.ts +1 -0
  9. package/es/mediaFilter/script/types.d.ts +16 -0
  10. package/es/mediaFilter/style/index.css +87 -1
  11. package/es/mediaFilter/style/index.less +109 -3
  12. package/es/style.css +0 -89
  13. package/es/userDirector/component.js +185 -70
  14. package/es/userDirector/components/userTree.d.ts +0 -0
  15. package/es/userDirector/components/userTree.js +76 -0
  16. package/es/userDirector/style/index.css +47 -0
  17. package/es/userDirector/style/index.less +50 -0
  18. package/lib/index.css +134 -1
  19. package/lib/mediaFilter/components/DocFilter.js +19 -17
  20. package/lib/mediaFilter/components/FilterGroup.js +4 -7
  21. package/lib/mediaFilter/components/FilterItem.js +2 -5
  22. package/lib/mediaFilter/style/index.css +87 -1
  23. package/lib/mediaFilter/style/index.less +109 -3
  24. package/lib/userDirector/component.js +182 -67
  25. package/lib/userDirector/components/userTree.js +77 -0
  26. package/lib/userDirector/style/index.css +47 -0
  27. package/lib/userDirector/style/index.less +50 -0
  28. package/package.json +1 -1
  29. package/es/mediaFilter/components/DocFilter.vue_vue_type_style_index_0_scoped_true_lang.js +0 -2
  30. package/es/mediaFilter/components/FilterGroup.vue_vue_type_style_index_0_scoped_true_lang.js +0 -2
  31. package/es/mediaFilter/components/FilterItem.vue_vue_type_style_index_0_scoped_true_lang.js +0 -2
  32. package/lib/mediaFilter/components/DocFilter.vue_vue_type_style_index_0_scoped_true_lang.js +0 -3
  33. package/lib/mediaFilter/components/FilterGroup.vue_vue_type_style_index_0_scoped_true_lang.js +0 -3
  34. package/lib/mediaFilter/components/FilterItem.vue_vue_type_style_index_0_scoped_true_lang.js +0 -3
@@ -6,14 +6,12 @@ var doc = require("../../utils/doc.js");
6
6
  var optionsGetter = require("../script/optionsGetter.js");
7
7
  var FilterGroup = require("./FilterGroup.js");
8
8
  var FilterItem = require("./FilterItem.js");
9
- require("./DocFilter.vue_vue_type_style_index_0_scoped_true_lang.js");
10
- var pluginVue_exportHelper = require("../../_virtual/plugin-vue_export-helper.js");
11
9
  const _hoisted_1 = { class: "label" };
12
10
  const _hoisted_2 = { class: "label" };
13
11
  const _sfc_main = vue.defineComponent({
14
12
  __name: "DocFilter",
15
13
  props: {
16
- filterKeys: { default: () => ["keywords", "doc_type"] },
14
+ filterKeys: { default: () => ["doc_type"] },
17
15
  filterType: { default: "APV" }
18
16
  },
19
17
  emits: ["search", "change"],
@@ -71,22 +69,27 @@ const _sfc_main = vue.defineComponent({
71
69
  filter.value[key] = "";
72
70
  });
73
71
  }
72
+ function columnFilter(fi) {
73
+ const ret = {};
74
+ calculateRules.value.forEach((item) => {
75
+ ret[item.key] = fi[item.key];
76
+ });
77
+ ret.keywords = fi.keywords;
78
+ ret.highSearch = {
79
+ order: fi.order,
80
+ sort: fi.sort,
81
+ meta: fi.meta
82
+ };
83
+ return ret;
84
+ }
74
85
  function handleSearch() {
75
- emits("search", filter.value);
86
+ const ret = columnFilter(filter.value);
87
+ emits("search", ret);
76
88
  }
77
89
  vue.watch(
78
90
  () => filter.value,
79
91
  (n) => {
80
- const ret = {};
81
- calculateRules.value.forEach((item) => {
82
- ret[item.key] = n[item.key];
83
- });
84
- ret.keywords = n.keywords;
85
- ret.highSearch = {
86
- order: n.order,
87
- sort: n.sort,
88
- meta: n.meta
89
- };
92
+ const ret = columnFilter(n);
90
93
  emits("change", ret);
91
94
  },
92
95
  { deep: true }
@@ -241,12 +244,11 @@ const _sfc_main = vue.defineComponent({
241
244
  ]),
242
245
  _: 1
243
246
  })) : vue.createCommentVNode("v-if", true),
244
- vue.renderSlot(_ctx.$slots, "right", {}, void 0, true)
247
+ vue.renderSlot(_ctx.$slots, "right")
245
248
  ]),
246
249
  _: 3
247
250
  });
248
251
  };
249
252
  }
250
253
  });
251
- var DocFilter = /* @__PURE__ */ pluginVue_exportHelper(_sfc_main, [["__scopeId", "data-v-10378a8c"]]);
252
- module.exports = DocFilter;
254
+ module.exports = _sfc_main;
@@ -3,8 +3,6 @@ var vue = require("vue");
3
3
  var webVue = require("@arco-design/web-vue");
4
4
  var icon = require("@arco-design/web-vue/es/icon");
5
5
  var core = require("@popperjs/core");
6
- require("./FilterGroup.vue_vue_type_style_index_0_scoped_true_lang.js");
7
- var pluginVue_exportHelper = require("../../_virtual/plugin-vue_export-helper.js");
8
6
  const _hoisted_1 = { class: "filter-view-container" };
9
7
  const _hoisted_2 = { class: "filter-search" };
10
8
  const _hoisted_3 = { class: "more-btn" };
@@ -137,7 +135,7 @@ const _sfc_main = vue.defineComponent({
137
135
  return (_ctx, _cache) => {
138
136
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
139
137
  vue.createElementVNode("div", _hoisted_2, [
140
- vue.renderSlot(_ctx.$slots, "search", {}, void 0, true)
138
+ vue.renderSlot(_ctx.$slots, "search")
141
139
  ]),
142
140
  vue.createElementVNode("div", _hoisted_3, [
143
141
  vue.createElementVNode("div", {
@@ -173,10 +171,10 @@ const _sfc_main = vue.defineComponent({
173
171
  ref: filterItemsRef,
174
172
  class: "left"
175
173
  }, [
176
- vue.renderSlot(_ctx.$slots, "left", {}, void 0, true)
174
+ vue.renderSlot(_ctx.$slots, "left")
177
175
  ], 512),
178
176
  vue.createElementVNode("div", _hoisted_6, [
179
- vue.renderSlot(_ctx.$slots, "right", {}, void 0, true)
177
+ vue.renderSlot(_ctx.$slots, "right")
180
178
  ])
181
179
  ]),
182
180
  vue.createElementVNode("div", _hoisted_7, null, 512)
@@ -184,5 +182,4 @@ const _sfc_main = vue.defineComponent({
184
182
  };
185
183
  }
186
184
  });
187
- var FilterGroup = /* @__PURE__ */ pluginVue_exportHelper(_sfc_main, [["__scopeId", "data-v-017dcf0e"]]);
188
- module.exports = FilterGroup;
185
+ module.exports = _sfc_main;
@@ -2,8 +2,6 @@
2
2
  var vue = require("vue");
3
3
  var webVue = require("@arco-design/web-vue");
4
4
  var icon = require("@arco-design/web-vue/es/icon");
5
- require("./FilterItem.vue_vue_type_style_index_0_scoped_true_lang.js");
6
- var pluginVue_exportHelper = require("../../_virtual/plugin-vue_export-helper.js");
7
5
  const _hoisted_1 = { class: "filter-item-view" };
8
6
  const _hoisted_2 = { class: "show-view" };
9
7
  const _hoisted_3 = { class: "right-prefix" };
@@ -107,11 +105,10 @@ const _sfc_main = vue.defineComponent({
107
105
  })
108
106
  ]),
109
107
  vue.createElementVNode("div", _hoisted_6, [
110
- vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
108
+ vue.renderSlot(_ctx.$slots, "default")
111
109
  ])
112
110
  ]);
113
111
  };
114
112
  }
115
113
  });
116
- var FilterItem = /* @__PURE__ */ pluginVue_exportHelper(_sfc_main, [["__scopeId", "data-v-197080c1"]]);
117
- module.exports = FilterItem;
114
+ module.exports = _sfc_main;
@@ -1,4 +1,90 @@
1
- .tooltip-button {
1
+ .filter-wrp .tooltip-button {
2
2
  height: auto;
3
3
  padding: 20px;
4
4
  }
5
+ .filter-wrp .dop.active {
6
+ color: #165dff;
7
+ }
8
+ .filter-wrp .dop .label {
9
+ display: flex;
10
+ gap: 10px;
11
+ align-items: center;
12
+ }
13
+ .filter-wrp .filter-view-container {
14
+ display: flex;
15
+ align-items: center;
16
+ margin-bottom: 10px;
17
+ font-size: 14px;
18
+ }
19
+ .filter-wrp .filter-search {
20
+ display: flex;
21
+ gap: 10px;
22
+ width: 180px;
23
+ margin-right: 10px;
24
+ }
25
+ .filter-wrp .filter-content {
26
+ position: relative;
27
+ display: flex;
28
+ flex: 1;
29
+ align-items: center;
30
+ justify-content: space-between;
31
+ }
32
+ .filter-wrp .left {
33
+ display: flex;
34
+ gap: 10px;
35
+ align-items: center;
36
+ }
37
+ .filter-wrp .right {
38
+ position: absolute;
39
+ right: 0;
40
+ z-index: 1;
41
+ display: flex;
42
+ flex-wrap: nowrap;
43
+ align-items: center;
44
+ height: 100%;
45
+ padding-left: 20px;
46
+ background: white;
47
+ }
48
+ .filter-wrp .more-btn {
49
+ margin-right: 10px;
50
+ }
51
+ .filter-wrp .right-prefix {
52
+ display: flex;
53
+ gap: 10px;
54
+ align-items: center;
55
+ }
56
+ .filter-wrp .filter-pannel {
57
+ display: flex;
58
+ gap: 10px;
59
+ padding: 10px;
60
+ background-color: white;
61
+ border-radius: 6px;
62
+ box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
63
+ }
64
+ .filter-wrp .filter-item-view {
65
+ position: relative;
66
+ display: flex;
67
+ overflow: hidden;
68
+ }
69
+ .filter-wrp .filter-item-view .show-view {
70
+ z-index: 1;
71
+ width: 100%;
72
+ height: 100%;
73
+ background: #fff;
74
+ pointer-events: none;
75
+ }
76
+ .filter-wrp .filter-item-view .select-view {
77
+ position: absolute;
78
+ z-index: 0;
79
+ width: 100%;
80
+ }
81
+ .filter-wrp .hasvalue-btn {
82
+ color: #165dff;
83
+ background-color: #e8f3ff;
84
+ border-right: none !important;
85
+ }
86
+ .filter-wrp .right-prefix {
87
+ display: flex;
88
+ gap: 10px;
89
+ align-items: center;
90
+ }
@@ -1,4 +1,110 @@
1
- .tooltip-button {
2
- height: auto;
3
- padding: 20px;
1
+ .filter-wrp {
2
+ .tooltip-button {
3
+ height: auto;
4
+ padding: 20px;
5
+ }
6
+
7
+ // DocFilter 组件内部样式
8
+ .dop.active {
9
+ color: #165dff;
10
+ }
11
+
12
+ .dop .label {
13
+ display: flex;
14
+ gap: 10px;
15
+ align-items: center;
16
+ }
17
+
18
+ // FilterGroup 内部样式
19
+ .filter-view-container {
20
+ display: flex;
21
+ align-items: center;
22
+ margin-bottom: 10px;
23
+ font-size: 14px;
24
+ }
25
+
26
+ .filter-search {
27
+ display: flex;
28
+ gap: 10px;
29
+ width: 180px;
30
+ margin-right: 10px;
31
+ }
32
+
33
+ .filter-content {
34
+ position: relative;
35
+ display: flex;
36
+ flex: 1;
37
+ align-items: center;
38
+ justify-content: space-between;
39
+ }
40
+
41
+ .left {
42
+ display: flex;
43
+ gap: 10px;
44
+ align-items: center;
45
+ }
46
+
47
+ .right {
48
+ position: absolute;
49
+ right: 0;
50
+ z-index: 1;
51
+ display: flex;
52
+ flex-wrap: nowrap;
53
+ align-items: center;
54
+ height: 100%;
55
+ padding-left: 20px;
56
+ background: white;
57
+ }
58
+
59
+ .more-btn {
60
+ margin-right: 10px;
61
+ }
62
+
63
+ .right-prefix {
64
+ display: flex;
65
+ gap: 10px;
66
+ align-items: center;
67
+ }
68
+
69
+ .filter-pannel {
70
+ display: flex;
71
+ gap: 10px;
72
+ padding: 10px;
73
+ background-color: white;
74
+ border-radius: 6px;
75
+ box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
76
+ }
77
+
78
+ // Filter Item 内部样式
79
+ .filter-item-view {
80
+ position: relative;
81
+ display: flex;
82
+ overflow: hidden;
83
+ }
84
+
85
+ .filter-item-view .show-view {
86
+ z-index: 1;
87
+ width: 100%;
88
+ height: 100%;
89
+ background: #fff;
90
+ pointer-events: none;
91
+ }
92
+
93
+ .filter-item-view .select-view {
94
+ position: absolute;
95
+ z-index: 0;
96
+ width: 100%;
97
+ }
98
+
99
+ .hasvalue-btn {
100
+ color: #165dff;
101
+ background-color: #e8f3ff;
102
+ border-right: none !important;
103
+ }
104
+
105
+ .right-prefix {
106
+ display: flex;
107
+ gap: 10px;
108
+ align-items: center;
109
+ }
4
110
  }
@@ -1,17 +1,24 @@
1
1
  "use strict";
2
2
  var vue = require("vue");
3
3
  var webVue = require("@arco-design/web-vue");
4
+ var icon = require("@arco-design/web-vue/es/icon");
4
5
  var config = require("../config.js");
6
+ var userTree = require("./components/userTree.js");
5
7
  var api = require("./script/api.js");
6
8
  const _hoisted_1 = { class: "user-select-content" };
7
9
  const _hoisted_2 = { class: "user-select-left" };
8
- const _hoisted_3 = /* @__PURE__ */ vue.createElementVNode("div", { class: "user-select-right" }, null, -1);
10
+ const _hoisted_3 = { class: "user-select-right" };
11
+ const _hoisted_4 = { class: "user-select-right-title" };
12
+ const _hoisted_5 = { class: "left" };
13
+ const _hoisted_6 = { class: "alias" };
14
+ const _hoisted_7 = { class: "action" };
9
15
  const _sfc_main = vue.defineComponent({
10
16
  ...{ name: "userDirector" },
11
17
  __name: "component",
12
18
  props: {
13
19
  BASE_API: {},
14
20
  repositoryId: {},
21
+ defaultData: {},
15
22
  visible: { type: Boolean },
16
23
  title: {}
17
24
  },
@@ -20,47 +27,58 @@ const _sfc_main = vue.defineComponent({
20
27
  const props = __props;
21
28
  const BASE_API = props.BASE_API || config.DEFAULT_BASE_API;
22
29
  const emit = __emit;
23
- const loadMore = () => {
24
- };
25
30
  const RoleTreeData = vue.ref([]);
26
31
  const DepartTreeData = vue.ref([]);
27
- const fieldNames = {
28
- children: "children",
29
- title: "alias",
30
- key: "node_key"
31
- };
32
+ const userSelectedList = vue.ref([]);
32
33
  const selectRoleNode = (selectedKeys, data) => {
33
34
  console.log("selectRoleNode", data);
34
35
  };
36
+ const clearUserSelectedList = () => {
37
+ userSelectedList.value = [];
38
+ };
39
+ const loadRoleAllUser = async (id) => {
40
+ const res = await api.getRoleAllUser(BASE_API, { id });
41
+ if (res.code === 0) {
42
+ return res.message.map((item) => {
43
+ item.node_key = `role_${id}_${item.uid}`;
44
+ item.isUser = true;
45
+ item.isLeaf = true;
46
+ return item;
47
+ });
48
+ }
49
+ return [];
50
+ };
35
51
  const expandRoleNode = async (selectedKeys, data) => {
36
52
  if (data.node.isRole) {
37
- const res = await api.getRoleAllUser(BASE_API, { id: data.node.id });
38
- if (res.code === 0) {
39
- data.node.children = res.message.map((item) => {
40
- item.node_key = `role_${data.node.id}_${item.uid}`;
41
- item.isUser = true;
42
- item.isLeaf = true;
43
- return item;
44
- });
45
- }
53
+ data.node.children = await loadRoleAllUser(data.node.id);
46
54
  }
47
55
  };
48
56
  const selectDepartNode = (selectedKeys, data) => {
49
57
  console.log("selectDepartNode", data);
50
58
  };
59
+ const loadDepartUserList = async (id) => {
60
+ const res = await api.getDepartUserList(BASE_API, { pid: id });
61
+ if (res.code === 0) {
62
+ return res.message.map((item) => {
63
+ item.node_key = `depart_${id}_${item.uid}`;
64
+ item.isUser = true;
65
+ item.isLeaf = true;
66
+ return item;
67
+ });
68
+ }
69
+ return [];
70
+ };
51
71
  const expandDepartNode = async (selectedKeys, data) => {
52
72
  if (data.node.isDepart) {
53
- const res = await api.getDepartUserList(BASE_API, { pid: data.node.id });
54
- if (res.code === 0) {
55
- data.node.children = res.message.map((item) => {
56
- item.node_key = `depart_${data.node.id}_${item.uid}`;
57
- item.isUser = true;
58
- item.isLeaf = true;
59
- return item;
60
- });
61
- }
73
+ data.node.children = await loadDepartUserList(data.node.id);
62
74
  }
63
75
  };
76
+ const collapseStyle = vue.ref({
77
+ paddingLfet: "0px",
78
+ paddingRigth: "0px",
79
+ border: "none",
80
+ background: "white"
81
+ });
64
82
  const collapseChange = async (keys) => {
65
83
  if (keys.includes("Role")) {
66
84
  api.getRepoRoleList(BASE_API, { repoID: props.repositoryId }).then((res) => {
@@ -86,22 +104,56 @@ const _sfc_main = vue.defineComponent({
86
104
  }
87
105
  };
88
106
  const allUserList = vue.ref([]);
89
- const completeUser = vue.ref();
90
107
  const getUserList = async () => {
91
108
  const res = await api.getRepoUserList(BASE_API, { id: props.repositoryId });
92
109
  if (res.code === 0) {
93
- allUserList.value = res.message.map((item) => {
94
- item.value = item.uid;
95
- item.label = item.alias;
96
- return item;
110
+ allUserList.value = res.message;
111
+ }
112
+ };
113
+ const searchUserChange = (value) => {
114
+ const target = allUserList.value.find((item) => item.uid === value);
115
+ if (target) {
116
+ addUserSelectedList(target);
117
+ }
118
+ };
119
+ const userSelectedListFilter = (user) => {
120
+ const result = { ...user };
121
+ const userList = [].concat(userSelectedList.value);
122
+ for (const i of userList) {
123
+ if (result.id === i.id) {
124
+ return false;
125
+ }
126
+ }
127
+ return result;
128
+ };
129
+ const addItem = async (nodeData) => {
130
+ if (nodeData.isUser) {
131
+ addUserSelectedList(nodeData);
132
+ }
133
+ if (nodeData.isRole) {
134
+ const users = await loadRoleAllUser(nodeData.id);
135
+ users.forEach((user) => {
136
+ addUserSelectedList(user, false);
137
+ });
138
+ }
139
+ if (nodeData.isDepart) {
140
+ const users = await loadDepartUserList(nodeData.id);
141
+ users.forEach((user) => {
142
+ addUserSelectedList(user, false);
97
143
  });
98
144
  }
99
145
  };
100
- const selectUser = (value) => {
101
- console.log(value);
102
- setTimeout(() => {
103
- completeUser.value = "";
104
- }, 100);
146
+ const addUserSelectedList = (user, tip = true) => {
147
+ user = userSelectedListFilter(user);
148
+ if (user) {
149
+ user.rtype = "user";
150
+ userSelectedList.value.push(user);
151
+ } else if (tip) {
152
+ webVue.Message.warning("\u6210\u5458\u5DF2\u5B58\u5728");
153
+ }
154
+ };
155
+ const removeUserSelected = (index) => {
156
+ userSelectedList.value.splice(index, 1);
105
157
  };
106
158
  vue.onMounted(() => {
107
159
  getUserList();
@@ -126,10 +178,10 @@ const _sfc_main = vue.defineComponent({
126
178
  return (_ctx, _cache) => {
127
179
  return vue.openBlock(), vue.createBlock(vue.unref(webVue.Modal), {
128
180
  visible: visible.value,
129
- width: "986px",
181
+ width: "700px",
130
182
  "mask-closable": false,
131
- footer: false,
132
183
  "title-align": "start",
184
+ "body-class": "user-director-modal-body",
133
185
  "unmount-on-close": "",
134
186
  onOk: handleOk,
135
187
  onCancel: handleCancel
@@ -140,57 +192,120 @@ const _sfc_main = vue.defineComponent({
140
192
  default: vue.withCtx(() => [
141
193
  vue.createElementVNode("div", _hoisted_1, [
142
194
  vue.createElementVNode("div", _hoisted_2, [
143
- vue.createVNode(vue.unref(webVue.AutoComplete), {
144
- modelValue: completeUser.value,
145
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => completeUser.value = $event),
146
- data: allUserList.value,
195
+ vue.createVNode(vue.unref(webVue.Select), {
147
196
  placeholder: "\u641C\u7D22\u59D3\u540D\u3001\u7528\u6237\u540D",
148
- onSelect: selectUser
149
- }, null, 8, ["modelValue", "data"]),
197
+ "allow-search": "",
198
+ size: "large",
199
+ onChange: searchUserChange
200
+ }, {
201
+ default: vue.withCtx(() => [
202
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(allUserList.value, (item) => {
203
+ return vue.openBlock(), vue.createBlock(vue.unref(webVue.Option), {
204
+ key: item.uid,
205
+ value: item.uid,
206
+ label: item.alias
207
+ }, null, 8, ["value", "label"]);
208
+ }), 128))
209
+ ]),
210
+ _: 1
211
+ }),
150
212
  vue.createVNode(vue.unref(webVue.Collapse), {
151
213
  accordion: "",
214
+ bordered: false,
152
215
  onChange: collapseChange
153
216
  }, {
154
217
  default: vue.withCtx(() => [
155
218
  vue.createVNode(vue.unref(webVue.CollapseItem), {
156
219
  key: "Role",
157
- header: "\u6309\u89D2\u8272\u9009\u62E9"
220
+ header: "\u6309\u89D2\u8272\u9009\u62E9",
221
+ style: vue.normalizeStyle(collapseStyle.value)
158
222
  }, {
159
223
  default: vue.withCtx(() => [
160
- vue.createVNode(vue.unref(webVue.Tree), {
161
- data: RoleTreeData.value,
162
- "load-more": loadMore,
163
- "field-names": fieldNames,
164
- "action-on-node-click": "expand",
165
- onSelect: selectRoleNode,
166
- onExpand: expandRoleNode
167
- }, null, 8, ["data"])
224
+ vue.createVNode(vue.unref(webVue.Scrollbar), { style: { "height": "40vh", "overflow": "auto" } }, {
225
+ default: vue.withCtx(() => [
226
+ vue.createVNode(userTree, {
227
+ list: RoleTreeData.value,
228
+ onSelect: selectRoleNode,
229
+ onExpand: expandRoleNode,
230
+ onAdd: addItem
231
+ }, null, 8, ["list"])
232
+ ]),
233
+ _: 1
234
+ })
168
235
  ]),
169
236
  _: 1
170
- }),
237
+ }, 8, ["style"]),
171
238
  vue.createVNode(vue.unref(webVue.CollapseItem), {
172
239
  key: "Depart",
173
- header: "\u6309\u7EC4\u7EC7\u67B6\u6784\u9009\u62E9"
240
+ header: "\u6309\u7EC4\u7EC7\u67B6\u6784\u9009\u62E9",
241
+ style: vue.normalizeStyle(collapseStyle.value)
174
242
  }, {
175
243
  default: vue.withCtx(() => [
176
- vue.createVNode(vue.unref(webVue.Tree), {
177
- size: "large",
178
- "block-node": "",
179
- "field-names": fieldNames,
180
- data: DepartTreeData.value,
181
- "load-more": loadMore,
182
- "action-on-node-click": "expand",
183
- onSelect: selectDepartNode,
184
- onExpand: expandDepartNode
185
- }, null, 8, ["data"])
244
+ vue.createVNode(vue.unref(webVue.Scrollbar), { style: { "height": "40vh", "overflow": "auto" } }, {
245
+ default: vue.withCtx(() => [
246
+ vue.createVNode(userTree, {
247
+ list: DepartTreeData.value,
248
+ onSelect: selectDepartNode,
249
+ onExpand: expandDepartNode,
250
+ onAdd: addItem
251
+ }, null, 8, ["list"])
252
+ ]),
253
+ _: 1
254
+ })
186
255
  ]),
187
256
  _: 1
188
- })
257
+ }, 8, ["style"])
189
258
  ]),
190
259
  _: 1
191
260
  })
192
261
  ]),
193
- _hoisted_3
262
+ vue.createElementVNode("div", _hoisted_3, [
263
+ vue.createElementVNode("div", _hoisted_4, [
264
+ vue.createElementVNode("span", null, "\u5DF2\u9009\u6210\u5458(" + vue.toDisplayString(userSelectedList.value.length) + "\u4EBA)", 1),
265
+ vue.createVNode(vue.unref(webVue.Button), {
266
+ type: "text",
267
+ size: "mini",
268
+ onClick: clearUserSelectedList
269
+ }, {
270
+ default: vue.withCtx(() => [
271
+ vue.createTextVNode("\u5168\u90E8\u6E05\u9664")
272
+ ]),
273
+ _: 1
274
+ })
275
+ ]),
276
+ vue.createVNode(vue.unref(webVue.Scrollbar), { style: { "height": "100%", "overflow": "auto" } }, {
277
+ default: vue.withCtx(() => [
278
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(userSelectedList.value, (item, index) => {
279
+ return vue.openBlock(), vue.createElementBlock("div", {
280
+ key: item.uid,
281
+ class: "user-item"
282
+ }, [
283
+ vue.createElementVNode("div", _hoisted_5, [
284
+ vue.createVNode(vue.unref(webVue.Avatar), {
285
+ size: 32,
286
+ "image-url": item.avatar
287
+ }, null, 8, ["image-url"]),
288
+ vue.createElementVNode("div", _hoisted_6, vue.toDisplayString(item.alias), 1)
289
+ ]),
290
+ vue.createElementVNode("div", _hoisted_7, [
291
+ vue.createVNode(vue.unref(webVue.Button), {
292
+ type: "primary",
293
+ size: "mini",
294
+ shape: "circle",
295
+ onClick: ($event) => removeUserSelected(index)
296
+ }, {
297
+ default: vue.withCtx(() => [
298
+ vue.createVNode(vue.unref(icon.IconDelete))
299
+ ]),
300
+ _: 2
301
+ }, 1032, ["onClick"])
302
+ ])
303
+ ]);
304
+ }), 128))
305
+ ]),
306
+ _: 1
307
+ })
308
+ ])
194
309
  ])
195
310
  ]),
196
311
  _: 1