aldehyde 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 (156) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +1 -0
  3. package/dist/163.js +2 -0
  4. package/dist/163.js.LICENSE.txt +43 -0
  5. package/dist/41.js +1 -0
  6. package/dist/aldehyde.js +2 -0
  7. package/dist/aldehyde.js.LICENSE.txt +122 -0
  8. package/dist/chemstruc-graph.js +1 -0
  9. package/dist/css/163-24392163d3c7b54ea806.css +11 -0
  10. package/dist/css/290-5e8e152675ab7d201c00.css +886 -0
  11. package/dist/css/chemstruc-graph-87868f791bf92fb80db9.css +29 -0
  12. package/dist/css/main-2e6725ec1b56da516cee.css +256 -0
  13. package/dist/html-editor-draft.js +2 -0
  14. package/dist/html-editor-draft.js.LICENSE.txt +5 -0
  15. package/dist/images/logo-06f6a5d8.png +0 -0
  16. package/dist/index.html +4 -0
  17. package/dist/signature.js +2 -0
  18. package/dist/signature.js.LICENSE.txt +17 -0
  19. package/package.json +180 -0
  20. package/src/components/chart/antd/Chart.js +32 -0
  21. package/src/components/chart/antd/Chart10000.js +90 -0
  22. package/src/components/chart/antd/Max2DimLineChart.js +128 -0
  23. package/src/components/chart/antd/PieChart1.js +54 -0
  24. package/src/components/chart/antd/PieChart2.js +56 -0
  25. package/src/components/chart/antd/chart-utils.tsx +50 -0
  26. package/src/components/chart/antd/column-chart-sub.tsx +67 -0
  27. package/src/components/chart/antd/line-chart-sub.tsx +65 -0
  28. package/src/components/chart/antd/pie-chart-sub.tsx +54 -0
  29. package/src/components/chart/antd/statview-d2-chart.tsx +125 -0
  30. package/src/components/chart/statview-l2-chart.tsx +69 -0
  31. package/src/components/controls/action/index.css +9 -0
  32. package/src/components/controls/action/index.tsx +228 -0
  33. package/src/components/controls/action/utils.tsx +122 -0
  34. package/src/components/controls/auto-complete/index.tsx +80 -0
  35. package/src/components/controls/cascader/index.js +97 -0
  36. package/src/components/controls/chemstruc/graph.tsx +150 -0
  37. package/src/components/controls/chemstruc/index.css +28 -0
  38. package/src/components/controls/collapse-card/index.css +9 -0
  39. package/src/components/controls/collapse-card/index.tsx +59 -0
  40. package/src/components/controls/color-picker/index.css +27 -0
  41. package/src/components/controls/color-picker/index.tsx +88 -0
  42. package/src/components/controls/cquery/cquick-button.tsx +117 -0
  43. package/src/components/controls/date-picker/index.tsx +141 -0
  44. package/src/components/controls/entity-select/entity-select.tsx +277 -0
  45. package/src/components/controls/entity-select/index.css +6 -0
  46. package/src/components/controls/entity-select/popover-entity-select.tsx +112 -0
  47. package/src/components/controls/entry-control.tsx +240 -0
  48. package/src/components/controls/enum-badge/index.tsx +28 -0
  49. package/src/components/controls/enum-tag/index.tsx +30 -0
  50. package/src/components/controls/file-view/drawer-file-view.tsx +69 -0
  51. package/src/components/controls/file-view/index.tsx +145 -0
  52. package/src/components/controls/html-editor/draft.tsx +161 -0
  53. package/src/components/controls/html-editor/tinymce.js +55 -0
  54. package/src/components/controls/input-number/index.tsx +101 -0
  55. package/src/components/controls/input-range/index.tsx +48 -0
  56. package/src/components/controls/password-setter/index.css +3 -0
  57. package/src/components/controls/password-setter/index.js +70 -0
  58. package/src/components/controls/progress/index.tsx +61 -0
  59. package/src/components/controls/relation-existion/index.css +4 -0
  60. package/src/components/controls/relation-existion/index.tsx +108 -0
  61. package/src/components/controls/rfield/index.css +4 -0
  62. package/src/components/controls/rfield/index.tsx +161 -0
  63. package/src/components/controls/signature/index.tsx +162 -0
  64. package/src/components/controls/steps/index.tsx +58 -0
  65. package/src/components/controls/text/ellipsis-text.tsx +70 -0
  66. package/src/components/controls/upload/index.tsx +122 -0
  67. package/src/components/controls/view-control.tsx +177 -0
  68. package/src/components/detail/button/cquery-button-bar.tsx +112 -0
  69. package/src/components/detail/button/index.css +43 -0
  70. package/src/components/detail/button/submit-button-bar.tsx +151 -0
  71. package/src/components/detail/dtmpl.css +53 -0
  72. package/src/components/detail/edit/dtmpl-edit.tsx +218 -0
  73. package/src/components/detail/edit/fields-edit-card.tsx +103 -0
  74. package/src/components/detail/edit/modal-dtmpl-edit.tsx +198 -0
  75. package/src/components/detail/edit/modal-row-edit.tsx +72 -0
  76. package/src/components/detail/edit/post-result/index.tsx +52 -0
  77. package/src/components/detail/edit/row-edit-card.tsx +125 -0
  78. package/src/components/detail/edit/row-editor.tsx +71 -0
  79. package/src/components/detail/rightbar/index.css +35 -0
  80. package/src/components/detail/rightbar/index.tsx +76 -0
  81. package/src/components/detail/view/act-dtmpl-view.tsx +155 -0
  82. package/src/components/detail/view/dtmpl-view.tsx +143 -0
  83. package/src/components/detail/view/field-view-group.tsx +73 -0
  84. package/src/components/detail/view/modal-dtmpl-view.tsx +56 -0
  85. package/src/components/detail/view/snapshot-timeline.tsx +130 -0
  86. package/src/components/exportor/export-frame.css +3 -0
  87. package/src/components/exportor/export-frame.tsx +194 -0
  88. package/src/components/exportor/index.tsx +60 -0
  89. package/src/components/form/criteria-form.tsx +241 -0
  90. package/src/components/form/dtmpl-form.css +4 -0
  91. package/src/components/form/dtmpl-form.tsx +272 -0
  92. package/src/components/form/field-group-form.tsx +75 -0
  93. package/src/components/form/fields-form.tsx +51 -0
  94. package/src/components/form/form-Item-group.tsx +99 -0
  95. package/src/components/form/index.css +13 -0
  96. package/src/components/import/excel-import.tsx +316 -0
  97. package/src/components/import/index.css +54 -0
  98. package/src/components/import/template-builder.js +474 -0
  99. package/src/components/import/template.css +51 -0
  100. package/src/components/layout/MainPage.tsx +230 -0
  101. package/src/components/layout/footer/index.css +6 -0
  102. package/src/components/layout/footer/index.js +17 -0
  103. package/src/components/layout/header/index.css +86 -0
  104. package/src/components/layout/header/index.tsx +58 -0
  105. package/src/components/layout/menu/block.tsx +88 -0
  106. package/src/components/layout/menu/l2menu-message-bar.tsx +118 -0
  107. package/src/components/layout/menu/l2menu-quick-bar.tsx +132 -0
  108. package/src/components/layout/menu/menu-2layers.tsx +92 -0
  109. package/src/components/layout/menu/menu-render.tsx +49 -0
  110. package/src/components/layout/menu/reset-password.tsx +185 -0
  111. package/src/components/layout/menu/user-bar.tsx +97 -0
  112. package/src/components/layout/menu/userinfo-bar.tsx +70 -0
  113. package/src/components/layout/sidebar/index.css +26 -0
  114. package/src/components/layout/sidebar/index.tsx +38 -0
  115. package/src/components/login.js +137 -0
  116. package/src/components/module/criteria-page.tsx +175 -0
  117. package/src/components/module/dtmpl-page.tsx +70 -0
  118. package/src/components/module/ltmpl-page.tsx +181 -0
  119. package/src/components/routable/dtmpl-route.tsx +96 -0
  120. package/src/components/routable/import-route.tsx +28 -0
  121. package/src/components/routable/ltmpl-route.tsx +158 -0
  122. package/src/components/table/act-table.tsx +635 -0
  123. package/src/components/table/column/column-selector.tsx +79 -0
  124. package/src/components/table/column/index.css +14 -0
  125. package/src/components/table/index.css +45 -0
  126. package/src/components/table/l2-act-table.tsx +85 -0
  127. package/src/components/table/modal-select-table.tsx +248 -0
  128. package/src/components/table/pagination.css +15 -0
  129. package/src/components/table/pagination.tsx +72 -0
  130. package/src/components/table/query-table.tsx +331 -0
  131. package/src/components/table/relation-table.tsx +600 -0
  132. package/src/components/table/select-table.tsx +247 -0
  133. package/src/components/table/selected-rows-card.tsx +62 -0
  134. package/src/components/table/stat/restat.tsx +79 -0
  135. package/src/components/table/table-util.tsx +33 -0
  136. package/src/components/tmpl/control-type-supportor.tsx +97 -0
  137. package/src/components/tmpl/hc-data-source.tsx +230 -0
  138. package/src/components/tmpl/hcservice-v3.tsx +624 -0
  139. package/src/components/tmpl/interface.tsx +308 -0
  140. package/src/components/tmpl/superagent.js +93 -0
  141. package/src/components/tmpl/tmpl-config-analysis.tsx +111 -0
  142. package/src/components/units/EncryptUtils.js +38 -0
  143. package/src/components/units/image.d.ts +8 -0
  144. package/src/components/units/index.tsx +536 -0
  145. package/src/components/units/logo.png +0 -0
  146. package/src/components/units/storage.js +3 -0
  147. package/src/components/welcome/HCWelcome.js +232 -0
  148. package/src/components/welcome/index.css +13 -0
  149. package/src/components/welcome/logo.png +0 -0
  150. package/src/components/welcome/quick-entrance.tsx +77 -0
  151. package/src/components/welcome/workbench.tsx +76 -0
  152. package/src/index.js +4 -0
  153. package/src/style/common.css +79 -0
  154. package/src/style/coverstyle.css +49 -0
  155. package/src/style/transstyle.css +24 -0
  156. package/tsconfig.json +106 -0
