@power-xa/m-ui 0.0.1

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.
Files changed (95) hide show
  1. package/README.md +21 -0
  2. package/dist/ActionSheet/index.d.ts +16 -0
  3. package/dist/ActionSheet/index.js +79 -0
  4. package/dist/ActionSheet/index.less +39 -0
  5. package/dist/Breadcrumb/index.d.ts +14 -0
  6. package/dist/Breadcrumb/index.js +31 -0
  7. package/dist/Breadcrumb/index.less +28 -0
  8. package/dist/Button/index.d.ts +16 -0
  9. package/dist/Button/index.js +53 -0
  10. package/dist/Button/index.less +42 -0
  11. package/dist/ConfigProvider/index.d.ts +23 -0
  12. package/dist/ConfigProvider/index.js +41 -0
  13. package/dist/CreatorEdit/index.d.ts +12 -0
  14. package/dist/CreatorEdit/index.js +70 -0
  15. package/dist/CreatorEdit/index.less +41 -0
  16. package/dist/Drawer/index.d.ts +12 -0
  17. package/dist/Drawer/index.js +71 -0
  18. package/dist/Drawer/index.less +24 -0
  19. package/dist/Empty/index.d.ts +12 -0
  20. package/dist/Empty/index.js +18 -0
  21. package/dist/Empty/index.less +15 -0
  22. package/dist/FloatButton/index.d.ts +10 -0
  23. package/dist/FloatButton/index.js +60 -0
  24. package/dist/FloatButton/index.less +26 -0
  25. package/dist/Grid/index.d.ts +15 -0
  26. package/dist/Grid/index.js +26 -0
  27. package/dist/Grid/index.less +4 -0
  28. package/dist/PageContainer/index.d.ts +17 -0
  29. package/dist/PageContainer/index.js +50 -0
  30. package/dist/PageContainer/index.less +41 -0
  31. package/dist/Popup/index.d.ts +13 -0
  32. package/dist/Popup/index.js +65 -0
  33. package/dist/Popup/index.less +22 -0
  34. package/dist/ProForm/Field/index.d.ts +8 -0
  35. package/dist/ProForm/Field/index.js +33 -0
  36. package/dist/ProForm/Field/index.less +96 -0
  37. package/dist/ProForm/Form/index.d.ts +7 -0
  38. package/dist/ProForm/Form/index.js +145 -0
  39. package/dist/ProForm/Form/index.less +61 -0
  40. package/dist/ProForm/Group/index.d.ts +7 -0
  41. package/dist/ProForm/Group/index.js +73 -0
  42. package/dist/ProForm/Group/index.less +32 -0
  43. package/dist/ProForm/controls/Date/index.d.ts +3 -0
  44. package/dist/ProForm/controls/Date/index.js +141 -0
  45. package/dist/ProForm/controls/List/index.d.ts +23 -0
  46. package/dist/ProForm/controls/List/index.js +77 -0
  47. package/dist/ProForm/controls/List/index.less +53 -0
  48. package/dist/ProForm/controls/Select/index.d.ts +4 -0
  49. package/dist/ProForm/controls/Select/index.js +263 -0
  50. package/dist/ProForm/controls/Select/index.less +120 -0
  51. package/dist/ProForm/controls/Text/index.d.ts +4 -0
  52. package/dist/ProForm/controls/Text/index.js +29 -0
  53. package/dist/ProForm/controls/Text/index.less +7 -0
  54. package/dist/ProForm/controls/TextArea/index.d.ts +4 -0
  55. package/dist/ProForm/controls/TextArea/index.js +63 -0
  56. package/dist/ProForm/controls/TextArea/index.less +46 -0
  57. package/dist/ProForm/controls/Upload/index.d.ts +4 -0
  58. package/dist/ProForm/controls/Upload/index.js +383 -0
  59. package/dist/ProForm/controls/Upload/index.less +174 -0
  60. package/dist/ProForm/index.d.ts +9 -0
  61. package/dist/ProForm/index.js +5 -0
  62. package/dist/ProForm/typings.d.ts +164 -0
  63. package/dist/ProList/index.d.ts +78 -0
  64. package/dist/ProList/index.js +323 -0
  65. package/dist/ProList/index.less +318 -0
  66. package/dist/RefreshList/index.d.ts +17 -0
  67. package/dist/RefreshList/index.js +43 -0
  68. package/dist/RefreshList/index.less +19 -0
  69. package/dist/Skeleton/index.d.ts +5 -0
  70. package/dist/Skeleton/index.js +37 -0
  71. package/dist/Skeleton/index.less +7 -0
  72. package/dist/Tabbar/index.d.ts +13 -0
  73. package/dist/Tabbar/index.js +77 -0
  74. package/dist/Tabbar/index.less +44 -0
  75. package/dist/Tabs/index.d.ts +26 -0
  76. package/dist/Tabs/index.js +186 -0
  77. package/dist/Tabs/index.less +249 -0
  78. package/dist/assets/fonts/PingFangSC-Light.ttf +0 -0
  79. package/dist/assets/fonts/PingFangSC-Medium.ttf +0 -0
  80. package/dist/assets/fonts/PingFangSC-Regular.ttf +0 -0
  81. package/dist/assets/less/mixins.less +37 -0
  82. package/dist/global.less +0 -0
  83. package/dist/index.d.ts +25 -0
  84. package/dist/index.js +27 -0
  85. package/dist/request/index.d.ts +8 -0
  86. package/dist/request/index.js +61 -0
  87. package/dist/services/FileController/index.d.ts +12 -0
  88. package/dist/services/FileController/index.js +39 -0
  89. package/dist/services/FileController/typings.d.ts +52 -0
  90. package/dist/services/index.d.ts +2 -0
  91. package/dist/services/index.js +2 -0
  92. package/dist/services/typings.d.ts +25 -0
  93. package/dist/utils/tools.d.ts +33 -0
  94. package/dist/utils/tools.js +231 -0
  95. package/package.json +88 -0
