@power-xa/m-ui 0.0.3 → 0.0.5

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.
package/README.md CHANGED
@@ -18,4 +18,12 @@
18
18
  - ConfigProvider
19
19
  - CreatorEdit
20
20
  - Empty
21
- - ActionSheet
21
+ - ActionSheet
22
+
23
+ # 0.0.4
24
+ 1.Tabs修改(子组件内容更新后未重新渲染)
25
+ 2.PageContainer增加footer属性,可自定义底部内容
26
+ 3.Filter Children属性修改
27
+
28
+ # 0.0.5
29
+ ProFormUpload/ProList 增加文件预览
@@ -7,7 +7,7 @@ type FilterProps = {
7
7
  onFilter?: (form: {
8
8
  [key: string]: any;
9
9
  }) => void;
10
- children?: ReactElement[];
10
+ children?: ReactElement | ReactElement[];
11
11
  };
12
12
  declare const Filter: FC<FilterProps>;
13
13
  export default Filter;
@@ -12,6 +12,7 @@ type PageContainerProps = {
12
12
  children?: ReactNode;
13
13
  className?: string;
14
14
  disabledScroll?: boolean;
15
+ footer?: ReactNode;
15
16
  };
16
17
  declare const PageContainer: FC<PageContainerProps>;
17
18
  export default PageContainer;
@@ -1,5 +1,5 @@
1
1
  import React, { Fragment } from "react";
2
- import { getMenuButtonBoundingClientRect, navigateBack } from "@tarojs/taro";
2
+ import { getMenuButtonBoundingClientRect, navigateBack, getWindowInfo } from "@tarojs/taro";
3
3
  import { ScrollView, Text, View } from "@tarojs/components";
4
4
  import "./index.less";
5
5
  var PageContainer = function PageContainer(_ref) {
@@ -8,11 +8,17 @@ var PageContainer = function PageContainer(_ref) {
8
8
  header = _ref.header,
9
9
  children = _ref.children,
10
10
  className = _ref.className,
11
- disabledScroll = _ref.disabledScroll;
11
+ disabledScroll = _ref.disabledScroll,
12
+ footer = _ref.footer;
12
13
  var _getMenuButtonBoundin = getMenuButtonBoundingClientRect(),
13
14
  top = _getMenuButtonBoundin.top,
14
15
  height = _getMenuButtonBoundin.height,
15
16
  left = _getMenuButtonBoundin.left;
17
+ var _getWindowInfo = getWindowInfo(),
18
+ safeArea = _getWindowInfo.safeArea;
19
+ var _ref2 = safeArea,
20
+ safeAreaHeight = _ref2.height,
21
+ bottom = _ref2.bottom;
16
22
  return /*#__PURE__*/React.createElement(View, {
17
23
  className: "p-page-container ".concat(className),
18
24
  style: !fixedHeader ? {
@@ -45,6 +51,11 @@ var PageContainer = function PageContainer(_ref) {
45
51
  enhanced: true,
46
52
  showScrollbar: false,
47
53
  className: "p-page-content"
48
- }, children));
54
+ }, children), footer && /*#__PURE__*/React.createElement(View, {
55
+ className: "p-page-footer",
56
+ style: {
57
+ paddingBottom: "".concat(bottom - safeAreaHeight > 24 ? bottom - safeAreaHeight : 24, "rpx")
58
+ }
59
+ }, footer));
49
60
  };
50
61
  export default PageContainer;
@@ -38,4 +38,12 @@
38
38
  height: 0;
39
39
  flex: 1;
40
40
  }
41
+
42
+ .p-page-footer {
43
+ padding: 24px 32px;
44
+ background: #fff;
45
+ box-sizing: border-box;
46
+ display: flex;
47
+ align-items: center;
48
+ }
41
49
  }
@@ -1,4 +1,10 @@
1
1
  import { FC } from "react";
2
2
  import "./index.less";
3
- declare const ProFormUpload: FC<ProFormAPI.ProFormItemProps>;
3
+ type ProFormUploadProps = ProFormAPI.ProFormItemProps & {
4
+ module?: string;
5
+ userId?: string;
6
+ userName?: string;
7
+ readonly?: boolean;
8
+ };
9
+ declare const ProFormUpload: FC<ProFormUploadProps>;
4
10
  export default ProFormUpload;
@@ -16,7 +16,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
16
16
  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; } }
17
17
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
18
18
  import React, { Fragment, useCallback, useEffect, useRef, useState } from "react";
