@cmstops/pro-compo 0.1.80 → 0.1.82
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 +22 -27
- package/dist/index.min.css +1 -1
- package/es/baseFilter/component.js +11 -5
- package/es/baseFilter/components/FilterGroup.js +76 -107
- package/es/baseFilter/style/filterGroup.less +34 -42
- package/es/baseFilter/style/index.css +19 -27
- package/es/baseFilter/useCalcWidth.d.ts +7 -0
- package/es/emptyData/component.js +12 -6
- package/es/emptyData/style/index.css +3 -0
- package/es/emptyData/style/index.less +4 -0
- package/es/hooks/usePopper.d.ts +7 -0
- package/es/hooks/usePopper.js +25 -0
- package/es/index.css +22 -27
- package/lib/baseFilter/component.js +10 -4
- package/lib/baseFilter/components/FilterGroup.js +76 -107
- package/lib/baseFilter/style/filterGroup.less +34 -42
- package/lib/baseFilter/style/index.css +19 -27
- package/lib/emptyData/component.js +12 -6
- package/lib/emptyData/style/index.css +3 -0
- package/lib/emptyData/style/index.less +4 -0
- package/lib/hooks/usePopper.js +26 -0
- package/lib/index.css +22 -27
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, ref, watch, onMounted, openBlock, createElementBlock, createElementVNode, withDirectives, createVNode, unref, withModifiers, withCtx, createTextVNode, vShow, renderSlot } from "vue";
|
|
2
2
|
import { Button } from "@arco-design/web-vue";
|
|
3
3
|
import { IconCaretDown } from "@arco-design/web-vue/es/icon";
|
|
4
|
-
import
|
|
4
|
+
import usePopper from "../../hooks/usePopper.js";
|
|
5
5
|
const _hoisted_1 = { class: "filter-view-container" };
|
|
6
6
|
const _hoisted_2 = { class: "more-btn" };
|
|
7
7
|
const _hoisted_3 = { class: "right-prefix" };
|
|
@@ -14,120 +14,89 @@ const _hoisted_6 = {
|
|
|
14
14
|
const _sfc_main = defineComponent({
|
|
15
15
|
__name: "FilterGroup",
|
|
16
16
|
setup(__props) {
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
(n) => setPannelItem()
|
|
26
|
-
);
|
|
27
|
-
const initDocWidthListener = function() {
|
|
28
|
-
window.onresize = (() => {
|
|
29
|
-
return () => {
|
|
30
|
-
documentWidth.value = document.body.clientWidth;
|
|
31
|
-
};
|
|
32
|
-
})();
|
|
17
|
+
const getRect = (el) => {
|
|
18
|
+
if (!el || !el.getClientRects())
|
|
19
|
+
return { right: 0, width: 0 };
|
|
20
|
+
const [{ right, width }] = el.getClientRects();
|
|
21
|
+
return {
|
|
22
|
+
right,
|
|
23
|
+
width
|
|
24
|
+
};
|
|
33
25
|
};
|
|
34
|
-
const filterItemsRef = ref();
|
|
35
26
|
const moreBtnRef = ref();
|
|
36
27
|
const dpPannelRef = ref();
|
|
37
|
-
const initPopper =
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
28
|
+
const { initPopper, show, visible } = usePopper(dpPannelRef, moreBtnRef);
|
|
29
|
+
const filterItemsRef = ref();
|
|
30
|
+
const windowWidth = ref(0);
|
|
31
|
+
const filterWidth = ref(0);
|
|
32
|
+
const filterBorder = ref(0);
|
|
33
|
+
const initWidth = () => {
|
|
34
|
+
var _a;
|
|
35
|
+
windowWidth.value = ((_a = document.body) == null ? void 0 : _a.clientWidth) || 0;
|
|
36
|
+
if (filterItemsRef.value) {
|
|
37
|
+
filterWidth.value = filterItemsRef.value.clientWidth || 0;
|
|
38
|
+
filterBorder.value = getRect(filterItemsRef.value).right;
|
|
39
|
+
}
|
|
41
40
|
};
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
function checkOverflow() {
|
|
54
|
-
if (!filterItemsRef.value)
|
|
41
|
+
const initDocWidthListener = () => window.onresize = () => initWidth();
|
|
42
|
+
const hideElementList = ref([]);
|
|
43
|
+
const inNode = (el) => {
|
|
44
|
+
var _a, _b;
|
|
45
|
+
hideElementList.value.push({ width: getRect(el).width, el });
|
|
46
|
+
(_a = filterItemsRef.value) == null ? void 0 : _a.removeChild(el);
|
|
47
|
+
(_b = dpPannelRef.value) == null ? void 0 : _b.appendChild(el);
|
|
48
|
+
};
|
|
49
|
+
const outNode = () => {
|
|
50
|
+
var _a, _b;
|
|
51
|
+
if (!hideElementList.value.length || !filterItemsRef.value)
|
|
55
52
|
return;
|
|
56
|
-
const
|
|
57
|
-
if (!
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
53
|
+
const popEl = hideElementList.value.pop();
|
|
54
|
+
if (!popEl)
|
|
55
|
+
return;
|
|
56
|
+
const { width, el } = popEl;
|
|
57
|
+
el.style.width = `${width}px`;
|
|
58
|
+
(_a = dpPannelRef.value) == null ? void 0 : _a.removeChild(el);
|
|
59
|
+
(_b = filterItemsRef.value) == null ? void 0 : _b.appendChild(el);
|
|
60
|
+
hideElementList.value.splice(-1, 0);
|
|
61
|
+
};
|
|
62
|
+
const checkOverflow = () => {
|
|
63
|
+
if (!filterItemsRef.value)
|
|
64
|
+
return -1;
|
|
65
|
+
const elements = Array.from(filterItemsRef.value.childNodes);
|
|
66
|
+
let rightBorder = 0;
|
|
67
|
+
elements.forEach((item) => {
|
|
68
|
+
if (item.className !== "filter-item-view")
|
|
69
|
+
return;
|
|
70
|
+
const { right } = getRect(item);
|
|
71
|
+
if (right <= filterBorder.value) {
|
|
72
|
+
rightBorder = right;
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
inNode(item);
|
|
76
|
+
});
|
|
77
|
+
return rightBorder;
|
|
78
|
+
};
|
|
79
|
+
const refreshPanel = () => {
|
|
80
|
+
const border = checkOverflow();
|
|
81
|
+
if (hideElementList.value.length && border !== -1) {
|
|
82
|
+
const spaceWidth = filterBorder.value - border;
|
|
83
|
+
const { width } = hideElementList.value[hideElementList.value.length - 1];
|
|
84
|
+
if (spaceWidth > width + 20) {
|
|
85
|
+
outNode();
|
|
86
|
+
}
|
|
72
87
|
}
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
function getArrWidth(arr) {
|
|
76
|
-
return arr.reduce((prev, cur) => prev + cur, 0);
|
|
77
|
-
}
|
|
78
|
-
const pannelArray = ref("");
|
|
88
|
+
};
|
|
79
89
|
watch(
|
|
80
|
-
() =>
|
|
81
|
-
(
|
|
90
|
+
() => windowWidth.value,
|
|
91
|
+
() => refreshPanel()
|
|
82
92
|
);
|
|
83
|
-
function refreshPannel(newStr, oldStr) {
|
|
84
|
-
const nArr = newStr ? newStr.split(",") : [];
|
|
85
|
-
const oArr = oldStr ? oldStr.split(",") : [];
|
|
86
|
-
if (nArr.length && nArr.length > oArr.length) {
|
|
87
|
-
diff(nArr, oArr).forEach((index) => inNode(parseInt(index, 10)));
|
|
88
|
-
} else if (nArr.length >= 0 && nArr.length < oArr.length) {
|
|
89
|
-
diff(oArr, nArr).forEach((index) => outNode(parseInt(index, 10)));
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
const diff = (arr1, arr2) => {
|
|
93
|
-
const diff2 = [];
|
|
94
|
-
for (let i = 0; i < arr1.length; i++) {
|
|
95
|
-
const item = arr1[i];
|
|
96
|
-
if (!arr2.includes(item))
|
|
97
|
-
diff2.push(item);
|
|
98
|
-
}
|
|
99
|
-
return diff2;
|
|
100
|
-
};
|
|
101
|
-
function inNode(index) {
|
|
102
|
-
var _a, _b, _c;
|
|
103
|
-
const node = mapNodes((_a = filterItemsRef.value) == null ? void 0 : _a.childNodes)[index];
|
|
104
|
-
const temp = document.createElement("div");
|
|
105
|
-
temp.style.width = `${itemWidthArr.value[index]}px`;
|
|
106
|
-
temp.style.position = "absolute";
|
|
107
|
-
temp.style.left = `${50}px`;
|
|
108
|
-
(_b = filterItemsRef.value) == null ? void 0 : _b.replaceChild(temp, node);
|
|
109
|
-
(_c = dpPannelRef.value) == null ? void 0 : _c.appendChild(node);
|
|
110
|
-
}
|
|
111
|
-
function outNode(index) {
|
|
112
|
-
var _a;
|
|
113
|
-
const node = itemNodeArr.value[index];
|
|
114
|
-
(_a = filterItemsRef.value) == null ? void 0 : _a.replaceChild(
|
|
115
|
-
node,
|
|
116
|
-
mapNodes(filterItemsRef.value.childNodes)[index]
|
|
117
|
-
);
|
|
118
|
-
}
|
|
119
|
-
function setPannelItem() {
|
|
120
|
-
let inPannelNum = 0;
|
|
121
|
-
if (overflowWidth.value > 0) {
|
|
122
|
-
const avgWidth = 120;
|
|
123
|
-
inPannelNum = Math.ceil((overflowWidth.value + 200) / avgWidth);
|
|
124
|
-
}
|
|
125
|
-
pannelArray.value = itemArr.value.slice(0, inPannelNum).join(",");
|
|
126
|
-
}
|
|
127
93
|
onMounted(() => {
|
|
128
94
|
initDocWidthListener();
|
|
129
95
|
initPopper();
|
|
130
|
-
|
|
96
|
+
initWidth();
|
|
97
|
+
setTimeout(() => {
|
|
98
|
+
refreshPanel();
|
|
99
|
+
});
|
|
131
100
|
});
|
|
132
101
|
return (_ctx, _cache) => {
|
|
133
102
|
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
@@ -137,7 +106,7 @@ const _sfc_main = defineComponent({
|
|
|
137
106
|
ref: moreBtnRef
|
|
138
107
|
}, [
|
|
139
108
|
withDirectives(createVNode(unref(Button), {
|
|
140
|
-
onClick: withModifiers(
|
|
109
|
+
onClick: _cache[0] || (_cache[0] = withModifiers(() => unref(show)(), ["stop"]))
|
|
141
110
|
}, {
|
|
142
111
|
default: withCtx(() => [
|
|
143
112
|
createElementVNode("span", _hoisted_3, [
|
|
@@ -147,7 +116,7 @@ const _sfc_main = defineComponent({
|
|
|
147
116
|
]),
|
|
148
117
|
_: 1
|
|
149
118
|
}, 512), [
|
|
150
|
-
[vShow,
|
|
119
|
+
[vShow, hideElementList.value.length]
|
|
151
120
|
])
|
|
152
121
|
], 512),
|
|
153
122
|
withDirectives(createElementVNode("div", {
|
|
@@ -156,7 +125,7 @@ const _sfc_main = defineComponent({
|
|
|
156
125
|
ref: dpPannelRef,
|
|
157
126
|
class: "filter-pannel"
|
|
158
127
|
}, null, 512), [
|
|
159
|
-
[vShow,
|
|
128
|
+
[vShow, unref(visible)]
|
|
160
129
|
])
|
|
161
130
|
]),
|
|
162
131
|
createElementVNode("div", _hoisted_4, [
|
|
@@ -1,60 +1,52 @@
|
|
|
1
1
|
// FilterGroup 内部样式
|
|
2
2
|
.filter-view-container {
|
|
3
3
|
display: flex;
|
|
4
|
+
gap: 10px;
|
|
4
5
|
align-items: center;
|
|
6
|
+
justify-content: space-between;
|
|
7
|
+
width: 100%;
|
|
5
8
|
margin-bottom: 10px;
|
|
6
9
|
font-size: 14px;
|
|
7
10
|
|
|
8
|
-
.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
.more-btn {
|
|
12
|
+
.right-prefix {
|
|
13
|
+
display: flex;
|
|
14
|
+
gap: 10px;
|
|
15
|
+
align-items: center;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.filter-pannel {
|
|
19
|
+
display: flex;
|
|
20
|
+
gap: 10px;
|
|
21
|
+
padding: 10px;
|
|
22
|
+
background-color: white;
|
|
23
|
+
border-radius: 6px;
|
|
24
|
+
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
|
|
25
|
+
}
|
|
13
26
|
}
|
|
14
27
|
|
|
15
28
|
.filter-content {
|
|
16
|
-
position: relative;
|
|
17
29
|
display: flex;
|
|
18
30
|
flex: 1;
|
|
19
31
|
align-items: center;
|
|
20
32
|
justify-content: space-between;
|
|
21
|
-
}
|
|
22
33
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
34
|
+
.left {
|
|
35
|
+
display: flex;
|
|
36
|
+
flex: 1;
|
|
37
|
+
gap: 10px;
|
|
38
|
+
width: 100px;
|
|
39
|
+
overflow: hidden;
|
|
40
|
+
background-color: #fff;
|
|
41
|
+
}
|
|
28
42
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
padding-left: 20px;
|
|
38
|
-
background: white;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
.more-btn {
|
|
42
|
-
z-index: 10;
|
|
43
|
-
margin-right: 10px;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.right-prefix {
|
|
47
|
-
display: flex;
|
|
48
|
-
gap: 10px;
|
|
49
|
-
align-items: center;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
.filter-pannel {
|
|
53
|
-
display: flex;
|
|
54
|
-
gap: 10px;
|
|
55
|
-
padding: 10px;
|
|
56
|
-
background-color: white;
|
|
57
|
-
border-radius: 6px;
|
|
58
|
-
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
|
|
43
|
+
.right {
|
|
44
|
+
display: flex;
|
|
45
|
+
flex-wrap: nowrap;
|
|
46
|
+
align-items: center;
|
|
47
|
+
height: 100%;
|
|
48
|
+
padding-left: 20px;
|
|
49
|
+
background: white;
|
|
50
|
+
}
|
|
59
51
|
}
|
|
60
52
|
}
|
|
@@ -1,31 +1,40 @@
|
|
|
1
1
|
.filter-view-container {
|
|
2
2
|
display: flex;
|
|
3
|
+
gap: 10px;
|
|
3
4
|
align-items: center;
|
|
5
|
+
justify-content: space-between;
|
|
6
|
+
width: 100%;
|
|
4
7
|
margin-bottom: 10px;
|
|
5
8
|
font-size: 14px;
|
|
6
9
|
}
|
|
7
|
-
.filter-view-container .
|
|
10
|
+
.filter-view-container .more-btn .right-prefix {
|
|
11
|
+
display: flex;
|
|
12
|
+
gap: 10px;
|
|
13
|
+
align-items: center;
|
|
14
|
+
}
|
|
15
|
+
.filter-view-container .more-btn .filter-pannel {
|
|
8
16
|
display: flex;
|
|
9
17
|
gap: 10px;
|
|
10
|
-
|
|
11
|
-
|
|
18
|
+
padding: 10px;
|
|
19
|
+
background-color: white;
|
|
20
|
+
border-radius: 6px;
|
|
21
|
+
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
|
|
12
22
|
}
|
|
13
23
|
.filter-view-container .filter-content {
|
|
14
|
-
position: relative;
|
|
15
24
|
display: flex;
|
|
16
25
|
flex: 1;
|
|
17
26
|
align-items: center;
|
|
18
27
|
justify-content: space-between;
|
|
19
28
|
}
|
|
20
|
-
.filter-view-container .left {
|
|
29
|
+
.filter-view-container .filter-content .left {
|
|
21
30
|
display: flex;
|
|
31
|
+
flex: 1;
|
|
22
32
|
gap: 10px;
|
|
23
|
-
|
|
33
|
+
width: 100px;
|
|
34
|
+
overflow: hidden;
|
|
35
|
+
background-color: #fff;
|
|
24
36
|
}
|
|
25
|
-
.filter-view-container .right {
|
|
26
|
-
position: absolute;
|
|
27
|
-
right: 0;
|
|
28
|
-
z-index: 1;
|
|
37
|
+
.filter-view-container .filter-content .right {
|
|
29
38
|
display: flex;
|
|
30
39
|
flex-wrap: nowrap;
|
|
31
40
|
align-items: center;
|
|
@@ -33,23 +42,6 @@
|
|
|
33
42
|
padding-left: 20px;
|
|
34
43
|
background: white;
|
|
35
44
|
}
|
|
36
|
-
.filter-view-container .more-btn {
|
|
37
|
-
z-index: 10;
|
|
38
|
-
margin-right: 10px;
|
|
39
|
-
}
|
|
40
|
-
.filter-view-container .right-prefix {
|
|
41
|
-
display: flex;
|
|
42
|
-
gap: 10px;
|
|
43
|
-
align-items: center;
|
|
44
|
-
}
|
|
45
|
-
.filter-view-container .filter-pannel {
|
|
46
|
-
display: flex;
|
|
47
|
-
gap: 10px;
|
|
48
|
-
padding: 10px;
|
|
49
|
-
background-color: white;
|
|
50
|
-
border-radius: 6px;
|
|
51
|
-
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
|
|
52
|
-
}
|
|
53
45
|
.base-filter-container {
|
|
54
46
|
display: flex;
|
|
55
47
|
align-items: center;
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import { Ref } from 'vue';
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated 改为其他方式实现
|
|
4
|
+
* @param filterItemsRef
|
|
5
|
+
* @param dpPannelRef
|
|
6
|
+
* @param moreBtnRef
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
2
9
|
export default function useCalcWidth(filterItemsRef: Ref<HTMLElement | undefined>, dpPannelRef: Ref<HTMLElement | undefined>, moreBtnRef: Ref<HTMLElement | undefined>): {
|
|
3
10
|
pannelArray: Ref<string>;
|
|
4
11
|
popperShowFlag: Ref<boolean>;
|
|
@@ -37,11 +37,12 @@ function __variableDynamicImportRuntime0__(path) {
|
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
const _hoisted_1 =
|
|
41
|
-
|
|
40
|
+
const _hoisted_1 = ["src"];
|
|
41
|
+
const _hoisted_2 = {
|
|
42
|
+
key: 2,
|
|
42
43
|
class: "tip"
|
|
43
44
|
};
|
|
44
|
-
const
|
|
45
|
+
const _hoisted_3 = { class: "slot-view" };
|
|
45
46
|
const _sfc_main = defineComponent({
|
|
46
47
|
...{ name: "emptyData" },
|
|
47
48
|
__name: "component",
|
|
@@ -49,6 +50,7 @@ const _sfc_main = defineComponent({
|
|
|
49
50
|
type: {},
|
|
50
51
|
size: {},
|
|
51
52
|
customTip: {},
|
|
53
|
+
customIcon: {},
|
|
52
54
|
noTip: { type: Boolean }
|
|
53
55
|
},
|
|
54
56
|
setup(__props) {
|
|
@@ -81,9 +83,13 @@ const _sfc_main = defineComponent({
|
|
|
81
83
|
key: 0,
|
|
82
84
|
class: normalizeClass(["empty-data-container", { small: _ctx.size === "small" }])
|
|
83
85
|
}, [
|
|
84
|
-
(openBlock(),
|
|
85
|
-
|
|
86
|
-
|
|
86
|
+
_ctx.customIcon ? (openBlock(), createElementBlock("img", {
|
|
87
|
+
key: 0,
|
|
88
|
+
class: "custom-icon",
|
|
89
|
+
src: _ctx.customIcon
|
|
90
|
+
}, null, 8, _hoisted_1)) : (openBlock(), createBlock(resolveDynamicComponent(dynamicComponent.value), { key: 1 })),
|
|
91
|
+
!_ctx.noTip ? (openBlock(), createElementBlock("div", _hoisted_2, toDisplayString(_ctx.customTip ? _ctx.customTip : tipMap.value[_ctx.type]), 1)) : createCommentVNode("v-if", true),
|
|
92
|
+
createElementVNode("div", _hoisted_3, [
|
|
87
93
|
renderSlot(_ctx.$slots, "extra")
|
|
88
94
|
])
|
|
89
95
|
], 2)) : createCommentVNode("v-if", true);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Placement } from '@popperjs/core';
|
|
2
|
+
import { Ref } from 'vue';
|
|
3
|
+
export default function usePopper(pannel: Ref<HTMLElement | undefined>, triggerEl: Ref<HTMLElement | undefined>): {
|
|
4
|
+
initPopper: (placement?: Placement) => void;
|
|
5
|
+
show: () => void;
|
|
6
|
+
visible: Ref<boolean>;
|
|
7
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { createPopper } from "@popperjs/core";
|
|
2
|
+
import { ref } from "vue";
|
|
3
|
+
function usePopper(pannel, triggerEl) {
|
|
4
|
+
const visible = ref(false);
|
|
5
|
+
const show = () => {
|
|
6
|
+
visible.value = true;
|
|
7
|
+
window.onclick = (e) => {
|
|
8
|
+
visible.value = false;
|
|
9
|
+
window.onclick = null;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
const initPopper = (placement = "bottom-start") => {
|
|
13
|
+
if (!pannel.value || !triggerEl.value)
|
|
14
|
+
return;
|
|
15
|
+
createPopper(triggerEl.value, pannel.value, {
|
|
16
|
+
placement
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
return {
|
|
20
|
+
initPopper,
|
|
21
|
+
show,
|
|
22
|
+
visible
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export { usePopper as default };
|
package/es/index.css
CHANGED
|
@@ -3140,6 +3140,9 @@
|
|
|
3140
3140
|
.empty-data-container img {
|
|
3141
3141
|
width: 100%;
|
|
3142
3142
|
}
|
|
3143
|
+
.empty-data-container .custom-icon {
|
|
3144
|
+
width: 100%;
|
|
3145
|
+
}
|
|
3143
3146
|
.empty-data-container .tip {
|
|
3144
3147
|
margin-top: 16px;
|
|
3145
3148
|
color: #999eaa;
|
|
@@ -3495,32 +3498,41 @@
|
|
|
3495
3498
|
}
|
|
3496
3499
|
.filter-view-container {
|
|
3497
3500
|
display: flex;
|
|
3501
|
+
gap: 10px;
|
|
3498
3502
|
align-items: center;
|
|
3503
|
+
justify-content: space-between;
|
|
3504
|
+
width: 100%;
|
|
3499
3505
|
margin-bottom: 10px;
|
|
3500
3506
|
font-size: 14px;
|
|
3501
3507
|
}
|
|
3502
|
-
.filter-view-container .
|
|
3508
|
+
.filter-view-container .more-btn .right-prefix {
|
|
3503
3509
|
display: flex;
|
|
3504
3510
|
gap: 10px;
|
|
3505
|
-
|
|
3506
|
-
|
|
3511
|
+
align-items: center;
|
|
3512
|
+
}
|
|
3513
|
+
.filter-view-container .more-btn .filter-pannel {
|
|
3514
|
+
display: flex;
|
|
3515
|
+
gap: 10px;
|
|
3516
|
+
padding: 10px;
|
|
3517
|
+
background-color: white;
|
|
3518
|
+
border-radius: 6px;
|
|
3519
|
+
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
|
|
3507
3520
|
}
|
|
3508
3521
|
.filter-view-container .filter-content {
|
|
3509
|
-
position: relative;
|
|
3510
3522
|
display: flex;
|
|
3511
3523
|
flex: 1;
|
|
3512
3524
|
align-items: center;
|
|
3513
3525
|
justify-content: space-between;
|
|
3514
3526
|
}
|
|
3515
|
-
.filter-view-container .left {
|
|
3527
|
+
.filter-view-container .filter-content .left {
|
|
3516
3528
|
display: flex;
|
|
3529
|
+
flex: 1;
|
|
3517
3530
|
gap: 10px;
|
|
3518
|
-
|
|
3531
|
+
width: 100px;
|
|
3532
|
+
overflow: hidden;
|
|
3533
|
+
background-color: #fff;
|
|
3519
3534
|
}
|
|
3520
|
-
.filter-view-container .right {
|
|
3521
|
-
position: absolute;
|
|
3522
|
-
right: 0;
|
|
3523
|
-
z-index: 1;
|
|
3535
|
+
.filter-view-container .filter-content .right {
|
|
3524
3536
|
display: flex;
|
|
3525
3537
|
flex-wrap: nowrap;
|
|
3526
3538
|
align-items: center;
|
|
@@ -3528,23 +3540,6 @@
|
|
|
3528
3540
|
padding-left: 20px;
|
|
3529
3541
|
background: white;
|
|
3530
3542
|
}
|
|
3531
|
-
.filter-view-container .more-btn {
|
|
3532
|
-
z-index: 10;
|
|
3533
|
-
margin-right: 10px;
|
|
3534
|
-
}
|
|
3535
|
-
.filter-view-container .right-prefix {
|
|
3536
|
-
display: flex;
|
|
3537
|
-
gap: 10px;
|
|
3538
|
-
align-items: center;
|
|
3539
|
-
}
|
|
3540
|
-
.filter-view-container .filter-pannel {
|
|
3541
|
-
display: flex;
|
|
3542
|
-
gap: 10px;
|
|
3543
|
-
padding: 10px;
|
|
3544
|
-
background-color: white;
|
|
3545
|
-
border-radius: 6px;
|
|
3546
|
-
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
|
|
3547
|
-
}
|
|
3548
3543
|
.base-filter-container {
|
|
3549
3544
|
display: flex;
|
|
3550
3545
|
align-items: center;
|
|
@@ -126,6 +126,11 @@ const _sfc_main = vue.defineComponent({
|
|
|
126
126
|
);
|
|
127
127
|
return (_ctx, _cache) => {
|
|
128
128
|
return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
|
|
129
|
+
vue.createElementVNode("div", {
|
|
130
|
+
id: "base-filter-popup-container",
|
|
131
|
+
onClick: _cache[0] || (_cache[0] = vue.withModifiers(() => {
|
|
132
|
+
}, ["stop"]))
|
|
133
|
+
}),
|
|
129
134
|
vue.createVNode(FilterGroup, null, {
|
|
130
135
|
left: vue.withCtx(() => [
|
|
131
136
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(renderColumns.value, (item, index) => {
|
|
@@ -147,6 +152,7 @@ const _sfc_main = vue.defineComponent({
|
|
|
147
152
|
key: 1,
|
|
148
153
|
modelValue: form.value[item.key],
|
|
149
154
|
"onUpdate:modelValue": ($event) => form.value[item.key] = $event,
|
|
155
|
+
"popup-container": "#base-filter-popup-container",
|
|
150
156
|
"allow-clear": "",
|
|
151
157
|
style: vue.normalizeStyle({ width: styleWidth(columnsMap.value[item.key]) }),
|
|
152
158
|
placeholder: `\u8BF7\u9009\u62E9${item.label}`
|
|
@@ -168,7 +174,8 @@ const _sfc_main = vue.defineComponent({
|
|
|
168
174
|
"onUpdate:modelValue": ($event) => form.value[item.key].range = $event,
|
|
169
175
|
style: vue.normalizeStyle({ width: styleWidth(form.value[item.key]) }),
|
|
170
176
|
"value-format": "timestamp",
|
|
171
|
-
|
|
177
|
+
"popup-container": "#base-filter-popup-container",
|
|
178
|
+
onClick: _cache[1] || (_cache[1] = vue.withModifiers(() => {
|
|
172
179
|
}, ["stop"]))
|
|
173
180
|
}, null, 8, ["modelValue", "onUpdate:modelValue", "style"])) : vue.createCommentVNode("v-if", true)
|
|
174
181
|
]),
|
|
@@ -180,9 +187,8 @@ const _sfc_main = vue.defineComponent({
|
|
|
180
187
|
vue.renderSlot(_ctx.$slots, "right")
|
|
181
188
|
]),
|
|
182
189
|
_: 3
|
|
183
|
-
})
|
|
184
|
-
|
|
185
|
-
], 2112);
|
|
190
|
+
})
|
|
191
|
+
], 64);
|
|
186
192
|
};
|
|
187
193
|
}
|
|
188
194
|
});
|