@zgfe/modules-page 1.0.8-lijingyu1538.1 → 1.0.17-zhongyuan.3

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.
@@ -1,198 +1,198 @@
1
- @import '~@zgfe/business-lib/es/assets/styles/inner.less';
2
- .group-modal {
3
- &-form-input {
4
- width: 336px;
5
- border-color: #fafafb;
6
- }
7
- &-form-title {
8
- color: @text-color-secondary;
9
- line-height: 1;
10
- }
11
-
12
- &-item {
13
- &-container {
14
- display: flex;
15
- margin: 12px 0;
16
- }
17
-
18
- &-handle {
19
- position: relative;
20
- display: flex;
21
- align-items: center;
22
- width: 16px;
23
- margin-right: 16px;
24
- &::before {
25
- position: absolute;
26
- top: 0;
27
- left: 50%;
28
- width: 1px;
29
- height: 100%;
30
- background-color: #ecedf0;
31
- content: '';
32
- }
33
-
34
- span {
35
- z-index: 10;
36
- display: flex;
37
- align-items: center;
38
- justify-content: center;
39
- width: 16px;
40
- height: 16px;
41
- font-size: 12px;
42
- background: #e8efff;
43
- border-radius: 3px;
44
- }
45
- }
46
-
47
- &-content {
48
- display: flex;
49
- flex: 1;
50
- flex-direction: column;
51
- gap: 12px;
52
- &-item {
53
- display: flex;
54
- gap: 16px;
55
- &-input.ant-input {
56
- width: 120px;
57
- height: 32px;
58
- border-color: #fafafb;
59
- &.ant-input[disabled]:hover {
60
- border-color: #fafafb;
61
- }
62
- }
63
-
64
- &-operator {
65
- &.ant-select.ant-select-in-form-item {
66
- width: 104px;
67
- height: 32px;
68
- }
69
- }
70
- &-param {
71
- &.ant-select.ant-select-in-form-item {
72
- width: 300px;
73
- }
74
- width: 300px;
75
- border-color: #fafafb;
76
- }
77
- .ant-select {
78
- border-radius: 4px;
79
-
80
- &.ant-select-status-error {
81
- border-color: @error-color;
82
- &.ant-select-focused {
83
- box-shadow: 0 0 0 2px rgba(251, 85, 71, 0.2) !important;
84
- .ant-select-selector {
85
- box-shadow: none;
86
- }
87
- }
88
- &:hover {
89
- border-color: @error-color;
90
- }
91
- }
92
- }
93
- .ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
94
- height: 30px;
95
- border: none;
96
- border-radius: 4px;
97
- box-shadow: none;
98
- }
99
- }
100
- }
101
-
102
- &-tip {
103
- color: @error-color;
104
- }
105
-
106
- &-btn-add {
107
- display: flex;
108
- gap: 8px;
109
- align-items: center;
110
- width: fit-content;
111
- height: 32px;
112
- margin-bottom: 12px;
113
- color: @primary-color;
114
- cursor: pointer;
115
-
116
- .bsicon {
117
- font-size: 16px !important;
118
- }
119
- }
120
-
121
- &-btn-del {
122
- margin-top: 4px;
123
- color: #9aa1a9;
124
- font-size: 16px !important;
125
- cursor: pointer;
126
- &.disabled {
127
- color: @disabled-color;
128
- cursor: not-allowed;
129
- }
130
-
131
- &:not(.disabled):hover {
132
- color: @error-color;
133
- }
134
- }
135
-
136
- &-down-icon {
137
- color: @text-color-secondary;
138
- }
139
- }
140
-
141
- &-form-item-filter.ant-form-item {
142
- margin-bottom: 12px;
143
- }
144
- &-dropdown {
145
- width: 300px;
146
- &-handle {
147
- width: 300px;
148
- }
149
- }
150
- &-dropdown-panel {
151
- .__select-panel();
152
- }
153
-
154
- .ant-input {
155
- border-color: #fafafb;
156
- &:not([disabled]):hover,
157
- &:not([disabled]):focus {
158
- border-color: @primary-color;
159
- }
160
- &[disabled] {
161
- color: #ccd0d4;
162
- background: @background-color-gray;
163
- }
164
- }
165
- .ant-modal-content {
166
- .ant-modal-body {
167
- padding-top: 8px;
168
- padding-bottom: 0;
169
- }
170
- .ant-modal-footer {
171
- padding: 24px !important;
172
- border-top: 1px solid #f2f3f4 !important;
173
-
174
- .group-modal-footer-del {
175
- display: flex;
176
- align-items: center;
177
- float: left;
178
- background: #f2f3f4 !important;
179
- .bsicon {
180
- margin-right: 8px;
181
- font-size: 16px !important;
182
- line-height: 1;
183
- }
184
- &.ant-btn-text[disabled]:hover {
185
- color: rgba(0, 0, 0, 0.25) !important;
186
- }
187
- &.ant-btn-text:not([disabled]):hover {
188
- color: #fb5547 !important;
189
- background: #f2f3f4 !important;
190
- }
191
- &.ant-btn-text:not([disabled]):focus {
192
- color: #e24c40 !important;
193
- background: #f2f3f4 !important;
194
- }
195
- }
196
- }
197
- }
198
- }
1
+ @import '~@zgfe/business-lib/es/assets/styles/inner.less';
2
+ .group-modal {
3
+ &-form-input {
4
+ width: 336px;
5
+ border-color: #fafafb;
6
+ }
7
+ &-form-title {
8
+ color: @text-color-secondary;
9
+ line-height: 1;
10
+ }
11
+
12
+ &-item {
13
+ &-container {
14
+ display: flex;
15
+ margin: 12px 0;
16
+ }
17
+
18
+ &-handle {
19
+ position: relative;
20
+ display: flex;
21
+ align-items: center;
22
+ width: 16px;
23
+ margin-right: 16px;
24
+ &::before {
25
+ position: absolute;
26
+ top: 0;
27
+ left: 50%;
28
+ width: 1px;
29
+ height: 100%;
30
+ background-color: #ecedf0;
31
+ content: '';
32
+ }
33
+
34
+ span {
35
+ z-index: 10;
36
+ display: flex;
37
+ align-items: center;
38
+ justify-content: center;
39
+ width: 16px;
40
+ height: 16px;
41
+ font-size: 12px;
42
+ background: #e8efff;
43
+ border-radius: 3px;
44
+ }
45
+ }
46
+
47
+ &-content {
48
+ display: flex;
49
+ flex: 1;
50
+ flex-direction: column;
51
+ gap: 12px;
52
+ &-item {
53
+ display: flex;
54
+ gap: 16px;
55
+ &-input.ant-input {
56
+ width: 120px;
57
+ height: 32px;
58
+ border-color: #fafafb;
59
+ &.ant-input[disabled]:hover {
60
+ border-color: #fafafb;
61
+ }
62
+ }
63
+
64
+ &-operator {
65
+ &.ant-select.ant-select-in-form-item {
66
+ width: 104px;
67
+ height: 32px;
68
+ }
69
+ }
70
+ &-param {
71
+ &.ant-select.ant-select-in-form-item {
72
+ width: 300px;
73
+ }
74
+ width: 300px;
75
+ border-color: #fafafb;
76
+ }
77
+ .ant-select {
78
+ border-radius: 4px;
79
+
80
+ &.ant-select-status-error {
81
+ border-color: @error-color;
82
+ &.ant-select-focused {
83
+ box-shadow: 0 0 0 2px rgba(251, 85, 71, 0.2) !important;
84
+ .ant-select-selector {
85
+ box-shadow: none;
86
+ }
87
+ }
88
+ &:hover {
89
+ border-color: @error-color;
90
+ }
91
+ }
92
+ }
93
+ .ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
94
+ height: 30px;
95
+ border: none;
96
+ border-radius: 4px;
97
+ box-shadow: none;
98
+ }
99
+ }
100
+ }
101
+
102
+ &-tip {
103
+ color: @error-color;
104
+ }
105
+
106
+ &-btn-add {
107
+ display: flex;
108
+ gap: 8px;
109
+ align-items: center;
110
+ width: fit-content;
111
+ height: 32px;
112
+ margin-bottom: 12px;
113
+ color: @primary-color;
114
+ cursor: pointer;
115
+
116
+ .bsicon {
117
+ font-size: 16px !important;
118
+ }
119
+ }
120
+
121
+ &-btn-del {
122
+ margin-top: 4px;
123
+ color: #9aa1a9;
124
+ font-size: 16px !important;
125
+ cursor: pointer;
126
+ &.disabled {
127
+ color: @disabled-color;
128
+ cursor: not-allowed;
129
+ }
130
+
131
+ &:not(.disabled):hover {
132
+ color: @error-color;
133
+ }
134
+ }
135
+
136
+ &-down-icon {
137
+ color: @text-color-secondary;
138
+ }
139
+ }
140
+
141
+ &-form-item-filter.ant-form-item {
142
+ margin-bottom: 12px;
143
+ }
144
+ &-dropdown {
145
+ width: 300px;
146
+ &-handle {
147
+ width: 300px;
148
+ }
149
+ }
150
+ &-dropdown-panel {
151
+ .__select-panel();
152
+ }
153
+
154
+ .ant-input {
155
+ border-color: #fafafb;
156
+ &:not([disabled]):hover,
157
+ &:not([disabled]):focus {
158
+ border-color: @primary-color;
159
+ }
160
+ &[disabled] {
161
+ color: #ccd0d4;
162
+ background: @background-color-gray;
163
+ }
164
+ }
165
+ .ant-modal-content {
166
+ .ant-modal-body {
167
+ padding-top: 8px;
168
+ padding-bottom: 0;
169
+ }
170
+ .ant-modal-footer {
171
+ padding: 24px !important;
172
+ border-top: 1px solid #f2f3f4 !important;
173
+
174
+ .group-modal-footer-del {
175
+ display: flex;
176
+ align-items: center;
177
+ float: left;
178
+ background: #f2f3f4 !important;
179
+ .bsicon {
180
+ margin-right: 8px;
181
+ font-size: 16px !important;
182
+ line-height: 1;
183
+ }
184
+ &.ant-btn-text[disabled]:hover {
185
+ color: rgba(0, 0, 0, 0.25) !important;
186
+ }
187
+ &.ant-btn-text:not([disabled]):hover {
188
+ color: #fb5547 !important;
189
+ background: #f2f3f4 !important;
190
+ }
191
+ &.ant-btn-text:not([disabled]):focus {
192
+ color: #e24c40 !important;
193
+ background: #f2f3f4 !important;
194
+ }
195
+ }
196
+ }
197
+ }
198
+ }
@@ -10,12 +10,14 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
10
10
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
11
11
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
12
12
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
- import { BizSelect, IconFont } from '@zgfe/business-lib';
13
+ import { BizSearchInput, BizSelect, IconFont } from '@zgfe/business-lib';
14
14
  import { pageTypes } from "../../constants";
