@cloudbase/weda-ui-mp 3.15.7 → 3.16.0

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.
@@ -0,0 +1,192 @@
1
+ Component({
2
+ properties: {
3
+ isActive: {
4
+ type: Boolean,
5
+ value: true,
6
+ },
7
+ option: {
8
+ type: Array,
9
+ value: [],
10
+ },
11
+ searchStatus: {
12
+ type: Number,
13
+ value: 0,
14
+ },
15
+ loadStatus: {
16
+ type: Number,
17
+ value: 0,
18
+ },
19
+ disabled: {
20
+ type: Boolean,
21
+ value: false,
22
+ },
23
+ ignoreCase: {
24
+ type: Boolean,
25
+ value: true,
26
+ },
27
+ selectedValue: {
28
+ type: Array,
29
+ value: [],
30
+ },
31
+ searchable: {
32
+ type: Boolean,
33
+ value: true,
34
+ },
35
+ filterable: {
36
+ type: Boolean,
37
+ value: false,
38
+ },
39
+ multiple: {
40
+ type: Boolean,
41
+ value: false,
42
+ },
43
+ currentPageNo: {
44
+ type: Number,
45
+ value: 1,
46
+ },
47
+ },
48
+ data: {
49
+ height: '390px',
50
+ focus: false,
51
+ searchValue: '',
52
+ index: -1,
53
+ status: 0,
54
+ showOption: [],
55
+ pageNo: 1,
56
+ selectedCache: [], // 缓存当前选中值
57
+ },
58
+
59
+ methods: {
60
+ cancelPicker: function (e) {
61
+ if (this.data.multiple) {
62
+ const { option } = this.properties;
63
+ this.setData({ selectedCache: option.filter((item) => item.check) });
64
+ }
65
+ this.triggerEvent('onClosePicker');
66
+ },
67
+ // 监听输入
68
+ bindinput: function (event) {
69
+ const value = event.detail.value;
70
+ this.setData({
71
+ searchValue: value,
72
+ pageNo: 1,
73
+ });
74
+ this.triggerEvent('search', { value });
75
+ },
76
+ // 清空输入
77
+ clear: function () {
78
+ this.setData({
79
+ searchValue: '',
80
+ showOption: this.properties.option,
81
+ pageNo: 1,
82
+ });
83
+ this.triggerEvent('search', { value: '' });
84
+ },
85
+ // 取消
86
+ shrink: function () {
87
+ this.setData({
88
+ height: '390px',
89
+ focus: false,
90
+ searchValue: '',
91
+ pageNo: 1,
92
+ showOption: this.properties.option,
93
+ });
94
+ this.triggerEvent('search', { value: '', noEvent: true });
95
+ },
96
+ confirmModal: function () {
97
+ const { selectedCache } = this.data;
98
+ this.triggerEvent('onSelectPicker', selectedCache);
99
+ },
100
+ // 获取焦点
101
+ onFocus: function () {
102
+ this.setData({
103
+ height: '550px',
104
+ focus: true,
105
+ });
106
+ },
107
+ // 处理当前选中值
108
+ dealSelectedValue(item) {
109
+ const { selectedCache } = this.data;
110
+ const index = selectedCache.findIndex((v) => v.value === item.value);
111
+ if (index > -1) {
112
+ return [...selectedCache.slice(0, index), ...selectedCache.slice(index + 1)];
113
+ }
114
+
115
+ return [...selectedCache, item];
116
+ },
117
+ // 选中项
118
+ onItemClick: function (e) {
119
+ const item = e.currentTarget.dataset.value;
120
+ if (item.disabled) return;
121
+ if (this.data.multiple) {
122
+ this.setData({
123
+ selectedCache: this.dealSelectedValue(item),
124
+ });
125
+ } else {
126
+ this.triggerEvent('onSelectPicker', item);
127
+ }
128
+ },
129
+ // 滚动到底部
130
+ bindscrolltolower: function () {
131
+ if (this.properties.loadStatus === 0) {
132
+ const pageNo = this.data.pageNo + 1;
133
+ this.setData({ pageNo });
134
+ this.triggerEvent('_childFetchData', {
135
+ pageNo,
136
+ searchValue: this.data.searchValue,
137
+ });
138
+ }
139
+ },
140
+ // 重试
141
+ onRetry: function () {
142
+ const { pageNo } = this.data;
143
+ if (this.properties.loadStatus === 2) {
144
+ this.setData({
145
+ status: 1,
146
+ });
147
+ this.triggerEvent('_childFetchData', {
148
+ pageNo: pageNo,
149
+ searchValue: this.data.searchValue,
150
+ });
151
+ }
152
+ },
153
+ },
154
+ observers: {
155
+ 'option,searchValue,filterable': function (option, searchValue, filterable) {
156
+ const { ignoreCase } = this.properties;
157
+ if (filterable) {
158
+ this.setData({
159
+ showOption: option,
160
+ });
161
+ } else {
162
+ const searchRange = option.filter((item) => {
163
+ if (ignoreCase) {
164
+ return String(item.label).toLowerCase().indexOf(searchValue.toLowerCase()) !== -1;
165
+ }
166
+ return item.label.indexOf(searchValue) !== -1;
167
+ });
168
+ this.setData({
169
+ showOption: searchRange,
170
+ status: searchRange.length > 0 ? 0 : 3,
171
+ });
172
+ }
173
+ },
174
+ 'selectedValue,showOption': function (selectedValue, showOption) {
175
+ const data = Array.isArray(selectedValue) ? selectedValue : [selectedValue];
176
+ const optionMap = showOption.reduce((pre, cur) => {
177
+ pre[cur.value] = cur;
178
+ return pre;
179
+ }, {});
180
+ const selectedCache = data.map((d) => optionMap[d]).filter((item) => !!item);
181
+ this.setData({ selectedCache });
182
+ },
183
+ loadStatus: function (loadStatus) {
184
+ this.setData({
185
+ status: loadStatus,
186
+ });
187
+ },
188
+ currentPageNo: function (currentPageNo) {
189
+ this.setData({ pageNo: currentPageNo });
190
+ },
191
+ },
192
+ });
@@ -0,0 +1,4 @@
1
+ {
2
+ "component": true,
3
+ "styleIsolation": "isolated"
4
+ }
@@ -0,0 +1,37 @@
1
+ <wxs module="tools"> function includes(array, item) { return array.map(function (v) { return v.value }).indexOf(item.value) !== -1 } module.exports = { includes: includes } </wxs>
2
+ <view class="weda-ui-custom-picker">
3
+ <view class="weda-ui-custom-mask" data-clear="false" bindtap="cancelPicker"></view>
4
+ <view class="weda-ui-custom-picker__inner" style="height: {{height}};">
5
+ <view wx:if="{{!focus}}" class="weda-ui-custom-picker__header">
6
+ <button class="weda-ui-custom-picker__header-btn" bindtap="cancelPicker" data-clear="false">取消</button>
7
+ <button wx:if="{{multiple}}" class="weda-ui-custom-picker__header-btn" bindtap="confirmModal">确定</button>
8
+ </view>
9
+ <view wx:if="{{searchable}}" class="weda-ui-custom-search {{focus?'is-focused':''}}" style="{{focus? 'margin: 34rpx 32rpx 16rpx 32rpx':'margin: 20rpx 32rpx'}}">
10
+ <view class="weda-ui-custom-search-box" bindtap="onFocus">
11
+ <input class="weda-ui-input" focus="{{focus}}" bindfocus="onFocus" bindblur="onBlur" bindinput="bindinput" value="{{searchValue}}" hold-keyboard="true" bindconfirm="bindconfirm" />
12
+ <view class="weda-ui-custom-search-box__label {{multiple?'multiple':''}}">
13
+ <span class="weda-ui-custom-search-box__search-icon"></span>
14
+ <span class="weda-ui-custom-search-box__search-placeholder"> 搜索 </span>
15
+ </view>
16
+ <span wx:if="{{focus && searchValue !== ''}}" class="weda-ui-custom-search-box__dismiss-icon" bindtap="clear"></span>
17
+ </view>
18
+ <text class="weda-ui-custom-search__btn-cancle" bindtap="shrink">取消</text>
19
+ </view>
20
+ <scroll-view wx:if="{{status !== -1}}" class="weda-ui-custom-picker__body" scroll-y="true" enhanced="true" bindscrolltolower="bindscrolltolower">
21
+ <view class="weda-ui-custom-picker__cloumns">
22
+ <view class="weda-ui-custom-picker__cloumn">
23
+ <view wx:for="{{showOption}}" wx:key="i" wx:for-index="i" class="weda-ui-custom-picker__cloumn-item {{multiple?'multiple':''}} {{ tools.includes(selectedCache, item) ? 'is-selected':''}} {{ (item.disabled) ? 'is-disabled':''}}" bindtap="onItemClick" data-value="{{item}}">
24
+ <text class="weda-ui-custom-picker__cloumn-item-text {{multiple?'multiple':''}}">{{item.label}}</text>
25
+ </view>
26
+ <view wx:if="{{status === 1}}" class="weda-ui-custom-picker__status weda-ui-custom-picker__status--loading"> <i class="weda-ui-custom-picker__loading-icon"></i>加载中... </view>
27
+ <view wx:if="{{status === 2}}" class="weda-ui-custom-picker__status">
28
+ 加载失败
29
+ <text class="weda-ui-custom-picker__btn weda-ui-custom-picker__btn--link" bindtap="onRetry">重试</text>
30
+ </view>
31
+ <view wx:if="{{status === 3&&!showOption.length}}" class="weda-ui-custom-picker__status"> 暂无数据 </view>
32
+ </view>
33
+ </view>
34
+ </scroll-view>
35
+ <view wx:if="{{status === -1}}" class="weda-ui-custom-picker__empty">暂无数据</view>
36
+ </view>
37
+ </view>
@@ -0,0 +1,329 @@
1
+ .weda-ui-custom-mask {
2
+ position: fixed;
3
+ left: 0;
4
+ right: 0;
5
+ bottom: 0;
6
+ top: 0;
7
+ background: rgba(0, 0, 0, 0.4);
8
+ transition: all 0.4s ease-in-out 0;
9
+ pointer-events: none;
10
+ opacity: 1;
11
+ pointer-events: auto;
12
+ }
13
+
14
+ .weda-ui-custom-picker {
15
+ position: fixed;
16
+ left: 0;
17
+ right: 0;
18
+ bottom: 0;
19
+ top: 0;
20
+ z-index: 1001;
21
+ }
22
+
23
+ .weda-ui-custom-picker__inner {
24
+ position: absolute;
25
+ left: 0;
26
+ right: 0;
27
+ bottom: 0;
28
+ background-color: #fff;
29
+ border-radius: 10px 10px 0 0;
30
+ height: 390px;
31
+ display: flex;
32
+ flex-direction: column;
33
+ padding-bottom: 30px;
34
+ }
35
+
36
+ .weda-ui-custom-picker__header {
37
+ display: flex;
38
+ flex: 0 0 auto;
39
+ justify-content: space-between;
40
+ padding: 12px 20px;
41
+ border-bottom: 0.5px solid #e3e6eb;
42
+ }
43
+
44
+ .weda-ui-custom-picker__body {
45
+ padding: 5px 16px;
46
+ overflow: auto;
47
+ flex: 1 1 0px;
48
+ box-sizing: border-box;
49
+ }
50
+
51
+ .weda-ui-custom-picker__header-btn {
52
+ margin: 0;
53
+ background-color: transparent;
54
+ font-size: 16px;
55
+ padding: 0;
56
+ line-height: 24px;
57
+ color: rgba(0, 0, 0, 0.6);
58
+ }
59
+
60
+ .weda-ui-custom-picker__header-btn.is-primary {
61
+ color: var(--wd-color-brand, #0052d9);
62
+ }
63
+
64
+ .weda-ui-custom-picker__header-btn::after {
65
+ border: none;
66
+ }
67
+
68
+ .weda-ui-custom-picker__cloumns {
69
+ display: flex;
70
+ align-items: flex-start;
71
+ position: relative;
72
+ /* padding: 0 16px; */
73
+ /* height: 200px; */
74
+ overflow: hidden;
75
+ }
76
+
77
+ .weda-ui-custom-picker__cloumn {
78
+ flex: 1 1 0;
79
+ overflow-y: auto;
80
+ overflow-x: hidden;
81
+ -webkit-overflow-scrolling: auto;
82
+ /* height: 199px; */
83
+ }
84
+
85
+ .weda-ui-custom-picker__cloumn::-webkit-scrollbar {
86
+ display: none;
87
+ }
88
+
89
+ .weda-ui-custom-picker__cloumn-item {
90
+ display: flex;
91
+ align-items: center;
92
+ white-space: pre-wrap;
93
+ height: 48px;
94
+ justify-content: flex-start;
95
+ color: rgba(0, 0, 0, 0.9);
96
+ position: relative;
97
+ }
98
+
99
+ .weda-ui-custom-picker__cloumn-item::before {
100
+ content: '';
101
+ position: absolute;
102
+ bottom: 0;
103
+ background-color: #e7e7e7;
104
+ width: 100%;
105
+ height: 1px;
106
+ transform: scaleY(0.5);
107
+ }
108
+
109
+ .weda-ui-custom-picker__cloumn-item.is-selected {
110
+ color: var(--wd-color-brand, #0052d9);
111
+ }
112
+
113
+ .weda-ui-custom-picker__cloumn-item.is-selected::after {
114
+ content: '';
115
+ display: block;
116
+ width: 8px;
117
+ height: 16px;
118
+ border-color: var(--wd-color-brand, #0052d9);
119
+ border-style: solid;
120
+ border-width: 0 1.5px 1.5px 0;
121
+ transform: rotate(45deg);
122
+ position: absolute;
123
+ right: 10px;
124
+ }
125
+
126
+ .weda-ui-custom-picker__cloumn-item.multiple.is-selected {
127
+ color: rgba(0, 0, 0, 0.9);
128
+ }
129
+
130
+ /* theme */
131
+ .weda-ui-custom-picker__cloumn-item.multiple.is-selected::after {
132
+ content: '';
133
+ width: 21px;
134
+ height: 21px;
135
+ border: none;
136
+ border-radius: 3px;
137
+ display: block;
138
+ position: absolute;
139
+ left: 0px;
140
+ background-color: var(--wd-color-brand, #0052d9);
141
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTAiIHZpZXdCb3g9IjAgMCAxNCAxMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTMuNDAxNDYgNy45NDI3QzMuNDAxNCA3Ljk0MjY0IDMuNDAxNTMgNy45NDI3NiAzLjQwMTQ2IDcuOTQyN0wwLjc1IDUuMjkxMjNMMi41NDM0OSAzLjU0OTE5TDUuMTcyMSA2LjE3NzhMMTEuMzY4NyAwTDEzLjEyNDQgMS43NTU3TDYuOTI3OCA3LjkzMzVMNi45MzcxOCA3Ljk0Mjg5TDYuOTExMDkgNy45NjgyM0M2Ljg1NyA4LjAyMDc3IDYuODAxMTQgOC4wNzAzNyA2Ljc0MzcxIDguMTE3MDRMNi4wNDEyMyA4LjgxNzM4QzUuNTUyODYgOS4zMDQyNyA0Ljc2MjQ0IDkuMzAzNjcgNC4yNzQ4MSA4LjgxNjA0TDMuNDAxNDYgNy45NDI3WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC45Ii8+Cjwvc3ZnPg==);
142
+ background-repeat: no-repeat;
143
+ background-position: center;
144
+ transform: rotate(0);
145
+ }
146
+
147
+ .weda-ui-custom-picker__cloumn-item.multiple::after {
148
+ content: '';
149
+ width: 20px;
150
+ height: 20px;
151
+ border: 1px solid #dcdcdc;
152
+ border-radius: 3px;
153
+ display: block;
154
+ position: absolute;
155
+ left: 0px;
156
+ }
157
+
158
+ .weda-ui-custom-picker__cloumn-item.is-disabled {
159
+ color: rgba(0, 0, 0, 0.26);
160
+ }
161
+
162
+ .weda-ui-custom-picker__empty {
163
+ color: rgba(0, 0, 0, 0.4);
164
+ width: 100%;
165
+ height: 100%;
166
+ display: flex;
167
+ align-items: center;
168
+ justify-content: center;
169
+ }
170
+
171
+ .weda-ui-custom-picker__status {
172
+ left: 16px;
173
+ color: rgba(0, 0, 0, 0.4);
174
+ font-size: 14px;
175
+ height: 48px;
176
+ line-height: 48px;
177
+ display: flex;
178
+ vertical-align: middle;
179
+ }
180
+
181
+ .weda-ui-custom-picker__status--loading {
182
+ color: var(--wd-color-brand, #0052d9);
183
+ display: flex;
184
+ align-items: center;
185
+ }
186
+
187
+ .weda-ui-custom-picker__status--empty {
188
+ color: #00000042;
189
+ }
190
+
191
+ .weda-ui-custom-picker__loading-icon {
192
+ width: 20px;
193
+ height: 20px;
194
+ display: inline-block;
195
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA4CAYAAACohjseAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAsQSURBVHgB7Vp9bJVXGX/Ox3tvW0qhpViQD0cZmWxuLBsYzRwRExOzhM2POOMSItkyJ3OwzcXonzNRY0YcySYgjoVNnfvDBLdM5jaNzEQSNs2IRBxzjAmM0gJe2tvS+/We8/h7zrkFYu7tF23Jkj70ct77vn3f9/zO7/k+JZqWaZmWaZlEUTRJsm5z94yuSnpDUk7np5R0OvYz2XMLKaW8I5Uyn2b23UR8RLvSW/se+3g/TYJMKEAB1ZuWb2evr3dMKzyzZibtPWuPd3lPhom083ivxxiuK4xyzR8hpj1e69cPPLa4iyZIJgTgVx4/dR1X6Gtg5IYwWZk4QOE4TB7HRs4BF8AqRXLeeXzXEaQLCxDukYVgT78vJnr7OxMA9LIAfnMHN+X6T67HHNeQx4RZCzjjPCvGmFJkSsC5wCQYFOYiCDApwJUKrDpvCMcCODKuhP0XU222/XvLopM0Thk3wHWPd62sMG/AvGc4AUfCDCbsg0rKSI5kxGQjk8JeOPZVRl0AryJzHBdCrkFtVZVxYf8Uprn18JNX7aZxiKZxyF1bur7sjH5IadWIJQJvmmWl4D9wDAXE/JSWhytMX+FrfA0uX7Kg8Q6whBso3IVRjimoabBZ0QRaCAf1k6Ubjm6kcciYAa57outeo+mLmiJnWsl6Y9TV+V0EyeEGBq/yE4+r/+GM5yroCMzLWTAqaoprYFBAX7BJhfGhJRuObqYxyphU9O6t3ffg3Z/hYG/iTASF1yzOA65fVI69MzgM9uVYDVLKb0KV30+JB7nkeiiTEDs/M3V6vnPu5tTTckx+gQ826U1QWQ72qbiqtkN2G1hmtfvYjiWPjHbOowZ477bu21PPd1AApkXZlAAVMDzkYJwz0VPy30ibPb/77rx/jubZNz1y7GY4lzsA8kvRLqv2WAUXWIy2K/yL8m858YslW0bz7FEBvO/nPZ+G2tztyQOUCszhSF4avaGASgGW1WHKNG//7aaZZ2gcsuLhdxaUXOZHwPEpARnDi4ALQEVD4sKK5ih1z6mnlrw60jNHBPjtZz+Y44qZhxHj5nrnlQ9mG14s4SyoUwr36B3/5vnvfPQVmgBZ9sDRjQDxIJ6rxcpdGAOTFNU22Gd/udS6KvfcnPxwzxrZyZSS2xS5NvF3yipvTHAozgRnAi7JDyQ6+fFEgRN592edTzpO7wdN/cGTikeNHldfYJRptknO/XCkZw0LUNiDhX1Sa+0RCpyRReToNeH5sawAzGbnMxvbD9MEy/vblr2GF90niYOkcxJPgxPj+AkqTPT11m8cuWW45wwLUKfJFwDGh7REQIExhAhvQJ2wBzZffHrTRw7QJMl/ti/ZD6v4ATyqgNGRucCeil4cNkL8veGeURfg95/rbQWQlQYUGiMLxsilAEzYlNRD2bd3fGveSzTJcurpzp1wMPuFwRg+xOarISqEFnVr61ffm1Xv/roAS778CVFBEIcPeQuQ2pAkjBiV05Xyr2iKpEL8oLB4AVjwsN74obw14++vd29dgCjYVolKarE1PA6Rzymwh4+D0u7f+sDC/9IUSW7X1Scwkz8AWMxtfbC/CC4CX13v3poAH93FDYnRHcghxblIrimjtwCawJM2ZGg/TbGkFdrhQlIOvyaVSizHJB6K6q6up6Y1ARZU91JRBAGEZNmJx8SIEI8KiNXZzes73qMplv7nl/4VKjngnUI5JkwqSRGNc7H+zCtfk8WaAI1N5hmoooQD8Z4Wz7DiPcVzkht3bXa54hy/7EJtGepN5L+squWYsp6vqnWPrXUSIW+2aIIJ9oYTMEQEXmXEIJWbcvaGBDgOwvaMJKShGAl5GIs3xaG6sdY9NQFqsrOUEWj4kcCH0tXCCuWasiZHV0hS0n2EVseFE5KyhTw8FGGza91TE6CxWBOwH9ijmH2SFHlihmwLdIXElSrHlcaKx8KSKOKrAlZtte6praKhQkXEMTqWqFJC4JxQyFSkKyYvLH9dUrdal9RQgf1/Uhug8QW4GC8ltpJKXUVooYfkdN2sYbJF0mASGxyazEUq5ZqvBbKmF7VsByU8AJsofPhQdUzIZOjKia5+zL+qY/W7onpYap1ETO8xYXWiikoslWIM2s4mobl05UTmG5zdtfH7pUy6WjfUjoPseyVzkbQshAqWQE84ZomNnXTlxPT0RNa6uiKbH1xktaYN1gTY0DT3OElirUObx1uLAheojaRrpDI/feHkIppi2buXbS6Xs8ac1WfPkkmSCCzp6Rk7wE23qRKiy3GpJJDJSASMH4CW/MEkjStoimX5csrmUasZ067b2+EHTS4A6+joiPG5jhetX00YOh7UNDTrKLAnYJGfosT2S554+d0WmiKRtMw19Te26dmAiGjf12dUW5s6d450LhcwpPXurQswa9reUhILoaZWVNVKp1e8KgKItqlVHZ+lKZK+PpqFHpBWLRQAKjVLnc/nJXPUum2cAEVN8YTjARC2f2zsxXhjwaSVAjidv2NP7nqaZDlzhmdWKoMNhYLSgz0CLn5mqRYlXfFSD1Vky7He/cP2ZBJ2b0japk3ikCE5y6G6kFZ2aGabjF21a+/APJokOXGCG0uaZhVVk26eMUPpZtKDADc4eBFoRwcNmzoOC3DD2vaTsL23pfsZNvmshI4hm5RKX7I4t+bZP+YW0wQLFKahrItzS6ooQFSxQFo+ujCoC/p8ANnTkysPx57IiH3RijuzDy8rSnUvwFTV4YTvOnjXRFuz+td/GZgwdT14rLf1xGlagOar1SXS5VLRlFQhAi2qwKbs6By4uu38SM8aVet+577Cx6hY+XxIwnmoJxo2vwJgYVV2YTLWdzc1zH5j7UpsuoxDDh06lFGtnfN1UTVwBs4tIZdks54L8t4i+yz7BmrEcYF16dy5BQsWjPieUW++7Hil96ZMRt/IsargS8FJta9C5gOQaINjn/aYtfrY2pUtZ0fz7EOHuFk3Fdsr1s00PnHWZnyxVGIEc59g4ZIW9NC4wVOhSFmAHKTGvmVzVH40zx7T9tlTf8rdaoztFJtEKwuhQwuTXFVbJzZprHEae2YWI/KC88hie02jPtufpsXWluYy9fZSm7aZvgQx25mmTINrgZYrw2VvGgUcChbRhrCFyAGgsCkLm3AW8Kl/4UI16o7emLewn/lz/hYA7GSEDqNN8KgKntbi2KAHJJtpRvaZQv6K83IuY13iOWRC8oFbcBnktV7SQSPskM/CUyMUhRAkxaiwyMHXgEl8RxnjuSmbv6ZFjUorhmTMO7zrP9eyD2D+ARICY0FVw5a77MdKPii5ecwLwTaHFD9NcdbFaFyJMbl4YXET/JNfkXCmVCo73qqs07SsKxjlN6Rur1SyvWMFNy6AInetbj6Y9Qa9UTUARZPmMIOZUGqDVfTYTfjTAmE3Y6QrJ4WbXE0jSEsBlHhFlaYAlChR0wgEPWdgJVSd2er7ivn8qesWqXH1gi7rz0h++Wr3jExz47WW9OLApoAKauvCsaheQ5JFlw82mTFhRExxAA41xu9ai/47VM9WkMNDRcG82KC3Yn5lzjY2565pp+6RYt2kARySl/7OTWk6uBx7sItCZxGThg8BPgBLjAvnjKhxKoWzT4wVe5PdnLjfATsUcGjJe8mcjLZ5zmZ7VsxT5+kyZUL/lEuAlnzfvIR4ISqRZmEzMSHjCQBl5EpQWy8e0lwCEF3zPBxx/uibTafvvFM5miCZtD/GA0H2tYMDbVYnMxOtspU0bdA2CapnswydTCqq5AZmz2gq7j5K/Y+uUSlNy7RMy7R82OR/OGN2MimnUS4AAAAASUVORK5CYII=);
196
+ background-repeat: no-repeat;
197
+ background-size: contain;
198
+ animation: rotate360 0.8s linear infinite;
199
+ }
200
+
201
+ @keyframes rotate360 {
202
+ 0% {
203
+ transform: rotate(0deg);
204
+ }
205
+
206
+ 100% {
207
+ transform: rotate(360deg);
208
+ }
209
+ }
210
+
211
+ .weda-ui-custom-picker__status--loading .weda-ui-custom-picker__loading-icon {
212
+ margin-right: 8px;
213
+ }
214
+
215
+ .weda-ui-custom-picker__btn {
216
+ background-color: transparent;
217
+ border: none;
218
+ font-size: 14px;
219
+ margin-left: 8px;
220
+ }
221
+
222
+ .weda-ui-custom-picker__btn--link {
223
+ color: var(--wd-color-brand, #0052d9);
224
+ }
225
+
226
+ /* 搜索 */
227
+ .weda-ui-custom-search {
228
+ display: flex;
229
+ align-items: center;
230
+ height: 40px;
231
+ margin: 10px 16px;
232
+ }
233
+
234
+ .weda-ui-custom-search-box {
235
+ display: flex;
236
+ align-items: center;
237
+ flex: 1 1 0px;
238
+ background-color: #f1f2f5;
239
+
240
+ border-radius: 4px;
241
+ height: 100%;
242
+ position: relative;
243
+ transition: all 0.8s linear;
244
+ }
245
+
246
+ .weda-ui-custom-search .weda-ui-input {
247
+ display: block;
248
+ width: 100%;
249
+ height: 100%;
250
+ border: 0;
251
+ font-size: 16px;
252
+ line-height: 24px;
253
+ background-color: inherit;
254
+ padding: 0 40px 0 40px;
255
+ caret-color: var(--wd-color-brand, #0052d9);
256
+ color: rgba(0, 0, 0, 0.9);
257
+ border-radius: 4px;
258
+ }
259
+
260
+ .weda-ui-custom-search-box__label {
261
+ position: absolute;
262
+ top: 0;
263
+ left: 50%;
264
+ transform: translateX(-50%);
265
+ height: 100%;
266
+ display: flex;
267
+ align-items: center;
268
+ color: rgba(0, 0, 0, 0.4);
269
+ }
270
+
271
+ .weda-ui-custom-search-box__search-icon {
272
+ width: 24px;
273
+ height: 24px;
274
+ margin-right: 4px;
275
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNSAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE0Ljc2NTUgMTUuMzI3OUMxMy41Mzc4IDE2LjMyMjEgMTEuOTc0MSAxNi45MTc2IDEwLjI3MTQgMTYuOTE3NkM2LjMyNDUzIDE2LjkxNzYgMy4xMjUgMTMuNzE4MSAzLjEyNSA5Ljc3MTMyQzMuMTI1IDUuODI0NTEgNi4zMjQ1MyAyLjYyNSAxMC4yNzE0IDIuNjI1QzE0LjIxODIgMi42MjUgMTcuNDE3NyA1LjgyNDUxIDE3LjQxNzcgOS43NzEzMkMxNy40MTc3IDExLjQ3NDEgMTYuODIyMSAxMy4wMzc4IDE1LjgyOCAxNC4yNjU1TDIxLjEyNSAxOS41NjI1TDIwLjA2MjYgMjAuNjI1TDE0Ljc2NTUgMTUuMzI3OVpNMTUuOTE1MiA5Ljc3MTMyQzE1LjkxNTIgNi42NTQzNCAxMy4zODg0IDQuMTI3NTIgMTAuMjcxNCA0LjEyNzUyQzcuMTU0MzUgNC4xMjc1MiA0LjYyNzUyIDYuNjU0MzQgNC42Mjc1MiA5Ljc3MTMyQzQuNjI3NTIgMTIuODg4MyA3LjE1NDM1IDE1LjQxNTEgMTAuMjcxNCAxNS40MTUxQzEzLjM4ODQgMTUuNDE1MSAxNS45MTUyIDEyLjg4ODMgMTUuOTE1MiA5Ljc3MTMyWiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC40Ii8+Cjwvc3ZnPgo=);
276
+ background-repeat: no-repeat;
277
+ }
278
+
279
+ .weda-ui-custom-search-box__dismiss-icon {
280
+ position: absolute;
281
+ right: 12px;
282
+ width: 24px;
283
+ height: 24px;
284
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIyLjUgMTJDMjIuNSA2LjIwMTAxIDE3Ljc5OSAxLjUgMTIgMS41QzYuMjAxMDEgMS41IDEuNSA2LjIwMTAxIDEuNSAxMkMxLjUgMTcuNzk5IDYuMjAxMDEgMjIuNSAxMiAyMi41QzE3Ljc5OSAyMi41IDIyLjUgMTcuNzk5IDIyLjUgMTJaTTguNTA2MzYgNy40MjEzMUwxMiAxMC45MzYxTDE1LjQ5MzcgNy40MjEzMUwxNi41NTc1IDguNDc4NzZMMTMuMDU3NSAxMkwxNi41NTc1IDE1LjUyMTJMMTUuNDkzNyAxNi41Nzg3TDEyIDEzLjA2MzlMOC41MDYzNyAxNi41Nzg3TDcuNDQyNTEgMTUuNTIxMkwxMC45NDI1IDEyTDcuNDQyNSA4LjQ3ODc2TDguNTA2MzYgNy40MjEzMVoiIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuNCIvPgo8L3N2Zz4K);
285
+ background-repeat: no-repeat;
286
+ }
287
+
288
+ /* theme */
289
+ .weda-ui-custom-search__btn-cancle {
290
+ flex: 0 0 auto;
291
+ display: none;
292
+ margin-left: 16px;
293
+ color: var(--wd-color-brand, #0052d9);
294
+ font-size: 32rxp;
295
+ background-color: transparent;
296
+ border: none;
297
+ padding: 0;
298
+ }
299
+
300
+ .weda-ui-custom-search__btn-cancle::after {
301
+ border: none;
302
+ }
303
+
304
+ /* 获取焦点后 */
305
+ .weda-ui-custom-search.is-focused .weda-ui-custom-search__btn-cancle {
306
+ display: inline-flex;
307
+ }
308
+
309
+ .weda-ui-custom-search.is-focused .weda-ui-custom-search-box__label {
310
+ left: 12px;
311
+ transform: translateX(0);
312
+ }
313
+
314
+ .weda-ui-custom-search.is-focused .weda-ui-custom-search-box__search-placeholder {
315
+ display: none;
316
+ }
317
+
318
+ .weda-ui-custom-picker__cloumn-item-text.multiple {
319
+ overflow: hidden;
320
+ text-overflow: ellipsis;
321
+ white-space: nowrap;
322
+ margin-left: 30px;
323
+ }
324
+ .weda-ui-custom-picker__cloumn-item-text {
325
+ overflow: hidden;
326
+ text-overflow: ellipsis;
327
+ white-space: nowrap;
328
+ margin-right: 50px;
329
+ }
@@ -1,9 +1,20 @@
1
1
  const SINGLE_FOREIGN_FORMATS = ['father-son', 'related', 'many-one', 'one-one', 'one-one-r'];
2
2
  /** do NOT export this array */
3
- const formatNeedDataFetch = [...SINGLE_FOREIGN_FORMATS, 'x-enum'];
3
+ const formatNeedDataFetch = [...SINGLE_FOREIGN_FORMATS, 'x-enum', 'one-many',
4
+ 'many-many',];
4
5
  export function isSingleForeignFormat(format) {
5
6
  return SINGLE_FOREIGN_FORMATS.includes(format);
6
7
  }
7
8
  export function isFormatNeedFetch(format) {
8
9
  return formatNeedDataFetch.includes(format);
9
10
  }
11
+
12
+ const formatWithFilterable = [
13
+ ...SINGLE_FOREIGN_FORMATS,
14
+ 'one-many',
15
+ 'many-many',
16
+ ] ;
17
+
18
+ export function isFormatWithFilterable(format) {
19
+ return formatWithFilterable.includes(format);
20
+ }