aldehyde 0.2.481 → 0.2.482
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/controls/direct-file-view/index.d.ts.map +1 -1
- package/lib/controls/direct-file-view/index.js +4 -4
- package/lib/controls/direct-file-view/index.js.map +1 -1
- package/lib/controls/direct-upload/index.d.ts.map +1 -1
- package/lib/controls/direct-upload/index.js +3 -3
- package/lib/controls/direct-upload/index.js.map +1 -1
- package/lib/controls/entry-control.d.ts +2 -1
- package/lib/controls/entry-control.d.ts.map +1 -1
- package/lib/controls/entry-control.js +10 -0
- package/lib/controls/entry-control.js.map +1 -1
- package/lib/controls/select/index.d.ts +8 -2
- package/lib/controls/select/index.d.ts.map +1 -1
- package/lib/controls/select/index.js +35 -13
- package/lib/controls/select/index.js.map +1 -1
- package/lib/controls/upload-read-excel/index.d.ts +10 -0
- package/lib/controls/upload-read-excel/index.d.ts.map +1 -0
- package/lib/controls/upload-read-excel/index.js +30 -0
- package/lib/controls/upload-read-excel/index.js.map +1 -0
- package/lib/detail/dtmpl.css +5 -0
- package/lib/detail/view/dtmpl-view.d.ts.map +1 -1
- package/lib/detail/view/dtmpl-view.js +12 -2
- package/lib/detail/view/dtmpl-view.js.map +1 -1
- package/lib/draw-canvas-edit/components/asset-bar/index.less +2 -2
- package/lib/draw-canvas-edit/components/main-header/index.d.ts.map +1 -1
- package/lib/draw-canvas-edit/components/main-header/index.js +32 -2
- package/lib/draw-canvas-edit/components/main-header/index.js.map +1 -1
- package/lib/draw-canvas-edit/components/render/components/index.less +61 -0
- package/lib/draw-canvas-edit/components/render/components/workstation-component.d.ts +7 -0
- package/lib/draw-canvas-edit/components/render/components/workstation-component.d.ts.map +1 -1
- package/lib/draw-canvas-edit/components/render/components/workstation-component.js +122 -15
- package/lib/draw-canvas-edit/components/render/components/workstation-component.js.map +1 -1
- package/lib/draw-canvas-edit/components/render/handlers/selection-handlers.d.ts.map +1 -1
- package/lib/draw-canvas-edit/components/render/handlers/selection-handlers.js +19 -5
- package/lib/draw-canvas-edit/components/render/handlers/selection-handlers.js.map +1 -1
- package/lib/draw-canvas-edit/components/render/index.d.ts.map +1 -1
- package/lib/draw-canvas-edit/components/render/index.js +15 -4
- package/lib/draw-canvas-edit/components/render/index.js.map +1 -1
- package/lib/draw-canvas-edit/components/render/tools/asset-tool.d.ts +2 -0
- package/lib/draw-canvas-edit/components/render/tools/asset-tool.d.ts.map +1 -1
- package/lib/draw-canvas-edit/components/render/tools/asset-tool.js +22 -11
- package/lib/draw-canvas-edit/components/render/tools/asset-tool.js.map +1 -1
- package/lib/draw-canvas-edit/components/render/tools/component-factory.js.map +1 -1
- package/lib/draw-canvas-edit/components/render/tools/import-export-tool.d.ts +1 -0
- package/lib/draw-canvas-edit/components/render/tools/import-export-tool.d.ts.map +1 -1
- package/lib/draw-canvas-edit/components/render/tools/import-export-tool.js +35 -22
- package/lib/draw-canvas-edit/components/render/tools/import-export-tool.js.map +1 -1
- package/lib/draw-canvas-edit/components/render/types.d.ts +3 -0
- package/lib/draw-canvas-edit/components/render/types.d.ts.map +1 -1
- package/lib/draw-canvas-edit/components/render/types.js.map +1 -1
- package/lib/draw-canvas-edit/components/setting-form/index.d.ts.map +1 -1
- package/lib/draw-canvas-edit/components/setting-form/index.js +10 -0
- package/lib/draw-canvas-edit/components/setting-form/index.js.map +1 -1
- package/lib/draw-canvas-edit/index.d.ts.map +1 -1
- package/lib/draw-canvas-edit/index.js +5 -2
- package/lib/draw-canvas-edit/index.js.map +1 -1
- package/lib/draw-canvas-view/index.less +7 -0
- package/lib/draw-canvas-view/view.d.ts.map +1 -1
- package/lib/draw-canvas-view/view.js +16 -21
- package/lib/draw-canvas-view/view.js.map +1 -1
- package/lib/form/dtmpl-form.d.ts.map +1 -1
- package/lib/form/dtmpl-form.js +11 -2
- package/lib/form/dtmpl-form.js.map +1 -1
- package/lib/form/field-group-form.d.ts.map +1 -1
- package/lib/form/field-group-form.js +1 -1
- package/lib/form/field-group-form.js.map +1 -1
- package/lib/form/form-Item-group.d.ts +2 -1
- package/lib/form/form-Item-group.d.ts.map +1 -1
- package/lib/form/form-Item-group.js +2 -2
- package/lib/form/form-Item-group.js.map +1 -1
- package/lib/list/card-list/card-list-item.d.ts.map +1 -1
- package/lib/list/card-list/card-list-item.js +3 -2
- package/lib/list/card-list/card-list-item.js.map +1 -1
- package/lib/list/card-list/index.less +1 -1
- package/lib/lowcode-components/carousel/index.js +3 -3
- package/lib/lowcode-components/carousel/index.js.map +1 -1
- package/lib/module/ltmpl-table.d.ts +1 -0
- package/lib/module/ltmpl-table.d.ts.map +1 -1
- package/lib/module/ltmpl-table.js +2 -2
- package/lib/module/ltmpl-table.js.map +1 -1
- package/lib/table/act-table.d.ts.map +1 -1
- package/lib/table/act-table.js +21 -20
- package/lib/table/act-table.js.map +1 -1
- package/lib/table/column/column-builder.d.ts.map +1 -1
- package/lib/table/column/column-builder.js +16 -15
- package/lib/table/column/column-builder.js.map +1 -1
- package/lib/table/column/index.less +22 -0
- package/lib/table/query-table.js +2 -1
- package/lib/table/query-table.js.map +1 -1
- package/lib/table/relation-table.d.ts +1 -1
- package/lib/table/relation-table.d.ts.map +1 -1
- package/lib/table/relation-table.js +5 -24
- package/lib/table/relation-table.js.map +1 -1
- package/lib/tmpl/hc-data-source.d.ts +1 -0
- package/lib/tmpl/hc-data-source.d.ts.map +1 -1
- package/lib/tmpl/hc-data-source.js +9 -0
- package/lib/tmpl/hc-data-source.js.map +1 -1
- package/lib/tmpl/interface.d.ts +5 -0
- package/lib/tmpl/interface.d.ts.map +1 -1
- package/lib/tmpl/interface.js.map +1 -1
- package/package.json +2 -1
- package/src/aldehyde/controls/direct-file-view/index.tsx +5 -4
- package/src/aldehyde/controls/direct-upload/index.tsx +4 -3
- package/src/aldehyde/controls/entry-control.tsx +11 -1
- package/src/aldehyde/controls/select/index.tsx +25 -14
- package/src/aldehyde/controls/upload-read-excel/index.tsx +44 -0
- package/src/aldehyde/detail/dtmpl.css +5 -0
- package/src/aldehyde/detail/view/dtmpl-view.tsx +22 -2
- package/src/aldehyde/draw-canvas-edit/components/asset-bar/index.less +2 -2
- package/src/aldehyde/draw-canvas-edit/components/main-header/index.tsx +33 -2
- package/src/aldehyde/draw-canvas-edit/components/render/components/index.less +61 -0
- package/src/aldehyde/draw-canvas-edit/components/render/components/workstation-component.tsx +131 -15
- package/src/aldehyde/draw-canvas-edit/components/render/handlers/selection-handlers.ts +17 -5
- package/src/aldehyde/draw-canvas-edit/components/render/index.ts +16 -3
- package/src/aldehyde/draw-canvas-edit/components/render/tools/asset-tool.ts +21 -7
- package/src/aldehyde/draw-canvas-edit/components/render/tools/component-factory.ts +1 -1
- package/src/aldehyde/draw-canvas-edit/components/render/tools/import-export-tool.ts +34 -22
- package/src/aldehyde/draw-canvas-edit/components/render/types.ts +3 -0
- package/src/aldehyde/draw-canvas-edit/components/setting-form/index.tsx +12 -0
- package/src/aldehyde/draw-canvas-edit/index.tsx +5 -2
- package/src/aldehyde/draw-canvas-view/index.less +7 -0
- package/src/aldehyde/draw-canvas-view/view.tsx +18 -21
- package/src/aldehyde/form/dtmpl-form.tsx +20 -1
- package/src/aldehyde/form/field-group-form.tsx +6 -5
- package/src/aldehyde/form/form-Item-group.tsx +5 -4
- package/src/aldehyde/list/card-list/card-list-item.tsx +3 -2
- package/src/aldehyde/list/card-list/index.less +1 -1
- package/src/aldehyde/lowcode-components/carousel/index.tsx +3 -3
- package/src/aldehyde/lowcode-components/data.d.ts +1 -0
- package/src/aldehyde/module/ltmpl-table.tsx +3 -2
- package/src/aldehyde/table/act-table.tsx +13 -14
- package/src/aldehyde/table/column/column-builder.tsx +18 -17
- package/src/aldehyde/table/column/index.less +22 -0
- package/src/aldehyde/table/query-table.tsx +1 -1
- package/src/aldehyde/table/relation-table.tsx +6 -21
- package/src/aldehyde/tmpl/hc-data-source.tsx +8 -0
- package/src/aldehyde/tmpl/interface.tsx +5 -0
|
@@ -286,7 +286,7 @@ export default class DtmplForm extends React.PureComponent<
|
|
|
286
286
|
if (dtmplConfig) {
|
|
287
287
|
groups = dtmplConfig.groups;
|
|
288
288
|
}
|
|
289
|
-
|
|
289
|
+
const groupElements = groups.map((item) => {
|
|
290
290
|
if (item.type == "embed") {
|
|
291
291
|
let codeSource = undefined;
|
|
292
292
|
//code 从来源字段里面拿
|
|
@@ -430,11 +430,30 @@ export default class DtmplForm extends React.PureComponent<
|
|
|
430
430
|
dataCode={dtmplData ? dtmplData.code : undefined}
|
|
431
431
|
valueMap={dtmplData ? dtmplData.fieldMap : undefined}
|
|
432
432
|
valueFieldMap={valueFieldMap}
|
|
433
|
+
editStatus={dtmplData?.code ? "changed" : "new"} // 新增或修改状态
|
|
433
434
|
/>}
|
|
434
435
|
</CollapseCard>
|
|
435
436
|
);
|
|
436
437
|
}
|
|
437
438
|
});
|
|
439
|
+
|
|
440
|
+
if (dtmplConfig?.editRactions?.length) { // 关系操作
|
|
441
|
+
const viewRactions = dtmplConfig.editRactions.map(item => {
|
|
442
|
+
return <CollapseCard
|
|
443
|
+
title={item.title}
|
|
444
|
+
key={item.id}
|
|
445
|
+
id={item.id}
|
|
446
|
+
className="hoverable"
|
|
447
|
+
styles={{ header: { background: "#f2f4f5" } }}
|
|
448
|
+
loading={loading}
|
|
449
|
+
>
|
|
450
|
+
<LtmplTable funcMode="common" serverKey={serverKey} sourceId={item.id} mainCode={dtmplData?.code} />
|
|
451
|
+
</CollapseCard>;
|
|
452
|
+
});
|
|
453
|
+
groupElements.push(...viewRactions);
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
return groupElements;
|
|
438
457
|
};
|
|
439
458
|
|
|
440
459
|
onValuesChange = (changedValues, allValues) => {
|
|
@@ -16,7 +16,7 @@ export interface FieldGroupFormProps {
|
|
|
16
16
|
onFinish: (value: DtmplData) => void;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
interface FieldGroupFormStat {}
|
|
19
|
+
interface FieldGroupFormStat { }
|
|
20
20
|
|
|
21
21
|
export default class Form extends React.PureComponent<
|
|
22
22
|
FieldGroupFormProps,
|
|
@@ -29,7 +29,7 @@ export default class Form extends React.PureComponent<
|
|
|
29
29
|
static defaultProps = {
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
async componentDidMount() {}
|
|
32
|
+
async componentDidMount() { }
|
|
33
33
|
|
|
34
34
|
onSubmit = (values: any) => {
|
|
35
35
|
const { dtmplData, fieldGroupConfig } = this.props;
|
|
@@ -87,14 +87,15 @@ export default class Form extends React.PureComponent<
|
|
|
87
87
|
>
|
|
88
88
|
{this.selectRelation()}
|
|
89
89
|
<FormItemGroup
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
maxColsOnRow={fieldGroupConfig && fieldGroupConfig.addOrEditType == "doubleCol" ? 2 : 1}
|
|
91
|
+
dataCode={dtmplData ? dtmplData.code : undefined}
|
|
92
92
|
serverKey={serverKey}
|
|
93
93
|
formRef={formRef}
|
|
94
94
|
nameAttr={"id"}
|
|
95
95
|
fields={fieldGroupConfig ? fieldGroupConfig.fields : undefined}
|
|
96
96
|
valueMap={dtmplData ? dtmplData.fieldMap : {}}
|
|
97
|
-
|
|
97
|
+
editStatus={dtmplData ? dtmplData.editStatus : "new"}
|
|
98
|
+
/>
|
|
98
99
|
</AntdForm>
|
|
99
100
|
</>
|
|
100
101
|
);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { RefObject, useState, useMemo } from "react";
|
|
2
2
|
import { Col, Form, Row, Popconfirm } from "antd";
|
|
3
|
-
import { FieldConfig } from "../tmpl/interface";
|
|
3
|
+
import { FieldConfig, EditStatus } from "../tmpl/interface";
|
|
4
4
|
import EntryControl from "../controls/entry-control";
|
|
5
5
|
import Units from "../units";
|
|
6
6
|
import { FormInstance } from "antd/lib/form/hooks/useForm";
|
|
@@ -12,11 +12,11 @@ const FormItem = Form.Item;
|
|
|
12
12
|
|
|
13
13
|
// 渲染表单项,如果有关联项,则在更改值时弹出确认框,否则直接更改值
|
|
14
14
|
const RenderEntryControl = ({ fieldValue, item, props, translate, getMainCode, ...otherProps }) => {
|
|
15
|
-
const { mainCode, serverKey, dataCode, valueFieldMap } = props;
|
|
15
|
+
const { mainCode, serverKey, dataCode, valueFieldMap, editStatus } = props;
|
|
16
16
|
const { onChange } = otherProps;
|
|
17
17
|
const [isUpdateItem, setIsUpdateItem] = useState<boolean>(false);
|
|
18
18
|
const [value, setValue] = useState<any>(fieldValue);
|
|
19
|
-
const controlProps = { dataCode, serverKey, mainCode: getMainCode(item, mainCode), value: fieldValue, fieldConfig: item, ...otherProps };
|
|
19
|
+
const controlProps = { dataCode, serverKey, mainCode: getMainCode(item, mainCode), value: fieldValue, fieldConfig: item, editStatus, ...otherProps };
|
|
20
20
|
|
|
21
21
|
const popconfirm = useMemo(() => {
|
|
22
22
|
if (!valueFieldMap) {
|
|
@@ -65,7 +65,8 @@ export interface FieldGroupProps {
|
|
|
65
65
|
formRef?: RefObject<FormInstance>;
|
|
66
66
|
dataCode?: string,
|
|
67
67
|
layout?: "horizontal" | "vertical";
|
|
68
|
-
valueFieldMap?: { [key: string]: any } // 表单关联项配置
|
|
68
|
+
valueFieldMap?: { [key: string]: any }; // 表单关联项配置
|
|
69
|
+
editStatus?: EditStatus
|
|
69
70
|
}
|
|
70
71
|
|
|
71
72
|
interface FieldGroupState {
|
|
@@ -19,6 +19,7 @@ const dataKeys = ["primaryColumn", "primaryColumnLabel", "secondColumn", "second
|
|
|
19
19
|
const Index = (props: Props) => {
|
|
20
20
|
const { cardListConfig, item, renderOpt, serverKey, sourceId } = props;
|
|
21
21
|
const { buttons, customViewPagePath, mainCode } = cardListConfig;
|
|
22
|
+
const cardColSpan = Math.trunc(24 / (cardListConfig.colNumOnRow || 2));
|
|
22
23
|
const { translate } = useLocale();
|
|
23
24
|
const [data, setData] = useState({});
|
|
24
25
|
const [detailOpen, setDetailOpen] = useState<boolean>(false);
|
|
@@ -91,8 +92,8 @@ const Index = (props: Props) => {
|
|
|
91
92
|
<div className="card-show-cols">
|
|
92
93
|
<Row gutter={6}>
|
|
93
94
|
{data["cardShowCols"].map((col, index) => // 卡片展示字段是两个,则右侧对齐
|
|
94
|
-
<Col className="card-show-col" span={
|
|
95
|
-
<div className="card-show-col-title">{translate("${" + col.title + "}")}:</div>
|
|
95
|
+
<Col className="card-show-col" span={cardColSpan} key={index} style={data["cardShowCols"].length < 3 && index % 2 ? { justifyContent: "flex-end" } : {}}>
|
|
96
|
+
{cardListConfig?.notDisplayFieldName ? "" : <div className="card-show-col-title">{translate("${" + col.title + "}")}:</div>}
|
|
96
97
|
<div className="card-show-col-value">{col.value || col.value === 0 ? col.element : "-"}</div>
|
|
97
98
|
</Col>)
|
|
98
99
|
}
|
|
@@ -54,7 +54,7 @@ const handleValue = (val: string, ossConfig: OssConfig,) => {
|
|
|
54
54
|
if (!ossConfig) {
|
|
55
55
|
return;
|
|
56
56
|
}
|
|
57
|
-
return
|
|
57
|
+
return `${ossConfig.protocol || "http"}://${ossConfig.bucket}.${ossConfig.endpoint}/${val}`;
|
|
58
58
|
}
|
|
59
59
|
};
|
|
60
60
|
|
|
@@ -104,8 +104,8 @@ const Index = forwardRef((props: ComponentProps, ref: ForwardedRef<ComponentRef>
|
|
|
104
104
|
const { translate } = useLocale();
|
|
105
105
|
|
|
106
106
|
const getOssConfig = (serverKey: string) => {
|
|
107
|
-
const { accessKeyId, accessKeySecret, bucket, endpoint } = ProgramConfig.getExtendServers(serverKey) || {};
|
|
108
|
-
const temObj = { accessKeyId, accessKeySecret, bucket, endpoint }
|
|
107
|
+
const { accessKeyId, accessKeySecret, bucket, endpoint, protocol } = ProgramConfig.getExtendServers(serverKey) || {};
|
|
108
|
+
const temObj = { accessKeyId, accessKeySecret, bucket, endpoint, protocol }
|
|
109
109
|
return temObj;
|
|
110
110
|
}
|
|
111
111
|
|
|
@@ -38,6 +38,7 @@ export interface LtmplTableProps {
|
|
|
38
38
|
showAggregates?: boolean; // 是否显示统计卡片数据
|
|
39
39
|
deleteCallback?: (val: object) => void; // 删除回调
|
|
40
40
|
loadDataCallback?: (val: object[]) => void; // 请求数据回调函数
|
|
41
|
+
defRowCardCount?: number; // 卡片展示模式-默认行卡片数量
|
|
41
42
|
}
|
|
42
43
|
|
|
43
44
|
export interface LtmplTableState {
|
|
@@ -263,7 +264,7 @@ class LtmplTable extends React.PureComponent<LtmplTableProps, LtmplTableState> {
|
|
|
263
264
|
tip, title, collapsible,
|
|
264
265
|
initCollapse, doCustomEdit, doCustomCreate,
|
|
265
266
|
serverKey, rowOperatable, readOnly, defShowType, showPagination, showAggregates, deleteCallback,
|
|
266
|
-
loadDataCallback
|
|
267
|
+
loadDataCallback, defRowCardCount
|
|
267
268
|
} = this.props;
|
|
268
269
|
const { translate } = this.context;
|
|
269
270
|
|
|
@@ -286,7 +287,7 @@ class LtmplTable extends React.PureComponent<LtmplTableProps, LtmplTableState> {
|
|
|
286
287
|
criteriaData={criteriaData}
|
|
287
288
|
customEditable={doCustomEdit ? true : false}
|
|
288
289
|
customCreatable={doCustomCreate ? true : false}
|
|
289
|
-
ltmplConfig={ltmplConfigRes.ltmplConfig}
|
|
290
|
+
ltmplConfig={defRowCardCount ? { ...ltmplConfigRes.ltmplConfig, rowCardCount: defRowCardCount } : ltmplConfigRes.ltmplConfig}
|
|
290
291
|
defShowType={defShowType}
|
|
291
292
|
showPagination={showPagination}
|
|
292
293
|
showAggregates={showAggregates}
|
|
@@ -647,7 +647,7 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
|
|
|
647
647
|
changeViewModel = (viewModels) => {
|
|
648
648
|
const { setUserPageConfig } = this.props;
|
|
649
649
|
const { hiddenColIds, hiddenRowCodes, sortedColConfigs, viewModels: oldViewModels } = this.state;
|
|
650
|
-
setUserPageConfig({ viewModels });
|
|
650
|
+
setUserPageConfig && setUserPageConfig({ viewModels });
|
|
651
651
|
this.setState({ viewModels }, () => {
|
|
652
652
|
if (viewModels.length && viewModels.includes("ganttChart") !== oldViewModels.includes("ganttChart")) {
|
|
653
653
|
this.loadData(hiddenColIds, hiddenRowCodes, sortedColConfigs); // 前后选择是否存在甘特图,刷新数据
|
|
@@ -658,7 +658,7 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
|
|
|
658
658
|
changeHiddenColumns = (hiddenColIds: string[]) => {
|
|
659
659
|
const { setUserPageConfig } = this.props;
|
|
660
660
|
this.setState({ showL2Chart: false, hiddenColIds });
|
|
661
|
-
setUserPageConfig({ hiddenColIds });
|
|
661
|
+
setUserPageConfig && setUserPageConfig({ hiddenColIds });
|
|
662
662
|
};
|
|
663
663
|
|
|
664
664
|
doSelectedAction = async (actionId: string, codes, params: object) => {
|
|
@@ -933,14 +933,14 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
|
|
|
933
933
|
const { setUserPageConfig } = this.props;
|
|
934
934
|
this.setState({ sortedColConfigs });
|
|
935
935
|
const sortedColIds = sortedColConfigs.map(r => r.id);
|
|
936
|
-
setUserPageConfig({ sortedColIds });
|
|
936
|
+
setUserPageConfig && setUserPageConfig({ sortedColIds });
|
|
937
937
|
};
|
|
938
938
|
|
|
939
939
|
// 更新本地缓存列宽度
|
|
940
940
|
onChangeResize = (colResize: { [key: string]: number }) => {
|
|
941
941
|
const { setUserPageConfig, userPageConfig } = this.props;
|
|
942
942
|
const oldColResize = userPageConfig?.colResize || {};
|
|
943
|
-
setUserPageConfig({ colResize: { ...oldColResize, ...colResize } });
|
|
943
|
+
setUserPageConfig && setUserPageConfig({ colResize: { ...oldColResize, ...colResize } });
|
|
944
944
|
}
|
|
945
945
|
|
|
946
946
|
getAddTmplButton = (classAddConfigs: ClassAddConfig[]) => {
|
|
@@ -1546,7 +1546,7 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
|
|
|
1546
1546
|
);
|
|
1547
1547
|
|
|
1548
1548
|
let { buttons, extDisplayConfig, rowCardCount, customViewPagePath, splitTabShowType } = ltmplConfig;
|
|
1549
|
-
let { primaryColumn, primaryColumnLabel, secondColumn, secondColumnLabel, mainPicture, mainPictureLabel, labelColumn, cardShowCols } = extDisplayConfig;
|
|
1549
|
+
let { primaryColumn, primaryColumnLabel, secondColumn, secondColumnLabel, mainPicture, mainPictureLabel, labelColumn, cardShowCols, notDisplayFieldName, colNumOnRow } = extDisplayConfig;
|
|
1550
1550
|
let displayCriteriaCard: boolean = false;
|
|
1551
1551
|
if (funcMode == "simple" || funcMode == "common") {
|
|
1552
1552
|
displayCriteriaCard = false;
|
|
@@ -1607,7 +1607,7 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
|
|
|
1607
1607
|
groupIColumns={ltmplConfig.groupIColumns}
|
|
1608
1608
|
doSearch={this.actTableDoSearch}
|
|
1609
1609
|
sortColumnData={sortColumnData}
|
|
1610
|
-
cardListConfig={{ primaryColumn, primaryColumnLabel, secondColumn, secondColumnLabel, mainPicture, mainPictureLabel, labelColumn, cardShowCols, rowCardCount, buttons, customViewPagePath, mainCode }}
|
|
1610
|
+
cardListConfig={{ primaryColumn, primaryColumnLabel, secondColumn, secondColumnLabel, mainPicture, mainPictureLabel, labelColumn, cardShowCols, rowCardCount, buttons, customViewPagePath, mainCode, notDisplayFieldName, colNumOnRow }}
|
|
1611
1611
|
ltmplConfig={ltmplConfig}
|
|
1612
1612
|
showView={showView}
|
|
1613
1613
|
showPagination={showPagination}
|
|
@@ -1644,10 +1644,10 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
|
|
|
1644
1644
|
""
|
|
1645
1645
|
)}
|
|
1646
1646
|
<div className="actTable">
|
|
1647
|
-
|
|
1648
|
-
<
|
|
1649
|
-
{
|
|
1650
|
-
collapsible ? null : (
|
|
1647
|
+
{["complete", "common"].includes(funcMode) ?
|
|
1648
|
+
<Row>
|
|
1649
|
+
<Col span={24}>
|
|
1650
|
+
{collapsible ? null : (
|
|
1651
1651
|
<span>
|
|
1652
1652
|
{ltmplConfig.header ? (
|
|
1653
1653
|
<div
|
|
@@ -1667,10 +1667,9 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
|
|
|
1667
1667
|
<p className="fr" style={{ marginBottom: "4px" }}>{this.renderHeaderButtons()}</p>
|
|
1668
1668
|
</>}
|
|
1669
1669
|
</span>
|
|
1670
|
-
)
|
|
1671
|
-
|
|
1672
|
-
</
|
|
1673
|
-
</Row>
|
|
1670
|
+
)}
|
|
1671
|
+
</Col>
|
|
1672
|
+
</Row> : null}
|
|
1674
1673
|
{(<Row><Col span={24}><Layout hasSider style={{ backgroundColor: "#fff" }}>
|
|
1675
1674
|
<Sider
|
|
1676
1675
|
width={ltreeEntitySelect ? 260 : 0}
|
|
@@ -2,7 +2,7 @@ import React from "react";
|
|
|
2
2
|
import { ActionRenderProps, ColumnConfig, DtmplData, LtmplConfig, FieldConfig, CustomButton, CQueryConfig } from "../../tmpl/interface";
|
|
3
3
|
import TableUnits from "../table-util";
|
|
4
4
|
import SupportInputTypes from "../../tmpl/control-type-supportor";
|
|
5
|
-
import { Button, Popconfirm, Popover, Space, Tooltip, Form as AntdForm } from "antd";
|
|
5
|
+
import { Button, Popconfirm, Popover, Space, Tooltip, Form as AntdForm, theme } from "antd";
|
|
6
6
|
import { SortableHandle } from "react-sortable-hoc";
|
|
7
7
|
import {
|
|
8
8
|
AlignLeftOutlined, CopyOutlined, DeleteOutlined,
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
FormOutlined,
|
|
13
13
|
KeyOutlined,
|
|
14
14
|
MenuOutlined, QuestionCircleOutlined, PlaySquareOutlined,
|
|
15
|
-
SettingOutlined
|
|
15
|
+
SettingOutlined, UpSquareFilled, DownSquareFilled
|
|
16
16
|
} from "@ant-design/icons";
|
|
17
17
|
import ActionUtils from "../../controls/action/utils";
|
|
18
18
|
import ViewButton from "../../detail/button/view-button";
|
|
@@ -31,20 +31,11 @@ import "./index.less";
|
|
|
31
31
|
|
|
32
32
|
const FormItem = AntdForm.Item;
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
let type = item.rowEditType;
|
|
40
|
-
if (type === "editable" || (type === "editonly" && !isNew) || (type === "addonly" && isNew)) {
|
|
41
|
-
return false;
|
|
42
|
-
} else if (type === "readonly") {
|
|
43
|
-
return true;
|
|
44
|
-
}
|
|
45
|
-
return true;
|
|
46
|
-
}
|
|
47
|
-
|
|
34
|
+
// 负责提取 token
|
|
35
|
+
const ThemeToken = (props) => {
|
|
36
|
+
const { token } = theme.useToken();
|
|
37
|
+
return props.children(token); // 使用 render props 模式
|
|
38
|
+
};
|
|
48
39
|
|
|
49
40
|
interface ColumnBuilderProps extends ActionRenderProps {
|
|
50
41
|
ltmplConfig: LtmplConfig,
|
|
@@ -127,6 +118,15 @@ export default {
|
|
|
127
118
|
const order = this.handleColumnOrder(column["dataIndex"], sortColumns);
|
|
128
119
|
if (item.sortable) {
|
|
129
120
|
TableUnits.sort(column, itemType, order);
|
|
121
|
+
} else if (item.pageSortable) {
|
|
122
|
+
// column["sorter"] = (a, b) => a[column["dataIndex"]] - b[column["dataIndex"]];
|
|
123
|
+
// column["sortIcon"] = ({ sortOrder }) =>
|
|
124
|
+
// <ThemeToken>
|
|
125
|
+
// {(token) => <span className="pageSortable" >
|
|
126
|
+
// <UpSquareFilled className="ascend" style={sortOrder === 'ascend' ? { color: token.colorPrimary } : {}} />
|
|
127
|
+
// <DownSquareFilled className="descend" style={sortOrder === 'descend' ? { color: token.colorPrimary } : {}} />
|
|
128
|
+
// </span>}
|
|
129
|
+
// </ThemeToken>
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
132
|
}
|
|
@@ -228,8 +228,9 @@ export default {
|
|
|
228
228
|
initialValue={record[item.id]}>
|
|
229
229
|
<EntryControl
|
|
230
230
|
serverKey={serverKey}
|
|
231
|
-
fieldConfig={{ ...item
|
|
231
|
+
fieldConfig={{ ...item }}
|
|
232
232
|
value={record[item.id]}
|
|
233
|
+
editStatus={record.editStatus}
|
|
233
234
|
/>
|
|
234
235
|
</FormItem> :
|
|
235
236
|
<div className={record['dataType'] ? record['dataType'] === "小计" ? "xiaoji" : 'heji' : ""}>
|
|
@@ -61,4 +61,26 @@
|
|
|
61
61
|
.column-action {
|
|
62
62
|
display: block;
|
|
63
63
|
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.pageSortable {
|
|
67
|
+
display: inline-flex;
|
|
68
|
+
flex-direction: column;
|
|
69
|
+
margin-left: 4;
|
|
70
|
+
|
|
71
|
+
.ascend,
|
|
72
|
+
.descend {
|
|
73
|
+
font-size: var(--ant-font-size-icon);
|
|
74
|
+
color: var(--ant-table-header-icon-color);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.ant-table-column-sorters:hover {
|
|
79
|
+
.pageSortable {
|
|
80
|
+
|
|
81
|
+
.ascend,
|
|
82
|
+
.descend {
|
|
83
|
+
color: var(--ant-table-header-icon-hover-color);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
64
86
|
}
|
|
@@ -355,7 +355,7 @@ class QueryTable extends React.PureComponent<QueryTableProps, QueryTableStat> {
|
|
|
355
355
|
|
|
356
356
|
onChange(pagination, filters, sorter, extra) {
|
|
357
357
|
console.log("params", pagination, filters, sorter, extra);
|
|
358
|
-
if (extra.action === "sort") {
|
|
358
|
+
if (extra.action === "sort" && typeof sorter.column?.sorter !== "function") { // 非函数排序处理
|
|
359
359
|
let new_sort_serial_number = new Date().getTime();
|
|
360
360
|
if (new_sort_serial_number - this.sort_serial_number < 2000) {
|
|
361
361
|
const { translate } = this.context;
|
|
@@ -158,24 +158,6 @@ class RelationTable extends React.PureComponent<
|
|
|
158
158
|
return dataSource;
|
|
159
159
|
};
|
|
160
160
|
|
|
161
|
-
isDisabled = (record: DtmplData, item: FieldConfig) => {
|
|
162
|
-
if (!item.rowEditType) {
|
|
163
|
-
return false;
|
|
164
|
-
}
|
|
165
|
-
let isNew: boolean = record.editStatus && record.editStatus == "new";
|
|
166
|
-
let type = item.rowEditType;
|
|
167
|
-
if (type == "editable") {
|
|
168
|
-
return false;
|
|
169
|
-
} else if (type == "readonly") {
|
|
170
|
-
return true;
|
|
171
|
-
} else if (type == "editonly" && !isNew) {
|
|
172
|
-
return false;
|
|
173
|
-
} else if (type == "addonly" && isNew) {
|
|
174
|
-
return false;
|
|
175
|
-
}
|
|
176
|
-
return true;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
161
|
buildColumns = () => {
|
|
180
162
|
const { viewOrEdit, fieldGroupConfig, serverKey, parentFormInstance } = this.props;
|
|
181
163
|
const {
|
|
@@ -211,7 +193,7 @@ class RelationTable extends React.PureComponent<
|
|
|
211
193
|
}
|
|
212
194
|
item.baseCriteria = {
|
|
213
195
|
...item.baseCriteria,
|
|
214
|
-
"secondCriterion": parentFormInstance
|
|
196
|
+
"secondCriterion": parentFormInstance?.getFieldValue?.(item.relValueField.id)
|
|
215
197
|
};
|
|
216
198
|
item.configChanged = true;
|
|
217
199
|
}
|
|
@@ -224,8 +206,9 @@ class RelationTable extends React.PureComponent<
|
|
|
224
206
|
initialValue={record[item.id]}>
|
|
225
207
|
<EntryControl
|
|
226
208
|
serverKey={serverKey}
|
|
227
|
-
fieldConfig={{ ...item
|
|
209
|
+
fieldConfig={{ ...item }}
|
|
228
210
|
value={record[item.id]}
|
|
211
|
+
editStatus={record.editStatus}
|
|
229
212
|
/></FormItem> :
|
|
230
213
|
<ViewControl
|
|
231
214
|
serverKey={serverKey}
|
|
@@ -857,6 +840,8 @@ class RelationTable extends React.PureComponent<
|
|
|
857
840
|
addOrEditType == "tableRow" ?
|
|
858
841
|
<>
|
|
859
842
|
<Button
|
|
843
|
+
styles={{ root: { marginBottom: "10px" } }}
|
|
844
|
+
disabled={buttonDisabled}
|
|
860
845
|
onClick={() => this.addNewRow(undefined)}>{translate("${添加一行}")}</Button>
|
|
861
846
|
{batchAddFileField ?
|
|
862
847
|
<EntryControl value={uploadingFiles} onChange={this.uploadFiles}
|
|
@@ -918,7 +903,7 @@ class RelationTable extends React.PureComponent<
|
|
|
918
903
|
""
|
|
919
904
|
)}
|
|
920
905
|
{fieldGroupConfig.min && (!value || value.length <= 0) ? (
|
|
921
|
-
<Text style={{ color: "red" }}>
|
|
906
|
+
<Text style={{ color: "red", display: 'inline-block', marginBottom: "10px" }}>
|
|
922
907
|
{translate("${请选择或添加}")}
|
|
923
908
|
{translate("${" + fieldGroupConfig.title + "}")}
|
|
924
909
|
</Text>
|
|
@@ -369,6 +369,14 @@ HCDataSource.getEnums = function (mstrucId: string): EnumItem[] {
|
|
|
369
369
|
return enumMap.get(mstrucId);
|
|
370
370
|
};
|
|
371
371
|
|
|
372
|
+
// 获取枚举,缓存没有则请求
|
|
373
|
+
HCDataSource.getSelectEnums = async function (serverKey: string, mstrucId: string): Promise<EnumItem[]> {
|
|
374
|
+
if (!enumMap.has(mstrucId)) {
|
|
375
|
+
await loadEnum(serverKey, [mstrucId]);
|
|
376
|
+
}
|
|
377
|
+
return enumMap.get(mstrucId);
|
|
378
|
+
};
|
|
379
|
+
|
|
372
380
|
HCDataSource.getEnumsValueMap = function (
|
|
373
381
|
mstrucId: string
|
|
374
382
|
): Map<string, string> {
|
|
@@ -63,6 +63,8 @@ export interface CardListConfig {
|
|
|
63
63
|
buttons?: string[];
|
|
64
64
|
customViewPagePath?: string;
|
|
65
65
|
mainCode?: string;
|
|
66
|
+
notDisplayFieldName?: boolean;
|
|
67
|
+
colNumOnRow?: number;
|
|
66
68
|
}
|
|
67
69
|
|
|
68
70
|
export interface QueryTableProps extends ReportTableProps {
|
|
@@ -459,6 +461,7 @@ export interface FieldConfig extends FieldBase {
|
|
|
459
461
|
defaultDtmplData?: DtmplData;
|
|
460
462
|
optionCodeColId?: string;
|
|
461
463
|
sortable?: boolean;
|
|
464
|
+
pageSortable?: boolean; // 页内排序
|
|
462
465
|
itemBreakLine?: boolean;
|
|
463
466
|
configChanged?: boolean;
|
|
464
467
|
rowEditType?: "editable" | "readonly" | "editonly" | "addonly";
|
|
@@ -635,6 +638,8 @@ export interface LtmplConfig extends SelectConfig {
|
|
|
635
638
|
mainPictureLabel?: ColumnConfig;
|
|
636
639
|
labelColumn?: ColumnConfig;
|
|
637
640
|
cardShowCols?: ColumnConfig[];
|
|
641
|
+
notDisplayFieldName?: boolean;
|
|
642
|
+
colNumOnRow?: number; // 卡片展示字段每行列数
|
|
638
643
|
};
|
|
639
644
|
rowCardCount?: number;
|
|
640
645
|
defaultDtmplData?: DtmplData;
|