@@ -0,0 +1,164 @@
1
+ declare namespace ProFormAPI {
2
+ type ProFormProps = {
3
+ /* 表单禁用 */
4
+ disabled?: boolean;
5
+ /* 默认值 */
6
+ initialValues?: { [key: string]: any };
7
+ /* 类名 */
8
+ className?: string;
9
+ /* 保存方法 */
10
+ onOk?: (result: { [key: string]: any }) => void;
11
+ onDelete?: false | ((result: { [key: string]: any }) => void);
12
+ onSave?: false | ((result: { [key: string]: any }) => void);
13
+ };
14
+
15
+ type IOptionItem = {
16
+ value: string;
17
+ label: string;
18
+ color?: string;
19
+ background?: string;
20
+ }
21
+
22
+ type ProFormGroupProps = {
23
+ onChange?: (key: string, value: any) => void;
24
+ className?: string;
25
+ disabled?: boolean;
26
+ initialValues?: { [key: string]: any };
27
+ hidden?: boolean;
28
+ tag?: {
29
+ dataIndex: string;
30
+ map: IOptionItem[];
31
+ className?: string;
32
+ position?: {
33
+ top?: number;
34
+ bottom?: number;
35
+ right?: number;
36
+ left?: number;
37
+ }
38
+ };
39
+ }
40
+
41
+ interface InputType {
42
+ /** 文本输入键盘
43
+ * @supported weapp, alipay, h5, rn, harmony_hybrid
44
+ */
45
+ text
46
+ /** 数字输入键盘
47
+ * @supported weapp, alipay, h5, rn, harmony_hybrid
48
+ */
49
+ number
50
+ /** 身份证输入键盘
51
+ *@supported weapp, alipay, rn
52
+ */
53
+ idcard
54
+ /** 带小数点的数字键盘
55
+ * @supported weapp, alipay, h5, rn, harmony_hybrid
56
+ */
57
+ digit
58
+ /** 密码安全输入键盘[指引](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/safe-password.html)
59
+ * @supported weapp, alipay
60
+ */
61
+ 'safe-password'
62
+ /** 昵称输入键盘
63
+ * @supported weapp, alipay
64
+ */
65
+ nickname
66
+ /** 数字输入键盘
67
+ * @supported alipay
68
+ */
69
+ numberpad
70
+ /** 带小数点的数字键盘
71
+ * @supported alipay
72
+ */
73
+ digitpad
74
+ /** 身份证输入键盘
75
+ * @supported alipay
76
+ */
77
+ idcardpad
78
+ }
79
+
80
+ type ProFormItemProps = {
81
+ /* 对齐方式 */
82
+ layout?: "horizontal" | "vertical";
83
+ /* 表单Key */
84
+ name?: string;
85
+ /* 表单文字 */
86
+ label?: string;
87
+ /* 依赖字段 */
88
+ dependencies?: string;
89
+ /* 是否隐藏字段 */
90
+ hidden?: boolean;
91
+ /* 默认值 */
92
+ initialValue?: any;
93
+ /* 是否必填 */
94
+ required?: boolean;
95
+ /* 校验规则 */
96
+ rules?: {
97
+ /* 消息提示 */
98
+ message?: string;
99
+ /* 校验正则 */
100
+ pattern?: RegExp;
101
+ /* 是否必填 */
102
+ required?: boolean;
103
+ }[];
104
+ /* 自定义字段更新 */
105
+ shouldUpdate?: boolean | ((prevValue: any, curValue: any) => boolean);
106
+ /* 类名 */
107
+ className?: string;
108
+ /* 提示文字 */
109
+ placeholder?: string;
110
+ /* 值 */
111
+ value?: any;
112
+ /* 更新 */
113
+ onChange?: (value: any) => void;
114
+ /* 是否禁用 */
115
+ disabled?: boolean;
116
+ /* 输入框最大长度 */
117
+ maxLength?: number;
118
+ /* 输入框类型 */
119
+ inputType?: keyof InputType;
120
+ /* 时间格式 */
121
+ format?: "YYYY" | "YYYY-MM" | "YYYY-MM-DD" | "YYYY-MM-DD HH:mm" | "HH:mm";
122
+ /* 上传类型 */
123
+ listType?: "card" | "list";
124
+ /* 选项 */
125
+ options?: { [key: string]: any }[];
126
+ /* 是否多选 */
127
+ multiple?: boolean;
128
+ /* 请求参数 */
129
+ params?: { [key: string]: any }
130
+ /* 请求选项 */
131
+ request?: (params?: { [key: string]: any }) => Promise<{ [key: string]: any }[]>;
132
+ /* 选项字段名 */
133
+ fieldNames?: { label: string, value: string };
134
+ /* 选项是否平铺 */
135
+ optionType?: boolean;
136
+ /* 项目ID */
137
+ projectId?: string;
138
+ /* 企业ID */
139
+ companyId?: string;
140
+ /* 选择范围 */
141
+ source?: {
142
+ /* 成员选择 ALL、IN、OUT公共,OTHER、SEAT、NO-SEAT仅支持企业 */
143
+ user?: "ALL" | "IN" | "OUT" | "OTHER" | "SEAT" | "NO-SEAT";
144
+ /* 仅支持项目 */
145
+ unit?: "ALL" | "USER" | "UNIT";
146
+ /* 仅支持企业 */
147
+ organization?: "ALL" | "USER" | "DEPT";
148
+ external?: "ALL" | "USER" | "EXTERNAL",
149
+ rule?: "ALL" | "USER" | "RULE";
150
+ };
151
+ /* 过滤 */
152
+ filter?: { [key: string]: any };
153
+ /* 监听Form其余值 */
154
+ getFormValue?: (key: string) => any;
155
+ /* 隐藏底部边框及内间距 */
156
+ hiddenBorder?: boolean;
157
+ /* 推荐内容 */
158
+ recommend?: string[];
159
+ }
160
+
161
+ type ProFormListProps = {
162
+
163
+ }
164
+ }
@@ -0,0 +1,78 @@
1
+ import React, { ReactNode } from "react";
2
+ import "./index.less";
3
+ type MetaProps = {
4
+ dataIndex: string;
5
+ render?: (value: any, data: {
6
+ [key: string]: any;
7
+ }, index: number) => string | ReactNode;
8
+ };
9
+ export type ProListProps = {
10
+ scrollable?: boolean;
11
+ dataSources?: {
12
+ [key: string]: any;
13
+ }[];
14
+ className?: string;
15
+ rowClassName?: string;
16
+ params?: {
17
+ [key: string]: any;
18
+ };
19
+ request?: (params: {
20
+ [key: string]: any;
21
+ }) => Promise<{
22
+ list: {
23
+ [key: string]: any;
24
+ }[];
25
+ total: number;
26
+ }>;
27
+ size?: number;
28
+ rowKey?: string | ((data: {
29
+ [key: string]: any;
30
+ }) => string);
31
+ onItem?: (data: {
32
+ [key: string]: any;
33
+ }) => ({
34
+ onTap?: () => void;
35
+ });
36
+ grid?: {
37
+ gutter?: number | [number, number];
38
+ column?: number;
39
+ };
40
+ meta?: {
41
+ title?: MetaProps;
42
+ subTitle?: MetaProps;
43
+ description?: (MetaProps & {
44
+ label: string;
45
+ })[];
46
+ fileList?: MetaProps & {
47
+ type: "swiper" | "list";
48
+ };
49
+ footer?: {
50
+ creator?: {
51
+ id?: string;
52
+ memberId?: string;
53
+ name: string;
54
+ avatar?: string;
55
+ };
56
+ extra?: MetaProps;
57
+ } | false;
58
+ tag?: MetaProps & {
59
+ map?: {
60
+ label: string;
61
+ value: string;
62
+ color?: string;
63
+ background?: string;
64
+ }[];
65
+ position?: {
66
+ top?: number;
67
+ left?: number;
68
+ bottom?: number;
69
+ right?: number;
70
+ };
71
+ };
72
+ };
73
+ renderItem?: (item: {
74
+ [key: string]: any;
75
+ }, index: number, dom: ReactNode) => ReactNode;
76
+ };
77
+ declare const _default: React.ForwardRefExoticComponent<ProListProps & React.RefAttributes<unknown>>;
78
+ export default _default;
@@ -0,0 +1,323 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
9
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
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
+ 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
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
+ import React, { forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useState } from "react";
14
+ import { Image, ScrollView, Swiper, SwiperItem, Text, View } from "@tarojs/components";
15
+ import { getListAssignField, getSimplifyDay, Skeleton } from "./..";
16
+ import { useConfig } from "../ConfigProvider";
17
+ import { FileController } from "../services";
18
+ import "./index.less";
19
+ var ProList = function ProList(_ref, ref) {
20
+ var _ref$scrollable = _ref.scrollable,
21
+ scrollable = _ref$scrollable === void 0 ? true : _ref$scrollable,
22
+ dataSources = _ref.dataSources,
23
+ className = _ref.className,
24
+ rowClassName = _ref.rowClassName,
25
+ params = _ref.params,
26
+ request = _ref.request,
27
+ _ref$size = _ref.size,
28
+ size = _ref$size === void 0 ? 15 : _ref$size,
29
+ _ref$rowKey = _ref.rowKey,
30
+ rowKey = _ref$rowKey === void 0 ? "id" : _ref$rowKey,
31
+ onItem = _ref.onItem,
32
+ _ref$grid = _ref.grid,
33
+ grid = _ref$grid === void 0 ? {
34
+ gutter: [24, 24],
35
+ column: 1
36
+ } : _ref$grid,
37
+ meta = _ref.meta,
38
+ renderItem = _ref.renderItem;
39
+ var _useConfig = useConfig(),
40
+ src = _useConfig.src;
41
+ /* 下拉刷新状态 */
42
+ var _useState = useState(false),
43
+ _useState2 = _slicedToArray(_useState, 2),
44
+ refreshing = _useState2[0],
45
+ setRefreshing = _useState2[1];
46
+ /* 加载状态 */
47
+ var _useState3 = useState(true),
48
+ _useState4 = _slicedToArray(_useState3, 2),
49
+ loading = _useState4[0],
50
+ setLoading = _useState4[1];
51
+ /* 数据列表 */
52
+ var _useState5 = useState([]),
53
+ _useState6 = _slicedToArray(_useState5, 2),
54
+ list = _useState6[0],
55
+ setList = _useState6[1];
56
+ /* 数据总量 */
57
+ var _useState7 = useState(0),
58
+ _useState8 = _slicedToArray(_useState7, 2),
59
+ total = _useState8[0],
60
+ setTotal = _useState8[1];
61
+ useEffect(function () {
62
+ if (dataSources instanceof Array) {
63
+ setList(dataSources);
64
+ setLoading(false);
65
+ } else {
66
+ getList(1);
67
+ }
68
+ }, [dataSources]);
69
+ useEffect(function () {
70
+ if (refreshing) getList(1);
71
+ }, [refreshing]);
72
+ useImperativeHandle(ref, function () {
73
+ return {
74
+ onRefresh: function onRefresh() {
75
+ return setRefreshing(true);
76
+ }
77
+ };
78
+ });
79
+ var getList = useCallback(function (current) {
80
+ request === null || request === void 0 || request(_objectSpread(_objectSpread({}, params), {}, {
81
+ current: current,
82
+ size: size
83
+ })).then(function (result) {
84
+ var _meta$footer, _meta$footer2, _meta$footer3;
85
+ var dataList = result.list,
86
+ total = result.total;
87
+ if (dataList.length && typeof (meta === null || meta === void 0 ? void 0 : meta.footer) !== "boolean" && !(meta !== null && meta !== void 0 && (_meta$footer = meta.footer) !== null && _meta$footer !== void 0 && (_meta$footer = _meta$footer.creator) !== null && _meta$footer !== void 0 && _meta$footer.avatar) && (meta !== null && meta !== void 0 && (_meta$footer2 = meta.footer) !== null && _meta$footer2 !== void 0 && (_meta$footer2 = _meta$footer2.creator) !== null && _meta$footer2 !== void 0 && _meta$footer2.id || meta !== null && meta !== void 0 && (_meta$footer3 = meta.footer) !== null && _meta$footer3 !== void 0 && (_meta$footer3 = _meta$footer3.creator) !== null && _meta$footer3 !== void 0 && _meta$footer3.memberId)) {
88
+ var _key = typeof meta.footer !== "boolean" && (meta.footer.creator.id || meta.footer.creator.memberId);
89
+ var ids = Array.from(new Set(dataList.map(function (item) {
90
+ return item[_key];
91
+ })));
92
+ FileController[meta.footer.creator.memberId ? "getProjectMemberAvatar" : "getUserAvatar"]({
93
+ ids: ids
94
+ }).then(function (result) {
95
+ if (result.code === 200) {
96
+ dataList.forEach(function (item) {
97
+ if (ids.includes(item[_key])) {
98
+ item.avatar = result.data[ids.indexOf(item[_key])] || (src === null || src === void 0 ? void 0 : src.resource) + "/images/default/avatar.svg";
99
+ }
100
+ });
101
+ setList(current === 1 ? dataList : list.concat(dataList));
102
+ setTotal(total);
103
+ if (loading) setLoading(false);
104
+ if (refreshing) setRefreshing(false);
105
+ }
106
+ });
107
+ } else {
108
+ setList(current === 1 ? dataList : list.concat(dataList));
109
+ setTotal(total);
110
+ if (loading) setLoading(false);
111
+ if (refreshing) setRefreshing(false);
112
+ }
113
+ });
114
+ }, [refreshing]);
115
+ var renderSkeleton = useCallback(function () {
116
+ return Array(size).fill(null).map(function (item, index) {
117
+ var _meta$tag, _meta$tag2, _meta$fileList, _meta$fileList2, _meta$title, _meta$title2, _meta$subTitle, _meta$subTitle2, _meta$fileList3, _meta$fileList4;
118
+ return /*#__PURE__*/React.createElement(View, {
119
+ className: "p-pro-list-card-skeleton",
120
+ key: 'skeleton-' + index
121
+ }, /* 标签 */
122
+ ((meta === null || meta === void 0 || (_meta$tag = meta.tag) === null || _meta$tag === void 0 ? void 0 : _meta$tag.render) || (meta === null || meta === void 0 || (_meta$tag2 = meta.tag) === null || _meta$tag2 === void 0 ? void 0 : _meta$tag2.dataIndex)) && /*#__PURE__*/React.createElement(Skeleton, {
123
+ className: "p-pro-list-card-tag",
124
+ style: _objectSpread({}, meta.tag.position)
125
+ }), /*#__PURE__*/React.createElement(View, {
126
+ className: "p-pro-list-card-title"
127
+ }, /* 图片Swiper */
128
+ (meta === null || meta === void 0 || (_meta$fileList = meta.fileList) === null || _meta$fileList === void 0 ? void 0 : _meta$fileList.type) == "swiper" && (meta.fileList.render || (meta === null || meta === void 0 || (_meta$fileList2 = meta.fileList) === null || _meta$fileList2 === void 0 ? void 0 : _meta$fileList2.dataIndex)) && /*#__PURE__*/React.createElement(Skeleton, {
129
+ className: "p-pro-list-card-title-swiper"
130
+ }), ((meta === null || meta === void 0 || (_meta$title = meta.title) === null || _meta$title === void 0 ? void 0 : _meta$title.render) || (meta === null || meta === void 0 || (_meta$title2 = meta.title) === null || _meta$title2 === void 0 ? void 0 : _meta$title2.dataIndex)) && /*#__PURE__*/React.createElement(View, {
131
+ className: "p-pro-list-card-title-text"
132
+ }, Array(3).fill(null).map(function (_, i) {
133
+ return /*#__PURE__*/React.createElement(Skeleton, {
134
+ className: "p-pro-list-card-title-text-skeleton",
135
+ key: 'text-skeleton-' + i
136
+ });
137
+ }))), ((meta === null || meta === void 0 || (_meta$subTitle = meta.subTitle) === null || _meta$subTitle === void 0 ? void 0 : _meta$subTitle.render) || (meta === null || meta === void 0 || (_meta$subTitle2 = meta.subTitle) === null || _meta$subTitle2 === void 0 ? void 0 : _meta$subTitle2.dataIndex)) && /*#__PURE__*/React.createElement(Skeleton, {
138
+ className: "p-pro-list-card-sub-title"
139
+ }), (meta === null || meta === void 0 ? void 0 : meta.description) && /*#__PURE__*/React.createElement(View, {
140
+ className: "p-pro-list-card-description"
141
+ }, meta.description.map(function (_, i) {
142
+ return /*#__PURE__*/React.createElement(View, {
143
+ key: 'description-label-' + i,
144
+ className: "p-pro-list-card-description-row"
145
+ }, /*#__PURE__*/React.createElement(Skeleton, {
146
+ className: "p-pro-list-card-description-label"
147
+ }), /*#__PURE__*/React.createElement(Skeleton, {
148
+ className: "p-pro-list-card-description-value"
149
+ }));
150
+ })), /* 文件列表 */
151
+ (meta === null || meta === void 0 || (_meta$fileList3 = meta.fileList) === null || _meta$fileList3 === void 0 ? void 0 : _meta$fileList3.type) == "list" && (meta.fileList.render || (meta === null || meta === void 0 || (_meta$fileList4 = meta.fileList) === null || _meta$fileList4 === void 0 ? void 0 : _meta$fileList4.dataIndex)) && /*#__PURE__*/React.createElement(View, {
152
+ className: "p-pro-list-card-image-list"
153
+ }, Array(4).fill(null).map(function (item, i) {
154
+ return /*#__PURE__*/React.createElement(Skeleton, {
155
+ key: 'image-' + i,
156
+ className: "p-pro-list-card-image"
157
+ });
158
+ })), (meta === null || meta === void 0 ? void 0 : meta.footer) && /*#__PURE__*/React.createElement(View, {
159
+ className: "p-pro-list-card-footer"
160
+ }, meta.footer.creator && /*#__PURE__*/React.createElement(View, {
161
+ className: "p-pro-list-card-footer-creator"
162
+ }, /*#__PURE__*/React.createElement(Skeleton, {
163
+ className: "p-pro-list-card-footer-creator-avatar"
164
+ }), /*#__PURE__*/React.createElement(Skeleton, {
165
+ className: "p-pro-list-card-footer-creator-name"
166
+ })), meta.footer.extra && /*#__PURE__*/React.createElement(Skeleton, {
167
+ className: "p-pro-list-card-footer-extra-content"
168
+ })));
169
+ });
170
+ }, []);
171
+ var renderListContent = useCallback(function () {
172
+ return list.map(function (item, index) {
173
+ 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;
174
+ var dom = /*#__PURE__*/React.createElement(View, {
175
+ className: "p-pro-list-card-container ".concat(rowClassName),
176
+ onTap: onItem === null || onItem === void 0 ? void 0 : onItem(item).onTap
177
+ }, /* 标签 */
178
+ meta !== null && meta !== void 0 && (_meta$tag3 = meta.tag) !== null && _meta$tag3 !== void 0 && _meta$tag3.render ? meta.tag.render(item[meta.tag.dataIndex], item, index) : (meta === null || meta === void 0 || (_meta$tag4 = meta.tag) === null || _meta$tag4 === void 0 ? void 0 : _meta$tag4.dataIndex) && /*#__PURE__*/React.createElement(View, {
179
+ className: "p-pro-list-card-tag",
180
+ style: _objectSpread(_objectSpread({}, meta.tag.position), {}, {
181
+ backgroundColor: getListAssignField(item[meta.tag.dataIndex], meta.tag.map || [], {
182
+ value: "value",
183
+ label: "background"
184
+ })
185
+ })
186
+ }, /*#__PURE__*/React.createElement(Text, {
187
+ className: "p-pro-list-card-tag-text",
188
+ style: {
189
+ color: getListAssignField(item[(_meta$tag5 = meta.tag) === null || _meta$tag5 === void 0 ? void 0 : _meta$tag5.dataIndex], meta.tag.map || [], {
190
+ value: "value",
191
+ label: "color"
192
+ })
193
+ }
194
+ }, getListAssignField(item[meta.tag.dataIndex], meta.tag.map || []))), /*#__PURE__*/React.createElement(View, {
195
+ className: "p-pro-list-card-title"
196
+ }, /* 图片Swiper */
197
+ (meta === null || meta === void 0 || (_meta$fileList5 = meta.fileList) === null || _meta$fileList5 === void 0 ? void 0 : _meta$fileList5.type) == "swiper" && (meta.fileList.render ? (_meta$fileList$render = (_meta$fileList6 = meta.fileList).render) === null || _meta$fileList$render === void 0 ? void 0 : _meta$fileList$render.call(_meta$fileList6, item[meta.fileList.dataIndex], item, index) : (meta === null || meta === void 0 || (_meta$fileList7 = meta.fileList) === null || _meta$fileList7 === void 0 ? void 0 : _meta$fileList7.dataIndex) && /*#__PURE__*/React.createElement(Swiper, {
198
+ autoplay: true,
199
+ className: "p-pro-list-card-title-swiper"
200
+ }, (_item$meta$fileList$d = item[meta.fileList.dataIndex]) === null || _item$meta$fileList$d === void 0 ? void 0 : _item$meta$fileList$d.filter(function (item) {
201
+ return item.fileType === "Pic";
202
+ }).map(function (file) {
203
+ return /*#__PURE__*/React.createElement(SwiperItem, {
204
+ className: "p-pro-list-card-title-swiper-content",
205
+ key: file.id
206
+ }, /*#__PURE__*/React.createElement(Image, {
207
+ src: file.fullUri,
208
+ className: "p-pro-list-card-title-swiper-image",
209
+ mode: "aspectFill"
210
+ }));
211
+ }))), meta !== null && meta !== void 0 && (_meta$title3 = meta.title) !== null && _meta$title3 !== void 0 && _meta$title3.render ? /*#__PURE__*/React.createElement(View, {
212
+ 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' : '')
213
+ }, 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, {
214
+ 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' : '')
215
+ }, 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, {
216
+ className: "p-pro-list-card-sub-title"
217
+ }, item[meta.subTitle.dataIndex]), (meta === null || meta === void 0 ? void 0 : meta.description) && /*#__PURE__*/React.createElement(View, {
218
+ className: "p-pro-list-card-description"
219
+ }, /*#__PURE__*/React.createElement(View, {
220
+ className: "label-column"
221
+ }, meta.description.map(function (d, i) {
222
+ return /*#__PURE__*/React.createElement(Text, {
223
+ className: "p-pro-list-card-description-label",
224
+ key: d.dataIndex + '-label-' + i
225
+ }, d.label);
226
+ })), /*#__PURE__*/React.createElement(View, {
227
+ className: "value-column"
228
+ }, meta.description.map(function (d, i) {
229
+ return d.render ? /*#__PURE__*/React.createElement(View, {
230
+ className: "p-pro-list-card-description-value",
231
+ key: d.dataIndex + '-value-' + i
232
+ }, d.render(item[d.dataIndex], item, index)) : d.dataIndex && /*#__PURE__*/React.createElement(Text, {
233
+ className: "p-pro-list-card-description-value",
234
+ key: d.dataIndex + '-value-' + i
235
+ }, item[d.dataIndex] || "-");
236
+ }))), /* 文件列表 */
237
+ (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) {
238
+ return item.fileType === "Pic";
239
+ }).length ? /*#__PURE__*/React.createElement(View, {
240
+ className: "p-pro-list-card-image-list"
241
+ }, item[meta.fileList.dataIndex].filter(function (item) {
242
+ return item.fileType === "Pic";
243
+ }).map(function (file) {
244
+ return /*#__PURE__*/React.createElement(Image, {
245
+ key: file.id,
246
+ src: file.fullUri,
247
+ className: "p-pro-list-card-image",
248
+ mode: "aspectFill"
249
+ });
250
+ })) : null, item[meta.fileList.dataIndex].filter(function (item) {
251
+ return item.fileType !== "Pic";
252
+ }).length ? /*#__PURE__*/React.createElement(View, {
253
+ className: "p-pro-list-card-file-list"
254
+ }, item[meta.fileList.dataIndex].filter(function (item) {
255
+ return item.fileType !== "Pic";
256
+ }).map(function (file) {
257
+ return /*#__PURE__*/React.createElement(View, {
258
+ className: "p-pro-list-card-file",
259
+ key: file.id
260
+ }, /*#__PURE__*/React.createElement(Image, {
261
+ className: "p-pro-list-card-file-image",
262
+ src: "https://dev.p3china.com:7700/psp.web.dev/resources/images/document/icon/".concat(file.fileType.toLowerCase(), ".svg"),
263
+ mode: "heightFix"
264
+ }), /*#__PURE__*/React.createElement(Text, {
265
+ className: "p-pro-list-card-file-name"
266
+ }, file.fileName));
267
+ })) : null)), (meta === null || meta === void 0 ? void 0 : meta.footer) && /*#__PURE__*/React.createElement(View, {
268
+ className: "p-pro-list-card-footer"
269
+ }, meta.footer.creator && /*#__PURE__*/React.createElement(View, {
270
+ className: "p-pro-list-card-footer-creator"
271
+ }, (((_meta$footer$creator = meta.footer.creator) === null || _meta$footer$creator === void 0 ? void 0 : _meta$footer$creator.avatar) || item.avatar) && /*#__PURE__*/React.createElement(Image, {
272
+ className: "p-pro-list-card-footer-creator-avatar",
273
+ src: item[(_meta$footer$creator2 = meta.footer.creator) === null || _meta$footer$creator2 === void 0 ? void 0 : _meta$footer$creator2.avatar] || item.avatar
274
+ }), /*#__PURE__*/React.createElement(Text, {
275
+ className: "p-pro-list-card-footer-creator-name"
276
+ }, item[(_meta$footer$creator3 = meta.footer.creator) === null || _meta$footer$creator3 === void 0 ? void 0 : _meta$footer$creator3.name])), meta.footer.extra && /*#__PURE__*/React.createElement(View, {
277
+ className: "p-pro-list-card-footer-extra-content"
278
+ }, ((_meta$footer$extra$re = (_meta$footer$extra = meta.footer.extra).render) === null || _meta$footer$extra$re === void 0 ? void 0 : _meta$footer$extra$re.call(_meta$footer$extra, item[meta.footer.extra.dataIndex], item, index)) || /*#__PURE__*/React.createElement(Text, {
279
+ className: "p-pro-list-card-footer-extra-text"
280
+ }, getSimplifyDay(item[(_meta$footer$extra2 = meta.footer.extra) === null || _meta$footer$extra2 === void 0 ? void 0 : _meta$footer$extra2.dataIndex])))));
281
+ return /*#__PURE__*/React.createElement(Fragment, {
282
+ key: typeof rowKey === "string" ? item[rowKey] : rowKey === null || rowKey === void 0 ? void 0 : rowKey(item)
283
+ }, renderItem ? renderItem(item, index, dom) : dom);
284
+ });
285
+ }, [list]);
286
+ var renderContent = useCallback(function () {
287
+ var _grid$gutter, _grid$gutter2;
288
+ return /*#__PURE__*/React.createElement(View, {
289
+ className: "p-pro-list-content",
290
+ style: {
291
+ rowGap: (typeof grid.gutter === "number" ? grid.gutter : (_grid$gutter = grid.gutter) === null || _grid$gutter === void 0 ? void 0 : _grid$gutter[1]) + "rpx",
292
+ columnGap: (typeof grid.gutter === "number" ? grid.gutter : (_grid$gutter2 = grid.gutter) === null || _grid$gutter2 === void 0 ? void 0 : _grid$gutter2[0]) + "rpx"
293
+ }
294
+ }, loading ? renderSkeleton() : list.length ? renderListContent() : /*#__PURE__*/React.createElement(View, {
295
+ className: "p-pro-list-error-view"
296
+ }, /*#__PURE__*/React.createElement(Text, {
297
+ className: "text"
298
+ }, "\u6682\u65E0\u6570\u636E")));
299
+ }, [loading, list]);
300
+ if (!scrollable) return /*#__PURE__*/React.createElement(View, {
301
+ className: "p-pro-list-view-container"
302
+ }, renderContent());
303
+ return /*#__PURE__*/React.createElement(ScrollView, {
304
+ scrollY: true,
305
+ showScrollbar: false,
306
+ enableBackToTop: true,
307
+ enableFlex: true,
308
+ refresherEnabled: true,
309
+ refresherBackground: "#F6F7F9",
310
+ enhanced: true,
311
+ enablePassive: true,
312
+ type: "custom",
313
+ refresherTriggered: refreshing,
314
+ onRefresherRefresh: function onRefresherRefresh() {
315
+ return setRefreshing(true);
316
+ },
317
+ onScrollToLower: function onScrollToLower() {
318
+ return total && total > list.length && getList(list.length / size + 1);
319
+ },
320
+ className: "p-pro-list-container ".concat(className)
321
+ }, renderContent());
322
+ };
323
+ export default /*#__PURE__*/forwardRef(ProList);