@pisell/materials 2.2.32 → 2.2.34

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 (61) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/index.js +1 -1
  5. package/build/lowcode/meta.js +1 -1
  6. package/build/lowcode/preview.js +7 -7
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +5 -5
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +17 -17
  11. package/es/components/iconfont/index.js +1 -1
  12. package/es/components/pisellInformationEntry/Input/index.js +9 -3
  13. package/es/components/pisellInformationEntry/constants.d.ts +10 -0
  14. package/es/components/pisellInformationEntry/constants.js +10 -0
  15. package/es/components/pisellInformationEntry/hooks/useTerminalPeripherals.d.ts +8 -0
  16. package/es/components/pisellInformationEntry/hooks/useTerminalPeripherals.js +54 -0
  17. package/es/components/pisellInformationEntry/index.js +21 -4
  18. package/es/components/pisellInformationEntry/index.less +1 -1
  19. package/es/components/pisellLoading/index.d.ts +2 -0
  20. package/es/components/pisellLoading/index.js +3 -1
  21. package/es/components/pisellStatisticList/index.less +2 -1
  22. package/es/components/pisellWalletPassCard/index.d.ts +2 -0
  23. package/es/components/pisellWalletPassCard/index.js +16 -4
  24. package/es/components/pisellWalletPassCard/index.less +4 -0
  25. package/es/components/select-time/RightPanel/index.d.ts +2 -2
  26. package/es/components/select-time/RightPanel/index.js +7 -7
  27. package/es/components/virtual-keyboard/Keyboard/index.d.ts +1 -0
  28. package/es/components/virtual-keyboard/Keyboard/index.js +10 -2
  29. package/es/locales/en-US.d.ts +2 -0
  30. package/es/locales/en-US.js +3 -1
  31. package/es/locales/zh-CN.d.ts +2 -0
  32. package/es/locales/zh-CN.js +3 -1
  33. package/es/locales/zh-TW.d.ts +2 -0
  34. package/es/locales/zh-TW.js +3 -1
  35. package/lib/components/iconfont/index.js +1 -1
  36. package/lib/components/pisellInformationEntry/Input/index.js +9 -1
  37. package/lib/components/pisellInformationEntry/constants.d.ts +10 -0
  38. package/lib/components/pisellInformationEntry/constants.js +12 -0
  39. package/lib/components/pisellInformationEntry/hooks/useTerminalPeripherals.d.ts +8 -0
  40. package/lib/components/pisellInformationEntry/hooks/useTerminalPeripherals.js +83 -0
  41. package/lib/components/pisellInformationEntry/index.js +18 -2
  42. package/lib/components/pisellInformationEntry/index.less +1 -1
  43. package/lib/components/pisellLoading/index.d.ts +2 -0
  44. package/lib/components/pisellLoading/index.js +2 -1
  45. package/lib/components/pisellStatisticList/index.less +2 -1
  46. package/lib/components/pisellWalletPassCard/index.d.ts +2 -0
  47. package/lib/components/pisellWalletPassCard/index.js +8 -4
  48. package/lib/components/pisellWalletPassCard/index.less +4 -0
  49. package/lib/components/select-time/RightPanel/index.d.ts +2 -2
  50. package/lib/components/virtual-keyboard/Keyboard/index.d.ts +1 -0
  51. package/lib/components/virtual-keyboard/Keyboard/index.js +15 -2
  52. package/lib/locales/en-US.d.ts +2 -0
  53. package/lib/locales/en-US.js +3 -1
  54. package/lib/locales/zh-CN.d.ts +2 -0
  55. package/lib/locales/zh-CN.js +3 -1
  56. package/lib/locales/zh-TW.d.ts +2 -0
  57. package/lib/locales/zh-TW.js +3 -1
  58. package/lowcode/pisell-card-list/meta.ts +60 -24
  59. package/lowcode/pisell-information-entry/meta.ts +22 -7
  60. package/lowcode/pisell-loading/meta.ts +8 -0
  61. package/package.json +1 -1
@@ -0,0 +1,83 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/components/pisellInformationEntry/hooks/useTerminalPeripherals.ts
30
+ var useTerminalPeripherals_exports = {};
31
+ __export(useTerminalPeripherals_exports, {
32
+ default: () => useTerminalPeripherals_default
33
+ });
34
+ module.exports = __toCommonJS(useTerminalPeripherals_exports);
35
+ var import_react = require("react");
36
+ var import_useEngineContext = __toESM(require("../../../hooks/useEngineContext"));
37
+ var useTerminalPeripherals = (onChange) => {
38
+ var _a;
39
+ const context = (0, import_useEngineContext.default)();
40
+ const { interaction } = ((_a = context.appHelper) == null ? void 0 : _a.utils) || {};
41
+ const [peripheralsStatus, setPeripheralsStatus] = (0, import_react.useState)({
42
+ scanner: "none",
43
+ nfc: "none"
44
+ });
45
+ (0, import_react.useEffect)(() => {
46
+ var _a2, _b, _c, _d, _e, _f;
47
+ (_b = (_a2 = interaction == null ? void 0 : interaction.utils) == null ? void 0 : _a2.mountFunction) == null ? void 0 : _b.call(
48
+ _a2,
49
+ "global",
50
+ "peripheralsResult",
51
+ (strVal) => {
52
+ try {
53
+ const val = JSON.parse(strVal);
54
+ onChange == null ? void 0 : onChange(val.value);
55
+ } catch (err) {
56
+ console.error(err);
57
+ }
58
+ }
59
+ );
60
+ (_d = (_c = interaction == null ? void 0 : interaction.utils) == null ? void 0 : _c.postMessageToApp) == null ? void 0 : _d.call(_c, {
61
+ module: "global",
62
+ key: "get_peripherals_status",
63
+ data: {}
64
+ });
65
+ (_f = (_e = interaction == null ? void 0 : interaction.utils) == null ? void 0 : _e.mountFunction) == null ? void 0 : _f.call(
66
+ _e,
67
+ "global",
68
+ "peripheralsStatus",
69
+ (strPeripherals) => {
70
+ try {
71
+ const peripherals = JSON.parse(strPeripherals);
72
+ setPeripheralsStatus(peripherals);
73
+ } catch (err) {
74
+ console.error(err);
75
+ }
76
+ }
77
+ );
78
+ }, []);
79
+ return {
80
+ peripheralsStatus
81
+ };
82
+ };
83
+ var useTerminalPeripherals_default = useTerminalPeripherals;
@@ -42,6 +42,7 @@ var import_Scan = __toESM(require("./Scan"));
42
42
  var import_button = __toESM(require("../button"));
43
43
  var import_Input = __toESM(require("./Input"));
44
44
  var import_utils = require("./utils");
45
+ var import_useTerminalPeripherals = __toESM(require("./hooks/useTerminalPeripherals"));
45
46
  var import_index = require("./index.less");
46
47
  var CardButton = (props) => {
47
48
  const { icon, children, ...others } = props;
@@ -60,6 +61,7 @@ var PisellInformationEntry = (props) => {
60
61
  const [currentType, setCurrentType] = (0, import_react.useState)(
61
62
  null
62
63
  );
64
+ const { peripheralsStatus } = (0, import_useTerminalPeripherals.default)(onChange);
63
65
  const [availableEntryModes, setAvailableEntryModes] = (0, import_react.useState)(entryModes);
64
66
  (0, import_react.useEffect)(() => {
65
67
  document.body.id = "body";
@@ -70,13 +72,22 @@ var PisellInformationEntry = (props) => {
70
72
  if (!await (0, import_utils.hasCamera)()) {
71
73
  available = entryModes.filter((item) => item.type !== "scanCode");
72
74
  }
75
+ available = available.filter((item) => {
76
+ if (item.type === "scanner") {
77
+ return peripheralsStatus.scanner !== "none";
78
+ }
79
+ if (item.type === "nfc") {
80
+ return peripheralsStatus.nfc !== "none";
81
+ }
82
+ return true;
83
+ });
73
84
  if (available.length === 1) {
74
85
  setCurrentType(available[0].type);
75
86
  }
76
87
  setAvailableEntryModes(available);
77
88
  };
78
89
  getEntryModes();
79
- }, [entryModes]);
90
+ }, [entryModes, peripheralsStatus]);
80
91
  const handleChange = (val) => {
81
92
  onChange == null ? void 0 : onChange(val);
82
93
  };
@@ -139,6 +150,11 @@ var PisellInformationEntry = (props) => {
139
150
  }
140
151
  ))), isShowEntryModes && /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-information-entry-modes" }, availableEntryModes.map((item) => {
141
152
  const detail = import_constants.entryModeTextIcon[item.type];
