Commit f6b1dd92 by fanyj

tijiao

parent d74e855d
import request from "@/utils/request"
import qs from "qs"
import config from "@/commons"
const {api:{asset}} =config
declare global {
interface Navigator {
msSaveBlob?: (blob: any, defaultName?: string) => boolean
}
}
class AssetsActionManageService{
async getCompareInfo(payload:any,autotip=false){
let result = await request({ url: `${asset}/dataAssetApi/compareBusinessColumnAndMetadataColumn`, method: "post", data:qs.stringify(payload) },autotip).then(data=>{
return data;
}).catch(error=>{
return error
})
return result;
}
}
export default new AssetsActionManageService()
import metaManageService from "./metaManageService" import metaManageService from "./metaManageService"
import metaAdminManageService from "./metaAdminManageService" import metaAdminManageService from "./metaAdminManageService"
import metaUserManageService from "./metaUserManageService" import metaUserManageService from "./metaUserManageService"
import assetsActionManageService from "./assetsActionManageService"
export { export {
metaManageService, metaManageService,
metaAdminManageService, metaAdminManageService,
metaUserManageService metaUserManageService,
assetsActionManageService
} }
\ No newline at end of file
...@@ -525,6 +525,7 @@ const AssetAction = React.forwardRef(function (props, ref) { ...@@ -525,6 +525,7 @@ const AssetAction = React.forwardRef(function (props, ref) {
setMetadataId(data?.metadataId||''); setMetadataId(data?.metadataId||'');
const _attributes = Array.from(new Set((data?.elements??[]).map(item => item.type))) const _attributes = Array.from(new Set((data?.elements??[]).map(item => item.type)))
console.log('assets',data)
setAssetParams({ assets: data, attributes: _attributes }); setAssetParams({ assets: data, attributes: _attributes });
if ((_attributes??[]).length > 0) { if ((_attributes??[]).length > 0) {
......
import { Drawer } from "antd" import { Drawer } from "antd"
import React from "react" import React from "react"
import AssetsMetaCompare from "./AssetsMetaCompare"
const AssetsCompareModal:React.FC<any>=(props)=>{ const AssetsCompareModal:React.FC<any>=(props)=>{
const {visible,onCancel} = props const {visible,onCancel,item} = props
return( return(
<Drawer <Drawer
...@@ -12,7 +15,7 @@ const AssetsCompareModal:React.FC<any>=(props)=>{ ...@@ -12,7 +15,7 @@ const AssetsCompareModal:React.FC<any>=(props)=>{
width={'80%'} width={'80%'}
onClose={onCancel} onClose={onCancel}
> >
<AssetsMetaCompare item={item} />
</Drawer> </Drawer>
) )
} }
......
import React,{useState} from "react"
import {Spin} from "antd"
import { useGetMetaAssetsCompareInfo } from "../hooks"
import VersionCompareTable from './VersionCompareTable';
import './VersionCompare.less';
const AssetsMetaCompare:React.FC<any>=(props)=>{
const {item} = props
console.log(item)
const [selectedColumnTitles, setSelectedColumnTitles] = useState()
const {compareloading,comparedata} = useGetMetaAssetsCompareInfo({dataAssetId:item.id})
return(
<Spin spinning={compareloading}>
<div className='flex model-version-compare'>
<div style={{ flex: 1, borderRight: '1px solid #EFEFEF', paddingRight: 10, overflow: 'hidden'}}>
<VersionCompareTable
data={comparedata}
title="资源字段"
columntype="assets"
selectedColumnTitles={selectedColumnTitles}
onFilterChange={(val) => setSelectedColumnTitles(val)}
/>
</div>
<div style={{ flex: 1, paddingLeft: 10, overflow: 'hidden'}}>
<VersionCompareTable
data={comparedata}
title={"元数据字段"}
columntype="meta"
selectedColumnTitles={selectedColumnTitles}
onFilterChange={(val) => setSelectedColumnTitles(val)}
direction='right'
/>
</div>
</div>
</Spin>
)
}
export default AssetsMetaCompare
\ No newline at end of file
...@@ -28,17 +28,17 @@ const MatchMetaInfo:React.FC<any>=(props)=>{ ...@@ -28,17 +28,17 @@ const MatchMetaInfo:React.FC<any>=(props)=>{
const paths = data.namePathList; const paths = data.namePathList;
let temp = [...paths]; let temp = [...paths];
temp.shift(); temp.shift();
let system:any = null; // let system:any = null;
try { // try {
let sys = data.sysList // let sys = data.sysList
system = Number(sys[0]) // system = Number(sys[0])
let systemmsg = systemmap[system] // let systemmsg = systemmap[system]
let owner = systemmsg.catalogInfo; // let owner = systemmsg.catalogInfo;
let templist = [owner.catalogName,systemmsg.scopeName] // let templist = [owner.catalogName,systemmsg.scopeName]
temp = [...templist,...temp] // temp = [...templist,...temp]
} catch (error) { // } catch (error) {
console.log(error) // console.log(error)
} // }
setSelectData({metadataId:data._id,metadataPath:temp.join('/')}) setSelectData({metadataId:data._id,metadataPath:temp.join('/')})
} }
...@@ -67,7 +67,7 @@ const MatchMetaInfo:React.FC<any>=(props)=>{ ...@@ -67,7 +67,7 @@ const MatchMetaInfo:React.FC<any>=(props)=>{
}else{ }else{
let params = { let params = {
dirId, dirId,
metadataId: metadataId??'', metadataId: selectData.metadataId??'',
operation: 'change', operation: 'change',
} }
dispatch({ dispatch({
...@@ -87,62 +87,6 @@ const MatchMetaInfo:React.FC<any>=(props)=>{ ...@@ -87,62 +87,6 @@ const MatchMetaInfo:React.FC<any>=(props)=>{
} }
}) })
} }
// 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', '请完成资源必填项')
// }
} }
} }
......
...@@ -185,6 +185,7 @@ const VersionCompare = (props) => { ...@@ -185,6 +185,7 @@ const VersionCompare = (props) => {
export default VersionCompare; export default VersionCompare;
export const CompareDetail = ({ data, showIndex=true }) => { export const CompareDetail = ({ data, showIndex=true }) => {
console.log('showdata',data)
const [selectedColumnTitles, setSelectedColumnTitles] = React.useState() const [selectedColumnTitles, setSelectedColumnTitles] = React.useState()
return ( return (
......
...@@ -8,7 +8,7 @@ const { Title } = Typography; ...@@ -8,7 +8,7 @@ const { Title } = Typography;
export const defaultColumnTitles = ['序号', '中文名称', '英文名称', '类型', '业务含义']; export const defaultColumnTitles = ['序号', '中文名称', '英文名称', '类型', '业务含义'];
const VersionCompareTable = (props) => { const VersionCompareTable = (props) => {
const { data, direction = 'left', selectedColumnTitles = defaultColumnTitles, onFilterChange } = props; const { data, direction = 'left', selectedColumnTitles = defaultColumnTitles, onFilterChange,title='数据表结构',columntype='' } = props;
const [columns, setColumns] = React.useState() const [columns, setColumns] = React.useState()
React.useEffect(() => { React.useEffect(() => {
...@@ -59,7 +59,11 @@ const VersionCompareTable = (props) => { ...@@ -59,7 +59,11 @@ const VersionCompareTable = (props) => {
const tableData = React.useMemo(() => { const tableData = React.useMemo(() => {
const newTableData = []; const newTableData = [];
let columnValue = (direction==='left') ? data?.left?.columnValue : data?.right?.columnValue; let columnValue = (direction==='left') ? data?.left?.columnValue : data?.right?.columnValue;
if(columntype==='assets'){
columnValue = data.leftValue?.columnValue
}else if(columntype==='meta'){
columnValue = data.rightValue?.columnValue
}
for (const item of columnValue??[]) { for (const item of columnValue??[]) {
let newItem = {}; let newItem = {};
for (const [index, _item] of item.entries()) { for (const [index, _item] of item.entries()) {
...@@ -75,7 +79,7 @@ const VersionCompareTable = (props) => { ...@@ -75,7 +79,7 @@ const VersionCompareTable = (props) => {
<div> <div>
<div className='my-3'> <div className='my-3'>
<Typography> <Typography>
<Title level={5}>数据表结构</Title> <Title level={5}>{title}</Title>
</Typography> </Typography>
</div> </div>
<Table <Table
......
import { assetsActionManageService } from "@/services"
import { httpUtil } from "@/utils"
import { useSetState } from "ahooks"
import {useEffect} from "react"
interface p1{
dataAssetId:string
}
export const useGetMetaAssetsCompareInfo=(props:p1)=>{
const {dataAssetId} = props
const [state,setState] = useSetState({
compareloading:false,
comparedata:{},
columns:[],
defaultSelect:[],
sourceList:[],
targetList:[]
})
useEffect(()=>{
const getTableInfo=async()=>{
setState({compareloading:true})
const result:any = await assetsActionManageService.getCompareInfo({dataAssetId})
if(httpUtil.checkSuccess(result,1)){
setState({comparedata:result.data,compareloading:false})
}else{
httpUtil.showError(result,1)
setState({comparedata:{},compareloading:false})
}
}
if(dataAssetId)
getTableInfo()
},[dataAssetId])
return state
}
\ No newline at end of file
export * from "./Compare"
\ No newline at end of file
...@@ -24,7 +24,9 @@ const SelectMeta:React.FC<any>=(dprops)=>{ ...@@ -24,7 +24,9 @@ const SelectMeta:React.FC<any>=(dprops)=>{
const app = useContext(AppContext) const app = useContext(AppContext)
const {env,hostParams:{systemmap}} = app const {env,hostParams} = app
const systemmap = hostParams?.systemmap||{}
const currentDomain = useMemo(()=>{ const currentDomain = useMemo(()=>{
if(env){ if(env){
......
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