19
- import { chooseImage, chooseVideo, chooseMessageFile, uploadFile, previewImage } from "@tarojs/taro";
19
+ import { chooseImage, chooseVideo, chooseMessageFile, uploadFile, previewImage, navigateTo } from "@tarojs/taro";
20
20
  import { Image, Text, View } from "@tarojs/components";
21
21
  import { clipFileUrl, getFileType, getUUID, Grid, Popup } from "../../..";
22
22
  import { useConfig } from "../../../ConfigProvider";
@@ -308,7 +308,35 @@ var ProFormUpload = function ProFormUpload(props) {
308
308
  return /*#__PURE__*/React.createElement(View, {
309
309
  className: "p-pro-form-item-file",
310
310
  key: "file-" + index,
311
- onTap: function onTap() {}
311
+ onTap: function onTap() {
312
+ if (item.fileType === "Pic") {
313
+ previewImage({
314
+ urls: fileList.filter(function (item) {
315
+ return item.fileType === "Pic";
316
+ }).map(function (item) {
317
+ return item.fullUri;
318
+ }),
319
+ current: item.fullUri
320
+ });
321
+ } else {
322
+ navigateTo({
323
+ url: "/screens/common/preview/index",
324
+ success: function success(result) {
325
+ result.eventChannel.emit("getPreviewParams", {
326
+ fileId: item.id,
327
+ fileName: item.fileName,
328
+ fileType: item.fileType,
329
+ fileUri: item.uri,
330
+ fullUrl: item.fullUri,
331
+ module: props.module,
332
+ userId: props.userId,
333
+ userName: props.userName,
334
+ readonly: props.readonly
335
+ });
336
+ }
337
+ });
338
+ }
339
+ }
312
340
  }, item.fileType === "Pic" && item.fullUri ? /*#__PURE__*/React.createElement(Image, {
313
341
  src: item.fullUri,
314
342
  className: "image",
@@ -89,8 +89,6 @@ declare namespace ProFormAPI {
89
89
  }
90
90
 
91
91
  type ProFormItemProps = {
92
- /* flex占比 */
93
- flex?: number;
94
92
  /* 对齐方式 */
95
93
  layout?: "horizontal" | "vertical";
96
94
  /* 表单Key */
@@ -136,7 +134,7 @@ declare namespace ProFormAPI {
136
134
  /* 请求选项 */
137
135
  request?: (params?: { [key: string]: any }) => Promise<{ [key: string]: any }[]>;
138
136
  /* 选项字段名 */
139
- fieldNames?: { label: string, value: string };
137
+ fieldNames?: { label: string, value: string, children?: string };
140
138
  /* 选项是否平铺 */
141
139
  optionType?: boolean;
142
140
  /* 项目ID */
@@ -45,6 +45,9 @@ export type ProListProps = {
45
45
  })[];
46
46
  fileList?: MetaProps & {
47
47
  type: "swiper" | "list";
48
+ module?: string;
49
+ userId?: string;
50
+ userName?: string;
48
51
  };
49
52
  footer?: {
50
53
  creator?: {
@@ -11,6 +11,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
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
13
  import React, { forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useState } from "react";
14
+ import { previewImage, navigateTo } from "@tarojs/taro";
14
15
  import { Image, ScrollView, Swiper, SwiperItem, Text, View } from "@tarojs/components";
15
16
  import { getListAssignField, getSimplifyDay, Skeleton } from "./..";
16
17
  import { useDebounceEffect } from "ahooks";
@@ -192,7 +193,7 @@ var ProList = function ProList(_ref, ref) {
192
193
  }, []);
193
194
  var renderListContent = useCallback(function () {
194
195
  return list.map(function (item, index) {
195
- var _meta$tag3, _meta$tag4, _meta$tag5, _meta$fileList5, _meta$fileList$render, _meta$fileList6, _meta$fileList7, _item$meta$fileList$d, _meta$title3, _meta$fileList8, _meta$title4, _meta$fileList9, _meta$subTitle3, _meta$subTitle4, _meta$fileList10, _meta$fileList$render2, _meta$fileList11, _meta$fileList12, _meta$footer$creator, _meta$footer$creator2, _meta$footer$creator3, _meta$footer$extra$re, _meta$footer$extra, _meta$footer$extra2;
196
+ var _meta$tag3, _meta$tag4, _meta$tag5, _meta$fileList5, _meta$fileList$render, _meta$fileList6, _meta$fileList7, _item$meta$fileList$d, _meta$title3, _meta$fileList9, _meta$title4, _meta$fileList10, _meta$subTitle3, _meta$subTitle4, _meta$fileList11, _meta$fileList$render2, _meta$fileList12, _meta$fileList13, _meta$footer$creator, _meta$footer$creator2, _meta$footer$creator3, _meta$footer$extra$re, _meta$footer$extra, _meta$footer$extra2;
196
197
  var dom = /*#__PURE__*/React.createElement(View, {
197
198
  className: "p-pro-list-card-container ".concat(rowClassName),
198
199
  onTap: onItem === null || onItem === void 0 ? void 0 : onItem(item).onTap
@@ -228,12 +229,26 @@ var ProList = function ProList(_ref, ref) {
228
229
  }, /*#__PURE__*/React.createElement(Image, {
229
230
  src: file.fullUri,
230
231
  className: "p-pro-list-card-title-swiper-image",
231
- mode: "aspectFill"
232
+ mode: "aspectFill",
233
+ onTap: function onTap(e) {
234
+ var _meta$fileList8;
235
+ e.stopPropagation();
236
+ if ((_meta$fileList8 = meta.fileList) !== null && _meta$fileList8 !== void 0 && _meta$fileList8.dataIndex) {
237
+ previewImage({
238
+ urls: item[meta.fileList.dataIndex].filter(function (item) {
239
+ return item.fileType === "Pic";
240
+ }).map(function (item) {
241
+ return item.fullUri;
242
+ }),
243
+ current: file.fullUri
244
+ });
245
+ }
246
+ }
232
247
  }));
233
248
  }))), meta !== null && meta !== void 0 && (_meta$title3 = meta.title) !== null && _meta$title3 !== void 0 && _meta$title3.render ? /*#__PURE__*/React.createElement(View, {
234
- className: "p-pro-list-card-title-text ".concat(((_meta$fileList8 = meta.fileList) === null || _meta$fileList8 === void 0 ? void 0 : _meta$fileList8.type) === 'swiper' && item[meta.fileList.dataIndex] ? 'p-pro-list-card-title-swiper-text' : '')
235
- }, meta.title.render(item[meta.title.dataIndex], item, index)) : (meta === null || meta === void 0 || (_meta$title4 = meta.title) === null || _meta$title4 === void 0 ? void 0 : _meta$title4.dataIndex) && /*#__PURE__*/React.createElement(Text, {
236
249
  className: "p-pro-list-card-title-text ".concat(((_meta$fileList9 = meta.fileList) === null || _meta$fileList9 === void 0 ? void 0 : _meta$fileList9.type) === 'swiper' && item[meta.fileList.dataIndex] ? 'p-pro-list-card-title-swiper-text' : '')
250
+ }, meta.title.render(item[meta.title.dataIndex], item, index)) : (meta === null || meta === void 0 || (_meta$title4 = meta.title) === null || _meta$title4 === void 0 ? void 0 : _meta$title4.dataIndex) && /*#__PURE__*/React.createElement(Text, {
251
+ className: "p-pro-list-card-title-text ".concat(((_meta$fileList10 = meta.fileList) === null || _meta$fileList10 === void 0 ? void 0 : _meta$fileList10.type) === 'swiper' && item[meta.fileList.dataIndex] ? 'p-pro-list-card-title-swiper-text' : '')
237
252
  }, item[meta.title.dataIndex])), meta !== null && meta !== void 0 && (_meta$subTitle3 = meta.subTitle) !== null && _meta$subTitle3 !== void 0 && _meta$subTitle3.render ? meta.subTitle.render(item[meta.subTitle.dataIndex], item, index) : (meta === null || meta === void 0 || (_meta$subTitle4 = meta.subTitle) === null || _meta$subTitle4 === void 0 ? void 0 : _meta$subTitle4.dataIndex) && /*#__PURE__*/React.createElement(Text, {
238
253
  className: "p-pro-list-card-sub-title"
239
254
  }, item[meta.subTitle.dataIndex]), (meta === null || meta === void 0 ? void 0 : meta.description) && /*#__PURE__*/React.createElement(View, {
@@ -256,7 +271,7 @@ var ProList = function ProList(_ref, ref) {
256
271
  key: d.dataIndex + '-value-' + i
257
272
  }, item[d.dataIndex] || "-");
258
273
  }))), /* 文件列表 */
259
- (meta === null || meta === void 0 || (_meta$fileList10 = meta.fileList) === null || _meta$fileList10 === void 0 ? void 0 : _meta$fileList10.type) == "list" && (meta.fileList.render ? (_meta$fileList$render2 = (_meta$fileList11 = meta.fileList).render) === null || _meta$fileList$render2 === void 0 ? void 0 : _meta$fileList$render2.call(_meta$fileList11, item[meta.fileList.dataIndex], item, index) : (meta === null || meta === void 0 || (_meta$fileList12 = meta.fileList) === null || _meta$fileList12 === void 0 ? void 0 : _meta$fileList12.dataIndex) && item[meta.fileList.dataIndex] && /*#__PURE__*/React.createElement(Fragment, null, item[meta.fileList.dataIndex].filter(function (item) {
274
+ (meta === null || meta === void 0 || (_meta$fileList11 = meta.fileList) === null || _meta$fileList11 === void 0 ? void 0 : _meta$fileList11.type) == "list" && (meta.fileList.render ? (_meta$fileList$render2 = (_meta$fileList12 = meta.fileList).render) === null || _meta$fileList$render2 === void 0 ? void 0 : _meta$fileList$render2.call(_meta$fileList12, item[meta.fileList.dataIndex], item, index) : (meta === null || meta === void 0 || (_meta$fileList13 = meta.fileList) === null || _meta$fileList13 === void 0 ? void 0 : _meta$fileList13.dataIndex) && item[meta.fileList.dataIndex] && /*#__PURE__*/React.createElement(Fragment, null, item[meta.fileList.dataIndex].filter(function (item) {
260
275
  return item.fileType === "Pic";
261
276
  }).length ? /*#__PURE__*/React.createElement(View, {
262
277
  className: "p-pro-list-card-image-list"
@@ -267,7 +282,21 @@ var ProList = function ProList(_ref, ref) {
267
282
  key: file.id,
268
283
  src: file.fullUri,
269
284
  className: "p-pro-list-card-image",
270
- mode: "aspectFill"
285
+ mode: "aspectFill",
286
+ onTap: function onTap(e) {
287
+ var _meta$fileList14;
288
+ e.stopPropagation();
289
+ if ((_meta$fileList14 = meta.fileList) !== null && _meta$fileList14 !== void 0 && _meta$fileList14.dataIndex) {
290
+ previewImage({
291
+ urls: item[meta.fileList.dataIndex].filter(function (item) {
292
+ return item.fileType === "Pic";
293
+ }).map(function (item) {
294
+ return item.fullUri;
295
+ }),
296
+ current: file.fullUri
297
+ });
298
+ }
299
+ }
271
300
  });
272
301
  })) : null, item[meta.fileList.dataIndex].filter(function (item) {
273
302
  return item.fileType !== "Pic";
@@ -278,7 +307,29 @@ var ProList = function ProList(_ref, ref) {
278
307
  }).map(function (file) {
279
308
  return /*#__PURE__*/React.createElement(View, {
280
309
  className: "p-pro-list-card-file",
281
- key: file.id
310
+ key: file.id,
311
+ onTap: function onTap(e) {
312
+ var _meta$fileList15;
313
+ e.stopPropagation();
314
+ if ((_meta$fileList15 = meta.fileList) !== null && _meta$fileList15 !== void 0 && _meta$fileList15.dataIndex) {
315
+ navigateTo({
316
+ url: "/screens/common/preview/index",
317
+ success: function success(result) {
318
+ var _meta$fileList16, _meta$fileList17, _meta$fileList18;
319
+ result.eventChannel.emit("getPreviewParams", {
320
+ fileId: file.id,
321
+ fileName: file.fileName,
322
+ fileType: file.fileType,
323
+ fileUri: file.uri,
324
+ module: (_meta$fileList16 = meta.fileList) === null || _meta$fileList16 === void 0 ? void 0 : _meta$fileList16.module,
325
+ userId: (_meta$fileList17 = meta.fileList) === null || _meta$fileList17 === void 0 ? void 0 : _meta$fileList17.userId,
326
+ userName: (_meta$fileList18 = meta.fileList) === null || _meta$fileList18 === void 0 ? void 0 : _meta$fileList18.userName,
327
+ readonly: true
328
+ });
329
+ }
330
+ });
331
+ }
332
+ }
282
333
  }, /*#__PURE__*/React.createElement(Image, {
283
334
  className: "p-pro-list-card-file-image",
284
335
  src: "https://dev.p3china.com:7700/psp.web.dev/resources/images/document/icon/".concat(file.fileType.toLowerCase(), ".svg"),
@@ -1,10 +1,10 @@
1
- import { FC, ReactNode, ReactElement } from "react";
1
+ import { FC, ReactNode } from "react";
2
2
  import "./index.less";
3
3
  type TabItemProps = {
4
4
  label: string;
5
5
  icon?: string;
6
6
  key: string;
7
- children?: ReactElement;
7
+ children?: ReactNode;
8
8
  init?: boolean;
9
9
  };
10
10
  type TabsProps = {
@@ -14,7 +14,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
14
14
  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; }
15
15
  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; } }
16
16
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17
- import React, { useCallback, useEffect, useState, cloneElement } from "react";
17
+ import React, { useCallback, useEffect, useState, cloneElement, isValidElement } from "react";
18
18
  import { ScrollView, Swiper, SwiperItem, Text, View } from "@tarojs/components";
19
19
  import { createSelectorQuery } from "@tarojs/taro";
20
20
  import "./index.less";
@@ -54,7 +54,7 @@ var Tabs = function Tabs(_ref) {
54
54
  height = _useState10[0],
55
55
  setHeight = _useState10[1];
56
56
  useEffect(function () {
57
- if (items.length) {
57
+ if (items.length !== tabsList.length) {
58
58
  setSelectKey(activeKey || items[0].key);
59
59
  setTabsList(items.map(function (item, index) {
60
60
  return _objectSpread(_objectSpread({}, item), {}, {
@@ -66,7 +66,7 @@ var Tabs = function Tabs(_ref) {
66
66
  getSwiperHeight();
67
67
  }
68
68
  }
69
- }, []);
69
+ }, [tabsList, items]);
70
70
  useEffect(function () {
71
71
  var _tabsList$find;
72
72
  if (selectKey !== activeKey) onChange === null || onChange === void 0 || onChange(selectKey);
@@ -113,6 +113,23 @@ var Tabs = function Tabs(_ref) {
113
113
  }).exec();
114
114
  }
115
115
  }, [tabsList, selectKey, parentLeft]);
116
+ var renderSwiperTabContent = useCallback(function (tab) {
117
+ var _items$find;
118
+ var children = (_items$find = items.find(function (item) {
119
+ return item.key == tab.key;
120
+ })) === null || _items$find === void 0 ? void 0 : _items$find.children;
121
+ if (tab.init && /*#__PURE__*/isValidElement(children)) return /*#__PURE__*/cloneElement(children, _objectSpread(_objectSpread({}, children.props), {}, {
122
+ onRefresh: function onRefresh(keys) {
123
+ keys.forEach(function (item) {
124
+ var tab = tabsList.find(function (tab) {
125
+ return tab.key === item;
126
+ });
127
+ if (tab !== null && tab !== void 0 && tab.init) tab.init = false;
128
+ });
129
+ setTabsList(_toConsumableArray(tabsList));
130
+ }
131
+ }));
132
+ }, [items]);
116
133
  return /*#__PURE__*/React.createElement(View, {
117
134
  className: "p-tabs-container ".concat(className, " ").concat(isCardList ? 'p-tabs-card-list-container' : '', " ").concat(centered ? 'p-tabs-centered-container' : '')
118
135
  }, /*#__PURE__*/React.createElement(View, {
@@ -168,17 +185,7 @@ var Tabs = function Tabs(_ref) {
168
185
  }, /*#__PURE__*/React.createElement(View, {
169
186
  id: "swiper-tab-content",
170
187
  className: "swiper-tab-content-view"
171
- }, item.init && item.children && /*#__PURE__*/cloneElement(item.children, _objectSpread(_objectSpread({}, item.children.props), {}, {
172
- onRefresh: function onRefresh(keys) {
173
- keys.forEach(function (item) {
174
- var tab = tabsList.find(function (tab) {
175
- return tab.key === item;
176
- });
177
- if (tab !== null && tab !== void 0 && tab.init) tab.init = false;
178
- });
179
- setTabsList(_toConsumableArray(tabsList));
180
- }
181
- }))));
188
+ }, renderSwiperTabContent(item)));
182
189
  })) : (_tabsList$find2 = tabsList.find(function (item) {
183
190
  return item.key === selectKey;
184
191
  })) === null || _tabsList$find2 === void 0 ? void 0 : _tabsList$find2.children));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@power-xa/m-ui",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "power-mobile系列公共组件库",
5
5
  "module": "dist/index.js",
6
6
  "types": "dist/index.d.ts",