1 | import "core-js/modules/es7.array.includes";
|
2 | import "core-js/modules/es6.string.includes";
|
3 | import "core-js/modules/es6.function.name";
|
4 | import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
5 | import "core-js/modules/es6.object.assign";
|
6 | import React, { useState, useEffect, useMemo, useCallback, useRef } from 'react';
|
7 |
|
8 | import { SunLoading } from '@beisen-phoenix/loading';
|
9 | import GroupTab from './components/groupTab';
|
10 | import TimeLines from './components/timeLine/index';
|
11 | import Head from './components/head/index';
|
12 | import { getCommentById, getFeedOperationById } from './helper/require';
|
13 | import CooReply from './reply';
|
14 | import './index.css';
|
15 | import { I18NCooperationDefault } from "./helper/i18nDefault";
|
16 | var Name;
|
17 |
|
18 | (function (Name) {
|
19 |
|
20 | Name["communicate"] = "cooperation_Communicate";
|
21 | Name["operationalRecords"] = "cooperation_OperationalRecords";
|
22 | })(Name || (Name = {}));
|
23 |
|
24 | var CooperationContent = function CooperationContent(props) {
|
25 | var translation = Object.assign({}, I18NCooperationDefault, props.translation);
|
26 | var id = props.id,
|
27 | _props$isShowHead = props.isShowHead,
|
28 | isShowHead = _props$isShowHead === void 0 ? true : _props$isShowHead,
|
29 | _props$isOpenReward = props.isOpenReward,
|
30 | isOpenReward = _props$isOpenReward === void 0 ? false : _props$isOpenReward,
|
31 | _props$cooperationHea = props.cooperationHeadName,
|
32 | cooperationHeadName = _props$cooperationHea === void 0 ? translation.cooperation || '协作' : _props$cooperationHea,
|
33 | _props$isShowOperatio = props.isShowOperationRecord,
|
34 | isShowOperationRecord = _props$isShowOperatio === void 0 ? true : _props$isShowOperatio,
|
35 | extendedComponentsData = props.extendedComponentsData,
|
36 | _props$isShowMentionA = props.isShowMentionAllBtn,
|
37 | isShowMentionAllBtn = _props$isShowMentionA === void 0 ? true : _props$isShowMentionA,
|
38 | _props$userAdvanceMod = props.userAdvanceMode,
|
39 | userAdvanceMode = _props$userAdvanceMod === void 0 ? false : _props$userAdvanceMod,
|
40 | _props$isShowMentionB = props.isShowMentionBtn,
|
41 | isShowMentionBtn = _props$isShowMentionB === void 0 ? true : _props$isShowMentionB,
|
42 | _props$isShowEmojyBtn = props.isShowEmojyBtn,
|
43 | isShowEmojyBtn = _props$isShowEmojyBtn === void 0 ? true : _props$isShowEmojyBtn,
|
44 | _props$isShowVisible = props.isShowVisible,
|
45 | isShowVisible = _props$isShowVisible === void 0 ? false : _props$isShowVisible,
|
46 | _props$isShowUploadBt = props.isShowUploadBtn,
|
47 | isShowUploadBtn = _props$isShowUploadBt === void 0 ? true : _props$isShowUploadBt,
|
48 | _props$isShowModal = props.isShowModal,
|
49 | isShowModal = _props$isShowModal === void 0 ? false : _props$isShowModal,
|
50 | operationBtnExternal = props.operationBtnExternal,
|
51 | _props$isExtendBefor = props.isExtendBefor,
|
52 | isExtendBefor = _props$isExtendBefor === void 0 ? false : _props$isExtendBefor,
|
53 | _props$defalutTabName = props.defalutTabName,
|
54 | defalutTabName = _props$defalutTabName === void 0 ? Name.communicate : _props$defalutTabName;
|
55 |
|
56 | var _useState = useState(defalutTabName),
|
57 | _useState2 = _slicedToArray(_useState, 2),
|
58 | activeName = _useState2[0],
|
59 | setActiveName = _useState2[1];
|
60 |
|
61 | var _useState3 = useState(),
|
62 | _useState4 = _slicedToArray(_useState3, 2),
|
63 | feedOperations = _useState4[0],
|
64 | setFeedOperations = _useState4[1];
|
65 |
|
66 | var componentObj = useRef({});
|
67 |
|
68 | var _useInitData = useInitData(id, setFeedOperations, activeName),
|
69 | _useInitData2 = _slicedToArray(_useInitData, 2),
|
70 | feedComments = _useInitData2[0],
|
71 | loading = _useInitData2[1];
|
72 |
|
73 | var handleClickFunc = useCallback(function (val) {
|
74 | setActiveName(val.name);
|
75 | }, []);
|
76 | var defaultTabArr = [
|
77 | {
|
78 | text: translation.communication,
|
79 | isActive: !props.defalutTabName,
|
80 | name: Name.communicate
|
81 | }];
|
82 | var tabArr = useMemo(function () {
|
83 |
|
84 | if (isShowOperationRecord) {
|
85 | defaultTabArr = defaultTabArr.concat([{
|
86 | text: translation.operation,
|
87 | isActive: false,
|
88 | name: Name.operationalRecords
|
89 | }]);
|
90 | }
|
91 |
|
92 | extendedComponentsData && extendedComponentsData.length > 0 && extendedComponentsData.forEach(function (element) {
|
93 | if (isExtendBefor) {
|
94 | defaultTabArr.unshift({
|
95 | text: element.text,
|
96 | isActive: props.defalutTabName == element.name,
|
97 | name: element.name
|
98 | });
|
99 | } else {
|
100 | defaultTabArr.push({
|
101 | text: element.text,
|
102 | isActive: props.defalutTabName == element.name,
|
103 | name: element.name
|
104 | });
|
105 | }
|
106 |
|
107 | if (!componentObj.current[element.name]) {
|
108 | componentObj.current[element.name] = element.components;
|
109 | }
|
110 | });
|
111 | return defaultTabArr;
|
112 | }, [isShowOperationRecord]);
|
113 |
|
114 | var handleFeedOperationsClickFunc = useCallback(function () {
|
115 | useGetfeedOperations(id, setFeedOperations);
|
116 | }, []);
|
117 | var CooReplyComponent = useMemo(function () {
|
118 | return React.createElement(CooReply, {
|
119 | feedComments: feedComments,
|
120 | id: id,
|
121 | isShowReward: isOpenReward,
|
122 | userAdvanceMode: userAdvanceMode,
|
123 | isShowMentionAllBtn: isShowMentionAllBtn,
|
124 | isShowVisible: isShowVisible,
|
125 | isShowMentionBtn: isShowMentionBtn,
|
126 | isShowEmojyBtn: isShowEmojyBtn,
|
127 | isShowModal: isShowModal,
|
128 | isShowUploadBtn: isShowUploadBtn,
|
129 | operationBtnExternal: operationBtnExternal,
|
130 | translation: translation
|
131 | });
|
132 | }, [feedComments, id, isOpenReward]);
|
133 | var TimeLineComponent = useMemo(function () {
|
134 | return React.createElement(TimeLines, Object.assign({}, feedOperations, {
|
135 | clickFunc: handleFeedOperationsClickFunc,
|
136 | translation: translation
|
137 | }));
|
138 | }, [feedOperations]);
|
139 | var GroupTabProps = {
|
140 | data: tabArr,
|
141 | onChange: handleClickFunc
|
142 | };
|
143 | var isShowTab = useMemo(function () {
|
144 | return isShowOperationRecord || Array.isArray(extendedComponentsData) && extendedComponentsData.length > 0;
|
145 | }, [isShowOperationRecord, extendedComponentsData]);
|
146 | useMemo(function () {
|
147 |
|
148 |
|
149 |
|
150 |
|
151 |
|
152 |
|
153 | componentObj.current[Name.communicate] = CooReplyComponent;
|
154 |
|
155 | if (isShowOperationRecord) {
|
156 | componentObj.current[Name.operationalRecords] = TimeLineComponent;
|
157 | }
|
158 | }, [TimeLineComponent, CooReplyComponent]);
|
159 |
|
160 |
|
161 |
|
162 |
|
163 |
|
164 |
|
165 |
|
166 |
|
167 |
|
168 |
|
169 |
|
170 |
|
171 |
|
172 |
|
173 | return React.createElement("div", {
|
174 | className: "cooperation-container"
|
175 | }, isShowHead && React.createElement(Head, {
|
176 | cooperationHeadName: cooperationHeadName
|
177 | }), isShowTab && React.createElement(GroupTab, Object.assign({}, GroupTabProps)), loading ? React.createElement(SunLoading, null) : React.createElement("div", null, componentObj.current[activeName]));
|
178 | };
|
179 |
|
180 |
|
181 | var useInitData = function useInitData(id, setFeedOperations, activeName) {
|
182 | var _useState5 = useState(),
|
183 | _useState6 = _slicedToArray(_useState5, 2),
|
184 | feedComments = _useState6[0],
|
185 | setFeedComments = _useState6[1];
|
186 |
|
187 | var _useState7 = useState(false),
|
188 | _useState8 = _slicedToArray(_useState7, 2),
|
189 | loading = _useState8[0],
|
190 | setLoading = _useState8[1];
|
191 |
|
192 | useEffect(function () {
|
193 | var tabName = [Name.communicate, Name.operationalRecords];
|
194 |
|
195 | if (tabName.includes(activeName)) {
|
196 | setLoading(true);
|
197 |
|
198 | getCommentById({
|
199 | feed_id: id
|
200 | }).then(function (data) {
|
201 | var Code = data && data.Code || {},
|
202 | Data = data && data.Data || {};
|
203 | var newfeedComments = Data && Data.feedComments;
|
204 | var feedOperations = Data && Data.feedOperations;
|
205 |
|
206 | if (Code === 1) {
|
207 | setFeedComments(newfeedComments);
|
208 | setFeedOperations(feedOperations);
|
209 | setLoading(false);
|
210 | }
|
211 | });
|
212 | }
|
213 | }, [activeName]);
|
214 | return [feedComments, loading];
|
215 | };
|
216 |
|
217 |
|
218 | var useGetfeedOperations = function useGetfeedOperations(id, setFeedOperations) {
|
219 |
|
220 | getFeedOperationById({
|
221 | feed_id: id
|
222 | }).then(function (data) {
|
223 | var Code = data.Code,
|
224 | Data = data.Data;
|
225 |
|
226 | if (Code === 1) {
|
227 | setFeedOperations(Data);
|
228 | }
|
229 | });
|
230 | };
|
231 |
|
232 | export default CooperationContent; |
\ | No newline at end of file |