Commit d74e855d by fanyj

tijiao

parent 29645d31
...@@ -31,8 +31,6 @@ const LeftTreePanel:React.FC<panelprops>=(props)=>{ ...@@ -31,8 +31,6 @@ const LeftTreePanel:React.FC<panelprops>=(props)=>{
} }
} }
console.log('styles',styles)
return( return(
<div className={styles.main} > <div className={styles.main} >
<div className={`${ styles.left}`} style={getStyle()}> <div className={`${ styles.left}`} style={getStyle()}>
......
...@@ -26,6 +26,8 @@ import RelationAssets from './asset-relation-assets'; ...@@ -26,6 +26,8 @@ import RelationAssets from './asset-relation-assets';
import './AssetAction.less'; import './AssetAction.less';
import MatchMetaInfo from './MatchMetaInfo'; import MatchMetaInfo from './MatchMetaInfo';
import { useGetModalInfoAndAction } from '@/hooks/common';
import AssetsCompareModal from './AssetsCompareModal';
const AssetAction = React.forwardRef(function (props, ref) { const AssetAction = React.forwardRef(function (props, ref) {
const { id, dirId, action, terms, onChange, reference, readonly = false, permissionId, catalog, template } = props; const { id, dirId, action, terms, onChange, reference, readonly = false, permissionId, catalog, template } = props;
...@@ -75,6 +77,7 @@ const AssetAction = React.forwardRef(function (props, ref) { ...@@ -75,6 +77,7 @@ const AssetAction = React.forwardRef(function (props, ref) {
const uploadRef = useRef(undefined); const uploadRef = useRef(undefined);
const [columnForm] = Form.useForm() const [columnForm] = Form.useForm()
const relationAssetsRef = useRef(); const relationAssetsRef = useRef();
const comparemodal = useGetModalInfoAndAction()
const [form] = Form.useForm(); const [form] = Form.useForm();
...@@ -675,6 +678,10 @@ const AssetAction = React.forwardRef(function (props, ref) { ...@@ -675,6 +678,10 @@ const AssetAction = React.forwardRef(function (props, ref) {
} }
} }
const saveMetaPath=(pathinfo)=>{
}
const onFullScreenClick = () => { const onFullScreenClick = () => {
setFullScreen(!fullScreen); setFullScreen(!fullScreen);
} }
...@@ -825,7 +832,7 @@ const AssetAction = React.forwardRef(function (props, ref) { ...@@ -825,7 +832,7 @@ const AssetAction = React.forwardRef(function (props, ref) {
<Button onClick={onActionButtonClick} disabled={assets?.existDraft}>编辑</Button> <Button onClick={onActionButtonClick} disabled={assets?.existDraft}>编辑</Button>
</Tooltip> : <React.Fragment> </Tooltip> : <React.Fragment>
<Button onClick={onCancelButtonClick}>取消</Button> <Button onClick={onCancelButtonClick}>取消</Button>
<Button onClick={onActionButtonClick}>{(reference===AssetDraftReference||!needSaveAsDraft)?'保存':'保存草稿'}</Button> <Button loading={confirmLoading} onClick={onActionButtonClick}>{(reference===AssetDraftReference||!needSaveAsDraft)?'保存':'保存草稿'}</Button>
</React.Fragment> </React.Fragment>
} }
</React.Fragment> </React.Fragment>
...@@ -941,9 +948,19 @@ const AssetAction = React.forwardRef(function (props, ref) { ...@@ -941,9 +948,19 @@ const AssetAction = React.forwardRef(function (props, ref) {
</Form> </Form>
</Spin> </Spin>
<MatchMetaInfo /> <MatchMetaInfo
item={assets} reference={reference} AssetDraftReference={AssetDraftReference} getAsset={getAsset}
dirId={dirId} metadataId={metadataId} needSaveAsDraft={needSaveAsDraft}
/>
<div> <div>
<div style={{display:'flex',justifyContent:'space-between',alignItems:'center',gap:10}}>
<div style={{flex:1}}>
<Divider orientation='left'>字段级资源目录信息</Divider> <Divider orientation='left'>字段级资源目录信息</Divider>
</div>
<Button size='small' onClick={()=>{comparemodal.openModal()}}>对比</Button>
</div>
{ {
isStructured ? <Table isStructured ? <Table
className='mt-3' className='mt-3'
...@@ -1019,6 +1036,7 @@ const AssetAction = React.forwardRef(function (props, ref) { ...@@ -1019,6 +1036,7 @@ const AssetAction = React.forwardRef(function (props, ref) {
</React.Fragment> </React.Fragment>
} }
</div> </div>
<AssetsCompareModal visible={comparemodal.visible} item={assets} onCancel={()=>{comparemodal.cancelModal()}} />
{contextHolder} {contextHolder}
</div> </div>
) )
......
import { Drawer } from "antd"
import React from "react"
const AssetsCompareModal:React.FC<any>=(props)=>{
const {visible,onCancel} = props
return(
<Drawer
title="资源项对比"
visible={visible}
width={'80%'}
onClose={onCancel}
>
</Drawer>
)
}
export default AssetsCompareModal
\ No newline at end of file
import React from "react" import React, { useState } from "react"
import {Divider,Descriptions,Tooltip,Drawer, Space, Button} from "antd" import {Divider,Descriptions,Tooltip,Drawer, Space, Button} from "antd"
import {SettingOutlined} from "@ant-design/icons" import {SettingOutlined} from "@ant-design/icons"
import { useGetModalInfoAndAction } from "../../../../hooks/common" import { useGetModalInfoAndAction } from "../../../../hooks/common"
import SelectMeta from "@/view/meta/selectmeta/SelectMeta" import SelectMeta from "@/view/meta/selectmeta/SelectMeta"
import { pageUtil } from "@/utils" import { pageUtil } from "@/utils"
import { dispatch } from '../../../../model';
import { highlightSearchContentByTerms, showMessage, paginate, isPostAsset } from '../../../../util';
const MatchMetaInfo:React.FC<any>=()=>{ const MatchMetaInfo:React.FC<any>=(props)=>{
const {item,reference,AssetDraftReference,getAsset,dirId,metadataId,needSaveAsDraft} = props
const selectmodal = useGetModalInfoAndAction() const selectmodal = useGetModalInfoAndAction()
const bodyheight = pageUtil.getBodyHeight() const bodyheight = pageUtil.getBodyHeight()
const [selectData,setSelectData] = useState({
metadataId:'',
metadataPath:''
})
const [confirmLoading,setConfirmLoading] = useState(false)
const openSelect=()=>{ const openSelect=()=>{
console.log('item')
selectmodal.openModal() selectmodal.openModal()
} }
console.log(selectmodal) const selectMeta=(data:any,systemmap)=>{
const paths = data.namePathList;
let temp = [...paths];
temp.shift();
let system:any = null;
try {
let sys = data.sysList
system = Number(sys[0])
let systemmsg = systemmap[system]
let owner = systemmsg.catalogInfo;
let templist = [owner.catalogName,systemmsg.scopeName]
temp = [...templist,...temp]
} catch (error) {
console.log(error)
}
setSelectData({metadataId:data._id,metadataPath:temp.join('/')})
}
const saveItem=()=>{
if(selectData.metadataId){
setConfirmLoading(true);
if(reference===AssetDraftReference){
dispatch({
type: 'assetmanage.updateDraft',
payload: {
params: {
isAdmin: true,
},
data:{...item,...selectData},
},
callback: () => {
setConfirmLoading(false);
getAsset?.();
showMessage("success","修改成功");
selectmodal.cancelModal()
},
error: () => {
setConfirmLoading(false);
}
})
}else{
let params = {
dirId,
metadataId: metadataId??'',
operation: 'change',
}
dispatch({
type: needSaveAsDraft?'assetmanage.saveAsDraft':'assetmanage.addOrUpdateDataAsset',
payload: {
params,
data:{...item,...selectData},
},
callback: () => {
setConfirmLoading(false);
getAsset?.();
showMessage("success","修改成功");
selectmodal.cancelModal()
},
error: () => {
setConfirmLoading(false);
}
})
}
// if (reference === AssetDraftReference) {
// let data = action==='add' ? { elements: newElements } : { ...assets, elements: newElements }
// data = {...data, businessRelations: relationAssetsRef.current?.assets, businessColumns: modifyMetadataColumnList}
// dispatch({
// type: 'assetmanage.updateDraft',
// payload: {
// params: {
// isAdmin: true,
// },
// data,
// },
// callback: () => {
// setConfirmLoading(false);
// setCurrentAction('detail');
// getAsset();
// showMessage("success",(action==='add')?"新增成功":"修改成功");
// onChange && onChange();
// },
// error: () => {
// setConfirmLoading(false);
// }
// })
// } else {
// let params = {
// dirId,
// metadataId: metadataId??'',
// operation: 'change',
// }
// let data = action==='add' ? { elements: newElements } : { ...assets, elements: newElements }
// data = {...data, businessRelations: relationAssetsRef.current?.assets, businessColumns: modifyMetadataColumnList}
// dispatch({
// type: needSaveAsDraft?'assetmanage.saveAsDraft':'assetmanage.addOrUpdateDataAsset',
// payload: {
// params,
// data,
// },
// callback: () => {
// setConfirmLoading(false);
// setCurrentAction('detail');
// getAsset();
// showMessage("success",(action==='add')?"新增成功":"修改成功");
// onChange && onChange();
// },
// error: () => {
// setConfirmLoading(false);
// }
// })
// }
// } catch (errInfo) {
// console.log('Validate Failed:', errInfo);
// showMessage('warn', '请完成资源必填项')
// }
}
}
return( return(
<div> <div>
...@@ -27,7 +157,7 @@ const MatchMetaInfo:React.FC<any>=()=>{ ...@@ -27,7 +157,7 @@ const MatchMetaInfo:React.FC<any>=()=>{
> >
<div className='flex' style={{ alignItems: 'center' }}> <div className='flex' style={{ alignItems: 'center' }}>
<div style={{ flex: 1 }}> <div style={{ flex: 1 }}>
6666 {item?.metadataPath}
</div> </div>
<div style={{ flex: '0 0 auto', marginLeft: 10, width: 16 }}> <div style={{ flex: '0 0 auto', marginLeft: 10, width: 16 }}>
<Tooltip placement="left" title={'关联元数据'}> <Tooltip placement="left" title={'关联元数据'}>
...@@ -44,14 +174,15 @@ const MatchMetaInfo:React.FC<any>=()=>{ ...@@ -44,14 +174,15 @@ const MatchMetaInfo:React.FC<any>=()=>{
onClose={()=>{ onClose={()=>{
selectmodal.cancelModal() selectmodal.cancelModal()
}} }}
destroyOnClose
> >
<div style={{height:bodyheight-140}}> <div style={{height:bodyheight-150}}>
<SelectMeta height={bodyheight-140} /> <SelectMeta height={bodyheight-150} selectMeta={selectMeta} />
</div> </div>
<div style={{marginTop:5}}> <div style={{marginTop:12}}>
<Space> <Space>
<Button>返回</Button> <Button loading={confirmLoading} type="primary" onClick={saveItem}>确定</Button>
<Button>确定</Button> <Button onClick={()=>{selectmodal.cancelModal()}}>返回</Button>
</Space> </Space>
</div> </div>
</Drawer> </Drawer>
...@@ -60,11 +191,3 @@ const MatchMetaInfo:React.FC<any>=()=>{ ...@@ -60,11 +191,3 @@ const MatchMetaInfo:React.FC<any>=()=>{
} }
export default MatchMetaInfo export default MatchMetaInfo
\ No newline at end of file
const SelectMetaPanel=()=>{
return(
<div>
</div>
)
}
\ No newline at end of file
...@@ -2,7 +2,7 @@ import React,{useEffect,useState,useMemo,useContext} from "react" ...@@ -2,7 +2,7 @@ import React,{useEffect,useState,useMemo,useContext} from "react"
import {Input,Table,Row,Col} from "antd" import {Input,Table,Row,Col} from "antd"
import LeftTreePanel from "@/component/layout/lefttreepanel" import LeftTreePanel from "@/component/layout/lefttreepanel"
import SystemTree from "./SystemTree" import SystemTree from "./SystemTree"
import {useSelector,useDispatch} from "react-redux" import {useSelector} from "react-redux"
// import {setField,getTableInfo} from "@/view/meta/metamanage/store/action" // import {setField,getTableInfo} from "@/view/meta/metamanage/store/action"
import { httpUtil, pageUtil } from "@/utils" import { httpUtil, pageUtil } from "@/utils"
import {useDebounceEffect,useSetState} from "ahooks" import {useDebounceEffect,useSetState} from "ahooks"
...@@ -20,11 +20,11 @@ const SelectMeta:React.FC<any>=(dprops)=>{ ...@@ -20,11 +20,11 @@ const SelectMeta:React.FC<any>=(dprops)=>{
const {treeNode,keyword} = props const {treeNode,keyword} = props
const {selectType='checkbox',dellevel,selectedRowKeys,openDetail,setValue,height,selectedChild,setChildrenIds,setSystemId, setTablelist, tlist} = dprops const {selectType='checkbox',dellevel,selectMeta,height,selectedChild,setChildrenIds,setSystemId, setTablelist, tlist} = dprops
const app = useContext(AppContext) const app = useContext(AppContext)
const {env} = app const {env,hostParams:{systemmap}} = app
const currentDomain = useMemo(()=>{ const currentDomain = useMemo(()=>{
if(env){ if(env){
...@@ -42,7 +42,7 @@ const SelectMeta:React.FC<any>=(dprops)=>{ ...@@ -42,7 +42,7 @@ const SelectMeta:React.FC<any>=(dprops)=>{
} }
},[env]) },[env])
const dispatch = useDispatch()
const [value,setValues] = useState('') const [value,setValues] = useState('')
const [selectId,setSelectId] = useState('') const [selectId,setSelectId] = useState('')
const [ selectCache, setSelectCache ] = useState<any[]>([]) const [ selectCache, setSelectCache ] = useState<any[]>([])
...@@ -64,7 +64,7 @@ const SelectMeta:React.FC<any>=(dprops)=>{ ...@@ -64,7 +64,7 @@ const SelectMeta:React.FC<any>=(dprops)=>{
}) })
const {tablelist,tableload,tabletotal,changeOrder,changePage,pageable,order} = useGetMetaTableInfo({treeNode:state.selectNode,currentDomain}) const {tablelist,tableload,tabletotal,changeOrder,changePage,pageable,changeSelect,selectedRowKeys} = useGetMetaTableInfo({treeNode:state.selectNode,currentDomain})
...@@ -103,14 +103,17 @@ const SelectMeta:React.FC<any>=(dprops)=>{ ...@@ -103,14 +103,17 @@ const SelectMeta:React.FC<any>=(dprops)=>{
if(sorter.order==='ascend') if(sorter.order==='ascend')
orders = 'asc' orders = 'asc'
const order:any={orderBy:sorter.columnKey?sorter.columnKey:'lastUpdateTime',order:orders} const order:any={orderBy:sorter.columnKey?sorter.columnKey:'lastUpdateTime',order:orders}
changeOrder(order)
//dispatch(setField({order})) //dispatch(setField({order}))
}else{ }else{
const order:any={orderBy:'seq',order:''} const order:any={orderBy:'seq',order:''}
changeOrder(order)
//dispatch(setField({order})) //dispatch(setField({order}))
} }
} }
const changecurrent=(current:any,pagesize:any)=>{ const changecurrent=(current:any,pagesize:any)=>{
changePage(current,pagesize)
//dispatch(setField({pageable:{current,pagesize}})) //dispatch(setField({pageable:{current,pagesize}}))
} }
...@@ -193,39 +196,19 @@ const SelectMeta:React.FC<any>=(dprops)=>{ ...@@ -193,39 +196,19 @@ const SelectMeta:React.FC<any>=(dprops)=>{
const rowSelection:any={ const rowSelection:any={
selectedRowKeys:selectedRowKeys, selectedRowKeys:selectedRowKeys,
onChange:(keys:any)=>{ onChange:(keys:any,datas:any)=>{
setValue(keys) changeSelect(keys,datas)
} selectMeta(datas[0],systemmap)
} },
type:'radio',
const rowSelectionChild:any={ getCheckboxProps: (record: any) =>{
selectedRowKeys:selectedChild, const type = (record._id.split('=')[0])||'';
onChange:(keys:any, row: any)=>{ return {
console.log(keys) disabled: type !== 'Table', // Column configuration not to be checked
let box:any[] = []
row.length && row.forEach((item: any) => {
box.push({
id: item._id,
metadataCode: item.name,
metadataName: item.cnName,
metadataType: item.typeName,
parentMetadataCode: item.namePathList[item.namePathList.length - 2],
parentMetadataName: item.namePathList[item.namePathList.length - 2]
})
});
if(selectType==='radio'){
setChildrenIds(keys)
setTablelist([...selectRowCache, ...box])
}else{
setChildrenIds([...selectCache, ...keys])
setTablelist([...selectRowCache, ...box])
} }
}, },
type:selectType
} }
console.log(selectType)
const getChildInfo=async()=>{ const getChildInfo=async()=>{
setState({load:true}) setState({load:true})
const result:any = await metaManageService.getChildByIdAndSysByPage({params:{...state.pageable,keyword:state.keyword,parentId:selectId,system:treeNode.system,data:{}}}) const result:any = await metaManageService.getChildByIdAndSysByPage({params:{...state.pageable,keyword:state.keyword,parentId:selectId,system:treeNode.system,data:{}}})
...@@ -273,18 +256,19 @@ const SelectMeta:React.FC<any>=(dprops)=>{ ...@@ -273,18 +256,19 @@ const SelectMeta:React.FC<any>=(dprops)=>{
} }
rightPanel={ rightPanel={
<Row style={{height:height,background:"#fff",overflow:'hidden'}} gutter={20}> <Row style={{height:height,background:"#fff",overflow:'hidden'}} gutter={20}>
<Col span={12}> <Col span={24}>
<Input value={value} onChange={(e)=>{setValues(e.target.value)}} placeholder="请输入关键字" style={{width:180}} /> <Input value={value} onChange={(e)=>{setValues(e.target.value)}} placeholder="请输入关键字" style={{width:180}} />
<div style={{height:height-40,marginTop:8}}> <div style={{height:height-40,marginTop:8}}>
<Table <Table
columns={tablecolumns} columns={tablecolumns}
dataSource={tablelist} dataSource={tablelist}
loading={tableload} loading={tableload}
// rowSelection={rowSelection} rowSelection={rowSelection}
rowKey={"_id"} rowKey={"_id"}
scroll={{y: `calc(${height} - 135px)`}} scroll={{y: `calc(${height}px - 135px)`}}
size="middle" size="middle"
pagination={{ pagination={{
size:'default',
showTotal:total => `共 ${total} 条`, showTotal:total => `共 ${total} 条`,
pageSize:pageable?.pageSize, pageSize:pageable?.pageSize,
current:pageable?.pageNum, current:pageable?.pageNum,
...@@ -293,19 +277,19 @@ const SelectMeta:React.FC<any>=(dprops)=>{ ...@@ -293,19 +277,19 @@ const SelectMeta:React.FC<any>=(dprops)=>{
position:['bottomLeft'] position:['bottomLeft']
}} }}
onChange={onChange} onChange={onChange}
onRow={(record:any)=>{ // onRow={(record:any)=>{
return { // return {
id:record._id, // id:record._id,
className:selectId===record._id?'selectTable':'', // className:selectId===record._id?'selectTable':'',
onClick:(e:any)=>{ // onClick:(e:any)=>{
setSelectId(record._id) // setSelectId(record._id)
}, // },
} // }
}} // }}
/> />
</div> </div>
</Col> </Col>
<Col span={12}> {/* <Col span={12}>
<Input value={state.keyword} onChange={(e)=>{setState({keyword:e.target.value})}} placeholder="请输入关键字" style={{width:180}} /> <Input value={state.keyword} onChange={(e)=>{setState({keyword:e.target.value})}} placeholder="请输入关键字" style={{width:180}} />
<div style={{height: height - 80,marginTop:8, overflow: 'auto'}}> <div style={{height: height - 80,marginTop:8, overflow: 'auto'}}>
<Table <Table
...@@ -326,7 +310,7 @@ const SelectMeta:React.FC<any>=(dprops)=>{ ...@@ -326,7 +310,7 @@ const SelectMeta:React.FC<any>=(dprops)=>{
}} }}
/> />
</div> </div>
</Col> </Col> */}
</Row> </Row>
} }
/> />
......
...@@ -70,7 +70,12 @@ export const useGetMetaTableInfo=(props:p3)=>{ ...@@ -70,7 +70,12 @@ export const useGetMetaTableInfo=(props:p3)=>{
order:{ order:{
order:'', order:'',
orderBy:'' orderBy:''
} },
})
const [select,setSelect] = useSetState({
selectedRowKeys:[],
selectedRowDatas:[]
}) })
const [payload,setPayload] = useSetState({ const [payload,setPayload] = useSetState({
...@@ -139,7 +144,6 @@ export const useGetMetaTableInfo=(props:p3)=>{ ...@@ -139,7 +144,6 @@ export const useGetMetaTableInfo=(props:p3)=>{
} }
console.log(result) console.log(result)
if(httpUtil.checkSuccess(result,1)){ if(httpUtil.checkSuccess(result,1)){
alert(1)
setPayload({tablelist:result.data.content,tableload:false,tabletotal:result.data.totalElements}) setPayload({tablelist:result.data.content,tableload:false,tabletotal:result.data.totalElements})
}else{ }else{
setPayload({tablelist:[],tableload:false,tabletotal:0}) setPayload({tablelist:[],tableload:false,tabletotal:0})
...@@ -154,6 +158,10 @@ export const useGetMetaTableInfo=(props:p3)=>{ ...@@ -154,6 +158,10 @@ export const useGetMetaTableInfo=(props:p3)=>{
setState({order}) setState({order})
} }
return {...payload,...state,changePage,changeOrder} const changeSelect=(keys:any,datas?:any)=>{
setSelect({selectedRowKeys:keys,selectedRowDatas:datas})
}
return {...payload,...state,...select,changePage,changeOrder,changeSelect}
} }
\ No newline at end of file
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