@zgfe/modules-interval 1.0.3-alpha.3 → 1.0.3-alpha.31

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.
@@ -12,12 +12,12 @@ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefine
12
12
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
13
  import React, { useContext, useEffect, useState } from 'react';
14
14
  import { Spin } from 'antd';
15
- import { BizGlobalDataContext, BizTargetFromPanel } from '@zgfe/business-lib';
15
+ import { BizGlobalDataContext, BizTargetFromPanel, ajax } from '@zgfe/business-lib';
16
16
  import "./styles/index.less";
17
17
  import { IntervalContext } from "../../types";
18
18
  import { getInitDate } from "../../constants/initData";
19
19
  import EventContent from "../content";
20
- import { chartTypes } from "../../constants";
20
+ import { Apis, chartTypes } from "../../constants";
21
21
  var classPrefix = 'interval-module-container';
22
22
  var ModuleInterval = function ModuleInterval(props) {
23
23
  // 属性
@@ -36,43 +36,52 @@ var ModuleInterval = function ModuleInterval(props) {
36
36
  _useState4 = _slicedToArray(_useState3, 2),
37
37
  loading = _useState4[0],
38
38
  setLoading = _useState4[1];
39
- var _useState5 = useState(true),
40
- _useState6 = _slicedToArray(_useState5, 2),
41
- pageLoading = _useState6[0],
42
- setPageLoading = _useState6[1];
43
39
  // 指标标题
40
+ var _useState5 = useState(),
41
+ _useState6 = _slicedToArray(_useState5, 2),
42
+ title = _useState6[0],
43
+ setTitle = _useState6[1];
44
44
  var _useState7 = useState(),
45
45
  _useState8 = _slicedToArray(_useState7, 2),
46
- title = _useState8[0],
47
- setTitle = _useState8[1];
46
+ panelId = _useState8[0],
47
+ setPanelId = _useState8[1];
48
48
  var _useState9 = useState(),
49
49
  _useState10 = _slicedToArray(_useState9, 2),
50
- panelId = _useState10[0],
51
- setPanelId = _useState10[1];
50
+ elementId = _useState10[0],
51
+ setElementId = _useState10[1];
52
52
  var _useState11 = useState(),
53
53
  _useState12 = _slicedToArray(_useState11, 2),
54
- elementId = _useState12[0],
55
- setElementId = _useState12[1];
56
- var _useState13 = useState(),
54
+ showList = _useState12[0],
55
+ setShowList = _useState12[1];
56
+ var _useState13 = useState(false),
57
57
  _useState14 = _slicedToArray(_useState13, 2),
58
- showList = _useState14[0],
59
- setShowList = _useState14[1];
58
+ subjectEnable = _useState14[0],
59
+ setSubjectEnable = _useState14[1];
60
60
  // 初始化
61
61
  useEffect(function () {
62
- setPageLoading(true);
63
- // 设置初始值
64
- if (!props.defaultValue) {
65
- initSearch();
66
- } else {
67
- setShowList(props.defaultValue.chosen_data);
68
- setPanelId(props.defaultValue.panelId);
69
- setElementId(props.defaultValue.id);
70
- setTitle(props.defaultValue.name);
71
- setSearchData(props.defaultValue.data);
72
- }
73
- setTimeout(function () {
74
- setPageLoading(false);
75
- }, 0);
62
+ setLoading(true);
63
+ ajax(Apis.querySubjectDisplay, {
64
+ method: 'post',
65
+ data: {
66
+ appId: currentApp === null || currentApp === void 0 ? void 0 : currentApp.appId
67
+ }
68
+ }).then(function (res) {
69
+ if (!res) return;
70
+ setSubjectEnable(res.data);
71
+ // 设置初始值
72
+ if (!props.defaultValue) {
73
+ initSearch();
74
+ } else {
75
+ setShowList(props.defaultValue.chosen_data);
76
+ setPanelId(props.defaultValue.panelId);
77
+ setElementId(props.defaultValue.id);
78
+ setTitle(props.defaultValue.name);
79
+ setSearchData(props.defaultValue.data);
80
+ }
81
+ setTimeout(function () {
82
+ setLoading(false);
83
+ });
84
+ });
76
85
  }, []);
77
86
 
78
87
  // 查询条件初始化
@@ -80,20 +89,21 @@ var ModuleInterval = function ModuleInterval(props) {
80
89
  setSearchData({
81
90
  userGroup: (userGroupList === null || userGroupList === void 0 ? void 0 : userGroupList.length) > 0 ? [userGroupList[0].id] : [0],
82
91
  time: getInitDate(props.includeToday),
83
- chartType: 'line'
92
+ chartType: 'boxplot'
84
93
  });
85
94
  };
86
-
87
- // 改变loading
88
- var changeLoading = function changeLoading(flag) {
89
- setLoading(flag);
90
- };
91
- if (pageLoading) {
92
- return /*#__PURE__*/React.createElement(Spin, null);
95
+ useEffect(function () {
96
+ if (props.onChange) props.onChange(searchData);
97
+ }, [searchData]);
98
+ if (loading) {
99
+ return /*#__PURE__*/React.createElement("div", {
100
+ className: classPrefix
101
+ }, /*#__PURE__*/React.createElement(Spin, {
102
+ className: "".concat(classPrefix, "-loading")
103
+ }));
93
104
  }
94
- return /*#__PURE__*/React.createElement(Spin, {
95
- spinning: loading,
96
- wrapperClassName: classPrefix
105
+ return /*#__PURE__*/React.createElement("div", {
106
+ className: classPrefix
97
107
  }, /*#__PURE__*/React.createElement(BizTargetFromPanel, {
98
108
  value: panelId ? {
99
109
  panelId: panelId,
@@ -102,7 +112,7 @@ var ModuleInterval = function ModuleInterval(props) {
102
112
  name: title,
103
113
  params: _objectSpread({
104
114
  app_id: currentApp === null || currentApp === void 0 ? void 0 : currentApp.appId,
105
- module: 'event'
115
+ module: 'interval'
106
116
  }, searchData)
107
117
  }
108
118
  } : undefined,
@@ -121,10 +131,11 @@ var ModuleInterval = function ModuleInterval(props) {
121
131
  userPropList: userPropList,
122
132
  searchData: searchData,
123
133
  setSearchData: setSearchData,
134
+ subjectEnable: subjectEnable,
124
135
  panelName: title,
125
136
  includeToday: props.includeToday,
126
137
  enableAddScene: props.defaultValue && props.defaultValue.enableAddScene === false ? false : true,
127
- changeLoading: changeLoading,
138
+ changeLoading: setLoading,
128
139
  afterEditTarget: props.afterEditTarget,
129
140
  onUserDrill: props.onUserDrill,
130
141
  onJumpWarning: props.onJumpWarning
@@ -133,7 +144,6 @@ var ModuleInterval = function ModuleInterval(props) {
133
144
  defaultValue: props.defaultValue ? props.defaultValue.data : undefined,
134
145
  value: searchData,
135
146
  show: showList,
136
- urlParam: props.urlParam,
137
147
  onUserDrill: props.onUserDrill,
138
148
  onJumpWarning: props.onJumpWarning,
139
149
  onChange: setSearchData,
@@ -8,6 +8,12 @@
8
8
  min-width: 1000px;
9
9
  height: 100%;
10
10
  background: #fafafb;
11
+ &-loading {
12
+ display: flex;
13
+ align-items: center;
14
+ justify-content: center;
15
+ height: 100%;
16
+ }
11
17
  .interval-layout {
12
18
  .biz-layout-collapse-container {
13
19
  height: 24px;
@@ -6,7 +6,6 @@ export declare namespace IntervalProps {
6
6
  * @description 默认查询值
7
7
  */
8
8
  defaultValue?: Value;
9
- urlParam?: SearchValue;
10
9
  /**
11
10
  * @description 看板是否可禁用, true禁用
12
11
  */
@@ -23,8 +22,9 @@ export declare namespace IntervalProps {
23
22
  /**
24
23
  * 用户钻取
25
24
  */
26
- onUserDrill: (data: IntervalDrillParams) => void;
25
+ onUserDrill: (data: IntervalDrillParams, isSubject: boolean) => void;
27
26
  onJumpWarning: (data: Record<string, any>, searchData: SearchValue) => void;
27
+ onChange?: (data: SearchValue) => void;
28
28
  }
29
29
  interface Value {
30
30
  /**
@@ -70,6 +70,8 @@ export declare namespace IntervalProps {
70
70
  min?: number;
71
71
  perValue?: number;
72
72
  peopleNum?: number;
73
+ names?: string[];
74
+ total?: number;
73
75
  children?: ColumnsDataType[];
74
76
  }
75
77
  }
@@ -10,93 +10,68 @@ 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(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
12
12
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
- import React, { useState } from 'react';
14
- import { Form, Button, Radio } from 'antd';
13
+ import React, { useContext, useEffect, useState } from 'react';
14
+ import { Form, Button, Radio, Space, Switch } from 'antd';
15
15
  import { BizAttributeSelector, BizSelect, BizUserGroupHeader, useSubject } from '@zgfe/business-lib';
16
16
  import EventFilter from "../../components/eventFilter";
17
17
  import "./styles/index.less";
18
18
  import { AnalysisMode } from "./types";
19
+ import { IntervalContext } from "../../types";
19
20
  var classPrefix = 'top-panel-interval';
20
21
  var TopPanel = function TopPanel(props) {
21
- var _props$urlParam, _props$urlParam2, _defaultValue$associa, _defaultValue$associa2, _finalSearchData$asso, _finalSearchData$asso2, _defaultValue$associa3, _finalSearchData$asso3, _defaultValue$associa4, _finalSearchData$asso4, _defaultValue$associa5, _finalSearchData$asso5, _defaultValue$associa6, _finalSearchData$asso6, _defaultValue$associa7, _finalSearchData$asso7, _defaultValue$associa8, _finalSearchData$asso8, _defaultValue$associa9, _finalSearchData$asso9, _defaultValue$associa10, _finalSearchData$asso10, _defaultValue$dimensi, _finalSearchData$dime, _defaultValue$dimensi2, _finalSearchData$dime2, _defaultValue$dimensi3, _finalSearchData$dime3, _defaultValue$dimensi4, _finalSearchData$dime4;
22
+ var _props$defaultValue, _props$defaultValue2, _props$defaultValue3, _defaultValue$associa, _defaultValue$associa2, _finalSearchData$asso, _finalSearchData$asso2, _defaultValue$associa3, _finalSearchData$asso3, _defaultValue$associa4, _finalSearchData$asso4, _defaultValue$associa5, _finalSearchData$asso5, _defaultValue$associa6, _finalSearchData$asso6, _defaultValue$associa7, _finalSearchData$asso7, _defaultValue$associa8, _finalSearchData$asso8, _defaultValue$associa9, _finalSearchData$asso9, _defaultValue$associa10, _finalSearchData$asso10, _defaultValue$dimensi, _finalSearchData$dime, _defaultValue$dimensi2, _finalSearchData$dime2, _defaultValue$dimensi3, _finalSearchData$dime3, _defaultValue$dimensi4, _finalSearchData$dime4;
22
23
  var defaultValue = props.defaultValue,
23
24
  loading = props.loading,
24
25
  collapseRef = props.collapseRef,
25
- finalSearchData = props.finalSearchData,
26
- fetchRequest = props.fetchRequest;
26
+ finalSearchData = props.finalSearchData;
27
27
  var _Form$useForm = Form.useForm(),
28
28
  _Form$useForm2 = _slicedToArray(_Form$useForm, 1),
29
29
  form = _Form$useForm2[0];
30
- var _useState = useState(null),
30
+ var _useState = useState(),
31
31
  _useState2 = _slicedToArray(_useState, 2),
32
- startId = _useState2[0],
33
- setStartId = _useState2[1];
34
- var _useState3 = useState(null),
32
+ startEvent = _useState2[0],
33
+ setStartEvent = _useState2[1];
34
+ var _useState3 = useState(),
35
35
  _useState4 = _slicedToArray(_useState3, 2),
36
- endId = _useState4[0],
37
- setEndId = _useState4[1];
36
+ endEvent = _useState4[0],
37
+ setEndEvent = _useState4[1];
38
38
  // 关联属性
39
39
  var _useState5 = useState(false),
40
40
  _useState6 = _slicedToArray(_useState5, 2),
41
41
  relevancy = _useState6[0],
42
42
  setRelevancy = _useState6[1];
43
- var _useState7 = useState(true),
44
- _useState8 = _slicedToArray(_useState7, 2),
45
- relevancyFl = _useState8[0],
46
- setRelevancyFl = _useState8[1];
47
43
  var _useSubject = useSubject(),
48
44
  subjectList = _useSubject.subjectList,
49
45
  subjectLoading = _useSubject.loading;
50
- var _ref = defaultValue,
46
+ var _useContext = useContext(IntervalContext),
47
+ subjectEnable = _useContext.subjectEnable;
48
+ var _ref = defaultValue || {},
51
49
  userGroup = _ref.userGroup;
52
- // 细分属性初始值
50
+ var _useState7 = useState('user'),
51
+ _useState8 = _slicedToArray(_useState7, 2),
52
+ analysisType = _useState8[0],
53
+ setAnalysisType = _useState8[1];
53
54
  var _useState9 = useState(),
54
55
  _useState10 = _slicedToArray(_useState9, 2),
55
- bizAttributeSelectorValue = _useState10[0],
56
- setBizAttributeSelectorValue = _useState10[1];
57
- var _useState11 = useState('user'),
56
+ currentSubject = _useState10[0],
57
+ setCurrentSubject = _useState10[1];
58
+ var _useState11 = useState(false),
58
59
  _useState12 = _slicedToArray(_useState11, 2),
59
- analysisType = _useState12[0],
60
- setAnalysisType = _useState12[1];
61
- var _useState13 = useState(),
62
- _useState14 = _slicedToArray(_useState13, 2),
63
- currentSubject = _useState14[0],
64
- setCurrentSubject = _useState14[1];
65
- // 用户组和事件变更
66
- var onValuesChange = function onValuesChange(data, allData) {
67
- var _data = {};
68
- setRelevancyFl(false);
69
- if (allData.start) {
70
- if (allData.start.id !== null) {
71
- var _allData$start;
72
- _data = allData.start;
73
- setStartId(allData.start.id);
74
- setRelevancy(allData === null || allData === void 0 ? void 0 : (_allData$start = allData.start) === null || _allData$start === void 0 ? void 0 : _allData$start.relevancy);
75
- } else {
76
- setRelevancyFl(true);
77
- }
78
- }
79
- if (allData.end) {
80
- if (allData.end.id !== null) {
81
- _data = allData.end;
82
- setEndId(allData.end.id);
83
- } else {
84
- setRelevancyFl(true);
85
- }
60
+ inited = _useState12[0],
61
+ setInited = _useState12[1];
62
+ var formRef = React.useRef(null);
63
+ function onSearch(values) {
64
+ if (props.onChange) {
65
+ props.onChange(_objectSpread(_objectSpread({}, values), {}, {
66
+ analysisSubject: values.analysisSubject ? {
67
+ subjectId: values.analysisSubject.id,
68
+ subjectName: values.analysisSubject.subjectName,
69
+ subjectAlias: values.analysisSubject.subjectAlias,
70
+ unit: values.analysisSubject.unit
71
+ } : undefined
72
+ }), true);
86
73
  }
87
- if (allData.userGroup) {
88
- _data.userGroup = allData.userGroup;
89
- if (_data.userGroup.length <= 0) _data.userGroup = [0];
90
- }
91
- props.onChange(_objectSpread(_objectSpread({}, allData), {}, {
92
- analysisSubject: allData.analysisSubject ? {
93
- subjectId: allData.analysisSubject.id,
94
- subjectName: allData.analysisSubject.subjectName,
95
- subjectAlias: allData.analysisSubject.subjectAlias,
96
- unit: allData.analysisSubject.unit
97
- } : undefined
98
- }), (finalSearchData === null || finalSearchData === void 0 ? void 0 : finalSearchData.chartType) === 'boxplot' ? true : false);
99
- };
74
+ }
100
75
  var resetting = function resetting() {
101
76
  form.resetFields();
102
77
  form.setFieldsValue({
@@ -122,55 +97,37 @@ var TopPanel = function TopPanel(props) {
122
97
  associatedNextAttr: undefined
123
98
  }, true);
124
99
  };
125
- // 细分属性
126
- var onChangeAttr = function onChangeAttr(attr, type) {
127
- if (attr === undefined) {
128
- // 删除细分属性
129
- switch (type) {
130
- case 'associatedPreAttr':
131
- form.setFieldsValue({
132
- associatedPreAttr: undefined
133
- });
134
- props.onChange({
135
- associatedPreAttr: undefined
136
- }, true);
137
- break;
138
- case 'associatedNextAttr':
139
- form.setFieldsValue({
140
- associatedNextAttr: undefined
141
- });
142
- props.onChange({
143
- associatedNextAttr: undefined
144
- }, true);
145
- break;
146
- case 'dimension':
147
- form.setFieldsValue({
148
- dimension: undefined
149
- });
150
- props.onChange({
151
- dimension: undefined
152
- }, true);
153
- break;
154
- }
155
- setBizAttributeSelectorValue(undefined);
100
+ useEffect(function () {
101
+ if (subjectLoading) return;
102
+ if (!defaultValue) {
103
+ setInited(true);
104
+ return;
105
+ }
106
+ setInited(false);
107
+ if (defaultValue.analysisSubject) {
108
+ setAnalysisType('eventProp');
156
109
  } else {
157
- var _value = attr.propCategory === 'eventProp' ? attr.id : attr.name;
158
- setBizAttributeSelectorValue({
159
- propCategory: attr.propCategory,
160
- category: attr.category,
161
- value: _value,
162
- key: attr.propCategory === 'eventProp' ? attr.id : attr.propCategory + '-' + _value
163
- });
110
+ setAnalysisType('user');
164
111
  }
165
- };
112
+ if (defaultValue.analysisSubject) {
113
+ setCurrentSubject(subjectList.find(function (item) {
114
+ var _defaultValue$analysi;
115
+ return item.id === (defaultValue === null || defaultValue === void 0 ? void 0 : (_defaultValue$analysi = defaultValue.analysisSubject) === null || _defaultValue$analysi === void 0 ? void 0 : _defaultValue$analysi.subjectId);
116
+ }));
117
+ }
118
+ setInited(true);
119
+ }, [subjectLoading]);
120
+ if (!inited) return null;
166
121
  return /*#__PURE__*/React.createElement(Form, {
167
122
  form: form,
123
+ ref: formRef,
168
124
  component: "div",
169
125
  colon: false,
170
126
  className: "panel-form-interval",
171
127
  layout: "vertical",
172
128
  initialValues: {
173
- userGroup: props !== null && props !== void 0 && (_props$urlParam = props.urlParam) !== null && _props$urlParam !== void 0 && _props$urlParam.userGroup ? props === null || props === void 0 ? void 0 : (_props$urlParam2 = props.urlParam) === null || _props$urlParam2 === void 0 ? void 0 : _props$urlParam2.userGroup : userGroup ? userGroup : [0],
129
+ userGroup: props !== null && props !== void 0 && (_props$defaultValue = props.defaultValue) !== null && _props$defaultValue !== void 0 && _props$defaultValue.userGroup ? props === null || props === void 0 ? void 0 : (_props$defaultValue2 = props.defaultValue) === null || _props$defaultValue2 === void 0 ? void 0 : _props$defaultValue2.userGroup : userGroup ? userGroup : [0],
130
+ analysisSubject: props === null || props === void 0 ? void 0 : (_props$defaultValue3 = props.defaultValue) === null || _props$defaultValue3 === void 0 ? void 0 : _props$defaultValue3.analysisSubject,
174
131
  start: _objectSpread(_objectSpread({}, defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.start), {}, {
175
132
  relevancy: defaultValue !== null && defaultValue !== void 0 && (_defaultValue$associa = defaultValue.associated_next_attr) !== null && _defaultValue$associa !== void 0 && _defaultValue$associa.event_id && defaultValue !== null && defaultValue !== void 0 && (_defaultValue$associa2 = defaultValue.associated_pre_attr) !== null && _defaultValue$associa2 !== void 0 && _defaultValue$associa2.event_id || finalSearchData !== null && finalSearchData !== void 0 && (_finalSearchData$asso = finalSearchData.associatedNextAttr) !== null && _finalSearchData$asso !== void 0 && _finalSearchData$asso.eventId && finalSearchData !== null && finalSearchData !== void 0 && (_finalSearchData$asso2 = finalSearchData.associatedPreAttr) !== null && _finalSearchData$asso2 !== void 0 && _finalSearchData$asso2.eventId ? true : false
176
133
  }),
@@ -196,8 +153,8 @@ var TopPanel = function TopPanel(props) {
196
153
  analysisModel: (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.analysisModel) || AnalysisMode.common
197
154
  },
198
155
  scrollToFirstError: true,
199
- onValuesChange: onValuesChange
200
- }, /*#__PURE__*/React.createElement(Form.Item, {
156
+ onFinish: onSearch
157
+ }, subjectEnable && /*#__PURE__*/React.createElement(Form.Item, {
201
158
  label: "\u5206\u6790\u4E3B\u4F53",
202
159
  className: "panel-form-interval-item"
203
160
  }, /*#__PURE__*/React.createElement(BizSelect, {
@@ -219,14 +176,27 @@ var TopPanel = function TopPanel(props) {
219
176
  })), analysisType === 'eventProp' && /*#__PURE__*/React.createElement(Form.Item, {
220
177
  label: "\u4E3B\u4F53\u540D\u79F0",
221
178
  name: "analysisSubject",
222
- className: "panel-form-interval-item"
179
+ className: "panel-form-interval-item",
180
+ rules: [{
181
+ validator: function validator(rule, value) {
182
+ if (!value) {
183
+ return Promise.reject('请选择主体名称');
184
+ }
185
+ return Promise.resolve();
186
+ }
187
+ }]
223
188
  }, /*#__PURE__*/React.createElement(BizSelect, {
224
189
  options: subjectList,
225
190
  aliasField: "subjectAlias",
226
191
  labelField: "subjectName",
227
192
  keyField: "id",
228
193
  onChange: function onChange(val) {
194
+ var _formRef$current, _formRef$current2, _formRef$current3;
229
195
  setCurrentSubject(val);
196
+ setRelevancy(false);
197
+ (_formRef$current = formRef.current) === null || _formRef$current === void 0 ? void 0 : _formRef$current.setFieldValue('start', undefined);
198
+ (_formRef$current2 = formRef.current) === null || _formRef$current2 === void 0 ? void 0 : _formRef$current2.setFieldValue('end', undefined);
199
+ (_formRef$current3 = formRef.current) === null || _formRef$current3 === void 0 ? void 0 : _formRef$current3.setFieldValue('dimension', undefined);
230
200
  }
231
201
  })), analysisType === 'user' && /*#__PURE__*/React.createElement(Form.Item, {
232
202
  label: "",
@@ -243,14 +213,61 @@ var TopPanel = function TopPanel(props) {
243
213
  className: "collapseRefs"
244
214
  }, /*#__PURE__*/React.createElement(Form.Item, {
245
215
  label: "\u5F00\u59CB\u4E8B\u4EF6",
246
- name: "start"
216
+ style: {
217
+ marginBottom: '8px',
218
+ position: 'relative'
219
+ }
220
+ }, /*#__PURE__*/React.createElement(Form.Item, {
221
+ name: "start",
222
+ style: {
223
+ marginBottom: 0
224
+ },
225
+ rules: [{
226
+ validateTrigger: ['onBlur'],
227
+ validator: function validator(rule, value) {
228
+ var _value$filters, _value$filters$condit;
229
+ if (!value || !value.id) {
230
+ return Promise.reject('请选择开始事件');
231
+ }
232
+ var conditionValIsNull = false;
233
+ value === null || value === void 0 ? void 0 : (_value$filters = value.filters) === null || _value$filters === void 0 ? void 0 : (_value$filters$condit = _value$filters.conditions) === null || _value$filters$condit === void 0 ? void 0 : _value$filters$condit.forEach(function (item) {
234
+ var _item$values;
235
+ if (!/null/.test(item.operator || '') && !((_item$values = item.values) !== null && _item$values !== void 0 && _item$values.length)) {
236
+ conditionValIsNull = true;
237
+ }
238
+ });
239
+ if (conditionValIsNull) {
240
+ return Promise.reject('请填写完整的条件');
241
+ }
242
+ return Promise.resolve();
243
+ }
244
+ }]
247
245
  }, /*#__PURE__*/React.createElement(EventFilter, {
248
246
  subject: currentSubject,
249
- relevancyFl: relevancyFl,
250
- relevancy: true
251
- })), relevancy ? /*#__PURE__*/React.createElement(Form.Item, {
247
+ key: "".concat(currentSubject === null || currentSubject === void 0 ? void 0 : currentSubject.subjectName, "-start"),
248
+ analysisType: analysisType,
249
+ onChange: function onChange(evt) {
250
+ var _formRef$current4;
251
+ setStartEvent(evt);
252
+ (_formRef$current4 = formRef.current) === null || _formRef$current4 === void 0 ? void 0 : _formRef$current4.setFieldValue('dimension', undefined);
253
+ }
254
+ })), /*#__PURE__*/React.createElement(Space, {
255
+ align: "baseline",
256
+ style: {
257
+ position: 'absolute',
258
+ top: '9px',
259
+ left: '295px'
260
+ }
261
+ }, /*#__PURE__*/React.createElement(Switch, {
262
+ checked: relevancy,
263
+ onChange: setRelevancy
264
+ }), /*#__PURE__*/React.createElement("span", {
265
+ className: "switch-title"
266
+ }, "\u8BBE\u7F6E\u5173\u8054\u5C5E\u6027"))), relevancy && /*#__PURE__*/React.createElement(Form.Item, {
252
267
  className: "associated"
253
- }, /*#__PURE__*/React.createElement("span", {
268
+ }, /*#__PURE__*/React.createElement(Space, {
269
+ align: "baseline"
270
+ }, /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", {
254
271
  className: "associated-link"
255
272
  }, /*#__PURE__*/React.createElement("i", {
256
273
  style: {
@@ -261,71 +278,108 @@ var TopPanel = function TopPanel(props) {
261
278
  className: "associated-label"
262
279
  }, "\u5C5E\u60271"), /*#__PURE__*/React.createElement(Form.Item, {
263
280
  name: "associatedPreAttr",
264
- style: {
265
- display: 'inline-block',
266
- marginRight: 28
267
- }
281
+ rules: [{
282
+ validator: function validator(rule, value) {
283
+ if (!value || !value.dimensionSub) {
284
+ return Promise.reject('请选择属性1');
285
+ }
286
+ return Promise.resolve();
287
+ }
288
+ }]
268
289
  }, /*#__PURE__*/React.createElement(BizAttributeSelector, {
269
290
  enableEventProp: true,
270
291
  enableUserProp: false,
271
292
  enableEnvProp: false,
272
- eventIdList: [startId],
273
- value: bizAttributeSelectorValue,
293
+ eventIdList: [startEvent === null || startEvent === void 0 ? void 0 : startEvent.id],
274
294
  enableDelete: true,
275
- onChange: onChangeAttr,
295
+ key: "".concat(startEvent === null || startEvent === void 0 ? void 0 : startEvent.id, "-").concat(endEvent === null || endEvent === void 0 ? void 0 : endEvent.id, "-pre"),
276
296
  onDelete: function onDelete() {
277
- onChangeAttr(undefined, 'associatedPreAttr');
297
+ var _formRef$current5;
298
+ (_formRef$current5 = formRef.current) === null || _formRef$current5 === void 0 ? void 0 : _formRef$current5.setFieldValue('associatedPreAttr', undefined);
278
299
  }
279
- })), /*#__PURE__*/React.createElement("span", {
300
+ }))), /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", {
280
301
  className: "associated-label"
281
302
  }, "\u5C5E\u60272"), /*#__PURE__*/React.createElement(Form.Item, {
282
303
  name: "associatedNextAttr",
283
- style: {
284
- display: 'inline-block'
285
- }
304
+ rules: [{
305
+ validator: function validator(rule, value) {
306
+ if (!value || !value.dimensionSub) {
307
+ return Promise.reject('请选择属性2');
308
+ }
309
+ return Promise.resolve();
310
+ }
311
+ }]
286
312
  }, /*#__PURE__*/React.createElement(BizAttributeSelector, {
287
313
  enableEventProp: true,
288
314
  enableUserProp: false,
289
315
  enableEnvProp: false,
290
- eventIdList: [endId],
291
- value: bizAttributeSelectorValue,
316
+ eventIdList: [endEvent === null || endEvent === void 0 ? void 0 : endEvent.id],
292
317
  enableDelete: true,
293
- onChange: onChangeAttr,
318
+ key: "".concat(startEvent === null || startEvent === void 0 ? void 0 : startEvent.id, "-").concat(endEvent === null || endEvent === void 0 ? void 0 : endEvent.id, "-next"),
294
319
  onDelete: function onDelete() {
295
- onChangeAttr(undefined, 'associatedNextAttr');
320
+ var _formRef$current6;
321
+ (_formRef$current6 = formRef.current) === null || _formRef$current6 === void 0 ? void 0 : _formRef$current6.setFieldValue('associatedNextAttr', undefined);
296
322
  }
297
- })), /*#__PURE__*/React.createElement("i", {
323
+ }))), /*#__PURE__*/React.createElement("i", {
298
324
  style: {
299
325
  lineHeight: '32px',
300
326
  marginLeft: '28px',
301
327
  cursor: 'pointer'
302
328
  },
303
329
  onClick: function onClick() {
304
- onChangeAttr(undefined, 'associatedPreAttr');
305
- onChangeAttr(undefined, 'associatedNextAttr');
330
+ var _formRef$current7, _formRef$current8;
331
+ (_formRef$current7 = formRef.current) === null || _formRef$current7 === void 0 ? void 0 : _formRef$current7.setFieldValue('associatedPreAttr', undefined);
332
+ (_formRef$current8 = formRef.current) === null || _formRef$current8 === void 0 ? void 0 : _formRef$current8.setFieldValue('associatedNextAttr', undefined);
306
333
  setRelevancy(false);
307
- setRelevancyFl(true);
308
334
  },
309
335
  className: "bsicon qingchu"
310
- })) : '', /*#__PURE__*/React.createElement(Form.Item, {
336
+ }))), /*#__PURE__*/React.createElement(Form.Item, {
311
337
  label: "\u7ED3\u675F\u4E8B\u4EF6",
312
- name: "end"
338
+ name: "end",
339
+ rules: [{
340
+ validateTrigger: ['onBlur'],
341
+ validator: function validator(rule, value) {
342
+ var _value$filters2, _value$filters2$condi;
343
+ if (!value || !value.id) {
344
+ return Promise.reject('请选择结束事件');
345
+ }
346
+ var conditionValIsNull = false;
347
+ value === null || value === void 0 ? void 0 : (_value$filters2 = value.filters) === null || _value$filters2 === void 0 ? void 0 : (_value$filters2$condi = _value$filters2.conditions) === null || _value$filters2$condi === void 0 ? void 0 : _value$filters2$condi.forEach(function (item) {
348
+ var _item$values2;
349
+ if (!/null/.test(item.operator || '') && !((_item$values2 = item.values) !== null && _item$values2 !== void 0 && _item$values2.length)) {
350
+ conditionValIsNull = true;
351
+ }
352
+ });
353
+ if (conditionValIsNull) {
354
+ return Promise.reject('请填写完整的条件');
355
+ }
356
+ return Promise.resolve();
357
+ }
358
+ }]
313
359
  }, /*#__PURE__*/React.createElement(EventFilter, {
314
- subject: currentSubject
360
+ subject: currentSubject,
361
+ analysisType: analysisType,
362
+ key: "".concat(currentSubject === null || currentSubject === void 0 ? void 0 : currentSubject.subjectName, "-start"),
363
+ onChange: function onChange(val) {
364
+ var _formRef$current9;
365
+ setEndEvent(val);
366
+ (_formRef$current9 = formRef.current) === null || _formRef$current9 === void 0 ? void 0 : _formRef$current9.setFieldValue('dimension', undefined);
367
+ }
315
368
  })), /*#__PURE__*/React.createElement(Form.Item, {
316
369
  label: "\u6309\u5C5E\u6027\u7EC6\u5206",
317
370
  name: "dimension",
318
371
  className: "dimension-interval"
319
372
  }, /*#__PURE__*/React.createElement(BizAttributeSelector, {
320
373
  enableEventProp: true,
321
- enableUserProp: true,
374
+ enableUserProp: analysisType === 'user',
322
375
  enableEnvProp: true,
323
- eventIdList: startId === endId ? [startId] : [startId, endId],
324
- value: bizAttributeSelectorValue,
376
+ key: "".concat(currentSubject === null || currentSubject === void 0 ? void 0 : currentSubject.subjectName, "-dimension-").concat(startEvent === null || startEvent === void 0 ? void 0 : startEvent.id, "-").concat(endEvent === null || endEvent === void 0 ? void 0 : endEvent.id, "}"),
377
+ eventIdList: [(startEvent === null || startEvent === void 0 ? void 0 : startEvent.id) || 0, (endEvent === null || endEvent === void 0 ? void 0 : endEvent.id) || 0],
378
+ showCommonProp: true,
325
379
  enableDelete: true,
326
- onChange: onChangeAttr,
327
380
  onDelete: function onDelete() {
328
- onChangeAttr(undefined, 'dimension');
381
+ var _formRef$current10;
382
+ (_formRef$current10 = formRef.current) === null || _formRef$current10 === void 0 ? void 0 : _formRef$current10.setFieldValue('dimension', undefined);
329
383
  }
330
384
  })), /*#__PURE__*/React.createElement(Form.Item, {
331
385
  label: "\u5206\u6790\u6A21\u578B",
@@ -341,10 +395,10 @@ var TopPanel = function TopPanel(props) {
341
395
  onClick: resetting
342
396
  }, "\u91CD\u7F6E"), /*#__PURE__*/React.createElement(Button, {
343
397
  loading: loading || subjectLoading,
344
- disabled: loading || !startId || !endId || relevancy && !(defaultValue !== null && defaultValue !== void 0 && defaultValue.associatedNextAttr) && !(defaultValue !== null && defaultValue !== void 0 && defaultValue.associatedNextAttr),
345
398
  type: "primary",
346
399
  onClick: function onClick() {
347
- fetchRequest(true);
400
+ var _formRef$current11;
401
+ (_formRef$current11 = formRef.current) === null || _formRef$current11 === void 0 ? void 0 : _formRef$current11.submit();
348
402
  }
349
403
  }, "\u67E5\u8BE2"))));
350
404
  };