Commit 52d5c1d6 by zhaochengxiang

非结构化字段

parent 1e8a3a93
......@@ -420,4 +420,8 @@ export function* fillRelationDisplayInfo(payload) {
export function* getBusinessColumns(payload) {
return yield call(service.getBusinessColumns, payload);
}
export function* saveBusinessColumns(payload) {
return yield call(service.saveBusinessColumns, payload);
}
\ No newline at end of file
......@@ -427,4 +427,8 @@ export function fillRelationDisplayInfo(payload) {
export function getBusinessColumns(payload) {
return GetJSON("/dataassetmanagertest/dataAssetColumnApi/listBusinessColumnsByDataAssetId", payload)
}
export function saveBusinessColumns(payload) {
return PostJSON("/dataassetmanagertest/dataAssetColumnApi/saveBusinessColumnsByDataAssetId", payload)
}
\ No newline at end of file
......@@ -71,21 +71,38 @@ const AssetAction = (props) => {
const app = useContext(AppContext);
const uploadRef = useRef(undefined);
const [columnForm] = Form.useForm()
const relationAssetsRef = useRef();
const businessCols = [
{
title: '英文名称',
title: <span>
<span style={{
marginRight: 4,
color: '#ff4d4f',
}}>*</span>
英文名称
</span>,
dataIndex: 'enName',
ellipsis: true,
render: (text, _, index) => <MetadataColumnEditableItem
value={text}
isEdit={isMetadataEdit}
terms={terms}
onChange={(e) => {
onMetadataColumnEditableItemChange(e.target.value, 'enName', index)
}}
/>
render: (text, record, index) => {
columnForm?.setFieldsValue({ [`column${index}`]: text })
return (
<Form.Item name={`column${index}`}
rules={[{ required: true, message: '请填写英文名称!' }]}
style={{ marginBottom: 0 }}
>
<MetadataColumnEditableItem
value={text}
isEdit={isMetadataEdit}
terms={terms}
onChange={(e) => {
onMetadataColumnEditableItemChange(e.target.value, 'enName', index)
}}
/>
</Form.Item>
)
}
},
{
title: '中文名称',
......@@ -149,6 +166,10 @@ const AssetAction = (props) => {
}, [assets])
useEffect(() => {
getMetadataAttributes()
}, [assets])
useEffect(() => {
if (permissionId) {
getPermission();
}
......@@ -382,8 +403,6 @@ const AssetAction = (props) => {
const metadataIndex = data?.elements?.findIndex(item => item.name === '资产项');
getMetadataAttributes();
setElements(data?.elements||[]);
onElementsChange && onElementsChange(data?.elements||[]);
......@@ -876,27 +895,44 @@ const AssetAction = (props) => {
}}>
取消
</Button>
<Button onClick={() => {
if ((modifyMetadataColumnList??[]).length === 0) {
setMetadataEdit(false)
return
<Button onClick={ async () => {
try {
await columnForm?.validateFields()
setModifyMetadataColumnList(prev => {
return [{
}, ...prev]
})
} catch (errInfo) {
}
}}>
新增
</Button>
<Button onClick={async () => {
try {
await columnForm?.validateFields()
setLoadingMetadataColumnList(true)
dispatch({
type: 'assetmanage.saveBusinessColumns',
payload: {
params: {
dataAssetId: assets?.id,
},
data: modifyMetadataColumnList,
},
callback: () => {
setLoadingMetadataColumnList(false)
setMetadataEdit(false)
getMetadataAttributes()
},
error: () => {
setLoadingMetadataColumnList(false)
}
})
} catch (errInfo) {
setLoadingMetadataColumnList(true)
dispatch({
type: 'assetmanage.batchUpdateAttributes',
payload: {
data: modifyMetadataColumnList
},
callback: () => {
setLoadingMetadataColumnList(false)
setMetadataEdit(false)
getMetadataAttributes()
},
error: () => {
setLoadingMetadataColumnList(false)
}
})
}
}}>
保存
</Button>
......@@ -910,29 +946,31 @@ const AssetAction = (props) => {
</React.Fragment>
}
</Space>
<Table
className='mt-3'
loading={loadingMetadataColumnList}
columns={businessCols??[]}
rowKey='_id'
dataSource={tableData||[]}
pagination={{
position: ['bottomLeft'],
size: 'small',
total: (metadataColumnList||[]).length,
showTotal: (total) => `${total}`,
showSizeChanger: true,
current: pageNum,
pageSize,
onChange: (_pageNum, _pageSize) => {
setPagination({ pageNum: _pageNum||1, pageSize: _pageSize || 20 });
},
onShowSizeChange: (_pageNum, _pageSize) => {
setPagination({ pageNum: _pageNum||1, pageSize: _pageSize || 20 });
},
}}
/>
<Form form={columnForm}>
<Table
className='mt-3'
loading={loadingMetadataColumnList}
columns={businessCols??[]}
rowKey='_id'
dataSource={tableData||[]}
pagination={{
position: ['bottomLeft'],
size: 'small',
total: (metadataColumnList||[]).length,
showTotal: (total) => `${total}`,
showSizeChanger: true,
current: pageNum,
pageSize,
onChange: (_pageNum, _pageSize) => {
setPagination({ pageNum: _pageNum||1, pageSize: _pageSize || 20 });
},
onShowSizeChange: (_pageNum, _pageSize) => {
setPagination({ pageNum: _pageNum||1, pageSize: _pageSize || 20 });
},
}}
/>
</Form>
<div>
<Divider orientation='left'>关联资产</Divider>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment