@cloudbase/weda-ui 0.2.8 → 0.2.9

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 (231) hide show
  1. package/package.json +2 -2
  2. package/src/configs/index.js +1 -2
  3. package/src/web/components/form/enumSelect/MultipleSelect.jsx +94 -0
  4. package/src/web/components/form/enumSelect/NormalSelect.jsx +105 -0
  5. package/src/web/components/form/enumSelect/SelectContainer.jsx +43 -0
  6. package/src/web/components/form/enumSelect/hooks/index.js +49 -0
  7. package/src/web/components/form/enumSelect/index.jsx +9 -0
  8. package/src/web/components/form/enumSelect/props/defaultProps.js +39 -0
  9. package/src/web/components/form/enumSelect/props/propsTypes.js +50 -0
  10. package/src/web/components/index.js +1 -0
  11. package/src/web/utils/tcb.js +8 -0
  12. package/src/.DS_Store +0 -0
  13. package/src/web/.DS_Store +0 -0
  14. package/src/web/wedatheme/.code.yml +0 -16
  15. package/src/web/wedatheme/.editorconfig +0 -9
  16. package/src/web/wedatheme/.eslintrc +0 -20
  17. package/src/web/wedatheme/.git +0 -1
  18. package/src/web/wedatheme/.gitignore +0 -5
  19. package/src/web/wedatheme/.npmrc +0 -1
  20. package/src/web/wedatheme/.orange-ci.yml +0 -55
  21. package/src/web/wedatheme/.vscode/extensions.json +0 -3
  22. package/src/web/wedatheme/.vscode/settings.json +0 -11
  23. package/src/web/wedatheme/README.md +0 -50
  24. package/src/web/wedatheme/i18n/README.md +0 -4
  25. package/src/web/wedatheme/i18n/translation/index.js +0 -10
  26. package/src/web/wedatheme/i18n/translation/zh.js +0 -15
  27. package/src/web/wedatheme/jsconfig.json +0 -15
  28. package/src/web/wedatheme/mock/app.js +0 -42
  29. package/src/web/wedatheme/mock/history-context.js +0 -8
  30. package/src/web/wedatheme/mock/index.js +0 -3
  31. package/src/web/wedatheme/mock/layout/AppLayout.jsx +0 -28
  32. package/src/web/wedatheme/mock/layout/MenuWithRouter.jsx +0 -50
  33. package/src/web/wedatheme/mock/layout/index.js +0 -1
  34. package/src/web/wedatheme/package-lock.json +0 -14335
  35. package/src/web/wedatheme/package.json +0 -61
  36. package/src/web/wedatheme/public/index.html +0 -19
  37. package/src/web/wedatheme/src/app.js +0 -22
  38. package/src/web/wedatheme/src/components/README.md +0 -4
  39. package/src/web/wedatheme/src/configs/menu.js +0 -9
  40. package/src/web/wedatheme/src/routes/wedatheme-index/Component.jsx +0 -402
  41. package/src/web/wedatheme/src/routes/wedatheme-index/Form.jsx +0 -729
  42. package/src/web/wedatheme/src/routes/wedatheme-index/FormItem.jsx +0 -18
  43. package/src/web/wedatheme/src/routes/wedatheme-index/WedathemeIndex.jsx +0 -1276
  44. package/src/web/wedatheme/src/routes/wedatheme-index/index.js +0 -1
  45. package/src/web/wedatheme/src/routes/weui2td/WEUI2TD.jsx +0 -3
  46. package/src/web/wedatheme/src/routes/weui2td/index.js +0 -1
  47. package/src/web/wedatheme/src/styles/_btn.scss +0 -24
  48. package/src/web/wedatheme/src/styles/_icon.scss +0 -653
  49. package/src/web/wedatheme/src/styles/_map.scss +0 -12
  50. package/src/web/wedatheme/src/styles/_middle.scss +0 -340
  51. package/src/web/wedatheme/src/styles/_upload.scss +0 -47
  52. package/src/web/wedatheme/src/styles/assets/alert-close.svg +0 -3
  53. package/src/web/wedatheme/src/styles/assets/and.svg +0 -12
  54. package/src/web/wedatheme/src/styles/assets/arrowdown--line.svg +0 -12
  55. package/src/web/wedatheme/src/styles/assets/arrowdown.svg +0 -12
  56. package/src/web/wedatheme/src/styles/assets/arrowleft--line.svg +0 -12
  57. package/src/web/wedatheme/src/styles/assets/arrowleft.svg +0 -12
  58. package/src/web/wedatheme/src/styles/assets/arrowright--line.svg +0 -12
  59. package/src/web/wedatheme/src/styles/assets/arrowright-blue--line.svg +0 -12
  60. package/src/web/wedatheme/src/styles/assets/arrowright.svg +0 -12
  61. package/src/web/wedatheme/src/styles/assets/arrowup--line.svg +0 -12
  62. package/src/web/wedatheme/src/styles/assets/arrowup.svg +0 -12
  63. package/src/web/wedatheme/src/styles/assets/bell-warning.svg +0 -3
  64. package/src/web/wedatheme/src/styles/assets/btnback.svg +0 -12
  65. package/src/web/wedatheme/src/styles/assets/calendar.svg +0 -12
  66. package/src/web/wedatheme/src/styles/assets/chartcolumn-1.svg +0 -12
  67. package/src/web/wedatheme/src/styles/assets/chartcolumn.svg +0 -12
  68. package/src/web/wedatheme/src/styles/assets/chartline-1.svg +0 -9
  69. package/src/web/wedatheme/src/styles/assets/chartline.svg +0 -9
  70. package/src/web/wedatheme/src/styles/assets/chartpie-1.svg +0 -12
  71. package/src/web/wedatheme/src/styles/assets/chartpie.svg +0 -12
  72. package/src/web/wedatheme/src/styles/assets/check-1.svg +0 -8
  73. package/src/web/wedatheme/src/styles/assets/check-2.svg +0 -1
  74. package/src/web/wedatheme/src/styles/assets/check.svg +0 -8
  75. package/src/web/wedatheme/src/styles/assets/close-1.svg +0 -8
  76. package/src/web/wedatheme/src/styles/assets/close.svg +0 -8
  77. package/src/web/wedatheme/src/styles/assets/consult.svg +0 -8
  78. package/src/web/wedatheme/src/styles/assets/convertip--blue.svg +0 -12
  79. package/src/web/wedatheme/src/styles/assets/convertip.svg +0 -12
  80. package/src/web/wedatheme/src/styles/assets/copy.svg +0 -12
  81. package/src/web/wedatheme/src/styles/assets/cur-active.svg +0 -12
  82. package/src/web/wedatheme/src/styles/assets/cur.svg +0 -12
  83. package/src/web/wedatheme/src/styles/assets/daily.svg +0 -13
  84. package/src/web/wedatheme/src/styles/assets/database.svg +0 -12
  85. package/src/web/wedatheme/src/styles/assets/datasheet.svg +0 -12
  86. package/src/web/wedatheme/src/styles/assets/delete-white.svg +0 -8
  87. package/src/web/wedatheme/src/styles/assets/delete.svg +0 -8
  88. package/src/web/wedatheme/src/styles/assets/detail.svg +0 -13
  89. package/src/web/wedatheme/src/styles/assets/dismiss.svg +0 -8
  90. package/src/web/wedatheme/src/styles/assets/download.svg +0 -12
  91. package/src/web/wedatheme/src/styles/assets/drop.svg +0 -15
  92. package/src/web/wedatheme/src/styles/assets/email-error.svg +0 -14
  93. package/src/web/wedatheme/src/styles/assets/email-warning.svg +0 -12
  94. package/src/web/wedatheme/src/styles/assets/email.svg +0 -14
  95. package/src/web/wedatheme/src/styles/assets/emailv.svg +0 -12
  96. package/src/web/wedatheme/src/styles/assets/error-1.svg +0 -8
  97. package/src/web/wedatheme/src/styles/assets/error-filled.svg +0 -3
  98. package/src/web/wedatheme/src/styles/assets/error.svg +0 -8
  99. package/src/web/wedatheme/src/styles/assets/externallink.svg +0 -12
  100. package/src/web/wedatheme/src/styles/assets/favorable.svg +0 -9
  101. package/src/web/wedatheme/src/styles/assets/filter.svg +0 -12
  102. package/src/web/wedatheme/src/styles/assets/firstpage.svg +0 -13
  103. package/src/web/wedatheme/src/styles/assets/folderclose.svg +0 -8
  104. package/src/web/wedatheme/src/styles/assets/folderopen.svg +0 -8
  105. package/src/web/wedatheme/src/styles/assets/fullscreenquit.svg +0 -12
  106. package/src/web/wedatheme/src/styles/assets/fullsreen.svg +0 -12
  107. package/src/web/wedatheme/src/styles/assets/globe-gray.svg +0 -12
  108. package/src/web/wedatheme/src/styles/assets/guide.svg +0 -9
  109. package/src/web/wedatheme/src/styles/assets/help.svg +0 -8
  110. package/src/web/wedatheme/src/styles/assets/hide.svg +0 -8
  111. package/src/web/wedatheme/src/styles/assets/info.svg +0 -8
  112. package/src/web/wedatheme/src/styles/assets/infoblue-1.svg +0 -8
  113. package/src/web/wedatheme/src/styles/assets/infoblue-filled.svg +0 -3
  114. package/src/web/wedatheme/src/styles/assets/infoblue.svg +0 -8
  115. package/src/web/wedatheme/src/styles/assets/jump-black.svg +0 -12
  116. package/src/web/wedatheme/src/styles/assets/jump.svg +0 -12
  117. package/src/web/wedatheme/src/styles/assets/lastpage.svg +0 -13
  118. package/src/web/wedatheme/src/styles/assets/loading.svg +0 -12
  119. package/src/web/wedatheme/src/styles/assets/local.svg +0 -10
  120. package/src/web/wedatheme/src/styles/assets/menu-fold-white.svg +0 -6
  121. package/src/web/wedatheme/src/styles/assets/menu-fold.svg +0 -6
  122. package/src/web/wedatheme/src/styles/assets/minus.svg +0 -12
  123. package/src/web/wedatheme/src/styles/assets/monitor.svg +0 -12
  124. package/src/web/wedatheme/src/styles/assets/more.svg +0 -8
  125. package/src/web/wedatheme/src/styles/assets/multi-line.svg +0 -12
  126. package/src/web/wedatheme/src/styles/assets/news.svg +0 -3
  127. package/src/web/wedatheme/src/styles/assets/not.svg +0 -12
  128. package/src/web/wedatheme/src/styles/assets/notice.svg +0 -8
  129. package/src/web/wedatheme/src/styles/assets/pencil.svg +0 -12
  130. package/src/web/wedatheme/src/styles/assets/pending-1.svg +0 -8
  131. package/src/web/wedatheme/src/styles/assets/pending-gray.svg +0 -8
  132. package/src/web/wedatheme/src/styles/assets/pending.svg +0 -8
  133. package/src/web/wedatheme/src/styles/assets/percent-blue.svg +0 -16
  134. package/src/web/wedatheme/src/styles/assets/percent.svg +0 -16
  135. package/src/web/wedatheme/src/styles/assets/phone-error.svg +0 -11
  136. package/src/web/wedatheme/src/styles/assets/phone-warning.svg +0 -9
  137. package/src/web/wedatheme/src/styles/assets/phone.svg +0 -12
  138. package/src/web/wedatheme/src/styles/assets/phonev.svg +0 -9
  139. package/src/web/wedatheme/src/styles/assets/plus.svg +0 -12
  140. package/src/web/wedatheme/src/styles/assets/qq.svg +0 -11
  141. package/src/web/wedatheme/src/styles/assets/realname.svg +0 -8
  142. package/src/web/wedatheme/src/styles/assets/realnamev.svg +0 -9
  143. package/src/web/wedatheme/src/styles/assets/refresh-blue.svg +0 -12
  144. package/src/web/wedatheme/src/styles/assets/refresh.svg +0 -12
  145. package/src/web/wedatheme/src/styles/assets/relationship-1.svg +0 -12
  146. package/src/web/wedatheme/src/styles/assets/relationship.svg +0 -12
  147. package/src/web/wedatheme/src/styles/assets/remind.svg +0 -8
  148. package/src/web/wedatheme/src/styles/assets/search.svg +0 -8
  149. package/src/web/wedatheme/src/styles/assets/setting.svg +0 -12
  150. package/src/web/wedatheme/src/styles/assets/shopcart.svg +0 -8
  151. package/src/web/wedatheme/src/styles/assets/show.svg +0 -8
  152. package/src/web/wedatheme/src/styles/assets/sort.svg +0 -12
  153. package/src/web/wedatheme/src/styles/assets/sortdown.svg +0 -12
  154. package/src/web/wedatheme/src/styles/assets/sortup.svg +0 -12
  155. package/src/web/wedatheme/src/styles/assets/success-1.svg +0 -8
  156. package/src/web/wedatheme/src/styles/assets/success-filled.svg +0 -3
  157. package/src/web/wedatheme/src/styles/assets/success.svg +0 -8
  158. package/src/web/wedatheme/src/styles/assets/table-1.svg +0 -12
  159. package/src/web/wedatheme/src/styles/assets/table.svg +0 -12
  160. package/src/web/wedatheme/src/styles/assets/tag.svg +0 -12
  161. package/src/web/wedatheme/src/styles/assets/time.svg +0 -12
  162. package/src/web/wedatheme/src/styles/assets/transfer.svg +0 -8
  163. package/src/web/wedatheme/src/styles/assets/trenddown.svg +0 -12
  164. package/src/web/wedatheme/src/styles/assets/trendup.svg +0 -12
  165. package/src/web/wedatheme/src/styles/assets/viewgrid.svg +0 -12
  166. package/src/web/wedatheme/src/styles/assets/viewlist.svg +0 -12
  167. package/src/web/wedatheme/src/styles/assets/warning-1.svg +0 -8
  168. package/src/web/wedatheme/src/styles/assets/warning-filled.svg +0 -3
  169. package/src/web/wedatheme/src/styles/assets/warning.svg +0 -8
  170. package/src/web/wedatheme/src/styles/assets/wechat-error.svg +0 -14
  171. package/src/web/wedatheme/src/styles/assets/wechat-warning.svg +0 -12
  172. package/src/web/wedatheme/src/styles/assets/wechat.svg +0 -12
  173. package/src/web/wedatheme/src/styles/assets/wechatv.svg +0 -12
  174. package/src/web/wedatheme/src/styles/assets/zoom-in-white.svg +0 -4
  175. package/src/web/wedatheme/src/styles/assets/zoom-in.svg +0 -4
  176. package/src/web/wedatheme/src/styles/assets/zoom-out-white.svg +0 -4
  177. package/src/web/wedatheme/src/styles/assets/zoom-out.svg +0 -4
  178. package/src/web/wedatheme/src/styles/index.scss +0 -18
  179. package/src/web/wedatheme/src/styles/main.css +0 -166
  180. package/src/web/wedatheme/src/styles/theme/_alert.scss +0 -73
  181. package/src/web/wedatheme/src/styles/theme/_badge.scss +0 -38
  182. package/src/web/wedatheme/src/styles/theme/_blank-page-v2.scss +0 -7
  183. package/src/web/wedatheme/src/styles/theme/_breadcrumb.scss +0 -8
  184. package/src/web/wedatheme/src/styles/theme/_bubble.scss +0 -24
  185. package/src/web/wedatheme/src/styles/theme/_button.scss +0 -212
  186. package/src/web/wedatheme/src/styles/theme/_card.scss +0 -12
  187. package/src/web/wedatheme/src/styles/theme/_cascader.scss +0 -43
  188. package/src/web/wedatheme/src/styles/theme/_checkbox&radio.scss +0 -83
  189. package/src/web/wedatheme/src/styles/theme/_datepicker.scss +0 -36
  190. package/src/web/wedatheme/src/styles/theme/_dialog.scss +0 -39
  191. package/src/web/wedatheme/src/styles/theme/_divider.scss +0 -1
  192. package/src/web/wedatheme/src/styles/theme/_drawer.scss +0 -15
  193. package/src/web/wedatheme/src/styles/theme/_dropdown.scss +0 -53
  194. package/src/web/wedatheme/src/styles/theme/_form.scss +0 -38
  195. package/src/web/wedatheme/src/styles/theme/_icon.scss +0 -0
  196. package/src/web/wedatheme/src/styles/theme/_input&textarea&select.scss +0 -85
  197. package/src/web/wedatheme/src/styles/theme/_inputnumber.scss +0 -16
  198. package/src/web/wedatheme/src/styles/theme/_link.scss +0 -14
  199. package/src/web/wedatheme/src/styles/theme/_list.scss +0 -41
  200. package/src/web/wedatheme/src/styles/theme/_metrics-board.scss +0 -14
  201. package/src/web/wedatheme/src/styles/theme/_notification.scss +0 -27
  202. package/src/web/wedatheme/src/styles/theme/_pagination.scss +0 -22
  203. package/src/web/wedatheme/src/styles/theme/_popconfirm.scss +0 -4
  204. package/src/web/wedatheme/src/styles/theme/_progress.scss +0 -28
  205. package/src/web/wedatheme/src/styles/theme/_region-select.scss +0 -17
  206. package/src/web/wedatheme/src/styles/theme/_search.scss +0 -18
  207. package/src/web/wedatheme/src/styles/theme/_segment.scss +0 -69
  208. package/src/web/wedatheme/src/styles/theme/_slider.scss +0 -18
  209. package/src/web/wedatheme/src/styles/theme/_status.scss +0 -4
  210. package/src/web/wedatheme/src/styles/theme/_steps.scss +0 -68
  211. package/src/web/wedatheme/src/styles/theme/_switch.scss +0 -11
  212. package/src/web/wedatheme/src/styles/theme/_table.scss +0 -44
  213. package/src/web/wedatheme/src/styles/theme/_tabs.scss +0 -44
  214. package/src/web/wedatheme/src/styles/theme/_tag-search.scss +0 -9
  215. package/src/web/wedatheme/src/styles/theme/_tag.scss +0 -48
  216. package/src/web/wedatheme/src/styles/theme/_timeline.scss +0 -0
  217. package/src/web/wedatheme/src/styles/theme/_toast.scss +0 -3
  218. package/src/web/wedatheme/src/styles/theme/_transfer.scss +0 -9
  219. package/src/web/wedatheme/src/styles/theme/_tree.scss +0 -11
  220. package/src/web/wedatheme/src/styles/theme/_upload.scss +0 -14
  221. package/src/web/wedatheme/src/styles/theme/_variables.scss +0 -140
  222. package/src/web/wedatheme/src/styles/theme/index.scss +0 -91
  223. package/src/web/wedatheme/style-package/README.md +0 -31
  224. package/src/web/wedatheme/style-package/ef6fa527e24e354765d806b826b41391.svg +0 -627
  225. package/src/web/wedatheme/style-package/index.css +0 -3
  226. package/src/web/wedatheme/style-package/package.json +0 -15
  227. package/src/web/wedatheme/tea.config.js +0 -66
  228. package/src/web/wedatheme/webpack/css.config.js +0 -114
  229. package/src/web/wedatheme/webpack/plugins/css-package-plugin.js +0 -23
  230. package/src/web/wedatheme/webpack/plugins/inject-assets-plugin.js +0 -32
  231. package/src/web/wedatheme/webpack/plugins/package-json-plugin.js +0 -66
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudbase/weda-ui",
3
- "version": "0.2.8",
3
+ "version": "0.2.9",
4
4
  "main": "./src/index.js",
5
5
  "module": "./src/index",
6
6
  "miniprogram": "mpdist",
@@ -46,7 +46,7 @@
46
46
  "prop-types": "^15.7.2",
47
47
  "react-easy-swipe": "^0.0.21",
48
48
  "react-use": "^15.3.4",
49
- "tea-component": "^2.6.22",
49
+ "tea-component": "^2.7.3",
50
50
  "uuid": "8.3.2",
51
51
  "weui": "^2.4.4",
52
52
  "weui.js": "1.2.2"
@@ -57,8 +57,7 @@ export const components = {
57
57
  RichTextView,
58
58
  Link,
59
59
  Drawer,
60
- Tabs
61
-
60
+ Tabs,
62
61
  };
63
62
 
64
63
  export const actions = {
@@ -0,0 +1,94 @@
1
+ import * as React from 'react';
2
+ import { SelectMultiple } from 'tea-component';
3
+
4
+ import SelectContainer from './SelectContainer';
5
+
6
+ import { normalProps } from './props/defaultProps';
7
+ import { propTypes } from './props/propsTypes';
8
+ import useOptions from './hooks';
9
+
10
+ const MultipleSelect = ({
11
+ // 系统属性
12
+ id,
13
+ style,
14
+ className,
15
+ events,
16
+ // weda 组件属性
17
+ label,
18
+ labelVisible,
19
+ layout,
20
+ requiredFlag,
21
+ decorator,
22
+ // tea组件属性
23
+ value,
24
+ placeholder,
25
+ disabled,
26
+ onChange,
27
+ clearable,
28
+ appearance,
29
+ allOption,
30
+ matchButtonWidth,
31
+ virtual,
32
+ searchable,
33
+ size,
34
+ // 业务属性
35
+ enumType,
36
+ customEnum,
37
+ optionId,
38
+ isModelApp,
39
+ }) => {
40
+ const options = useOptions({ enumType, optionId, customEnum });
41
+
42
+ const onSelectChange = (values) => {
43
+ // @ts-ignore
44
+ events.change && events.change({ value: values });
45
+ if (onChange) {
46
+ onChange(values);
47
+ }
48
+ };
49
+
50
+ const multipleSelectProps = {
51
+ placeholder,
52
+ disabled,
53
+ clearable,
54
+ appearance,
55
+ key: id,
56
+ options,
57
+ onChange: onSelectChange,
58
+ matchButtonWidth,
59
+ searchable,
60
+ size,
61
+ defaultValue: value || [],
62
+ allOption,
63
+ staging: false,
64
+ virtual,
65
+ };
66
+
67
+ if (isModelApp) {
68
+ return <SelectMultiple {...multipleSelectProps} />;
69
+ }
70
+ return (
71
+ <SelectContainer
72
+ style={style}
73
+ className={className}
74
+ label={label}
75
+ labelVisible={labelVisible}
76
+ layout={layout}
77
+ // @ts-ignore
78
+ multiCell={false}
79
+ requiredFlag={requiredFlag}
80
+ decorator={decorator}
81
+ id={id}
82
+ >
83
+ <SelectMultiple {...multipleSelectProps} />
84
+ </SelectContainer>
85
+ );
86
+ };
87
+ MultipleSelect.propTypes = {
88
+ ...propTypes,
89
+ };
90
+ MultipleSelect.defaultProps = {
91
+ ...normalProps,
92
+ };
93
+
94
+ export default MultipleSelect;
@@ -0,0 +1,105 @@
1
+ import * as React from 'react';
2
+ import { Select } from 'tea-component';
3
+
4
+ import SelectContainer from './SelectContainer';
5
+
6
+ import { multipleProps } from './props/defaultProps';
7
+ import { propTypes } from './props/propsTypes';
8
+ import useOptions from './hooks';
9
+
10
+ const { useState, useEffect } = React;
11
+
12
+ const useValue = (value) => {
13
+ const [selectedValue, setSelectedValue] = useState('');
14
+
15
+ useEffect(() => {
16
+ setSelectedValue(value);
17
+ }, [value]);
18
+
19
+ return [selectedValue, setSelectedValue];
20
+ };
21
+
22
+ const NormalSelect = ({
23
+ // 系统属性
24
+ id,
25
+ style,
26
+ className,
27
+ events,
28
+ // weda 组件属性
29
+ label,
30
+ labelVisible,
31
+ layout,
32
+ requiredFlag,
33
+ decorator,
34
+ // tea组件属性
35
+ value,
36
+ placeholder,
37
+ disabled,
38
+ onChange,
39
+ clearable,
40
+ appearance,
41
+ matchButtonWidth,
42
+ virtual,
43
+ searchable,
44
+ size,
45
+ // 业务属性
46
+ enumType,
47
+ customEnum,
48
+ optionId,
49
+ isModelApp,
50
+ }) => {
51
+ const options = useOptions({ enumType, optionId, customEnum });
52
+ const [selectedValue, setSelectedValue] = useValue(value);
53
+
54
+ const onSelectChange = (value) => {
55
+ // @ts-ignore
56
+ setSelectedValue(value);
57
+ events.change && events.change({ value });
58
+ if (onChange) {
59
+ onChange(value || '');
60
+ }
61
+ };
62
+
63
+ const singleSelectProps = {
64
+ placeholder,
65
+ disabled,
66
+ clearable,
67
+ appearance,
68
+ key: id,
69
+ options,
70
+ onChange: onSelectChange,
71
+ value: selectedValue,
72
+ matchButtonWidth,
73
+ virtual,
74
+ searchable,
75
+ size,
76
+ };
77
+
78
+ if (isModelApp) {
79
+ return <Select {...singleSelectProps} />;
80
+ }
81
+ return (
82
+ <SelectContainer
83
+ style={style}
84
+ className={className}
85
+ label={label}
86
+ labelVisible={labelVisible}
87
+ layout={layout}
88
+ // @ts-ignore
89
+ multiCell={false}
90
+ requiredFlag={requiredFlag}
91
+ decorator={decorator}
92
+ id={id}
93
+ >
94
+ <Select {...singleSelectProps} />
95
+ </SelectContainer>
96
+ );
97
+ };
98
+ NormalSelect.propTypes = {
99
+ ...propTypes,
100
+ };
101
+ NormalSelect.defaultProps = {
102
+ ...multipleProps,
103
+ };
104
+
105
+ export default NormalSelect;
@@ -0,0 +1,43 @@
1
+ import * as React from 'react';
2
+ import classNames from '../../../utils/classnames';
3
+ import { selectContainerPropsTypes } from './props/propsTypes';
4
+ import { renderDecorator } from '../renderDecorator';
5
+
6
+ const SelectContainer = ({
7
+ style,
8
+ className,
9
+ // weda 组件属性
10
+ id,
11
+ label,
12
+ labelVisible,
13
+ layout,
14
+ requiredFlag,
15
+ decorator,
16
+ children,
17
+ }) => {
18
+ const cls = classNames({
19
+ 'weda-ui': true,
20
+ [className]: className,
21
+ });
22
+ const subCls = classNames({
23
+ 'weui-cell': true,
24
+ 'weui-cell_active': true,
25
+ 'weui-cell_form': true,
26
+ 'weui-cell_disabled': true,
27
+ });
28
+ const SelectComponent = <div className={subCls}>{children}</div>;
29
+ return renderDecorator(
30
+ SelectComponent,
31
+ decorator
32
+ )({
33
+ id,
34
+ className: cls,
35
+ style,
36
+ label: labelVisible ? label : null,
37
+ layout,
38
+ multiCell: false,
39
+ requiredFlag,
40
+ });
41
+ };
42
+ SelectContainer.propTypes = selectContainerPropsTypes;
43
+ export default SelectContainer;
@@ -0,0 +1,49 @@
1
+ import { useEffect, useState } from 'react';
2
+ import { getDescribeGeneralOptionsDetailList } from '../../../../utils/tcb';
3
+
4
+ const GENERAL_OPTION = 'general-option';
5
+ const CUSTOM = 'custom';
6
+
7
+ const handleOptionsDetailList = (response) => {
8
+ const config = response?.Data?.Config ?? '[]';
9
+ return JSON.parse(config)?.map((item) => ({
10
+ value: item?.key,
11
+ text: item?.value,
12
+ }));
13
+ };
14
+
15
+ export default function useOptions({ enumType, optionId, customEnum }) {
16
+ const [options, setOptions] = useState([]);
17
+ const isCustom = enumType === CUSTOM;
18
+ const isGeneralOption = enumType === GENERAL_OPTION;
19
+
20
+ const getOptionsDetailList = async (optionId) => {
21
+ try {
22
+ const response = await getDescribeGeneralOptionsDetailList({
23
+ methodName: 'callDesignApi',
24
+ params: {
25
+ action: 'DescribeGeneralOptionsDetail',
26
+ data: {
27
+ Id: optionId,
28
+ },
29
+ },
30
+ });
31
+ const options = handleOptionsDetailList(response);
32
+ setOptions(options);
33
+ } catch (error) {
34
+ setOptions([]);
35
+ }
36
+ };
37
+
38
+ useEffect(() => {
39
+ if (optionId && isGeneralOption) {
40
+ getOptionsDetailList(optionId);
41
+ }
42
+ }, [optionId, isGeneralOption]);
43
+
44
+ useEffect(() => {
45
+ setOptions(customEnum);
46
+ }, [isCustom]);
47
+
48
+ return options;
49
+ }
@@ -0,0 +1,9 @@
1
+ import MultipleSelect from './MultipleSelect';
2
+ import NormalSelect from './NormalSelect';
3
+
4
+ const EnumSelect = NormalSelect;
5
+
6
+ // @ts-ignore
7
+ EnumSelect.MultipleSelect = MultipleSelect;
8
+
9
+ export default EnumSelect;
@@ -0,0 +1,39 @@
1
+ const commonProps = {
2
+ // 系统属性
3
+ events: {},
4
+ // weda 组件属性
5
+ label: '标题',
6
+ labelVisible: true,
7
+ layout: 'horizontal',
8
+ requiredFlag: false,
9
+ // tea组件属性
10
+ name: 'enumSelect',
11
+ placeholder: '请选择',
12
+ disabled: false,
13
+ onChange: () => {},
14
+ options: [],
15
+ clearable: true,
16
+ appearance: 'button',
17
+ matchButtonWidth: true,
18
+ virtual: true,
19
+ searchable: true,
20
+ size: 'm',
21
+ // 业务属性
22
+ enumType: '',
23
+ customEnum: [],
24
+ optionId: null,
25
+ isModelApp: false,
26
+ };
27
+ export const normalProps = {
28
+ ...commonProps,
29
+ value: '',
30
+ };
31
+ export const multipleProps = {
32
+ ...commonProps,
33
+ value: [],
34
+ allOption: {
35
+ value: 'all',
36
+ text: '全选',
37
+ tooltip: '全选',
38
+ },
39
+ };
@@ -0,0 +1,50 @@
1
+ import * as PropTypes from 'prop-types';
2
+
3
+ const commonPropsTypes = {
4
+ // 系统属性
5
+ id: PropTypes.string,
6
+ style: PropTypes.string,
7
+ className: PropTypes.string,
8
+ // weda 组件属性
9
+ label: PropTypes.string,
10
+ labelVisible: PropTypes.bool,
11
+ layout: PropTypes.string,
12
+ requiredFlag: PropTypes.bool,
13
+ };
14
+ export const propTypes = {
15
+ ...commonPropsTypes,
16
+ // 系统属性
17
+ events: PropTypes.object,
18
+ // tea组件属性
19
+ defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
20
+ name: PropTypes.string,
21
+ placeholder: PropTypes.string,
22
+ disabled: PropTypes.bool,
23
+ onChange: PropTypes.func,
24
+ options: PropTypes.array,
25
+ clearable: PropTypes.bool,
26
+ appearance: PropTypes.string,
27
+ allOption: PropTypes.object,
28
+ matchButtonWidth: PropTypes.bool,
29
+ virtual: PropTypes.bool,
30
+ searchable: PropTypes.bool,
31
+ size: PropTypes.string,
32
+ value: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),
33
+ // 业务属性
34
+ enumType: PropTypes.string,
35
+ customEnum: PropTypes.array,
36
+ optionId: PropTypes.string,
37
+ isModelApp: PropTypes.bool,
38
+ };
39
+
40
+ export const formContainerPropsTypes = {
41
+ ...commonPropsTypes,
42
+ children: PropTypes.element,
43
+ decorator: PropTypes.element,
44
+ };
45
+
46
+ export const selectContainerPropsTypes = {
47
+ ...commonPropsTypes,
48
+ children: PropTypes.element,
49
+ decorator: PropTypes.element,
50
+ };
@@ -28,6 +28,7 @@ export { default as Select } from './form/select';
28
28
  export { default as Uploader } from './form/uploader';
29
29
  export { default as Tips } from './form/tips';
30
30
  export { default as Tabs } from './tabs';
31
+ export { default as EnumSelect } from './form/enumSelect';
31
32
  // open
32
33
  // import Auth from './auth';
33
34
 
@@ -35,3 +35,11 @@ export async function getTempFileURL(data) {
35
35
  return await window?.app?.cloud?.getTempFileURL(data);
36
36
  }
37
37
  }
38
+
39
+ export async function getDescribeGeneralOptionsDetailList(params) {
40
+ // @ts-ignore
41
+ const callWedaApi = window?.app?.cloud?.callWedaApi;
42
+ if (callWedaApi) {
43
+ return await callWedaApi(params);
44
+ }
45
+ }
package/src/.DS_Store DELETED
Binary file
package/src/web/.DS_Store DELETED
Binary file
@@ -1,16 +0,0 @@
1
- source:
2
- # 文件或目录使用绝对路径,绝对路径按代码库根目录计算,以/开头。
3
- # 提供产品代码库中编写的测试代码存放目录或文件名格式,以便代码检查时进行排除处理
4
- # 不要使用.*/等正则表达式屏蔽掉所有代码,会使得代码存在风险,还会导致Coverity扫不到任何代码而失败
5
- test_source:
6
- #用于匹配文件; 匹配方式为正则表达式,例如[".*/java/test/.*", ".*/test.java"]
7
- filepath_regex:
8
- # 提供产品代码库中工具或框架自动生成的且在代码库中的代码,没有可为空。以便代码检查时进行排除处理。
9
- auto_generate_source:
10
- # 自动生成代码文件的正则表达式,若无统一标识格式,可以指定具体目录,样例可参考test_source举例
11
- filepath_regex: ["/style-package/*.*"]
12
- # 提供产品代码库中直接以源码形式存在的第三方代码目录或代码文件名的正则表达。
13
- # 此处备注的第三方代码将在代码检查时进行排除,若代码库中不存在需要排除的第三方代码,该项配置标识可为空
14
- third_party_source:
15
- #第三方代码文件的正则表达式,若无统一标识格式,可以指定具体目录,样例可参考test_source举例
16
- filepath_regex:
@@ -1,9 +0,0 @@
1
- root = true
2
-
3
- [*]
4
- indent_style = space
5
- indent_size = 2
6
- charset = utf-8
7
- trim_trailing_whitespace = false
8
- insert_final_newline = false
9
- end_of_line = lf
@@ -1,20 +0,0 @@
1
- {
2
- "env": {
3
- "browser": true,
4
- "es6": true
5
- },
6
- "settings": {
7
- "react": {
8
- "version": "detect"
9
- }
10
- },
11
- "parser": "babel-eslint",
12
- "parserOptions": {
13
- "ecmaVersion": 6,
14
- "sourceType": "module",
15
- "ecmaFeatures": {
16
- "jsx": true
17
- }
18
- },
19
- "extends": ["@tencent/eslint-config-tencent", "plugin:react/recommended"]
20
- }
@@ -1 +0,0 @@
1
- gitdir: ../../../.git/modules/src/web/wedatheme
@@ -1,5 +0,0 @@
1
- node_modules
2
- dist
3
- .history
4
- src/.DS_Store
5
- *.DS_Store
@@ -1 +0,0 @@
1
- registry=https://mirrors.tencent.com/npm/
@@ -1,55 +0,0 @@
1
- ### 该配置文件用于自动发布tnpm包,tnpm相关配置从git地址获取 ###
2
- master:
3
- push:
4
- -
5
- stages:
6
- - name: 发布 npm 包
7
- image: plugins/npm
8
- envFrom: https://git.code.oa.com/tc-console/public-key/blob/master/tnpm.text
9
- settings:
10
- username: $TNPM_USER
11
- password: $TNPM_PWD
12
- email: $TNPM_EMAIL
13
- registry: https://mirrors.tencent.com/npm/
14
- folder: ./style-package/
15
- - name: 获取包名
16
- type: orange-ci:readFile
17
- options:
18
- filePath: ./style-package/package.json
19
- envExport:
20
- name: PACKAGE_NAME
21
- - name: make message
22
- script: echo '[http://mirrors.tencent.com/#/private/npm/detail?project_name=$PACKAGE_NAME](http://mirrors.tencent.com/#/private/npm/detail?project_name=$PACKAGE_NAME)' > message.txt
23
- - name: send message
24
- type: wework:message
25
- options:
26
- fromFile: message.txt
27
- ### 该配置文件用于自动构建并部署文件到服务器,通过企业微信返回内网预览地址 ###
28
- ### 接入配置可参考:http://km.oa.com/articles/show/422133 有疑问可联系youngerwang ###
29
- dev:
30
- push:
31
- - docker:
32
- image: node:10
33
- env:
34
- ORANGE_W_BUILD_SUCCESS_MSG: 预览地址:http://9.134.68.199/$ORANGE_REPO_SLUG/dist/index.html
35
- stages:
36
- ### 需要每次都安装一次,后续下放到开发机器
37
- - name: 安装 tnpm
38
- script: npm install @tencent/tnpm -g --registry=https://mirrors.tencent.com/npm/
39
- - name: 安装 tea-cli
40
- script: tnpm i @tencent/tea-cli -g
41
- - name: 安装依赖
42
- script: tnpm install && tnpm i @tencent/tea-component
43
- - name: 构建
44
- script: tea login qaayH8xL2ATXSkWS8ahBB7IEYXMECyaKSAlbkDzX && tea build -l zh
45
- - name: 预览地址
46
- type: wework:message
47
- options:
48
- message: '[http://9.134.68.199/$ORANGE_REPO_SLUG/dist/index.html](http://9.134.68.199/$ORANGE_REPO_SLUG/dist/index.html)'
49
- - name: 拷贝文件
50
- type: orange-ci:transfer
51
- options:
52
- dist: '/'
53
- to: /usr/share/nginx/html/$ORANGE_REPO_SLUG
54
- ips:
55
- - 9.134.68.199
@@ -1,3 +0,0 @@
1
- {
2
- "recommendations": ["dbaeumer.vscode-eslint"]
3
- }
@@ -1,11 +0,0 @@
1
- {
2
- "eslint.validate": [
3
- "javascript",
4
- "javascriptreact",
5
- "typescript",
6
- "typescriptreact"
7
- ],
8
- "editor.codeActionsOnSave": {
9
- "source.fixAll.eslint": true
10
- }
11
- }
@@ -1,50 +0,0 @@
1
- 腾讯云 WEDATHEME 控制台前端项目
2
- ======================
3
-
4
- <!-- 识别每类内容的标题是否具备,同时判断页面内容字数;
5
- 具备内容类别数,字数大于等于类别数*200字,得到该类别的总分数 -->
6
-
7
- ## 项目介绍
8
- <!-- 本组织/项目的整体说明概览 -->
9
- 介绍:
10
- 控制台地址:
11
-
12
-
13
- ## 快速上手
14
- <!-- 使用者如何快速上手使用本组织/项目,如下载,安装,启动,运行,教程。 -->
15
- - `src/app.js` 入口文件,主要进行业务路由定义
16
- - `src/routes` 存放业务路由实现
17
- - `src/configs` 存放 CSS 和菜单配置
18
- - `src/components` 存放公共业务组件
19
- - `src/utils` 存放公共工具方法
20
-
21
-
22
- ## 常见问题
23
- <!-- 本组织/项目的常见通用问题和官方解答 -->
24
- - master:默认为主干分支,用于发包
25
- - dev:默认开发分支
26
-
27
-
28
- ## 行为准则
29
- <!-- 本组织/项目在代码协作方面需遵循的责任、范围、软件许可证、冲突解决等章程 -->
30
-
31
-
32
- ## 如何加入
33
- <!-- 本组织/项目有明确的如何加入和贡献的文字说明 -->
34
-
35
-
36
- ## 团队介绍
37
- <!-- 本组织/项目的角色分工、人名和联络方式、官方交流/沟通渠道 -->
38
- 产品经理:<!-- 姓名 -->
39
-
40
- 交互设计:<!-- 姓名 -->
41
-
42
- 视觉设计师:<!-- 姓名 -->
43
-
44
- 前端开发:<!-- 姓名 -->
45
-
46
- 仓库地址:<!-- 姓名 -->
47
-
48
-
49
- ## 其他说明
50
- <!-- 其他需要补充的内容 -->
@@ -1,4 +0,0 @@
1
- i18n 目录说明
2
- ============
3
-
4
- 这里存放翻译的词条文件。
@@ -1,10 +0,0 @@
1
- /**
2
- * @fileoverview
3
- *
4
- * 开发环境默认导出中文词条(无任何翻译)
5
- *
6
- * - 如果要查看某个语言包的开发环境效果,使用命令 `tea dev --lang=en`
7
- * - 正式编译时,`@i18n/translation` 模块会重定向到相应的词条文件
8
- */
9
-
10
- export { translation } from './zh';
@@ -1,15 +0,0 @@
1
- /**
2
- * @fileoverview
3
- *
4
- * 本文件词条由 `tea scan` 命令扫描生成,可提交给翻译团队进行翻译。
5
- * 具体使用方法,请参考 http://tapd.oa.com/QCloud_2015/markdown_wikis/view/#1010103951008365523
6
- */
7
-
8
- /**
9
- * @type {import('@tencent/tea-app').I18NTranslation}
10
- */
11
- const translation = {
12
- // 使用 `tea scan` 命令扫描词条
13
- };
14
-
15
- module.exports = { translation };
@@ -1,15 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "lib": ["es2017", "dom"],
4
- "baseUrl": ".",
5
- "paths": {
6
- "@tea/app": ["./mock"],
7
- "@tea/app/*": ["./mock/*"],
8
- "@src/*": ["./src/*"]
9
- },
10
- "checkJs": true,
11
- "jsx": "preserve",
12
- "noImplicitAny": false
13
- },
14
- "exclude": ["dist"]
15
- }