@@ -0,0 +1,247 @@
1
+ import React from 'react'
2
+ import "./index.css"
3
+ import {DtmplData, QueryKey, SelectConfig,SelectedRow} from "../tmpl/interface";
4
+ import TableUnits from "./table-util";
5
+ import SupportInputTypes from '../tmpl/control-type-supportor';
6
+ import HCDataSource from '../tmpl/hc-data-source';
7
+ import HcserviceV3 from "../tmpl/hcservice-v3";
8
+ import QueryTable from './query-table';
9
+ import CriteriaForm from "../form/criteria-form";
10
+ import ViewControl from "../controls/view-control";
11
+
12
+ interface SelectTableProps {
13
+ maxSelectedRows?: number,
14
+ sourceId: string,
15
+ selectedRows: SelectedRow[];
16
+ selectedDatas?: DtmplData[];
17
+ // onCancel: () => void,
18
+ // onOK: (selectedRows: SelectedRow[]) => void,
19
+ onChange?: (selectedRows: SelectedRow[], selectedDatas: DtmplData[]) => void;
20
+ };
21
+
22
+ interface SelectTableStat {
23
+ selectConfig: SelectConfig;
24
+ columns: object[];
25
+ queryKey: QueryKey;
26
+ loading: boolean;
27
+ criteriaData: object;
28
+ };
29
+
30
+ class SelectTable extends React.PureComponent<SelectTableProps, SelectTableStat> {
31
+ static defaultProps = {
32
+ maxSelectedRows: 1000,
33
+ selectedDatas:[],
34
+ }
35
+ state = {
36
+ selectConfig: undefined,
37
+ columns: undefined,
38
+ queryKey: undefined,
39
+ loading: true,
40
+ criteriaData: undefined,
41
+ disableCols: undefined,
42
+ }
43
+
44
+ loadData = async (selectConfig: SelectConfig, criteriaData: object) => {
45
+ this.setState({
46
+ loading: true,
47
+ })
48
+ const {defaultPageSize} = selectConfig;
49
+ let pageInfo = {
50
+ pageNo: 1,
51
+ pageSize: defaultPageSize ? defaultPageSize : 10,
52
+ virtualEndPageNo: undefined,
53
+ }
54
+ const {sourceId} = this.props;
55
+ /** 构建 dataSource **/
56
+ //构建过滤条件
57
+ let queryKey: QueryKey = await HcserviceV3.requestLtmplQueryKey(sourceId, {...criteriaData, ...pageInfo});
58
+ this.setState({
59
+ queryKey,
60
+ criteriaData,
61
+ loading: false,
62
+ })
63
+ }
64
+
65
+ async componentDidMount() {
66
+ const {sourceId} = this.props;
67
+ // if (sourceName && visible) {
68
+ // if (sourceName) {
69
+ await this.loadData(await this.loadConfig(), {});
70
+ // }
71
+ }
72
+
73
+ loadConfig = async () => {
74
+ const {sourceId} = this.props;
75
+ this.setState({
76
+ loading: true,
77
+ })
78
+
79
+ let selectConfig = await HCDataSource.requestSelectConfig(sourceId);
80
+ /** 构建column **/
81
+ let columns = [];
82
+
83
+ let s = 0;
84
+ selectConfig.columns.forEach((item) => {
85
+ let column = {};
86
+ if (item.title != "操作") {
87
+ columns.push(column);
88
+ }
89
+ column['title'] = item.title;
90
+ column['dataIndex'] = item.id;
91
+ // column['ellipsis']= true;
92
+ s++;
93
+ let itemType = SupportInputTypes.getSupportControlType(item);
94
+ if (s < 10) {
95
+ TableUnits.sort(column, itemType);
96
+ }
97
+ //特殊列处理
98
+ //序号
99
+ if (item.title === "序号") {
100
+ //item.fixed='left';
101
+ column['render'] = (text, record, index) => (
102
+ <label>{index + 1}</label>
103
+ )
104
+ item['sorter'] = undefined;
105
+ } else {
106
+ column['render'] = (text, record) => {
107
+ return <ViewControl holderType={'table'} fieldConfig={item} value={record[item.id]}/>
108
+ }
109
+ }
110
+ });
111
+ this.setState({
112
+ columns,
113
+ selectConfig,
114
+ loading: false,
115
+ })
116
+ return selectConfig;
117
+ }
118
+
119
+ async componentDidUpdate(prevProps) {
120
+ const {} = this.props;
121
+ const {selectConfig, criteriaData, queryKey, loading} = this.state;
122
+ const {exceptCodes: preExceptCodes, visible: preVisible} = prevProps;
123
+ let config = selectConfig;
124
+ //if (visible) {
125
+ if (!config) {
126
+ config = await this.loadConfig();
127
+ }
128
+ if (!queryKey && !loading) {
129
+ await this.loadData(config, criteriaData);
130
+ }
131
+ //}
132
+ }
133
+
134
+ doSearch = async (params_) => {
135
+ const {selectConfig} = this.state;
136
+ let params = {...params_}
137
+ await this.loadData(selectConfig, params);
138
+ }
139
+
140
+ // handleOk = () => {
141
+ // this.props.onOK(this.state.selectedRows);
142
+ // this.setState({
143
+ // selectedRows: [],
144
+ // queryKey: undefined,
145
+ // })
146
+ // }
147
+
148
+ // handleCancel = () => {
149
+ // this.setState({
150
+ // // selectedRows: [],//暂不置空
151
+ // queryKey: undefined,
152
+ // })
153
+ // this.props.onCancel();
154
+ //
155
+ // }
156
+
157
+ changeRowSelection = (selectedRows_: SelectedRow[], selectedDatas_: DtmplData[], allRowKeys?: string[]) => {
158
+ console.log('changeRowSelection:', allRowKeys);
159
+ let selectedRows_new: SelectedRow[];
160
+ let selectedDatas_new: DtmplData[] = [];
161
+ const {selectedRows, selectedDatas, onChange, maxSelectedRows} = this.props;
162
+ if (allRowKeys) {
163
+ let selectedKeys = [];
164
+ let selectedRows_1: SelectedRow[] = [];
165
+ if (maxSelectedRows != 1) {
166
+ selectedRows_1.push(...selectedRows);
167
+ }
168
+ //先追加
169
+ let contains: boolean = false;
170
+ for (let s1 of selectedRows_) {
171
+ contains = false;
172
+ for (let s2 of selectedRows_1) {
173
+ if (s1.code == s2.code) {
174
+ contains = true;
175
+ }
176
+ }
177
+ if (!contains) {
178
+ selectedRows_1.push(s1);
179
+ }
180
+ selectedKeys.push(s1.code);
181
+ }
182
+ //再删除
183
+ let selectedRows_2: SelectedRow[] = [];
184
+ selectedRows_2.push(...selectedRows_1);
185
+ for (let row of selectedRows_1) {
186
+ if (allRowKeys.includes(row.code) && !selectedKeys.includes(row.code)) {
187
+ for (let i in selectedRows_2) {
188
+ let s = selectedRows_2[i];
189
+ if (s.code == row.code) {
190
+ selectedRows_2.splice(Number(i), 1);
191
+ }
192
+ }
193
+ }
194
+ }
195
+ selectedRows_new = selectedRows_2;
196
+ } else {
197
+ selectedRows_new = selectedRows_;
198
+ }
199
+ let selectedDatas_1: DtmplData[] = [...selectedDatas, ...selectedDatas_];
200
+ for (let s of selectedRows_new) {
201
+ for (let d of selectedDatas_1) {
202
+ if (d.code == s.code) {
203
+ selectedDatas_new.push(d);
204
+ }
205
+ }
206
+ }
207
+ onChange(selectedRows_new, selectedDatas_new);
208
+ }
209
+
210
+
211
+ render() {
212
+ let {maxSelectedRows, selectedRows, selectedDatas} = this.props;
213
+ let {queryKey, columns, selectConfig, criteriaData, loading} = this.state;
214
+
215
+ if (!selectConfig) {
216
+ return <>
217
+ </>
218
+ }
219
+ let {buttons, criterias, jumps, actions} = selectConfig
220
+ let displayCriteriaCard: boolean = false;
221
+ if (buttons.includes('delete') || (buttons.includes('query') && criterias && criterias.length > 0) ||
222
+ (actions && actions.length > 0) || (jumps && jumps.length > 0)) {
223
+ displayCriteriaCard = true;
224
+ }
225
+ return (
226
+ // <Card
227
+ // // title={<SelectedRowsCard value={selectedRows} onChange={this.changeRowSelection}></SelectedRowsCard>}
228
+ // style={{width: 1100,maxWidth: 'calc(100vw - 60px)', maxHeight: 'calc(100vh - 50px)'}}
229
+ // // onOk={this.handleOk}
230
+ // >
231
+ <div className="actTable"
232
+ // style={{width: 1100,maxWidth: 'calc(100vw - 60px)', maxHeight: 'calc(100vh - 50px)',overflow:'auto'}}
233
+ >
234
+ <CriteriaForm selectedRows={selectedRows} selectedDatas={selectedDatas} ltmplConfig={selectConfig}
235
+ data={criteriaData}
236
+ doSearch={this.doSearch} loading={loading}/>
237
+ <QueryTable maxSelectedRows={maxSelectedRows} selectedRows={selectedRows} columns={columns}
238
+ defaultPageSize={selectConfig.defaultPageSize}
239
+ queryKey={queryKey}
240
+ onChangeRowSelection={this.changeRowSelection}/>
241
+ </div>
242
+ // </Card>
243
+ );
244
+ }
245
+ }
246
+
247
+ export default SelectTable;
@@ -0,0 +1,62 @@
1
+ import React from "react";
2
+ import {PageInfo, SelectedRow} from "../tmpl/interface";
3
+ import {Pagination as AntdPagination, Tag} from 'antd';
4
+ import './pagination.css';
5
+
6
+ interface SelectedRowsCardProps {
7
+ value: SelectedRow[];
8
+ onChange?: ( value: SelectedRow[]) => void;
9
+ };
10
+
11
+ interface SelectedRowsCardStat {
12
+
13
+ };
14
+
15
+
16
+ class SelectedRowsCard extends React.PureComponent<SelectedRowsCardProps, SelectedRowsCardStat> {
17
+
18
+ handleClose=(row:SelectedRow)=>{
19
+ const {onChange,value}=this.props;
20
+ if(onChange){
21
+ const value_1:SelectedRow[]=[];
22
+ for(let v of value){
23
+ if(v.code!=row.code){
24
+ value_1.push(v);
25
+ }
26
+ }
27
+ onChange(value_1);
28
+ }
29
+
30
+ }
31
+
32
+ renderTag=()=>{
33
+ const {value}=this.props;
34
+ const tags=[];
35
+ if(value){
36
+ value.forEach((v,index)=>{
37
+ let title=(v.title instanceof Array)?v.title[0]:v.title;
38
+ tags.push(<Tag key={index} style={{ fontSize: 14 }} color="geekblue" closable={true} onClose={e => {
39
+ e.preventDefault();
40
+ this.handleClose(v);
41
+ }}>
42
+ {title && title.includes("@R@")?title.split("@R@")[1]:v.title}
43
+ </Tag>);
44
+ })
45
+ }else{
46
+ return "";
47
+ }
48
+
49
+ return tags;
50
+ }
51
+
52
+
53
+ render() {
54
+ return <div>
55
+ <h3>查询点选:
56
+ {this.renderTag()}
57
+ </h3>
58
+ </div>
59
+ }
60
+ }
61
+
62
+ export default SelectedRowsCard;
@@ -0,0 +1,79 @@
1
+ import React from "react";
2
+ import {Button, Card, Form as AntdForm, FormInstance, Popconfirm, Popover, Space, Tooltip} from "antd";
3
+ import {CalculatorOutlined, CloseOutlined} from "@ant-design/icons"
4
+ import {FieldConfig,} from "../../tmpl/interface";
5
+ import '../pagination.css';
6
+ import FormItemGroup from "../../form/form-Item-group";
7
+ import HcserviceV3 from "../../tmpl/hcservice-v3";
8
+ interface RestatProps {
9
+ onfinish: () => void;
10
+ fields: FieldConfig[];
11
+ value?: object;
12
+ sourceId:string;
13
+ };
14
+
15
+ interface RestatStat {
16
+ popoverVisible: boolean;
17
+ loading:boolean,
18
+ };
19
+
20
+ class Restat extends React.PureComponent<RestatProps, RestatStat> {
21
+
22
+ static defaultProps = {}
23
+ state = {
24
+ popoverVisible: false,
25
+ loading:false,
26
+ }
27
+ formRef = React.createRef<FormInstance>();
28
+ onRestat =async (val) => {
29
+ const {sourceId,onfinish}=this.props;
30
+ this.setState({
31
+ loading:true,
32
+ })
33
+ await HcserviceV3.increCalc(sourceId,val);
34
+ this.setState({
35
+ loading:false,
36
+ })
37
+ onfinish();
38
+ }
39
+
40
+ render() {
41
+ const {popoverVisible,loading} = this.state;
42
+ const {fields, value} = this.props;
43
+ return <Popover visible={popoverVisible}
44
+ content={
45
+ <Card loading={loading}
46
+ style={{width: 1000}}
47
+ title={"重新统计"}
48
+ bodyStyle={{overflow: 'auto'}}
49
+ extra={<><Space size={[8, 0]}>
50
+ {
51
+ <Button type={"primary"} onClick={()=>{
52
+ this.formRef.current.submit();
53
+ }}
54
+ >确定</Button>
55
+ }
56
+ {<Button onClick={() => {
57
+ this.setState({popoverVisible: false});
58
+ }}><CloseOutlined/></Button>
59
+ }
60
+ </Space></>}
61
+ >
62
+ <AntdForm labelWrap={true} ref={this.formRef} name="control-hooks" onFinish={this.onRestat}>
63
+ <FormItemGroup nameAttr={'id'} fields={fields}
64
+ valueMap={value}></FormItemGroup>
65
+ </AntdForm>
66
+ </Card>}
67
+
68
+ placement="bottomLeft"
69
+ trigger="click">
70
+ <Tooltip title={'重新统计'}><Button onClick={() => {
71
+ this.setState({popoverVisible: !popoverVisible});
72
+ }}>
73
+ <CalculatorOutlined/>
74
+ </Button></Tooltip>
75
+ </Popover>
76
+ }
77
+ }
78
+
79
+ export default Restat;
@@ -0,0 +1,33 @@
1
+ import moment from "moment";
2
+ import Units from "../units";
3
+ import {Badge, Tag} from "antd";
4
+ import React from "react";
5
+ import {EnumItem, FieldConfig} from "../tmpl/interface";
6
+ import ViewControl from "../controls/view-control";
7
+
8
+ export default {
9
+ sort(col, itemType: string) {
10
+ let colName=col['dataIndex'];
11
+ if (itemType === "decimal" || itemType === "int" || itemType === "float" || itemType === "double") { //排序b
12
+ col["sorter"] = (a, b) => a[colName] - b[colName];
13
+ } else if (itemType === "text" || itemType === "textarea" || itemType === "date" || itemType === "datetime") {
14
+ col["sorter"] = (a, b) => a[colName] ? a[colName].localeCompare(b[colName], 'zh-CN') : -1;
15
+ } else {
16
+ col["sorter"] = (a, b) => { //排序
17
+ if (a[colName] && b[colName] && a[colName].localeCompare) {
18
+ return a[colName] ? a[colName].localeCompare(b[colName], 'zh-CN') : -1;
19
+ } else {
20
+ return 1;
21
+ }
22
+ }
23
+ }
24
+ col['defaultSortOrder'] = 'ascend';
25
+ col['showSorterTooltip'] = false;
26
+ }
27
+ //,
28
+ // render(column, fieldConfig: FieldConfig) {
29
+ // column['render'] = (text, record) => {
30
+ // return <ViewControl fieldConfig={fieldConfig}/>
31
+ // }
32
+ // }
33
+ }
@@ -0,0 +1,97 @@
1
+ import {ColumnConfig, EnumItem, FieldBase, FieldConfig} from "./interface";
2
+ import HCDataSource from "./hc-data-source";
3
+
4
+ const SupportInputTypes:Set<string>=new Set<string>();
5
+ SupportInputTypes.add('date-YY');
6
+ SupportInputTypes.add('daterange-YY');
7
+ SupportInputTypes.add('date-M1');
8
+ SupportInputTypes.add('daterange-M1');
9
+ SupportInputTypes.add('date');
10
+ SupportInputTypes.add('daterange');
11
+ SupportInputTypes.add('datetime-HH');
12
+ SupportInputTypes.add('datetimerange-HH');
13
+ SupportInputTypes.add('datetime-mm');
14
+ SupportInputTypes.add('datetimerange-mm');
15
+ SupportInputTypes.add('datetime');
16
+ SupportInputTypes.add('datetimerange');
17
+ SupportInputTypes.add('timestamp');
18
+
19
+
20
+ SupportInputTypes.add('time-HH');
21
+ SupportInputTypes.add('timerange-HH');
22
+ SupportInputTypes.add('time-mm');
23
+ SupportInputTypes.add('timerange-mm');
24
+ SupportInputTypes.add('time');
25
+ SupportInputTypes.add('timerange');
26
+
27
+ SupportInputTypes.add('text');
28
+ SupportInputTypes.add('textarea');
29
+ SupportInputTypes.add('html');
30
+ SupportInputTypes.add('steps');
31
+ SupportInputTypes.add('progress');
32
+ SupportInputTypes.add('password');
33
+ SupportInputTypes.add('preselect');
34
+ SupportInputTypes.add('select');
35
+ SupportInputTypes.add('multiselect');
36
+ SupportInputTypes.add('checkbox');
37
+ SupportInputTypes.add('radio');
38
+ SupportInputTypes.add('caselect');
39
+ SupportInputTypes.add('relation');
40
+ SupportInputTypes.add('file');
41
+ SupportInputTypes.add('picture');
42
+ SupportInputTypes.add('chemstruc');
43
+ SupportInputTypes.add('signature');//签名组件
44
+
45
+ SupportInputTypes.add('decimal');
46
+ SupportInputTypes.add('float');
47
+ SupportInputTypes.add('double');
48
+ SupportInputTypes.add('int');
49
+ SupportInputTypes.add('relselect');
50
+ SupportInputTypes.add('refselect');
51
+
52
+
53
+ SupportInputTypes.add('range');
54
+ SupportInputTypes.add('intrange');
55
+ SupportInputTypes.add('decimalrange');
56
+ SupportInputTypes.add('texttags');
57
+ // SupportInputTypes.add('relation_existion');
58
+ SupportInputTypes.add('entity-select');
59
+ SupportInputTypes.add('table-entity-select');
60
+ SupportInputTypes.add('modal-entity-select');
61
+ SupportInputTypes.add('color');
62
+
63
+ SupportInputTypes.add('hidden');
64
+ function ControlTypeSupportor(){
65
+
66
+ }
67
+ ControlTypeSupportor.isSupport=function(type:string):boolean {
68
+ if(type){
69
+ return SupportInputTypes.has(type);
70
+ }else{
71
+ return false;
72
+ }
73
+
74
+ };
75
+ ControlTypeSupportor.getSupportControlType=function(fieldConfig:FieldBase):string{
76
+ if(this.isSupport(fieldConfig.extControlType)){
77
+ return fieldConfig.extControlType;
78
+ }else if(this.isSupport(fieldConfig.controlType)){
79
+ return fieldConfig.controlType;
80
+ }else{
81
+ return 'text';
82
+ }
83
+ };
84
+
85
+ ControlTypeSupportor.getControlType=function(fieldConfig: FieldConfig, fieldValue: any) {
86
+ let itemType: string;
87
+ itemType = this.getSupportControlType(fieldConfig);
88
+ //对关系属性之文件进行特殊处理
89
+ if (!!fieldValue && typeof (fieldValue) == 'string' && fieldValue.indexOf('@R@') === -1 && itemType === "relselect" && fieldValue.indexOf('download-files/') != -1) {
90
+ itemType = "file";
91
+ }
92
+ return itemType;
93
+ }
94
+
95
+
96
+
97
+ export default ControlTypeSupportor;