153
+ let icon = detail.icon;
154
+ if (["scanner", "nfc"].includes(item.type)) {
155
+ const disconnect = import_constants.entryModeErrorTextIcon[item.type];
156
+ icon = peripheralsStatus[item.type] === "connected" ? detail.icon : disconnect.icon;
157
+ }
142
158
  return /* @__PURE__ */ import_react.default.createElement(
143
159
  CardButton,
144
160
  {
@@ -146,7 +162,7 @@ var PisellInformationEntry = (props) => {
146
162
  icon: /* @__PURE__ */ import_react.default.createElement(
147
163
  import_iconfont.default,
148
164
  {
149
- type: detail.icon,
165
+ type: icon,
150
166
  className: "pisell-card-button-icon"
151
167
  }
152
168
  ),
@@ -23,7 +23,7 @@
23
23
  flex: 1;
24
24
  text-align: center;
25
25
  cursor: pointer;
26
- min-width: 165px;
26
+ min-width: 140px;
27
27
  .pisell-card-button-icon {
28
28
  height: 48px;
29
29
  font-size: 36px;
@@ -13,6 +13,8 @@ export interface PisellLoadingProps extends SpinProps {
13
13
  mask?: boolean | MaskType;
14
14
  /** 是否全屏 */
15
15
  fullscreen?: boolean;
16
+ /** 延迟显示加载效果的时间(防止闪烁) */
17
+ delay?: number;
16
18
  }
17
19
  declare const PisellLoading: (props: PisellLoadingProps) => React.JSX.Element;
18
20
  export default PisellLoading;
@@ -39,7 +39,7 @@ var import_useCssVariables = __toESM(require("../../hooks/useCssVariables"));
39
39
  var import_utils = require("../../utils");
40
40
  var import_index = require("./index.less");
41
41
  var PisellLoading = (props) => {
42
- const { children, fullscreen, mask, loading } = props;
42
+ const { children, fullscreen, mask, loading, delay } = props;
43
43
  const ref = (0, import_react.useRef)(null);
44
44
  const {
45
45
  backgroundColor = "#fff",
@@ -60,6 +60,7 @@ var PisellLoading = (props) => {
60
60
  import_antd.Spin,
61
61
  {
62
62
  fullscreen,
63
+ delay,
63
64
  spinning: loading,
64
65
  indicator: /* @__PURE__ */ import_react.default.createElement(import_iconfont.default, { type: "pisell2-loader2", style: { fontSize: 40 }, spin: true })
65
66
  },
@@ -31,10 +31,11 @@
31
31
  }
32
32
  .pisell-lowcode-statistic-list-item-children-label {
33
33
  color: var(--Base-White, #fff);
34
- font-size: 12px;
34
+ font-size: 14px;
35
35
  font-weight: 400;
36
36
  line-height: 18px; /* 150% */
37
37
  margin-right: 4px;
38
+ opacity: 0.7;
38
39
  }
39
40
  .pisell-lowcode-statistic-list-item-children-value {
40
41
  color: var(--Base-White, #fff);
@@ -20,6 +20,8 @@ export interface PisellWalletPassCardProps {
20
20
  disabled?: boolean;
21
21
  /** 禁用原因 */
22
22
  disabledReason?: string;
23
+ /** 是否展示禁用原因 */
24
+ showDisabledReason?: string;
23
25
  /** 封面图 */
24
26
  cover?: string;
25
27
  /** 余额标题文案 */
@@ -64,13 +64,17 @@ var PisellWalletPassCard = (props) => {
64
64
  showStoreName = true,
65
65
  showValidDate = true,
66
66
  showQrCode = true,
67
- showBalanceSymbol = true
67
+ showBalanceSymbol = true,
68
+ showDisabledReason = true,
69
+ showDiscount = false,
70
+ discount
68
71
  } = props;
69
72
  return /* @__PURE__ */ import_react.default.createElement(
70
73
  "div",
71
74
  {
72
75
  className: (0, import_classnames.default)("pisell-wallet-pass-card", {
73
- "pisell-card-disabled": disabled
76
+ "pisell-card-disabled": disabled,
77
+ "pisell-card-disabled-hide-disabled-reason": disabled && !showDisabledReason
74
78
  }),
75
79
  style: showCover ? {
76
80
  backgroundImage: `url('${cover || "data:image/jpeg;base64,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"}')`
@@ -93,9 +97,9 @@ var PisellWalletPassCard = (props) => {
93
97
  value: balance,
94
98
  showCurrencySymbol: showBalanceSymbol
95
99
  }
96
- ))),
100
+ )), showDiscount && /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-amount-item" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-amount-item-label" }, (0, import_locales.getText)("pisell-discount-card-title")), /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-amount-item-value" }, discount, "% ", (0, import_locales.getText)("pisell-discount-card-unit")))),
97
101
  /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-code-wrap" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-code" }, showCode && /* @__PURE__ */ import_react.default.createElement("div", null, code), showValidDate && /* @__PURE__ */ import_react.default.createElement("div", null, (0, import_locales.getText)("pisell-wallet-pass-card-valid-to"), " ", validDate)), showQrCode && /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-qr-code" }, /* @__PURE__ */ import_react.default.createElement(import_qrcode.default, { value: qrCode, preview: true, size: 60 }))),
98
- (disabled || disabledReason) && /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-warn-message" }, /* @__PURE__ */ import_react.default.createElement(import_iconfont.default, { className: "pisell-card-icon", type: "pisell2-alert-circle" }), /* @__PURE__ */ import_react.default.createElement("span", null, disabledReason))
102
+ (disabled || disabledReason) && showDisabledReason && /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-warn-message" }, /* @__PURE__ */ import_react.default.createElement(import_iconfont.default, { className: "pisell-card-icon", type: "pisell2-alert-circle" }), /* @__PURE__ */ import_react.default.createElement("span", null, disabledReason))
99
103
  );
100
104
  };
101
105
  var pisellWalletPassCard_default = PisellWalletPassCard;
@@ -8,6 +8,7 @@
8
8
  border-radius: 12px;
9
9
  background-size: cover;
10
10
  height: 190px;
11
+ background-position: center center;
11
12
  .pisell-card-name-wrap {
12
13
  display: flex;
13
14
  justify-content: space-between;
@@ -97,4 +98,7 @@
97
98
  }
98
99
  }
99
100
  }