15
- import React, { useContext, useEffect, useState } from 'react';
15
+ import React, { useContext, useEffect, useMemo, useState } from 'react';
16
16
  import "./index.less";
17
17
  import { ModulesPageContext } from "../../modules/home/types";
18
- import { Tooltip } from 'antd';
18
+ import { Dropdown, Tooltip } from 'antd';
19
+ import VirtualList from 'rc-virtual-list';
20
+ import _ from 'lodash';
19
21
  var PageSelect = function PageSelect(props) {
20
22
  // 当前类型
21
23
  var _useState = useState(pageTypes[0]),
@@ -37,6 +39,19 @@ var PageSelect = function PageSelect(props) {
37
39
  pageList = _useContext.pageList,
38
40
  pageGroupList = _useContext.pageGroupList,
39
41
  currentClickPage = _useContext.currentClickPage;
42
+ var _useState7 = useState(false),
43
+ _useState8 = _slicedToArray(_useState7, 2),
44
+ open = _useState8[0],
45
+ setOpen = _useState8[1];
46
+ var _useState9 = useState(),
47
+ _useState10 = _slicedToArray(_useState9, 2),
48
+ search = _useState10[0],
49
+ setSearch = _useState10[1];
50
+ var showList = useMemo(function () {
51
+ return pageList.filter(function (item) {
52
+ return !search || new RegExp(_.escapeRegExp(search), 'i').test(item.pageTitle || '');
53
+ });
54
+ }, [search, pageList]);
40
55
  useEffect(function () {
41
56
  var _props$value, _props$value2;
42
57
  var type = (_props$value = props.value) !== null && _props$value !== void 0 && _props$value.pageGroup || ((_props$value2 = props.value) === null || _props$value2 === void 0 ? void 0 : _props$value2.pageGroup) === 0 ? 1 : 0;
@@ -117,7 +132,59 @@ var PageSelect = function PageSelect(props) {
117
132
  onChange: function onChange(data) {
118
133
  return setCurrentType(data);
119
134
  }
120
- }), /*#__PURE__*/React.createElement(BizSelect, {
135
+ }), currentType.value === 'page' ? /*#__PURE__*/React.createElement(Dropdown, {
136
+ trigger: ['click'],
137
+ open: open,
138
+ onOpenChange: function onOpenChange(status) {
139
+ setOpen(status);
140
+ if (!status) {
141
+ setSearch('');
142
+ }
143
+ },
144
+ dropdownRender: function dropdownRender() {
145
+ return /*#__PURE__*/React.createElement("div", {
146
+ className: "".concat(classPrefix, "-overlay")
147
+ }, /*#__PURE__*/React.createElement(BizSearchInput, {
148
+ placeholder: "\u8BF7\u8F93\u5165",
149
+ className: "".concat(classPrefix, "-search"),
150
+ onChange: setSearch
151
+ }), /*#__PURE__*/React.createElement("div", {
152
+ className: "".concat(classPrefix, "-opt-panel")
153
+ }, /*#__PURE__*/React.createElement(VirtualList, {
154
+ data: showList,
155
+ height: 408,
156
+ itemHeight: 48,
157
+ itemKey: "pageUrl"
158
+ }, function (item) {
159
+ return /*#__PURE__*/React.createElement("div", {
160
+ className: "".concat(classPrefix, "-opt ").concat((currentValue === null || currentValue === void 0 ? void 0 : currentValue.pageUrl) === (item === null || item === void 0 ? void 0 : item.pageUrl) ? 'active' : ''),
161
+ title: item === null || item === void 0 ? void 0 : item.pageTitle,
162
+ onClick: function onClick() {
163
+ setCurrentValue(item);
164
+ setOpen(false);
165
+ setSearch('');
166
+ }
167
+ }, /*#__PURE__*/React.createElement("div", {
168
+ className: "".concat(classPrefix, "-tle"),
169
+ style: item.pageUrl ? undefined : {
170
+ height: '36px',
171
+ lineHeight: '36px'
172
+ }
173
+ }, item.pageTitle), item.pageUrl ? /*#__PURE__*/React.createElement("div", {
174
+ className: "".concat(classPrefix, "-url")
175
+ }, item.pageUrl) : null);
176
+ })));
177
+ }
178
+ }, /*#__PURE__*/React.createElement("div", {
179
+ className: "".concat(classPrefix, "-handle")
180
+ }, /*#__PURE__*/React.createElement(Tooltip, {
181
+ title: currentValue === null || currentValue === void 0 ? void 0 : currentValue.pageTitle
182
+ }, /*#__PURE__*/React.createElement("div", {
183
+ className: "".concat(classPrefix, "-val")
184
+ }, currentValue === null || currentValue === void 0 ? void 0 : currentValue.pageTitle)), /*#__PURE__*/React.createElement(IconFont, {
185
+ type: "xiangxia",
186
+ className: "".concat(classPrefix, "-icon")
187
+ }))) : /*#__PURE__*/React.createElement(BizSelect, {
121
188
  value: currentValue,
122
189
  className: "".concat(classPrefix, "-panel-page"),
123
190
  options: currentType.value === 'page' ? pageList : pageGroupList,
@@ -1,57 +1,109 @@
1
- @import '~@zgfe/business-lib/es/assets/styles/inner.less';
2
-
3
- .page-select {
4
- &-panel {
5
- display: flex;
6
- align-items: center;
7
- padding: 4px 24px;
8
-
9
- &:hover {
10
- background: #e8efff;
11
- }
12
- &-type {
13
- width: 184px;
14
- margin-right: 16px;
15
- }
16
-
17
- &-page {
18
- min-width: 184px;
19
- margin-right: 16px;
20
- }
21
-
22
- &-icon {
23
- font-size: 20px !important;
24
- .__icon();
25
- }
26
- }
27
- .biz-attr-condition-group {
28
- margin-top: 12px;
29
- }
30
- .biz-select-option {
31
- height: auto;
32
- &.active {
33
- .page-select-select-option-content {
34
- color: #fff;
35
- }
36
- }
37
- }
38
- &-select-option {
39
- width: 100%;
40
- padding: 6px 0;
41
-
42
- &:hover .page-select-select-option-content {
43
- color: @primary-color;
44
- }
45
- &-title {
46
- line-height: 20px;
47
- .__default-overflow();
48
- }
49
-
50
- &-content {
51
- color: #67727f;
52
- font-size: 12px;
53
- line-height: 16px;
54
- .__default-overflow();
55
- }
56
- }
57
- }
1
+ @import '~@zgfe/business-lib/es/assets/styles/inner.less';
2
+
3
+ .page-select {
4
+ &-panel {
5
+ display: flex;
6
+ align-items: center;
7
+ padding: 4px 24px;
8
+
9
+ &:hover {
10
+ background: #e8efff;
11
+ }
12
+ &-type {
13
+ width: 184px;
14
+ margin-right: 16px;
15
+ }
16
+
17
+ &-page {
18
+ min-width: 184px;
19
+ margin-right: 16px;
20
+ }
21
+
22
+ &-icon {
23
+ font-size: 20px !important;
24
+ .__icon();
25
+ }
26
+ }
27
+ .biz-attr-condition-group {
28
+ margin-top: 12px;
29
+ }
30
+ .biz-select-option {
31
+ height: auto;
32
+ &.active {
33
+ .page-select-select-option-content {
34
+ color: #fff;
35
+ }
36
+ }
37
+ }
38
+ &-select-option {
39
+ width: 100%;
40
+ padding: 6px 0;
41
+
42
+ &:hover .page-select-select-option-content {
43
+ color: @primary-color;
44
+ }
45
+ &-title {
46
+ line-height: 20px;
47
+ .__default-overflow();
48
+ }
49
+
50
+ &-content {
51
+ color: #67727f;
52
+ font-size: 12px;
53
+ line-height: 16px;
54
+ .__default-overflow();
55
+ }
56
+ }
57
+
58
+ &-handle {
59
+ display: flex;
60
+ flex-direction: row;
61
+ width: 184px;
62
+ height: 32px;
63
+ margin-right: @margin-md;
64
+ padding: 0 @padding-xs;
65
+ line-height: 32px;
66
+ .__select-handle();
67
+ }
68
+ &-val {
69
+ flex: 1;
70
+ overflow: hidden;
71
+ white-space: nowrap;
72
+ text-overflow: ellipsis;
73
+ }
74
+ &-icon {
75
+ flex: none;
76
+ color: #5f6085;
77
+ }
78
+ &-overlay {
79
+ .__select-panel();
80
+ width: 400px;
81
+ }
82
+ &-search {
83
+ margin-bottom: @margin-xs;
84
+ }
85
+ &-opt {
86
+ .__select-option();
87
+ height: 48px;
88
+ padding: 6px @padding-xs;
89
+ line-height: normal;
90
+ &.active {
91
+ .page-select-url {
92
+ color: #fff;
93
+ }
94
+ }
95
+ }
96
+ &-tle {
97
+ line-height: 20px;
98
+ }
99
+ &-url {
100
+ color: #67727f;
101
+ font-size: 12px;
102
+ line-height: 16px;
103
+ }
104
+ &-tle,
105
+ &-url {
106
+ overflow: hidden;
107
+ text-overflow: ellipsis;
108
+ }
109
+ }
@@ -42,11 +42,11 @@ var SearchPanel = /*#__PURE__*/React.forwardRef(function (props, ref) {
42
42
  }, 0);
43
43
  }, []);
44
44
 
45
- /**
46
- * 筛选值发生改变
47
- * @param _changedValues 当前表单项改变后的值
48
- * @param allValues 当前表单值
49
- * @returns
45
+ /**
46
+ * 筛选值发生改变
47
+ * @param _changedValues 当前表单项改变后的值
48
+ * @param allValues 当前表单值
49
+ * @returns
50
50
  */
51
51
  var onChange = function onChange(_changedValues, allValues) {
52
52
  setFormData(allValues);