bm-admin-ui 1.0.40-alpha → 1.0.41-alpha
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/es/components/breadcrumb/index.d.ts +162 -0
- package/es/components/breadcrumb/index.js +158 -0
- package/es/components/breadcrumb/src/breadcrumb.vue.d.ts +161 -0
- package/es/components/button/index.d.ts +303 -1
- package/es/components/editor/index.d.ts +305 -0
- package/es/components/editor/index.js +12543 -0
- package/es/components/editor/src/editor.vue.d.ts +304 -0
- package/es/components/editor/src/props.d.ts +31 -0
- package/es/components/feedback/index.d.ts +1028 -2
- package/es/components/float-table/index.d.ts +68 -1
- package/es/components/flow-designer/index.d.ts +5 -1
- package/es/components/form-create/index.js +77 -156
- package/es/components/form-designer/index.js +33 -131
- package/es/components/index.d.ts +2 -0
- package/es/components/index.js +2 -0
- package/es/components/input-tags-display/index.d.ts +138 -1
- package/es/components/input-tags-display/src/input-tags-display.vue.d.ts +1 -1
- package/es/components/over-tooltips/index.d.ts +33 -1
- package/es/components/search-filter/index.d.ts +233 -1
- package/es/components/search-filter/src/search-filter.vue.d.ts +3 -3
- package/es/components/select-all/index.d.ts +752 -1
- package/es/components/select-all/src/selectAll.vue.d.ts +5 -5
- package/es/components/shops-filter/index.d.ts +97 -1
- package/es/components/shops-filter/src/shops-filter.vue.d.ts +1 -1
- package/es/components/staffs-selector/index.d.ts +1095 -1
- package/es/components/staffs-selector/index.js +535 -505
- package/es/components/staffs-selector/src/action.d.ts +66 -0
- package/es/components/staffs-selector/src/multipleCmp.vue.d.ts +11 -49
- package/es/components/staffs-selector/src/staffs-selector.vue.d.ts +998 -10
- package/es/components/staffs-selector/src/variedCmp.vue.d.ts +18 -11
- package/es/components/timeline/index.d.ts +111 -2
- package/es/components/upload/index.d.ts +139 -2
- package/es/components/upload/index.js +207 -170
- package/es/components/upload/src/props.d.ts +50 -0
- package/es/components/upload/src/upload.vue.d.ts +44 -11
- package/es/utils/bm-admin-ui-resolver.d.ts +1 -3
- package/es/utils/bm-admin-ui-resolver.js +1 -1
- package/es/utils/with-install.d.ts +7 -1
- package/es/utils/with-install.js +1 -0
- package/index.esm.js +81188 -71499
- package/index.js +81186 -71495
- package/lib/components/breadcrumb/index.d.ts +162 -0
- package/lib/components/breadcrumb/index.js +168 -0
- package/lib/components/breadcrumb/src/breadcrumb.vue.d.ts +161 -0
- package/lib/components/button/index.d.ts +303 -1
- package/lib/components/editor/index.d.ts +305 -0
- package/lib/components/editor/index.js +12548 -0
- package/lib/components/editor/src/editor.vue.d.ts +304 -0
- package/lib/components/editor/src/props.d.ts +31 -0
- package/lib/components/feedback/index.d.ts +1028 -2
- package/lib/components/float-table/index.d.ts +68 -1
- package/lib/components/flow-designer/index.d.ts +5 -1
- package/lib/components/form-create/index.js +76 -155
- package/lib/components/form-designer/index.js +32 -130
- package/lib/components/index.d.ts +2 -0
- package/lib/components/index.js +14 -0
- package/lib/components/input-tags-display/index.d.ts +138 -1
- package/lib/components/input-tags-display/src/input-tags-display.vue.d.ts +1 -1
- package/lib/components/over-tooltips/index.d.ts +33 -1
- package/lib/components/search-filter/index.d.ts +233 -1
- package/lib/components/search-filter/src/search-filter.vue.d.ts +3 -3
- package/lib/components/select-all/index.d.ts +752 -1
- package/lib/components/select-all/src/selectAll.vue.d.ts +5 -5
- package/lib/components/shops-filter/index.d.ts +97 -1
- package/lib/components/shops-filter/src/shops-filter.vue.d.ts +1 -1
- package/lib/components/staffs-selector/index.d.ts +1095 -1
- package/lib/components/staffs-selector/index.js +536 -506
- package/lib/components/staffs-selector/src/action.d.ts +66 -0
- package/lib/components/staffs-selector/src/multipleCmp.vue.d.ts +11 -49
- package/lib/components/staffs-selector/src/staffs-selector.vue.d.ts +998 -10
- package/lib/components/staffs-selector/src/variedCmp.vue.d.ts +18 -11
- package/lib/components/timeline/index.d.ts +111 -2
- package/lib/components/upload/index.d.ts +139 -2
- package/lib/components/upload/index.js +205 -168
- package/lib/components/upload/src/props.d.ts +50 -0
- package/lib/components/upload/src/upload.vue.d.ts +44 -11
- package/lib/utils/bm-admin-ui-resolver.d.ts +1 -3
- package/lib/utils/bm-admin-ui-resolver.js +1 -1
- package/lib/utils/with-install.d.ts +7 -1
- package/lib/utils/with-install.js +1 -0
- package/package.json +2 -2
- package/theme-chalk/breadcrumb.css +1 -0
- package/theme-chalk/editor.css +16 -0
- package/theme-chalk/form-create.css +1 -1
- package/theme-chalk/index.css +16 -1
- package/theme-chalk/staffs-selector.css +1 -1
- package/theme-chalk/upload.css +1 -1
- package/types/components/breadcrumb/index.d.ts +162 -0
- package/types/components/breadcrumb/src/breadcrumb.vue.d.ts +161 -0
- package/types/components/button/index.d.ts +303 -1
- package/types/components/editor/index.d.ts +305 -0
- package/types/components/editor/src/editor.vue.d.ts +304 -0
- package/types/components/editor/src/props.d.ts +31 -0
- package/types/components/feedback/index.d.ts +1028 -2
- package/types/components/float-table/index.d.ts +68 -1
- package/types/components/flow-designer/index.d.ts +5 -1
- package/types/components/index.d.ts +2 -0
- package/types/components/input-tags-display/index.d.ts +138 -1
- package/types/components/input-tags-display/src/input-tags-display.vue.d.ts +1 -1
- package/types/components/over-tooltips/index.d.ts +33 -1
- package/types/components/search-filter/index.d.ts +233 -1
- package/types/components/search-filter/src/search-filter.vue.d.ts +3 -3
- package/types/components/select-all/index.d.ts +752 -1
- package/types/components/select-all/src/selectAll.vue.d.ts +5 -5
- package/types/components/shops-filter/index.d.ts +97 -1
- package/types/components/shops-filter/src/shops-filter.vue.d.ts +1 -1
- package/types/components/staffs-selector/index.d.ts +1095 -1
- package/types/components/staffs-selector/src/action.d.ts +66 -0
- package/types/components/staffs-selector/src/multipleCmp.vue.d.ts +11 -49
- package/types/components/staffs-selector/src/staffs-selector.vue.d.ts +998 -10
- package/types/components/staffs-selector/src/variedCmp.vue.d.ts +18 -11
- package/types/components/timeline/index.d.ts +111 -2
- package/types/components/upload/index.d.ts +139 -2
- package/types/components/upload/src/props.d.ts +50 -0
- package/types/components/upload/src/upload.vue.d.ts +44 -11
- package/types/utils/bm-admin-ui-resolver.d.ts +1 -3
- package/types/utils/with-install.d.ts +7 -1
|
@@ -1,13 +1,83 @@
|
|
|
1
1
|
import { withInstall } from 'bm-admin-ui/es/utils/with-install';
|
|
2
|
+
import { readonly, ref, reactive, defineComponent, watch, toRefs, resolveComponent, openBlock, createElementBlock, createElementVNode, createVNode, withCtx, Fragment, withDirectives, createTextVNode, vShow, renderList, toDisplayString, createBlock, createCommentVNode, h, computed, normalizeClass, withModifiers, unref } from 'vue';
|
|
2
3
|
import AModal from 'ant-design-vue/lib/modal';
|
|
3
|
-
import {
|
|
4
|
-
import { CloseCircleFilled, SearchOutlined } from '@ant-design/icons-vue';
|
|
4
|
+
import { SearchOutlined, LoadingOutlined, CloseCircleFilled } from '@ant-design/icons-vue';
|
|
5
5
|
import Empty from 'ant-design-vue/lib/empty';
|
|
6
|
-
import AInput from 'ant-design-vue/lib/input';
|
|
7
6
|
import Checkbox from 'ant-design-vue/lib/checkbox';
|
|
8
|
-
import
|
|
7
|
+
import message from 'ant-design-vue/lib/message';
|
|
8
|
+
import AInput from 'ant-design-vue/lib/input';
|
|
9
9
|
import ARadio, { Group } from 'ant-design-vue/lib/radio';
|
|
10
10
|
|
|
11
|
+
const MODE = {
|
|
12
|
+
RADIO: 'radio',
|
|
13
|
+
MULTIPLE: 'multiple',
|
|
14
|
+
VARIED: 'varied',
|
|
15
|
+
};
|
|
16
|
+
const selectProps = {
|
|
17
|
+
visible: {
|
|
18
|
+
type: Boolean,
|
|
19
|
+
default: false,
|
|
20
|
+
},
|
|
21
|
+
mode: {
|
|
22
|
+
type: String,
|
|
23
|
+
default: MODE.MULTIPLE,
|
|
24
|
+
},
|
|
25
|
+
limit: {
|
|
26
|
+
type: Number,
|
|
27
|
+
default: 0,
|
|
28
|
+
},
|
|
29
|
+
title: {
|
|
30
|
+
type: String,
|
|
31
|
+
default: '人员选择器',
|
|
32
|
+
},
|
|
33
|
+
load: {
|
|
34
|
+
type: Function,
|
|
35
|
+
default: () => {
|
|
36
|
+
return Promise.resolve([]);
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
select: {
|
|
40
|
+
type: Array || Object,
|
|
41
|
+
defualt: () => [],
|
|
42
|
+
},
|
|
43
|
+
forceStatic: {
|
|
44
|
+
type: Boolean,
|
|
45
|
+
default: false,
|
|
46
|
+
},
|
|
47
|
+
immediateFetch: {
|
|
48
|
+
type: Boolean,
|
|
49
|
+
default: false,
|
|
50
|
+
},
|
|
51
|
+
showCount: {
|
|
52
|
+
type: Boolean,
|
|
53
|
+
default: true,
|
|
54
|
+
},
|
|
55
|
+
unitStr: {
|
|
56
|
+
type: String,
|
|
57
|
+
default: '人',
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
readonly([
|
|
61
|
+
{ title: '成员', key: 0, paramStr: 'staff' },
|
|
62
|
+
{ title: '部门', key: 1, paramStr: 'department' },
|
|
63
|
+
{ title: '工作组', key: 2, paramStr: 'group' },
|
|
64
|
+
{ title: '店铺', key: 3, paramStr: 'shop' },
|
|
65
|
+
]);
|
|
66
|
+
ref('');
|
|
67
|
+
const selectState = reactive({
|
|
68
|
+
multipleChecked: {},
|
|
69
|
+
departmentChecked: [],
|
|
70
|
+
multipDepartment: [],
|
|
71
|
+
staffsChecked: {},
|
|
72
|
+
shopChecked: {},
|
|
73
|
+
groupChecked: {},
|
|
74
|
+
dataMap: new Map(),
|
|
75
|
+
curlistKeys: new Set(),
|
|
76
|
+
activeKey: 0,
|
|
77
|
+
});
|
|
78
|
+
const list = ref([]);
|
|
79
|
+
const departNative = ref([]);
|
|
80
|
+
|
|
11
81
|
var _export_sfc = (sfc, props) => {
|
|
12
82
|
const target = sfc.__vccOpts || sfc;
|
|
13
83
|
for (const [key, val] of props) {
|
|
@@ -17,46 +87,19 @@ var _export_sfc = (sfc, props) => {
|
|
|
17
87
|
};
|
|
18
88
|
|
|
19
89
|
const _sfc_main$3 = defineComponent({
|
|
20
|
-
components: {
|
|
21
|
-
CloseCircleFilled,
|
|
22
|
-
SearchOutlined,
|
|
23
|
-
Empty,
|
|
24
|
-
AInput,
|
|
25
|
-
Checkbox,
|
|
26
|
-
ATree
|
|
27
|
-
},
|
|
90
|
+
components: { SearchOutlined, Checkbox, Empty },
|
|
28
91
|
props: {
|
|
29
92
|
limit: {
|
|
30
93
|
type: Number,
|
|
31
94
|
default: 0
|
|
32
95
|
},
|
|
33
|
-
list: {
|
|
34
|
-
type: Array,
|
|
35
|
-
default: () => []
|
|
36
|
-
},
|
|
37
96
|
selected: {
|
|
38
97
|
type: Array,
|
|
39
98
|
default: () => []
|
|
40
99
|
},
|
|
41
|
-
dataMap: {
|
|
42
|
-
type: Map,
|
|
43
|
-
default: () => /* @__PURE__ */ new Map()
|
|
44
|
-
},
|
|
45
100
|
isTree: {
|
|
46
101
|
type: Boolean,
|
|
47
102
|
default: false
|
|
48
|
-
},
|
|
49
|
-
curlistKeys: {
|
|
50
|
-
type: Set,
|
|
51
|
-
default: () => /* @__PURE__ */ new Set()
|
|
52
|
-
},
|
|
53
|
-
showCount: {
|
|
54
|
-
type: Boolean,
|
|
55
|
-
default: true
|
|
56
|
-
},
|
|
57
|
-
unitStr: {
|
|
58
|
-
type: String,
|
|
59
|
-
default: "\u4EBA"
|
|
60
103
|
}
|
|
61
104
|
},
|
|
62
105
|
emits: ["fetchList", "update:selected"],
|
|
@@ -66,18 +109,16 @@ const _sfc_main$3 = defineComponent({
|
|
|
66
109
|
selectAll: false,
|
|
67
110
|
indeterminate: false,
|
|
68
111
|
emptyPic: Empty.PRESENTED_IMAGE_SIMPLE,
|
|
69
|
-
|
|
70
|
-
isFulfill: false,
|
|
71
|
-
departmentChecked: {}
|
|
112
|
+
isFulfill: false
|
|
72
113
|
});
|
|
73
114
|
const methods = {
|
|
74
115
|
changeAllOption() {
|
|
75
116
|
let status = state.selectAll;
|
|
76
117
|
let length = props.selected.length;
|
|
77
|
-
|
|
118
|
+
list.value.forEach((item) => {
|
|
78
119
|
if (status && props.limit > 0 && length++ >= props.limit)
|
|
79
120
|
return;
|
|
80
|
-
|
|
121
|
+
selectState.multipleChecked[item.key] = status;
|
|
81
122
|
});
|
|
82
123
|
},
|
|
83
124
|
search() {
|
|
@@ -87,8 +128,8 @@ const _sfc_main$3 = defineComponent({
|
|
|
87
128
|
setState() {
|
|
88
129
|
let indeterminate = false;
|
|
89
130
|
let selectAll = true;
|
|
90
|
-
|
|
91
|
-
if (!
|
|
131
|
+
list.value.forEach((item) => {
|
|
132
|
+
if (!selectState.multipleChecked[item.key]) {
|
|
92
133
|
selectAll = false;
|
|
93
134
|
} else {
|
|
94
135
|
indeterminate = true;
|
|
@@ -96,88 +137,68 @@ const _sfc_main$3 = defineComponent({
|
|
|
96
137
|
});
|
|
97
138
|
state.selectAll = selectAll;
|
|
98
139
|
state.indeterminate = selectAll ? false : indeterminate;
|
|
99
|
-
},
|
|
100
|
-
deleteOption(key) {
|
|
101
|
-
if (props.isTree) {
|
|
102
|
-
let list = [].concat(state.departmentChecked);
|
|
103
|
-
let result = [];
|
|
104
|
-
list.forEach((item) => {
|
|
105
|
-
if (!(item === key || props.dataMap.get(item) && key === props.dataMap.get(item)["parent"])) {
|
|
106
|
-
result.push(item);
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
state.departmentChecked = Array.from(new Set(result));
|
|
110
|
-
} else {
|
|
111
|
-
state.listChecked[key] = false;
|
|
112
|
-
}
|
|
113
|
-
},
|
|
114
|
-
getSelectName(key) {
|
|
115
|
-
let data = props.dataMap.get(String(key)) || null;
|
|
116
|
-
return data ? data.title : "\u672A\u77E5";
|
|
117
140
|
}
|
|
118
141
|
};
|
|
119
142
|
watch(
|
|
120
|
-
() =>
|
|
143
|
+
() => selectState.multipleChecked,
|
|
121
144
|
() => {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
145
|
+
if (props.limit && props.limit > 0) {
|
|
146
|
+
let length = 0;
|
|
147
|
+
for (let key in selectState.multipleChecked) {
|
|
148
|
+
if (selectState.multipleChecked[key])
|
|
149
|
+
length++;
|
|
150
|
+
}
|
|
151
|
+
state.isFulfill = length >= props.limit;
|
|
125
152
|
}
|
|
126
|
-
if (props.limit > 0 && list.length >= props.limit)
|
|
127
|
-
state.isFulfill = true;
|
|
128
|
-
else
|
|
129
|
-
state.isFulfill = false;
|
|
130
153
|
methods.setState();
|
|
131
|
-
emit("update:selected", list);
|
|
132
154
|
},
|
|
133
155
|
{ deep: true }
|
|
134
156
|
);
|
|
135
157
|
watch(
|
|
136
|
-
() =>
|
|
158
|
+
() => list,
|
|
137
159
|
() => {
|
|
138
|
-
|
|
139
|
-
let curlistKeys = props.curlistKeys;
|
|
140
|
-
let hadselected = new Set(props.selected);
|
|
141
|
-
let curselect = new Set(state.departmentChecked);
|
|
142
|
-
for (let key of hadselected) {
|
|
143
|
-
if (curlistKeys.has(key) && (!curselect.has(key) || curselect.has(key) && curselect.has(flatMap.get(key)["parent"]))) {
|
|
144
|
-
hadselected.delete(key);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
for (let key of curselect) {
|
|
148
|
-
let obj = flatMap.get(key);
|
|
149
|
-
if (obj && !curselect.has(obj["parent"])) {
|
|
150
|
-
hadselected.add(key);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
emit("update:selected", Array.from(hadselected));
|
|
160
|
+
!props.isTree && methods.setState();
|
|
154
161
|
},
|
|
155
162
|
{ deep: true }
|
|
156
163
|
);
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
164
|
+
function changeTreeCheck(checkedKeys) {
|
|
165
|
+
let flatMap = selectState.dataMap;
|
|
166
|
+
let curlistKeys = selectState.curlistKeys;
|
|
167
|
+
let hadselected = new Set(selectState.multipDepartment);
|
|
168
|
+
let curselect = new Set(checkedKeys);
|
|
169
|
+
for (let key of hadselected) {
|
|
170
|
+
if (curlistKeys.has(String(key)) && (!curselect.has(String(key)) || curselect.has(String(key)) && curselect.has(flatMap.get(String(key))["parent"]))) {
|
|
171
|
+
hadselected.delete(key);
|
|
172
|
+
}
|
|
161
173
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
}
|
|
168
|
-
|
|
174
|
+
for (let key of curselect) {
|
|
175
|
+
let obj = flatMap.get(String(key));
|
|
176
|
+
if (obj && !curselect.has(obj["parent"])) {
|
|
177
|
+
hadselected.add(String(key));
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
let arr = Array.from(hadselected) || [];
|
|
181
|
+
if (props.limit && props.limit > 0 && arr.length > props.limit) {
|
|
182
|
+
message.error("\u52FE\u9009\u540E\u5C06\u8D85\u8FC7\u4EBA\u5458\u9650\u5236");
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
selectState.multipDepartment = Array.from(hadselected) || [];
|
|
186
|
+
}
|
|
169
187
|
return {
|
|
188
|
+
changeTreeCheck,
|
|
170
189
|
...toRefs(state),
|
|
190
|
+
...toRefs(selectState),
|
|
191
|
+
list,
|
|
171
192
|
...methods
|
|
172
193
|
};
|
|
173
194
|
}
|
|
174
195
|
});
|
|
175
196
|
const _hoisted_1$3 = { class: "multiple-selector" };
|
|
176
|
-
const _hoisted_2$
|
|
177
|
-
const _hoisted_3$
|
|
178
|
-
const _hoisted_4$
|
|
179
|
-
const _hoisted_5$
|
|
180
|
-
const _hoisted_6$
|
|
197
|
+
const _hoisted_2$3 = { class: "__selector-modal-panel" };
|
|
198
|
+
const _hoisted_3$3 = { class: "__search-panel" };
|
|
199
|
+
const _hoisted_4$3 = { class: "__selector-modal-options" };
|
|
200
|
+
const _hoisted_5$3 = { class: "__selector-modal-options-item fixed-option" };
|
|
201
|
+
const _hoisted_6$2 = { class: "department-option-item" };
|
|
181
202
|
const _hoisted_7$1 = {
|
|
182
203
|
key: 0,
|
|
183
204
|
class: "department-desc"
|
|
@@ -188,27 +209,15 @@ const _hoisted_8$1 = {
|
|
|
188
209
|
style: { "height": "280px" }
|
|
189
210
|
};
|
|
190
211
|
const _hoisted_9$1 = { style: { "color": "#9393a3", "font-size": "12px", "font-weight": "400" } };
|
|
191
|
-
|
|
192
|
-
const _hoisted_11$1 = {
|
|
193
|
-
key: 0,
|
|
194
|
-
class: "__chosen-panel-tip"
|
|
195
|
-
};
|
|
196
|
-
const _hoisted_12$1 = {
|
|
197
|
-
key: 0,
|
|
198
|
-
class: "__limit-tip"
|
|
199
|
-
};
|
|
200
|
-
const _hoisted_13$1 = { class: "__chosen-panel-list" };
|
|
201
|
-
const _hoisted_14$1 = { class: "__tiem-title" };
|
|
202
|
-
function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
212
|
+
function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
203
213
|
const _component_search_outlined = resolveComponent("search-outlined");
|
|
204
214
|
const _component_AInput = resolveComponent("AInput");
|
|
205
215
|
const _component_Checkbox = resolveComponent("Checkbox");
|
|
206
216
|
const _component_ATree = resolveComponent("ATree");
|
|
207
217
|
const _component_Empty = resolveComponent("Empty");
|
|
208
|
-
const _component_CloseCircleFilled = resolveComponent("CloseCircleFilled");
|
|
209
218
|
return openBlock(), createElementBlock("div", _hoisted_1$3, [
|
|
210
|
-
createElementVNode("div", _hoisted_2$
|
|
211
|
-
createElementVNode("div", _hoisted_3$
|
|
219
|
+
createElementVNode("div", _hoisted_2$3, [
|
|
220
|
+
createElementVNode("div", _hoisted_3$3, [
|
|
212
221
|
createVNode(_component_AInput, {
|
|
213
222
|
value: _ctx.searchVal,
|
|
214
223
|
"onUpdate:value": _cache[0] || (_cache[0] = ($event) => _ctx.searchVal = $event),
|
|
@@ -220,9 +229,9 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
220
229
|
]),
|
|
221
230
|
_: 1
|
|
222
231
|
}, 8, ["value", "onChange"]),
|
|
223
|
-
createElementVNode("div", _hoisted_4$
|
|
232
|
+
createElementVNode("div", _hoisted_4$3, [
|
|
224
233
|
!_ctx.isTree ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
225
|
-
createElementVNode("div", _hoisted_5$
|
|
234
|
+
createElementVNode("div", _hoisted_5$3, [
|
|
226
235
|
withDirectives(createVNode(_component_Checkbox, {
|
|
227
236
|
checked: _ctx.selectAll,
|
|
228
237
|
"onUpdate:checked": _cache[1] || (_cache[1] = ($event) => _ctx.selectAll = $event),
|
|
@@ -243,8 +252,8 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
243
252
|
class: "__selector-modal-options-item"
|
|
244
253
|
}, [
|
|
245
254
|
createVNode(_component_Checkbox, {
|
|
246
|
-
checked: _ctx.
|
|
247
|
-
"onUpdate:checked": ($event) => _ctx.
|
|
255
|
+
checked: _ctx.multipleChecked[item.key],
|
|
256
|
+
"onUpdate:checked": ($event) => _ctx.multipleChecked[item.key] = $event,
|
|
248
257
|
class: "__selector-modal-option-check",
|
|
249
258
|
disabled: _ctx.isFulfill
|
|
250
259
|
}, {
|
|
@@ -257,19 +266,19 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
257
266
|
}), 128))
|
|
258
267
|
], 64)) : _ctx.isTree ? (openBlock(), createBlock(_component_ATree, {
|
|
259
268
|
key: 1,
|
|
260
|
-
|
|
261
|
-
"onUpdate:checkedKeys": _cache[2] || (_cache[2] = ($event) => _ctx.departmentChecked = $event),
|
|
269
|
+
"checked-keys": _ctx.multipDepartment,
|
|
262
270
|
checkable: "",
|
|
263
|
-
"tree-data": _ctx.list
|
|
271
|
+
"tree-data": _ctx.list,
|
|
272
|
+
onCheck: _ctx.changeTreeCheck
|
|
264
273
|
}, {
|
|
265
|
-
title: withCtx(({ title, description }) => [
|
|
266
|
-
createElementVNode("div", _hoisted_6$
|
|
267
|
-
createElementVNode("span", null, toDisplayString(title), 1),
|
|
274
|
+
title: withCtx(({ title, key, description }) => [
|
|
275
|
+
createElementVNode("div", _hoisted_6$2, [
|
|
276
|
+
createElementVNode("span", null, toDisplayString(title) + toDisplayString(key ? `(${key})` : ""), 1),
|
|
268
277
|
description ? (openBlock(), createElementBlock("p", _hoisted_7$1, toDisplayString(description), 1)) : createCommentVNode("v-if", true)
|
|
269
278
|
])
|
|
270
279
|
]),
|
|
271
280
|
_: 1
|
|
272
|
-
}, 8, ["
|
|
281
|
+
}, 8, ["checked-keys", "tree-data", "onCheck"])) : createCommentVNode("v-if", true),
|
|
273
282
|
_ctx.list && !_ctx.list.length ? (openBlock(), createElementBlock("div", _hoisted_8$1, [
|
|
274
283
|
createVNode(_component_Empty, { image: _ctx.emptyPic }, {
|
|
275
284
|
description: withCtx(() => [
|
|
@@ -280,30 +289,10 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
280
289
|
])) : createCommentVNode("v-if", true)
|
|
281
290
|
])
|
|
282
291
|
])
|
|
283
|
-
]),
|
|
284
|
-
createElementVNode("div", _hoisted_10$1, [
|
|
285
|
-
_ctx.showCount ? (openBlock(), createElementBlock("div", _hoisted_11$1, [
|
|
286
|
-
createElementVNode("span", null, "\u5DF2\u9009\u62E9" + toDisplayString(_ctx.selected && _ctx.selected.length || 0) + toDisplayString(_ctx.$props.unitStr), 1),
|
|
287
|
-
_ctx.limit ? (openBlock(), createElementBlock("span", _hoisted_12$1, "\u6700\u591A\u9009\u62E9" + toDisplayString(_ctx.limit) + toDisplayString(_ctx.$props.unitStr), 1)) : createCommentVNode("v-if", true)
|
|
288
|
-
])) : createCommentVNode("v-if", true),
|
|
289
|
-
createElementVNode("div", _hoisted_13$1, [
|
|
290
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.selected, (item) => {
|
|
291
|
-
return openBlock(), createElementBlock("div", {
|
|
292
|
-
key: item + "checked",
|
|
293
|
-
class: "__chosen-panel-list-item"
|
|
294
|
-
}, [
|
|
295
|
-
createElementVNode("span", _hoisted_14$1, toDisplayString(_ctx.getSelectName(item)), 1),
|
|
296
|
-
createVNode(_component_CloseCircleFilled, {
|
|
297
|
-
style: { "color": "#ced1d9" },
|
|
298
|
-
onMousedown: withModifiers(($event) => _ctx.deleteOption(item), ["stop"])
|
|
299
|
-
}, null, 8, ["onMousedown"])
|
|
300
|
-
]);
|
|
301
|
-
}), 128))
|
|
302
|
-
])
|
|
303
292
|
])
|
|
304
293
|
]);
|
|
305
294
|
}
|
|
306
|
-
var multipleCmp = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$
|
|
295
|
+
var multipleCmp = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$2], ["__file", "multipleCmp.vue"]]);
|
|
307
296
|
|
|
308
297
|
const _sfc_main$2 = defineComponent({
|
|
309
298
|
name: "RadioCmp",
|
|
@@ -338,24 +327,24 @@ const _sfc_main$2 = defineComponent({
|
|
|
338
327
|
}
|
|
339
328
|
});
|
|
340
329
|
const _hoisted_1$2 = { class: "radio-selector-panel" };
|
|
341
|
-
const _hoisted_2$
|
|
342
|
-
const _hoisted_3$
|
|
330
|
+
const _hoisted_2$2 = { class: "__search-panel withoutpad" };
|
|
331
|
+
const _hoisted_3$2 = {
|
|
343
332
|
key: 0,
|
|
344
333
|
class: "__selector-modal-options __radio-panel"
|
|
345
334
|
};
|
|
346
|
-
const _hoisted_4$
|
|
335
|
+
const _hoisted_4$2 = {
|
|
347
336
|
key: 1,
|
|
348
337
|
class: "noData"
|
|
349
338
|
};
|
|
350
|
-
const _hoisted_5$
|
|
351
|
-
function _sfc_render$
|
|
339
|
+
const _hoisted_5$2 = { style: { "color": "#9393a3", "font-size": "12px", "font-weight": "400" } };
|
|
340
|
+
function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
352
341
|
const _component_search_outlined = resolveComponent("search-outlined");
|
|
353
342
|
const _component_a_input = resolveComponent("a-input");
|
|
354
343
|
const _component_ARadio = resolveComponent("ARadio");
|
|
355
344
|
const _component_ARadioGroup = resolveComponent("ARadioGroup");
|
|
356
345
|
const _component_Empty = resolveComponent("Empty");
|
|
357
346
|
return openBlock(), createElementBlock("div", _hoisted_1$2, [
|
|
358
|
-
createElementVNode("div", _hoisted_2$
|
|
347
|
+
createElementVNode("div", _hoisted_2$2, [
|
|
359
348
|
createVNode(_component_a_input, {
|
|
360
349
|
value: _ctx.searchVal,
|
|
361
350
|
"onUpdate:value": _cache[0] || (_cache[0] = ($event) => _ctx.searchVal = $event),
|
|
@@ -367,7 +356,7 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
367
356
|
]),
|
|
368
357
|
_: 1
|
|
369
358
|
}, 8, ["value", "onChange"]),
|
|
370
|
-
_ctx.list && _ctx.list.length ? (openBlock(), createElementBlock("div", _hoisted_3$
|
|
359
|
+
_ctx.list && _ctx.list.length ? (openBlock(), createElementBlock("div", _hoisted_3$2, [
|
|
371
360
|
createVNode(_component_ARadioGroup, {
|
|
372
361
|
value: _ctx.selected,
|
|
373
362
|
style: { width: "100%" },
|
|
@@ -390,10 +379,10 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
390
379
|
_: 1
|
|
391
380
|
}, 8, ["value", "onChange"])
|
|
392
381
|
])) : createCommentVNode("v-if", true),
|
|
393
|
-
_ctx.list && !_ctx.list.length ? (openBlock(), createElementBlock("div", _hoisted_4$
|
|
382
|
+
_ctx.list && !_ctx.list.length ? (openBlock(), createElementBlock("div", _hoisted_4$2, [
|
|
394
383
|
createVNode(_component_Empty, { image: _ctx.emptyPic }, {
|
|
395
384
|
description: withCtx(() => [
|
|
396
|
-
createElementVNode("span", _hoisted_5$
|
|
385
|
+
createElementVNode("span", _hoisted_5$2, toDisplayString(!!_ctx.searchVal ? "\u6682\u65E0\u6570\u636E" : "\u8BF7\u5148\u641C\u7D22\u4EBA\u5458\u5173\u952E\u5B57"), 1)
|
|
397
386
|
]),
|
|
398
387
|
_: 1
|
|
399
388
|
}, 8, ["image"])
|
|
@@ -401,18 +390,9 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
401
390
|
])
|
|
402
391
|
]);
|
|
403
392
|
}
|
|
404
|
-
var radioCmp = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$
|
|
393
|
+
var radioCmp = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$1], ["__file", "radioCmp.vue"]]);
|
|
405
394
|
|
|
406
395
|
const _sfc_main$1 = defineComponent({
|
|
407
|
-
name: "VariedCmp",
|
|
408
|
-
components: {
|
|
409
|
-
CloseCircleFilled,
|
|
410
|
-
SearchOutlined,
|
|
411
|
-
AInput,
|
|
412
|
-
Checkbox,
|
|
413
|
-
ATree,
|
|
414
|
-
Empty
|
|
415
|
-
},
|
|
416
396
|
props: {
|
|
417
397
|
list: {
|
|
418
398
|
type: Array,
|
|
@@ -433,164 +413,83 @@ const _sfc_main$1 = defineComponent({
|
|
|
433
413
|
},
|
|
434
414
|
emits: ["fetchList", "update:selected"],
|
|
435
415
|
setup(props, { emit }) {
|
|
416
|
+
const indicator = h(LoadingOutlined, {
|
|
417
|
+
style: {
|
|
418
|
+
fontSize: "24px"
|
|
419
|
+
},
|
|
420
|
+
spin: true
|
|
421
|
+
});
|
|
422
|
+
const loading = ref(false);
|
|
436
423
|
const emptyPic = Empty.PRESENTED_IMAGE_SIMPLE;
|
|
437
|
-
const
|
|
424
|
+
const areas = readonly([
|
|
425
|
+
{ title: "\u6210\u5458", key: 0, paramStr: "staff" },
|
|
426
|
+
{ title: "\u90E8\u95E8", key: 1, paramStr: "department" },
|
|
427
|
+
{ title: "\u5DE5\u4F5C\u7EC4", key: 2, paramStr: "group" },
|
|
428
|
+
{ title: "\u5E97\u94FA", key: 3, paramStr: "shop" }
|
|
429
|
+
]);
|
|
438
430
|
const searchVal = ref("");
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
431
|
+
function changeArea(item) {
|
|
432
|
+
selectState.activeKey = item.key;
|
|
433
|
+
searchVal.value = "";
|
|
434
|
+
if (selectState.activeKey === 1) {
|
|
435
|
+
search();
|
|
436
|
+
} else
|
|
437
|
+
emit("fetchList", false);
|
|
438
|
+
}
|
|
439
|
+
function search() {
|
|
440
|
+
emit("fetchList", {
|
|
441
|
+
searchVal: searchVal.value,
|
|
442
|
+
area: areas[selectState.activeKey].paramStr
|
|
443
|
+
});
|
|
444
|
+
}
|
|
443
445
|
const inputPlaceHolder = computed(() => {
|
|
444
|
-
if (activeKey
|
|
446
|
+
if (selectState.activeKey === 1) {
|
|
445
447
|
return "\u8BF7\u8F93\u5165\u90E8\u95E8\u641C\u7D22";
|
|
446
|
-
} else if (activeKey
|
|
448
|
+
} else if (selectState.activeKey === 2) {
|
|
447
449
|
return "\u8BF7\u8F93\u5165\u5DE5\u4F5C\u7EC4\u641C\u7D22";
|
|
448
|
-
} else if (activeKey
|
|
450
|
+
} else if (selectState.activeKey === 3) {
|
|
449
451
|
return "\u8BF7\u8F93\u5165\u5E97\u94FA\u641C\u7D22";
|
|
450
452
|
}
|
|
451
453
|
return "\u8BF7\u8F93\u5165\u4EBA\u540D\u641C\u7D22";
|
|
452
454
|
});
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
let object = new Object();
|
|
462
|
-
if (object.hasOwnProperty.call(staffsChecked.value, key)) {
|
|
463
|
-
staffsChecked.value[key] = false;
|
|
464
|
-
} else if (object.hasOwnProperty.call(shopChecked.value, key)) {
|
|
465
|
-
shopChecked.value[key] = false;
|
|
466
|
-
} else if (object.hasOwnProperty.call(groupChecked.value, key)) {
|
|
467
|
-
groupChecked.value[key] = false;
|
|
468
|
-
} else {
|
|
469
|
-
let list = [].concat(departmentChecked.value);
|
|
470
|
-
let result = [];
|
|
471
|
-
list.forEach((item) => {
|
|
472
|
-
if (!(item === key || props.dataMap.get(item) && key === props.dataMap.get(item)["parent"])) {
|
|
473
|
-
result.push(item);
|
|
474
|
-
}
|
|
475
|
-
});
|
|
476
|
-
departmentChecked.value = Array.from(new Set(result));
|
|
455
|
+
function changeTreeCheck(checkedKeys) {
|
|
456
|
+
let flatMap = selectState.dataMap;
|
|
457
|
+
let curlistKeys = selectState.curlistKeys;
|
|
458
|
+
let hadselected = new Set(selectState.departmentChecked);
|
|
459
|
+
let curselect = new Set(checkedKeys);
|
|
460
|
+
for (let key of hadselected) {
|
|
461
|
+
if (curlistKeys.has(String(key)) && (!curselect.has(String(key)) || curselect.has(String(key)) && curselect.has(flatMap.get(String(key))["parent"]))) {
|
|
462
|
+
hadselected.delete(key);
|
|
477
463
|
}
|
|
478
|
-
},
|
|
479
|
-
changeArea(item) {
|
|
480
|
-
activeKey.value = item.key;
|
|
481
|
-
searchVal.value = "";
|
|
482
|
-
if (activeKey.value === 1) {
|
|
483
|
-
methods.search();
|
|
484
|
-
} else
|
|
485
|
-
emit("fetchList", false);
|
|
486
|
-
},
|
|
487
|
-
search() {
|
|
488
|
-
emit("fetchList", {
|
|
489
|
-
searchVal: searchVal.value,
|
|
490
|
-
area: areas[activeKey.value].paramStr
|
|
491
|
-
});
|
|
492
|
-
},
|
|
493
|
-
getSelectName(key) {
|
|
494
|
-
let data = props.dataMap.get(key) || null;
|
|
495
|
-
return data ? data.title : "\u672A\u77E5";
|
|
496
464
|
}
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
let flatMap = props.dataMap;
|
|
502
|
-
let curlistKeys = props.curlistKeys;
|
|
503
|
-
let hadselected = new Set(props.selected);
|
|
504
|
-
let curselect = new Set(departmentChecked.value);
|
|
505
|
-
for (let key of hadselected) {
|
|
506
|
-
if (curlistKeys.has(key) && (!curselect.has(key) || curselect.has(key) && curselect.has(flatMap.get(key)["parent"]))) {
|
|
507
|
-
hadselected.delete(key);
|
|
508
|
-
}
|
|
509
|
-
}
|
|
510
|
-
for (let key of curselect) {
|
|
511
|
-
let obj = flatMap.get(key);
|
|
512
|
-
if (obj && !curselect.has(obj["parent"])) {
|
|
513
|
-
hadselected.add(key);
|
|
514
|
-
}
|
|
515
|
-
}
|
|
516
|
-
emit("update:selected", Array.from(hadselected));
|
|
517
|
-
},
|
|
518
|
-
{ deep: true }
|
|
519
|
-
);
|
|
520
|
-
watch(
|
|
521
|
-
() => staffsChecked,
|
|
522
|
-
() => {
|
|
523
|
-
let set = new Set(props.selected.length ? props.selected : null);
|
|
524
|
-
for (let [key, value] of Object.entries(staffsChecked.value)) {
|
|
525
|
-
if (value) {
|
|
526
|
-
set.add(key);
|
|
527
|
-
} else {
|
|
528
|
-
set.has(key) && set.delete(key);
|
|
529
|
-
}
|
|
530
|
-
}
|
|
531
|
-
emit("update:selected", Array.from(set));
|
|
532
|
-
},
|
|
533
|
-
{ deep: true }
|
|
534
|
-
);
|
|
535
|
-
watch(
|
|
536
|
-
() => shopChecked,
|
|
537
|
-
() => {
|
|
538
|
-
let set = new Set(props.selected.length ? props.selected : null);
|
|
539
|
-
for (let [key, value] of Object.entries(shopChecked.value)) {
|
|
540
|
-
if (value) {
|
|
541
|
-
set.add(key);
|
|
542
|
-
} else {
|
|
543
|
-
set.has(key) && set.delete(key);
|
|
544
|
-
}
|
|
545
|
-
}
|
|
546
|
-
emit("update:selected", Array.from(set));
|
|
547
|
-
},
|
|
548
|
-
{ deep: true }
|
|
549
|
-
);
|
|
550
|
-
watch(
|
|
551
|
-
() => groupChecked,
|
|
552
|
-
() => {
|
|
553
|
-
let set = new Set(props.selected.length ? props.selected : null);
|
|
554
|
-
for (let [key, value] of Object.entries(groupChecked.value)) {
|
|
555
|
-
if (value) {
|
|
556
|
-
set.add(key);
|
|
557
|
-
} else {
|
|
558
|
-
set.has(key) && set.delete(key);
|
|
559
|
-
}
|
|
465
|
+
for (let key of curselect) {
|
|
466
|
+
let obj = flatMap.get(String(key));
|
|
467
|
+
if (obj && !curselect.has(obj["parent"])) {
|
|
468
|
+
hadselected.add(String(key));
|
|
560
469
|
}
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
);
|
|
565
|
-
onMounted(() => {
|
|
566
|
-
let list = props.selected;
|
|
567
|
-
list && list.forEach((key) => {
|
|
568
|
-
staffsChecked.value[key] = true;
|
|
569
|
-
groupChecked.value[key] = true;
|
|
570
|
-
shopChecked.value[key] = true;
|
|
571
|
-
departmentChecked.value.push(key);
|
|
572
|
-
});
|
|
573
|
-
});
|
|
470
|
+
}
|
|
471
|
+
selectState.departmentChecked = Array.from(hadselected) || [];
|
|
472
|
+
}
|
|
574
473
|
return {
|
|
474
|
+
indicator,
|
|
475
|
+
loading,
|
|
575
476
|
emptyPic,
|
|
576
|
-
|
|
477
|
+
areas,
|
|
577
478
|
searchVal,
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
departmentChecked,
|
|
581
|
-
shopChecked,
|
|
479
|
+
search,
|
|
480
|
+
changeArea,
|
|
582
481
|
inputPlaceHolder,
|
|
583
|
-
|
|
584
|
-
...
|
|
482
|
+
changeTreeCheck,
|
|
483
|
+
...toRefs(selectState)
|
|
585
484
|
};
|
|
586
485
|
}
|
|
587
486
|
});
|
|
588
487
|
const _hoisted_1$1 = { class: "varied-selector-panel" };
|
|
589
|
-
const _hoisted_2 = { class: "__selector-modal-panel-withGroup" };
|
|
590
|
-
const _hoisted_3 = { class: "varied-area-tabs" };
|
|
591
|
-
const _hoisted_4 = ["onClick"];
|
|
592
|
-
const _hoisted_5 = { class: "area-panel" };
|
|
593
|
-
const _hoisted_6 = {
|
|
488
|
+
const _hoisted_2$1 = { class: "__selector-modal-panel-withGroup" };
|
|
489
|
+
const _hoisted_3$1 = { class: "varied-area-tabs" };
|
|
490
|
+
const _hoisted_4$1 = ["onClick"];
|
|
491
|
+
const _hoisted_5$1 = { class: "area-panel" };
|
|
492
|
+
const _hoisted_6$1 = {
|
|
594
493
|
key: 0,
|
|
595
494
|
class: "noData"
|
|
596
495
|
};
|
|
@@ -601,7 +500,8 @@ const _hoisted_8 = {
|
|
|
601
500
|
};
|
|
602
501
|
const _hoisted_9 = {
|
|
603
502
|
key: 1,
|
|
604
|
-
class: "__selector-modal-options"
|
|
503
|
+
class: "__selector-modal-options",
|
|
504
|
+
style: { "overflow": "auto" }
|
|
605
505
|
};
|
|
606
506
|
const _hoisted_10 = { class: "department-option-item" };
|
|
607
507
|
const _hoisted_11 = {
|
|
@@ -616,25 +516,22 @@ const _hoisted_13 = {
|
|
|
616
516
|
key: 3,
|
|
617
517
|
class: "__selector-modal-options"
|
|
618
518
|
};
|
|
619
|
-
|
|
620
|
-
const _hoisted_15 = { class: "__chosen-panel-list" };
|
|
621
|
-
const _hoisted_16 = { class: "__tiem-title" };
|
|
622
|
-
function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
519
|
+
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
623
520
|
const _component_search_outlined = resolveComponent("search-outlined");
|
|
624
521
|
const _component_a_input = resolveComponent("a-input");
|
|
625
522
|
const _component_Empty = resolveComponent("Empty");
|
|
626
523
|
const _component_Checkbox = resolveComponent("Checkbox");
|
|
524
|
+
const _component_Spin = resolveComponent("Spin");
|
|
627
525
|
const _component_a_tree = resolveComponent("a-tree");
|
|
628
|
-
const _component_CloseCircleFilled = resolveComponent("CloseCircleFilled");
|
|
629
526
|
return openBlock(), createElementBlock("div", _hoisted_1$1, [
|
|
630
|
-
createElementVNode("div", _hoisted_2, [
|
|
631
|
-
createElementVNode("div", _hoisted_3, [
|
|
527
|
+
createElementVNode("div", _hoisted_2$1, [
|
|
528
|
+
createElementVNode("div", _hoisted_3$1, [
|
|
632
529
|
(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.areas, (item) => {
|
|
633
530
|
return openBlock(), createElementBlock("div", {
|
|
634
531
|
key: item.key,
|
|
635
532
|
class: normalizeClass(["area-tabs-item", { active: item.key === _ctx.activeKey }]),
|
|
636
533
|
onClick: withModifiers(($event) => _ctx.changeArea(item), ["stop"])
|
|
637
|
-
}, toDisplayString(item.title), 11, _hoisted_4);
|
|
534
|
+
}, toDisplayString(item.title), 11, _hoisted_4$1);
|
|
638
535
|
}), 128))
|
|
639
536
|
]),
|
|
640
537
|
createVNode(_component_a_input, {
|
|
@@ -648,8 +545,8 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
648
545
|
]),
|
|
649
546
|
_: 1
|
|
650
547
|
}, 8, ["value", "placeholder", "onChange"]),
|
|
651
|
-
createElementVNode("div", _hoisted_5, [
|
|
652
|
-
_ctx.list && !_ctx.list.length ? (openBlock(), createElementBlock("div", _hoisted_6, [
|
|
548
|
+
createElementVNode("div", _hoisted_5$1, [
|
|
549
|
+
_ctx.list && !_ctx.list.length ? (openBlock(), createElementBlock("div", _hoisted_6$1, [
|
|
653
550
|
createVNode(_component_Empty, { image: _ctx.emptyPic }, {
|
|
654
551
|
description: withCtx(() => [
|
|
655
552
|
createElementVNode("span", _hoisted_7, toDisplayString(!!_ctx.searchVal ? "\u6682\u65E0\u6570\u636E" : "\u8BF7\u5148\u641C\u7D22\u4EBA\u5458\u5173\u952E\u5B57"), 1)
|
|
@@ -676,12 +573,17 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
676
573
|
]);
|
|
677
574
|
}), 128))
|
|
678
575
|
])) : _ctx.activeKey === 1 ? (openBlock(), createElementBlock("div", _hoisted_9, [
|
|
576
|
+
createVNode(_component_Spin, {
|
|
577
|
+
indicator: _ctx.indicator,
|
|
578
|
+
spinning: _ctx.loading
|
|
579
|
+
}, null, 8, ["indicator", "spinning"]),
|
|
580
|
+
createCommentVNode(" "),
|
|
679
581
|
createVNode(_component_a_tree, {
|
|
680
|
-
|
|
681
|
-
"
|
|
682
|
-
"default-expand-all": _ctx.searchVal === "",
|
|
582
|
+
"checked-keys": _ctx.departmentChecked,
|
|
583
|
+
"default-expand-all": false,
|
|
683
584
|
checkable: "",
|
|
684
|
-
"tree-data": _ctx.list
|
|
585
|
+
"tree-data": _ctx.list,
|
|
586
|
+
onCheck: _ctx.changeTreeCheck
|
|
685
587
|
}, {
|
|
686
588
|
title: withCtx(({ title, description }) => [
|
|
687
589
|
createElementVNode("div", _hoisted_10, [
|
|
@@ -690,7 +592,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
690
592
|
])
|
|
691
593
|
]),
|
|
692
594
|
_: 1
|
|
693
|
-
}, 8, ["
|
|
595
|
+
}, 8, ["checked-keys", "tree-data", "onCheck"])
|
|
694
596
|
])) : _ctx.activeKey === 2 ? (openBlock(), createElementBlock("div", _hoisted_12, [
|
|
695
597
|
(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.list, (item) => {
|
|
696
598
|
return openBlock(), createElementBlock("div", {
|
|
@@ -730,214 +632,342 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
730
632
|
])) : createCommentVNode("v-if", true)
|
|
731
633
|
], 64))
|
|
732
634
|
])
|
|
733
|
-
]),
|
|
734
|
-
createElementVNode("div", _hoisted_14, [
|
|
735
|
-
createElementVNode("div", _hoisted_15, [
|
|
736
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.selected, (item) => {
|
|
737
|
-
return openBlock(), createElementBlock("div", {
|
|
738
|
-
key: item + "checked",
|
|
739
|
-
class: "__chosen-panel-list-item"
|
|
740
|
-
}, [
|
|
741
|
-
createElementVNode("span", _hoisted_16, toDisplayString(_ctx.getSelectName(item)), 1),
|
|
742
|
-
createVNode(_component_CloseCircleFilled, {
|
|
743
|
-
onMousedown: withModifiers(($event) => _ctx.deleteOption(item), ["stop"])
|
|
744
|
-
}, null, 8, ["onMousedown"])
|
|
745
|
-
]);
|
|
746
|
-
}), 128))
|
|
747
|
-
])
|
|
748
635
|
])
|
|
749
636
|
]);
|
|
750
637
|
}
|
|
751
|
-
var VariedCmp = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render
|
|
638
|
+
var VariedCmp = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render], ["__file", "variedCmp.vue"]]);
|
|
752
639
|
|
|
753
|
-
const
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
640
|
+
const _hoisted_1 = { class: "selector-content" };
|
|
641
|
+
const _hoisted_2 = {
|
|
642
|
+
key: 3,
|
|
643
|
+
class: "__selector-chosen-panel"
|
|
757
644
|
};
|
|
758
|
-
const
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
645
|
+
const _hoisted_3 = {
|
|
646
|
+
key: 0,
|
|
647
|
+
class: "__chosen-panel-tip"
|
|
648
|
+
};
|
|
649
|
+
const _hoisted_4 = {
|
|
650
|
+
key: 0,
|
|
651
|
+
class: "__limit-tip"
|
|
652
|
+
};
|
|
653
|
+
const _hoisted_5 = { class: "__chosen-panel-list" };
|
|
654
|
+
const _hoisted_6 = { class: "__tiem-title" };
|
|
655
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
656
|
+
__name: "staffs-selector",
|
|
657
|
+
props: selectProps,
|
|
658
|
+
emits: ["update:visible", "update:select", "change"],
|
|
659
|
+
setup(__props, { emit }) {
|
|
660
|
+
const props = __props;
|
|
661
|
+
const selected = ref([]);
|
|
662
|
+
const computeSelected = computed(() => {
|
|
663
|
+
let list2 = [];
|
|
664
|
+
if (props.mode === MODE.MULTIPLE) {
|
|
665
|
+
if (multipTree.value) {
|
|
666
|
+
return [...selectState.multipDepartment];
|
|
667
|
+
}
|
|
668
|
+
for (let [key, value] of Object.entries(selectState.multipleChecked)) {
|
|
669
|
+
value && list2.push(String(key));
|
|
670
|
+
}
|
|
671
|
+
return list2;
|
|
672
|
+
} else if (props.mode === MODE.VARIED) {
|
|
673
|
+
list2 = list2.concat(selectState.departmentChecked);
|
|
674
|
+
for (let [key, value] of Object.entries(selectState.staffsChecked)) {
|
|
675
|
+
value && list2.push(String(key));
|
|
676
|
+
}
|
|
677
|
+
for (let [key, value] of Object.entries(selectState.shopChecked)) {
|
|
678
|
+
value && list2.push(String(key));
|
|
679
|
+
}
|
|
680
|
+
for (let [key, value] of Object.entries(selectState.groupChecked)) {
|
|
681
|
+
value && list2.push(String(key));
|
|
682
|
+
}
|
|
683
|
+
return list2;
|
|
782
684
|
}
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
type: Boolean,
|
|
798
|
-
default: true
|
|
799
|
-
},
|
|
800
|
-
unitStr: {
|
|
801
|
-
type: String,
|
|
802
|
-
default: "\u4EBA"
|
|
685
|
+
return [];
|
|
686
|
+
});
|
|
687
|
+
const multipTree = ref(false);
|
|
688
|
+
const width = computed(() => {
|
|
689
|
+
if (props.mode === MODE.MULTIPLE) {
|
|
690
|
+
return 648;
|
|
691
|
+
} else if (props.mode === MODE.RADIO) {
|
|
692
|
+
return 480;
|
|
693
|
+
}
|
|
694
|
+
return 648;
|
|
695
|
+
});
|
|
696
|
+
function modalCancel() {
|
|
697
|
+
emit("update:visible", !props.visible);
|
|
698
|
+
list.value = [];
|
|
803
699
|
}
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
700
|
+
function isCurrentFetch(area) {
|
|
701
|
+
let activeKey = 0;
|
|
702
|
+
activeKey = area === "department" ? 1 : activeKey;
|
|
703
|
+
activeKey = area === "group" ? 2 : activeKey;
|
|
704
|
+
activeKey = area === "shop" ? 3 : activeKey;
|
|
705
|
+
return selectState.activeKey === activeKey;
|
|
706
|
+
}
|
|
707
|
+
function fetch(params) {
|
|
708
|
+
list.value = [];
|
|
709
|
+
if (typeof params !== "boolean") {
|
|
710
|
+
let isDepartTree = params.area === "department" || props.mode === MODE.MULTIPLE && multipTree.value;
|
|
711
|
+
if (isDepartTree && departNative.value.length) {
|
|
712
|
+
if (props.mode === MODE.VARIED && !params.searchVal || params.searchVal === "") {
|
|
713
|
+
list.value = isCurrentFetch(params.area || "") ? [...departNative.value] : [];
|
|
714
|
+
return;
|
|
715
|
+
} else {
|
|
716
|
+
let result = [];
|
|
717
|
+
let queues = [...departNative.value];
|
|
718
|
+
while (queues.length) {
|
|
719
|
+
let node = queues.shift();
|
|
720
|
+
if (node["title"] && node["title"].includes(params?.searchVal || "")) {
|
|
721
|
+
result.push({ ...node });
|
|
722
|
+
}
|
|
723
|
+
if (node.children)
|
|
724
|
+
queues.push(...node.children);
|
|
725
|
+
}
|
|
726
|
+
list.value = isCurrentFetch(params?.area || "") ? result : [];
|
|
727
|
+
return;
|
|
728
|
+
}
|
|
821
729
|
}
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
obj["parent"] = curnode && curnode.key || null;
|
|
837
|
-
return obj;
|
|
838
|
-
});
|
|
730
|
+
props.load(params).then((data) => {
|
|
731
|
+
if (data && data.length) {
|
|
732
|
+
if (params.area && params.area === "department") {
|
|
733
|
+
departNative.value = data;
|
|
734
|
+
fetch(params);
|
|
735
|
+
} else {
|
|
736
|
+
let result = data.map((item) => {
|
|
737
|
+
return item;
|
|
738
|
+
});
|
|
739
|
+
list.value = isCurrentFetch(params.area) ? result : [];
|
|
740
|
+
}
|
|
741
|
+
selectState.dataMap = flatListFunc(data);
|
|
742
|
+
} else {
|
|
743
|
+
list.value = [];
|
|
839
744
|
}
|
|
840
|
-
|
|
745
|
+
});
|
|
746
|
+
} else {
|
|
747
|
+
if (props.mode === MODE.MULTIPLE && multipTree.value) {
|
|
748
|
+
list.value = [...departNative.value];
|
|
841
749
|
}
|
|
842
|
-
state.multipTree = props.forceStatic ? false : treedata;
|
|
843
|
-
state.curlistKeys = curlistKeys;
|
|
844
|
-
return map;
|
|
845
|
-
},
|
|
846
|
-
summitSelect() {
|
|
847
|
-
if (["string", "number"].includes(typeof state.selected)) {
|
|
848
|
-
emit("update:select", [state.dataMap.get(state.selected)]);
|
|
849
|
-
} else if (state.selected instanceof Array) {
|
|
850
|
-
emit(
|
|
851
|
-
"update:select",
|
|
852
|
-
state.selected.map((item) => state.dataMap.get(item))
|
|
853
|
-
);
|
|
854
|
-
} else ;
|
|
855
|
-
state.list = [];
|
|
856
|
-
methods.modalCancel();
|
|
857
750
|
}
|
|
858
|
-
}
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
751
|
+
}
|
|
752
|
+
function flatListFunc(list2) {
|
|
753
|
+
let queue = [...list2];
|
|
754
|
+
let map = new Map(selectState.dataMap);
|
|
755
|
+
let Keys = /* @__PURE__ */ new Set();
|
|
756
|
+
let treedata = false;
|
|
757
|
+
while (queue.length) {
|
|
758
|
+
let curnode = queue.shift();
|
|
759
|
+
map.set(String(curnode.key), curnode);
|
|
760
|
+
Keys.add(String(curnode.key));
|
|
761
|
+
let children = curnode.children;
|
|
762
|
+
if (children) {
|
|
763
|
+
children = children.map((obj) => {
|
|
764
|
+
treedata = true;
|
|
765
|
+
obj["parent"] = curnode && curnode.key || null;
|
|
766
|
+
return obj;
|
|
767
|
+
});
|
|
870
768
|
}
|
|
871
|
-
|
|
872
|
-
}
|
|
873
|
-
|
|
769
|
+
queue = queue.concat(children || []);
|
|
770
|
+
}
|
|
771
|
+
multipTree.value = props.forceStatic ? false : treedata;
|
|
772
|
+
selectState.curlistKeys = Keys;
|
|
773
|
+
return map;
|
|
774
|
+
}
|
|
775
|
+
function findDataByKey(key) {
|
|
776
|
+
let data = selectState.dataMap.get(String(key));
|
|
777
|
+
if (!data) {
|
|
778
|
+
data = props.select.find(
|
|
779
|
+
(item) => String(item) === String(key) || String(item?.key) === String(key)
|
|
780
|
+
);
|
|
781
|
+
}
|
|
782
|
+
return data || "\u672A\u77E5\u6570\u636E";
|
|
783
|
+
}
|
|
784
|
+
function summitSelect() {
|
|
785
|
+
if (typeof selected.value === "string") {
|
|
786
|
+
let data = selectState.dataMap.get(String(selected.value));
|
|
787
|
+
emit("update:select", data);
|
|
788
|
+
emit("change", data);
|
|
789
|
+
} else if (props.mode === MODE.MULTIPLE) {
|
|
790
|
+
let arr = computeSelected.value.map((key) => findDataByKey(key));
|
|
791
|
+
emit("update:select", arr);
|
|
792
|
+
emit("change", arr);
|
|
793
|
+
} else if (props.mode === MODE.VARIED) {
|
|
794
|
+
let department = selectState.departmentChecked.map((key) => {
|
|
795
|
+
let data = findDataByKey(key);
|
|
796
|
+
return { ...data, area: "department" };
|
|
797
|
+
});
|
|
798
|
+
let group = [];
|
|
799
|
+
for (let key in selectState.groupChecked) {
|
|
800
|
+
let data = findDataByKey(key);
|
|
801
|
+
group.push({ ...data, area: "group" });
|
|
802
|
+
}
|
|
803
|
+
let shop = [];
|
|
804
|
+
for (let key in selectState.shopChecked) {
|
|
805
|
+
let data = findDataByKey(key);
|
|
806
|
+
shop.push({ ...data, area: "shop" });
|
|
807
|
+
}
|
|
808
|
+
let staff = [];
|
|
809
|
+
for (let key in selectState.staffsChecked) {
|
|
810
|
+
let data = findDataByKey(key);
|
|
811
|
+
staff.push({ ...data, area: "staff" });
|
|
812
|
+
}
|
|
813
|
+
let arr = [...department, ...group, ...shop, ...staff];
|
|
814
|
+
emit("update:select", arr);
|
|
815
|
+
emit("change", arr);
|
|
816
|
+
}
|
|
817
|
+
list.value = [];
|
|
818
|
+
modalCancel();
|
|
819
|
+
}
|
|
820
|
+
function getOptionName(key) {
|
|
821
|
+
let data = selectState.dataMap.get(String(key));
|
|
822
|
+
if (data && data.title)
|
|
823
|
+
return `${data.title}${data.key ? `(${data.key})` : ""}${data.description ? `-(${data.description})` : ""}`;
|
|
824
|
+
let arr = props.select;
|
|
825
|
+
arr = arr.length ? arr : [];
|
|
826
|
+
let had = arr.find(
|
|
827
|
+
(item) => String(item) === String(key) || String(item?.key) === String(key)
|
|
828
|
+
);
|
|
829
|
+
return had?.title ? `${had.title}${had.key ? `(${had.key})` : ""}${had.description ? `-(${had.description})` : ""}` : had;
|
|
830
|
+
}
|
|
831
|
+
function deleteOptions(key) {
|
|
832
|
+
if (props.mode === MODE.MULTIPLE) {
|
|
833
|
+
if (selectState.multipleChecked[String(key)]) {
|
|
834
|
+
selectState.multipleChecked[String(key)] = false;
|
|
835
|
+
} else {
|
|
836
|
+
let index = selectState.multipDepartment.findIndex(
|
|
837
|
+
(item) => String(item) === String(key)
|
|
838
|
+
);
|
|
839
|
+
index > -1 && selectState.multipDepartment.splice(index, 1);
|
|
840
|
+
}
|
|
841
|
+
} else if (props.mode === MODE.VARIED) {
|
|
842
|
+
if (selectState.staffsChecked[String(key)]) {
|
|
843
|
+
selectState.staffsChecked[String(key)] = false;
|
|
844
|
+
} else if (selectState.shopChecked[String(key)]) {
|
|
845
|
+
selectState.shopChecked[String(key)] = false;
|
|
846
|
+
} else if (selectState.groupChecked[String(key)]) {
|
|
847
|
+
selectState.groupChecked[String(key)] = false;
|
|
848
|
+
} else {
|
|
849
|
+
let index = selectState.departmentChecked.findIndex(
|
|
850
|
+
(item) => String(item) === String(key)
|
|
851
|
+
);
|
|
852
|
+
index > -1 && selectState.departmentChecked.splice(index, 1);
|
|
853
|
+
}
|
|
854
|
+
}
|
|
855
|
+
}
|
|
874
856
|
watch(
|
|
875
857
|
() => props.visible,
|
|
876
858
|
(val) => {
|
|
859
|
+
if (val) {
|
|
860
|
+
if (props.mode === "radio") {
|
|
861
|
+
selected.value = "";
|
|
862
|
+
} else {
|
|
863
|
+
let arr = props.select;
|
|
864
|
+
selected.value = arr.length ? arr.map((item) => String(item?.key)) : [];
|
|
865
|
+
if (props.mode === MODE.MULTIPLE) {
|
|
866
|
+
let multipleChecked = {};
|
|
867
|
+
arr.forEach(
|
|
868
|
+
(item) => multipleChecked[String(item?.key)] = true
|
|
869
|
+
);
|
|
870
|
+
selectState.multipleChecked = multipleChecked;
|
|
871
|
+
} else if (props.mode === MODE.VARIED) {
|
|
872
|
+
let department = [];
|
|
873
|
+
let shop = {};
|
|
874
|
+
let staff = {};
|
|
875
|
+
let group = {};
|
|
876
|
+
arr.forEach((item) => {
|
|
877
|
+
if (item["area"] && item["area"] === "department")
|
|
878
|
+
department.push(String(item?.key));
|
|
879
|
+
else if (item["area"] && item["area"] === "shop")
|
|
880
|
+
shop[String(item?.key)] = true;
|
|
881
|
+
else if (item["area"] && item["area"] === "staff")
|
|
882
|
+
staff[String(item?.key)] = true;
|
|
883
|
+
else if (item["area"] && item["area"] === "group")
|
|
884
|
+
group[String(item?.key)] = true;
|
|
885
|
+
});
|
|
886
|
+
selectState.departmentChecked = department;
|
|
887
|
+
selectState.shopChecked = shop;
|
|
888
|
+
selectState.staffsChecked = staff;
|
|
889
|
+
selectState.groupChecked = group;
|
|
890
|
+
}
|
|
891
|
+
}
|
|
892
|
+
} else {
|
|
893
|
+
selected.value = [];
|
|
894
|
+
selectState.multipleChecked = {};
|
|
895
|
+
selectState.departmentChecked = [];
|
|
896
|
+
selectState.shopChecked = {};
|
|
897
|
+
selectState.staffsChecked = {};
|
|
898
|
+
selectState.groupChecked = {};
|
|
899
|
+
selectState.activeKey = 0;
|
|
900
|
+
}
|
|
877
901
|
if (val && props.immediateFetch) {
|
|
878
|
-
|
|
902
|
+
fetch({});
|
|
879
903
|
}
|
|
880
904
|
},
|
|
881
|
-
{ immediate: true }
|
|
905
|
+
{ immediate: true, deep: true }
|
|
882
906
|
);
|
|
883
|
-
return {
|
|
884
|
-
|
|
885
|
-
|
|
907
|
+
return (_ctx, _cache) => {
|
|
908
|
+
return openBlock(), createBlock(unref(AModal), {
|
|
909
|
+
class: "staffs-selector-modal",
|
|
910
|
+
title: _ctx.title,
|
|
911
|
+
visible: _ctx.visible,
|
|
912
|
+
width: unref(width),
|
|
913
|
+
"ok-text": "\u786E\u5B9A",
|
|
914
|
+
"cancel-text": "\u53D6\u6D88",
|
|
915
|
+
"destroy-on-close": true,
|
|
916
|
+
onCancel: modalCancel,
|
|
917
|
+
onOk: summitSelect
|
|
918
|
+
}, {
|
|
919
|
+
default: withCtx(() => [
|
|
920
|
+
createElementVNode("div", _hoisted_1, [
|
|
921
|
+
_ctx.mode === "radio" ? (openBlock(), createBlock(radioCmp, {
|
|
922
|
+
key: 0,
|
|
923
|
+
selected: selected.value,
|
|
924
|
+
"onUpdate:selected": _cache[0] || (_cache[0] = ($event) => selected.value = $event),
|
|
925
|
+
list: unref(list),
|
|
926
|
+
onFetchList: fetch
|
|
927
|
+
}, null, 8, ["selected", "list"])) : _ctx.mode === "varied" ? (openBlock(), createBlock(VariedCmp, {
|
|
928
|
+
key: 1,
|
|
929
|
+
selected: selected.value,
|
|
930
|
+
"onUpdate:selected": _cache[1] || (_cache[1] = ($event) => selected.value = $event),
|
|
931
|
+
list: unref(list),
|
|
932
|
+
"show-count": _ctx.showCount,
|
|
933
|
+
onFetchList: fetch
|
|
934
|
+
}, null, 8, ["selected", "list", "show-count"])) : (openBlock(), createBlock(multipleCmp, {
|
|
935
|
+
key: 2,
|
|
936
|
+
selected: selected.value,
|
|
937
|
+
"onUpdate:selected": _cache[2] || (_cache[2] = ($event) => selected.value = $event),
|
|
938
|
+
limit: _ctx.limit,
|
|
939
|
+
list: unref(list),
|
|
940
|
+
"is-tree": multipTree.value,
|
|
941
|
+
onFetchList: fetch
|
|
942
|
+
}, null, 8, ["selected", "limit", "list", "is-tree"])),
|
|
943
|
+
["multiple", "varied"].includes(_ctx.mode) ? (openBlock(), createElementBlock("div", _hoisted_2, [
|
|
944
|
+
_ctx.showCount ? (openBlock(), createElementBlock("div", _hoisted_3, [
|
|
945
|
+
createElementVNode("span", null, "\u5DF2\u9009\u62E9" + toDisplayString(unref(computeSelected) && unref(computeSelected).length || 0) + toDisplayString(_ctx.$props.unitStr), 1),
|
|
946
|
+
_ctx.limit ? (openBlock(), createElementBlock("span", _hoisted_4, "\u6700\u591A\u9009\u62E9" + toDisplayString(_ctx.limit) + toDisplayString(_ctx.$props.unitStr), 1)) : createCommentVNode("v-if", true)
|
|
947
|
+
])) : createCommentVNode("v-if", true),
|
|
948
|
+
createElementVNode("div", _hoisted_5, [
|
|
949
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(computeSelected), (item) => {
|
|
950
|
+
return openBlock(), createElementBlock("div", {
|
|
951
|
+
key: item + "checked",
|
|
952
|
+
class: "__chosen-panel-list-item"
|
|
953
|
+
}, [
|
|
954
|
+
createElementVNode("span", _hoisted_6, toDisplayString(getOptionName(item)), 1),
|
|
955
|
+
createVNode(unref(CloseCircleFilled), {
|
|
956
|
+
style: { "color": "#ced1d9" },
|
|
957
|
+
onMousedown: withModifiers(($event) => deleteOptions(item), ["stop"])
|
|
958
|
+
}, null, 8, ["onMousedown"])
|
|
959
|
+
]);
|
|
960
|
+
}), 128))
|
|
961
|
+
])
|
|
962
|
+
])) : createCommentVNode("v-if", true)
|
|
963
|
+
])
|
|
964
|
+
]),
|
|
965
|
+
_: 1
|
|
966
|
+
}, 8, ["title", "visible", "width"]);
|
|
886
967
|
};
|
|
887
968
|
}
|
|
888
969
|
});
|
|
889
|
-
|
|
890
|
-
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
891
|
-
const _component_radioCmp = resolveComponent("radioCmp");
|
|
892
|
-
const _component_VariedCmp = resolveComponent("VariedCmp");
|
|
893
|
-
const _component_multipleCmp = resolveComponent("multipleCmp");
|
|
894
|
-
const _component_AModal = resolveComponent("AModal");
|
|
895
|
-
return openBlock(), createBlock(_component_AModal, {
|
|
896
|
-
class: "staffs-selector-modal",
|
|
897
|
-
title: _ctx.title,
|
|
898
|
-
visible: _ctx.visible,
|
|
899
|
-
width: _ctx.width,
|
|
900
|
-
"ok-text": "\u786E\u5B9A",
|
|
901
|
-
"cancel-text": "\u53D6\u6D88",
|
|
902
|
-
"destroy-on-close": true,
|
|
903
|
-
onCancel: _ctx.modalCancel,
|
|
904
|
-
onOk: _ctx.summitSelect
|
|
905
|
-
}, {
|
|
906
|
-
default: withCtx(() => [
|
|
907
|
-
createElementVNode("div", _hoisted_1, [
|
|
908
|
-
_ctx.mode === "radio" ? (openBlock(), createBlock(_component_radioCmp, {
|
|
909
|
-
key: 0,
|
|
910
|
-
selected: _ctx.selected,
|
|
911
|
-
"onUpdate:selected": _cache[0] || (_cache[0] = ($event) => _ctx.selected = $event),
|
|
912
|
-
list: _ctx.list,
|
|
913
|
-
onFetchList: _ctx.fetch
|
|
914
|
-
}, null, 8, ["selected", "list", "onFetchList"])) : _ctx.mode === "varied" ? (openBlock(), createBlock(_component_VariedCmp, {
|
|
915
|
-
key: 1,
|
|
916
|
-
selected: _ctx.selected,
|
|
917
|
-
"onUpdate:selected": _cache[1] || (_cache[1] = ($event) => _ctx.selected = $event),
|
|
918
|
-
list: _ctx.list,
|
|
919
|
-
"curlist-keys": _ctx.curlistKeys,
|
|
920
|
-
"data-map": _ctx.dataMap,
|
|
921
|
-
onFetchList: _ctx.fetch
|
|
922
|
-
}, null, 8, ["selected", "list", "curlist-keys", "data-map", "onFetchList"])) : (openBlock(), createBlock(_component_multipleCmp, {
|
|
923
|
-
key: 2,
|
|
924
|
-
selected: _ctx.selected,
|
|
925
|
-
"onUpdate:selected": _cache[2] || (_cache[2] = ($event) => _ctx.selected = $event),
|
|
926
|
-
limit: _ctx.limit,
|
|
927
|
-
list: _ctx.list,
|
|
928
|
-
"curlist-keys": _ctx.curlistKeys,
|
|
929
|
-
"is-tree": _ctx.multipTree,
|
|
930
|
-
"data-map": _ctx.dataMap,
|
|
931
|
-
"show-count": _ctx.showCount,
|
|
932
|
-
"unit-str": _ctx.unitStr,
|
|
933
|
-
onFetchList: _ctx.fetch
|
|
934
|
-
}, null, 8, ["selected", "limit", "list", "curlist-keys", "is-tree", "data-map", "show-count", "unit-str", "onFetchList"]))
|
|
935
|
-
])
|
|
936
|
-
]),
|
|
937
|
-
_: 1
|
|
938
|
-
}, 8, ["title", "visible", "width", "onCancel", "onOk"]);
|
|
939
|
-
}
|
|
940
|
-
var staffsSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "staffs-selector.vue"]]);
|
|
970
|
+
var staffsSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "staffs-selector.vue"]]);
|
|
941
971
|
|
|
942
972
|
const BmStaffsSelector = withInstall(staffsSelector);
|
|
943
973
|
|