101
+ }
102
+ .pisell-card-disabled-hide-disabled-reason {
103
+ height: 165px !important;
100
104
  }
@@ -1,5 +1,5 @@
1
- import React from "react";
2
- import "./index.less";
1
+ import React from 'react';
2
+ import './index.less';
3
3
  interface RightPanelProps {
4
4
  value: string;
5
5
  onChange: (value: string) => void;
@@ -15,6 +15,7 @@ export interface KeyboardProps {
15
15
  onChange?: (value?: ItemValue) => void;
16
16
  items?: Item[];
17
17
  rightItems?: Item[];
18
+ keydown?: boolean;
18
19
  }
19
20
  declare const _default: React.MemoExoticComponent<(props: KeyboardProps) => React.JSX.Element>;
20
21
  export default _default;
@@ -37,18 +37,31 @@ var import_antd = require("antd");
37
37
  var import_index = require("./index.less");
38
38
  var import_classnames = __toESM(require("classnames"));
39
39
  var import_ahooks = require("ahooks");
40
- var list = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "ok"];
40
+ var list = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "+", "ok"];
41
41
  var defaultArr = [];
42
42
  var Keyboard = (props) => {
43
- const { items = defaultArr, className, style, onChange, rightItems } = props;
43
+ const {
44
+ items = defaultArr,
45
+ className,
46
+ style,
47
+ onChange,
48
+ rightItems,
49
+ keydown = true
50
+ } = props;
44
51
  const contentRef = (0, import_react.useRef)(null);
45
52
  const size = (0, import_ahooks.useSize)(contentRef);
46
53
  (0, import_ahooks.useEventListener)("keydown", (ev) => {
47
54
  console.log("ev", ev);
55
+ if (!keydown) {
56
+ return;
57
+ }
48
58
  let key = ev.key;
49
59
  if (key === "Enter") {
50
60
  key = "ok";
51
61
  }
62
+ if (key === "keydown") {
63
+ key = "+";
64
+ }
52
65
  if (list.includes(key)) {
53
66
  onChange == null ? void 0 : onChange(key);
54
67
  }
@@ -112,5 +112,7 @@ declare const _default: {
112
112
  'pisell-adjust-price-discount-percentage': string;
113
113
  'pisell-adjust-price-total-after-discount': string;
114
114
  'pisell-adjust-price-discount-can-be-maximum': string;
115
+ 'pisell-discount-card-title': string;
116
+ 'pisell-discount-card-unit': string;
115
117
  };
116
118
  export default _default;
@@ -143,5 +143,7 @@ var en_US_default = {
143
143
  "pisell-adjust-price-discount-amount": "Amount",
144
144
  "pisell-adjust-price-discount-percentage": "Percentage",
145
145
  "pisell-adjust-price-total-after-discount": "Total after discount: ",
146
- "pisell-adjust-price-discount-can-be-maximum": "Discount can be maximum"
146
+ "pisell-adjust-price-discount-can-be-maximum": "Discount can be maximum",
147
+ "pisell-discount-card-title": "Discount",
148
+ "pisell-discount-card-unit": "off"
147
149
  };
@@ -112,5 +112,7 @@ declare const _default: {
112
112
  'pisell-adjust-price-discount-percentage': string;
113
113
  'pisell-adjust-price-total-after-discount': string;
114
114
  'pisell-adjust-price-discount-can-be-maximum': string;
115
+ 'pisell-discount-card-title': string;
116
+ 'pisell-discount-card-unit': string;
115
117
  };
116
118
  export default _default;
@@ -143,5 +143,7 @@ var zh_CN_default = {
143
143
  "pisell-adjust-price-discount-amount": "金额",
144
144
  "pisell-adjust-price-discount-percentage": "百分比",
145
145
  "pisell-adjust-price-total-after-discount": "打折后总价",
146
- "pisell-adjust-price-discount-can-be-maximum": "折扣最高可达"
146
+ "pisell-adjust-price-discount-can-be-maximum": "折扣最高可达",
147
+ "pisell-discount-card-title": "折扣",
148
+ "pisell-discount-card-unit": "折扣"
147
149
  };
@@ -112,5 +112,7 @@ declare const _default: {
112
112
  'pisell-adjust-price-discount-percentage': string;
113
113
  'pisell-adjust-price-total-after-discount': string;
114
114
  'pisell-adjust-price-discount-can-be-maximum': string;
115
+ 'pisell-discount-card-title': string;
116
+ 'pisell-discount-card-unit': string;
115
117
  };
116
118
  export default _default;
@@ -143,5 +143,7 @@ var zh_TW_default = {
143
143
  "pisell-adjust-price-discount-amount": "金額",
144
144
  "pisell-adjust-price-discount-percentage": "百分比",
145
145
  "pisell-adjust-price-total-after-discount": "打折后總價",
146
- "pisell-adjust-price-discount-can-be-maximum": "折扣最高可達"
146
+ "pisell-adjust-price-discount-can-be-maximum": "折扣最高可達",
147
+ "pisell-discount-card-title": "折扣",
148
+ "pisell-discount-card-unit": "折扣"
147
149
  };
@@ -18,64 +18,76 @@ export default {
18
18
  },
19
19
  props: [
20
20
  {
21
- name: "platform",
21
+ name: 'platform',
22
22
  title: {
23
- label: "平台",
23
+ label: '平台',
24
24
  },
25
- propType: { type: "oneOf", value: ["h5", "pc", "ipad"] },
25
+ propType: { type: 'oneOf', value: ['h5', 'pc', 'ipad'] },
26
26
  setter: [
27
27
  {
28
- componentName: "RadioGroupSetter",
28
+ componentName: 'RadioGroupSetter',
29
29
  props: {
30
30
  options: [
31
31
  {
32
- title: "h5",
33
- value: "h5",
32
+ title: 'h5',
33
+ value: 'h5',
34
34
  },
35
35
  {
36
- title: "pc",
37
- value: "pc",
36
+ title: 'pc',
37
+ value: 'pc',
38
38
  },
39
39
  {
40
- title: "ipad",
41
- value: "ipad",
40
+ title: 'ipad',
41
+ value: 'ipad',
42
42
  },
43
43
  ],
44
44
  },
45
45
  },
46
- "VariableSetter",
46
+ 'VariableSetter',
47
47
  ],
48
- defaultValue: "pc",
48
+ defaultValue: 'pc',
49
49
  },
50
50
  {
51
- name: "mode",
51
+ name: 'mode',
52
52
  title: {
53
- label: "选择类型",
53
+ label: '选择类型',
54
54
  },
55
- propType: { type: "oneOf", value: ["multiple", "single", null] },
55
+ propType: { type: 'oneOf', value: ['multiple', 'single', null] },
56
56
  setter: [
57
57
  {
58
- componentName: "RadioGroupSetter",
58
+ componentName: 'RadioGroupSetter',
59
59
  props: {
60
60
  options: [
61
61
  {
62
- title: "不选",
62
+ title: '不选',
63
63
  value: null,
64
64
  },
65
65
  {
66
- title: "单选",
67
- value: "single",
66
+ title: '单选',
67
+ value: 'single',
68
68
  },
69
69
  {
70
- title: "多选",
71
- value: "multiple",
70
+ title: '多选',
71
+ value: 'multiple',
72
72
  },
73
73
  ],
74
74
  },
75
75
  },
76
- "VariableSetter",
76
+ 'VariableSetter',
77
77
  ],
78
- defaultValue: "single",
78
+ defaultValue: 'single',
79
+ },
80
+ {
81
+ name: 'data',
82
+ title: { label: '当前list数据', tip: '当前list数据' },
83
+ setter: ['JsonSetter', 'VariableSetter'],
84
+ },
85
+ {
86
+ name: 'hasMore',
87
+ title: { label: '是否有更多数据', tip: '是否有更多数据' },
88
+ propType: 'bool',
89
+ setter: 'BoolSetter',
90
+ defaultValue: false,
79
91
  },
80
92
  {
81
93
  name: 'showName',
@@ -140,6 +152,30 @@ export default {
140
152
  setter: 'BoolSetter',
141
153
  defaultValue: true,
142
154
  },
155
+ {
156
+ name: 'showEmpty',
157
+ title: { label: '是否展示空占位', tip: '是否展示空占位' },
158
+ propType: 'bool',
159
+ setter: 'BoolSetter',
160
+ defaultValue: false,
161
+ },
162
+ {
163
+ name: 'value',
164
+ title: { label: '当前选中值', tip: '当前选中值' },
165
+ propType: 'number',
166
+ setter: 'NumberSetter',
167
+ },
143
168
  ],
144
- configure: { supports: { style: true } },
169
+ configure: {
170
+ supports: {
171
+ style: true,
172
+ events: [
173
+ {
174
+ name: 'onChange',
175
+ template:
176
+ "onChange(event,${extParams}){\n// 选择变化时的回调\nconsole.log('onChange',event);}",
177
+ },
178
+ ],
179
+ },
180
+ },
145
181
  };
@@ -63,11 +63,14 @@ export default {
63
63
  setter: [
64
64
  {
65
65
  componentName: 'SelectSetter',
66
- mode: "single",
66
+ mode: 'single',
67
67
  props: (target) => {
68
68
  // console.log(target,'targettarget',target.parent.parent.parent.getPropValue("entryModes"));
69
- const typeValues = target.parent.parent.parent.getPropValue("entryModes").filter(Boolean).map(item => item?.type);
70
- console.log(typeValues,'typeValues');
69
+ const typeValues = target.parent.parent.parent
70
+ .getPropValue('entryModes')
71
+ .filter(Boolean)
72
+ .map((item) => item?.type);
73
+ console.log(typeValues, 'typeValues');
71
74
  return {
72
75
  options: [
73
76
  {
@@ -107,9 +110,9 @@ export default {
107
110
  },
108
111
  },
109
112
  initialValue: {
110
- type: "",
111
- name: "",
112
- }
113
+ type: '',
114
+ name: '',
115
+ },
113
116
  },
114
117
  },
115
118
  },
@@ -127,5 +130,17 @@ export default {
127
130
  setter: ['PisellI18nSetter', 'SlotSetter'],
128
131
  },
129
132
  ],
130
- configure: { supports: { style: true } },
133
+
134
+ configure: {
135
+ supports: {
136
+ style: true,
137
+ events: [
138
+ {
139
+ name: 'onChange',
140
+ template:
141
+ "onChange(event,${extParams}){\n// 输入框内容变化时的回调\nconsole.log('onChange',event);}",
142
+ },
143
+ ],
144
+ },
145
+ },
131
146
  };
@@ -35,6 +35,14 @@ export default {
35
35
  propType: 'bool',
36
36
  defaultValue: false,
37
37
  },
38
+ {
39
+ name: 'delay',
40
+ title: {
41
+ label: '延迟显示加载效果的时间(防止闪烁)',
42
+ tip: '延迟显示加载效果的时间(防止闪烁)',
43
+ },
44
+ propType: 'number',
45
+ },
38
46
  {
39
47
  title: '蒙层设置',
40
48
  display: 'block',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pisell/materials",
3
- "version": "2.2.32",
3
+ "version": "2.2.34",
4
4
  "main": "./lib/index.js",
5
5
  "module": "./es/index.js",
6
6
  "types": "./lib/index.d.ts",