bhd-components 0.7.21 → 0.7.23

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.
@@ -10,9 +10,39 @@ var TeacherList = function(props) {
10
10
  var type = props.type, userData = props.userData, http = props.http, urllocation = props.urllocation, onClose = props.onClose, enterTeacherChat = props.enterTeacherChat;
11
11
  var _useState = _sliced_to_array(useState(""), 2), keyWordProblem = _useState[0], setKeyWordProblem = _useState[1]; //搜索内容
12
12
  var _useState1 = _sliced_to_array(useState(1), 2), showLoadingState = _useState1[0], setShowLoadingState = _useState1[1]; //1,初始状态,2、无数据 ,3、不显示图片
13
- var _useState2 = _sliced_to_array(useState([]), 2), totalData = _useState2[0], setTotalData = _useState2[1]; //总数据
14
- var _useState3 = _sliced_to_array(useState([]), 2), teacher_list = _useState3[0], setTeacher_list = _useState3[1]; //老师列表,有头像
13
+ // const [totalData, setTotalData] = useState([]); //总数据
14
+ var _useState2 = _sliced_to_array(useState([]), 2), showTotalData = _useState2[0], setShowTotalData = _useState2[1]; //总数据
15
+ // const [teacher_list, setTeacher_list] = useState([]); //老师列表,有头像
16
+ var totalData = useRef([]);
17
+ var teacher_list = useRef([]); //老师列表,有头像
15
18
  var timer = useRef(null); //文本框输入时
19
+ var page = useRef(1);
20
+ var loading = useRef(true);
21
+ var sliderRef = useRef(null);
22
+ useEffect(function() {
23
+ var handleScroll = function(e) {
24
+ // 处理滚轮事件的逻辑
25
+ var container = document.getElementById("teacher_list");
26
+ var scrollTop = container.scrollTop;
27
+ var clientHeight = container.clientHeight;
28
+ var scrollHeight = container.scrollHeight;
29
+ if (scrollTop + clientHeight + 60 >= scrollHeight && loading.current) {
30
+ loading.current = false;
31
+ // console.log('加载下一页');
32
+ page.current = page.current + 1;
33
+ getUserName();
34
+ // getList(keyWordProblem);
35
+ }
36
+ };
37
+ // 添加滚轮事件监听器
38
+ sliderRef.current.addEventListener("wheel", handleScroll);
39
+ // 清除滚轮事件监听器
40
+ return function() {
41
+ sliderRef.current.removeEventListener("wheel", handleScroll);
42
+ };
43
+ }, [
44
+ keyWordProblem
45
+ ]);
16
46
  useEffect(function() {
17
47
  getList("");
18
48
  return function() {
@@ -20,26 +50,41 @@ var TeacherList = function(props) {
20
50
  };
21
51
  }, []);
22
52
  var getList = function(val) {
53
+ if (page.current == 1) {
54
+ // setTotalData([]);
55
+ totalData.current = [];
56
+ setShowTotalData([]);
57
+ }
23
58
  http.get("".concat(urllocation, "/chat-service/public/v1.0/teachers"), {
24
59
  params: {
25
- name: val
60
+ name: val,
61
+ page: page.current,
62
+ maxPageSize: 99
26
63
  }
27
64
  }).then(function(res) {
28
65
  console.log(res);
29
- var data = res.data;
30
- if (data.total > 0) {
66
+ if (res.data.total > 0) {
67
+ loading.current = true;
31
68
  setShowLoadingState(3);
32
- setTotalData(res.data.teachers);
33
- getUserName(res.data.teachers);
69
+ totalData.current = res.data.teachers;
70
+ getUserName();
71
+ } else {
72
+ loading.current = false;
73
+ if (page.current == 1) {
74
+ setShowLoadingState(2);
75
+ }
34
76
  }
35
77
  });
36
78
  };
37
- var getUserName = function(dataList) {
79
+ var getUserName = function() {
38
80
  try {
39
- var list = dataList;
81
+ // let list = dataList;
82
+ // console.log(totalData.current,4444444);
83
+ var showTotalData = totalData.current.slice((page.current - 1) * 20, page.current * 20);
84
+ var list = showTotalData;
40
85
  var ids = [];
41
86
  list = list.map(function(item) {
42
- if (!item.headImg && teacher_list.filter(function(v) {
87
+ if (!item.headImg && teacher_list.current.filter(function(v) {
43
88
  return v.uid == item.uid;
44
89
  }).length <= 0) {
45
90
  ids.push(item.uid);
@@ -49,8 +94,8 @@ var TeacherList = function(props) {
49
94
  userName(ids.join(",")).then(function(res) {
50
95
  if (res.data) {
51
96
  var nameList = res.data;
52
- setTotalData(function(list1) {
53
- var list = list1;
97
+ setShowTotalData(function(list1) {
98
+ var list = showTotalData;
54
99
  list = list.map(function(item) {
55
100
  var name = nameList.filter(function(v) {
56
101
  return v.uid == item.uid;
@@ -58,18 +103,34 @@ var TeacherList = function(props) {
58
103
  if (name.length > 0) {
59
104
  return _object_spread({}, item, name[0]);
60
105
  } else {
61
- return item;
106
+ var nameList1 = teacher_list.current;
107
+ var name1 = nameList1.filter(function(v) {
108
+ return v.uid == item.uid;
109
+ });
110
+ if (name1.length > 0) {
111
+ return _object_spread({}, item, name1[0]);
112
+ } else {
113
+ return item;
114
+ }
62
115
  }
63
116
  });
64
- setTeacher_list(list);
65
- return list;
117
+ var data = new Map();
118
+ teacher_list.current = teacher_list.current.concat(list).filter(function(a) {
119
+ return !data.has(a.uid) && data.set(a.uid, 1);
120
+ });
121
+ if (showTotalData.length == 0) {
122
+ loading.current = false;
123
+ } else {
124
+ loading.current = true;
125
+ }
126
+ return list1.concat(list);
66
127
  });
67
128
  }
68
129
  });
69
130
  } else {
70
- var nameList = teacher_list;
71
- setTotalData(function(list1) {
72
- var list = list1;
131
+ var nameList = teacher_list.current;
132
+ setShowTotalData(function(list1) {
133
+ var list = showTotalData;
73
134
  list = list.map(function(item) {
74
135
  var name = nameList.filter(function(v) {
75
136
  return v.uid == item.uid;
@@ -80,8 +141,12 @@ var TeacherList = function(props) {
80
141
  return item;
81
142
  }
82
143
  });
83
- setTeacher_list(list);
84
- return list;
144
+ if (showTotalData.length == 0) {
145
+ loading.current = false;
146
+ } else {
147
+ loading.current = true;
148
+ }
149
+ return list1.concat(list);
85
150
  });
86
151
  }
87
152
  } catch (error) {}
@@ -131,13 +196,10 @@ var TeacherList = function(props) {
131
196
  setKeyWordProblem(val);
132
197
  clearTimeout(timer.current);
133
198
  timer.current = setTimeout(function() {
134
- if (val != "") {
135
- setTotalData([]);
136
- getList(val);
137
- } else {
138
- setShowLoadingState(1);
139
- setTotalData([]);
140
- }
199
+ page.current = 1;
200
+ // setTotalData([]);
201
+ totalData.current = [];
202
+ getList(val);
141
203
  }, 1000);
142
204
  }
143
205
  }),
@@ -146,7 +208,10 @@ var TeacherList = function(props) {
146
208
  onClick: function() {
147
209
  setShowLoadingState(1);
148
210
  setKeyWordProblem("");
149
- setTotalData([]);
211
+ // setTotalData([]);
212
+ totalData.current = [];
213
+ page.current = 1;
214
+ getList("");
150
215
  },
151
216
  children: /*#__PURE__*/ _jsx(CustomClose, {})
152
217
  })
@@ -154,7 +219,7 @@ var TeacherList = function(props) {
154
219
  }),
155
220
  /*#__PURE__*/ _jsxs("div", {
156
221
  className: styles.main_list,
157
- id: "history_list",
222
+ id: "teacher_list",
158
223
  children: [
159
224
  showLoadingState == 1 && /*#__PURE__*/ _jsxs("div", {
160
225
  className: styles.no_data,
@@ -174,13 +239,14 @@ var TeacherList = function(props) {
174
239
  src: "/new_yun/images/aiService/no_data.png"
175
240
  }),
176
241
  /*#__PURE__*/ _jsx("p", {
177
- children: "暂无记录"
242
+ children: "未搜索到老师"
178
243
  })
179
244
  ]
180
245
  }),
181
246
  /*#__PURE__*/ _jsx("div", {
182
247
  className: styles.list_item,
183
- children: totalData.map(function(item) {
248
+ ref: sliderRef,
249
+ children: showTotalData.map(function(item) {
184
250
  var span = item.name.replaceAll(new RegExp(keyWordProblem, "ig"), function(i) {
185
251
  return "<span class=".concat(styles.sign, ">").concat(i, "</span>");
186
252
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bhd-components",
3
- "version": "0.7.21",
3
+ "version": "0.7.23",
4
4
  "description": "组件功能描述",
5
5
  "files": [
6
6
  "esm",