Commit d74e855d by fanyj

tijiao

parent 29645d31
......@@ -31,8 +31,6 @@ const LeftTreePanel:React.FC<panelprops>=(props)=>{
}
}
console.log('styles',styles)
return(
<div className={styles.main} >
<div className={`${ styles.left}`} style={getStyle()}>
......
......@@ -26,6 +26,8 @@ import RelationAssets from './asset-relation-assets';
import './AssetAction.less';
import MatchMetaInfo from './MatchMetaInfo';
import { useGetModalInfoAndAction } from '@/hooks/common';
import AssetsCompareModal from './AssetsCompareModal';
const AssetAction = React.forwardRef(function (props, ref) {
const { id, dirId, action, terms, onChange, reference, readonly = false, permissionId, catalog, template } = props;
......@@ -75,6 +77,7 @@ const AssetAction = React.forwardRef(function (props, ref) {
const uploadRef = useRef(undefined);
const [columnForm] = Form.useForm()
const relationAssetsRef = useRef();
const comparemodal = useGetModalInfoAndAction()
const [form] = Form.useForm();
......@@ -675,6 +678,10 @@ const AssetAction = React.forwardRef(function (props, ref) {
}
}
const saveMetaPath=(pathinfo)=>{
}
const onFullScreenClick = () => {
setFullScreen(!fullScreen);
}
......@@ -825,7 +832,7 @@ const AssetAction = React.forwardRef(function (props, ref) {
<Button onClick={onActionButtonClick} disabled={assets?.existDraft}>编辑</Button>
</Tooltip> : <React.Fragment>
<Button onClick={onCancelButtonClick}>取消</Button>
<Button onClick={onActionButtonClick}>{(reference===AssetDraftReference||!needSaveAsDraft)?'保存':'保存草稿'}</Button>
<Button loading={confirmLoading} onClick={onActionButtonClick}>{(reference===AssetDraftReference||!needSaveAsDraft)?'保存':'保存草稿'}</Button>
</React.Fragment>
}
</React.Fragment>
......@@ -941,9 +948,19 @@ const AssetAction = React.forwardRef(function (props, ref) {
</Form>
</Spin>
<MatchMetaInfo />
<MatchMetaInfo
item={assets} reference={reference} AssetDraftReference={AssetDraftReference} getAsset={getAsset}
dirId={dirId} metadataId={metadataId} needSaveAsDraft={needSaveAsDraft}
/>
<div>
<Divider orientation='left'>字段级资源目录信息</Divider>
<div style={{display:'flex',justifyContent:'space-between',alignItems:'center',gap:10}}>
<div style={{flex:1}}>
<Divider orientation='left'>字段级资源目录信息</Divider>
</div>
<Button size='small' onClick={()=>{comparemodal.openModal()}}>对比</Button>
</div>
{
isStructured ? <Table
className='mt-3'
......@@ -1019,6 +1036,7 @@ const AssetAction = React.forwardRef(function (props, ref) {
</React.Fragment>
}
</div>
<AssetsCompareModal visible={comparemodal.visible} item={assets} onCancel={()=>{comparemodal.cancelModal()}} />
{contextHolder}
</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 {SettingOutlined} from "@ant-design/icons"
import { useGetModalInfoAndAction } from "../../../../hooks/common"
import SelectMeta from "@/view/meta/selectmeta/SelectMeta"
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 bodyheight = pageUtil.getBodyHeight()
const [selectData,setSelectData] = useState({
metadataId:'',
metadataPath:''
})
const [confirmLoading,setConfirmLoading] = useState(false)
const openSelect=()=>{
console.log('item')
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(
<div>
......@@ -27,7 +157,7 @@ const MatchMetaInfo:React.FC<any>=()=>{
>
<div className='flex' style={{ alignItems: 'center' }}>
<div style={{ flex: 1 }}>
6666
{item?.metadataPath}
</div>
<div style={{ flex: '0 0 auto', marginLeft: 10, width: 16 }}>
<Tooltip placement="left" title={'关联元数据'}>
......@@ -44,14 +174,15 @@ const MatchMetaInfo:React.FC<any>=()=>{
onClose={()=>{
selectmodal.cancelModal()
}}
destroyOnClose
>
<div style={{height:bodyheight-140}}>
<SelectMeta height={bodyheight-140} />
<div style={{height:bodyheight-150}}>
<SelectMeta height={bodyheight-150} selectMeta={selectMeta} />
</div>
<div style={{marginTop:5}}>
<div style={{marginTop:12}}>
<Space>
<Button>返回</Button>
<Button>确定</Button>
<Button loading={confirmLoading} type="primary" onClick={saveItem}>确定</Button>
<Button onClick={()=>{selectmodal.cancelModal()}}>返回</Button>
</Space>
</div>
</Drawer>
......@@ -59,12 +190,4 @@ const MatchMetaInfo:React.FC<any>=()=>{
)
}
export default MatchMetaInfo
const SelectMetaPanel=()=>{
return(
<div>
</div>
)
}
\ No newline at end of file
export default MatchMetaInfo
\ No newline at end of file
......@@ -2,7 +2,7 @@ import React,{useEffect,useState,useMemo,useContext} from "react"
import {Input,Table,Row,Col} from "antd"
import LeftTreePanel from "@/component/layout/lefttreepanel"
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 { httpUtil, pageUtil } from "@/utils"
import {useDebounceEffect,useSetState} from "ahooks"
......@@ -20,11 +20,11 @@ const SelectMeta:React.FC<any>=(dprops)=>{
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 {env} = app
const {env,hostParams:{systemmap}} = app
const currentDomain = useMemo(()=>{
if(env){
......@@ -42,7 +42,7 @@ const SelectMeta:React.FC<any>=(dprops)=>{
}
},[env])
const dispatch = useDispatch()
const [value,setValues] = useState('')
const [selectId,setSelectId] = useState('')
const [ selectCache, setSelectCache ] = useState<any[]>([])
......@@ -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)=>{
if(sorter.order==='ascend')
orders = 'asc'
const order:any={orderBy:sorter.columnKey?sorter.columnKey:'lastUpdateTime',order:orders}
changeOrder(order)
//dispatch(setField({order}))
}else{
const order:any={orderBy:'seq',order:''}
changeOrder(order)
//dispatch(setField({order}))
}
}
const changecurrent=(current:any,pagesize:any)=>{
changePage(current,pagesize)
//dispatch(setField({pageable:{current,pagesize}}))
}
......@@ -193,39 +196,19 @@ const SelectMeta:React.FC<any>=(dprops)=>{
const rowSelection:any={
selectedRowKeys:selectedRowKeys,
onChange:(keys:any)=>{
setValue(keys)
}
}
const rowSelectionChild:any={
selectedRowKeys:selectedChild,
onChange:(keys:any, row: any)=>{
console.log(keys)
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])
onChange:(keys:any,datas:any)=>{
changeSelect(keys,datas)
selectMeta(datas[0],systemmap)
},
type:'radio',
getCheckboxProps: (record: any) =>{
const type = (record._id.split('=')[0])||'';
return {
disabled: type !== 'Table', // Column configuration not to be checked
}
},
type:selectType
}
console.log(selectType)
const getChildInfo=async()=>{
setState({load:true})
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)=>{
}
rightPanel={
<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}} />
<div style={{height:height-40,marginTop:8}}>
<Table
columns={tablecolumns}
dataSource={tablelist}
loading={tableload}
// rowSelection={rowSelection}
rowSelection={rowSelection}
rowKey={"_id"}
scroll={{y: `calc(${height} - 135px)`}}
scroll={{y: `calc(${height}px - 135px)`}}
size="middle"
pagination={{
size:'default',
showTotal:total => `共 ${total} 条`,
pageSize:pageable?.pageSize,
current:pageable?.pageNum,
......@@ -293,19 +277,19 @@ const SelectMeta:React.FC<any>=(dprops)=>{
position:['bottomLeft']
}}
onChange={onChange}
onRow={(record:any)=>{
return {
id:record._id,
className:selectId===record._id?'selectTable':'',
onClick:(e:any)=>{
setSelectId(record._id)
},
}
}}
// onRow={(record:any)=>{
// return {
// id:record._id,
// className:selectId===record._id?'selectTable':'',
// onClick:(e:any)=>{
// setSelectId(record._id)
// },
// }
// }}
/>
</div>
</Col>
<Col span={12}>
{/* <Col span={12}>
<Input value={state.keyword} onChange={(e)=>{setState({keyword:e.target.value})}} placeholder="请输入关键字" style={{width:180}} />
<div style={{height: height - 80,marginTop:8, overflow: 'auto'}}>
<Table
......@@ -326,7 +310,7 @@ const SelectMeta:React.FC<any>=(dprops)=>{
}}
/>
</div>
</Col>
</Col> */}
</Row>
}
/>
......
......@@ -70,7 +70,12 @@ export const useGetMetaTableInfo=(props:p3)=>{
order:{
order:'',
orderBy:''
}
},
})
const [select,setSelect] = useSetState({
selectedRowKeys:[],
selectedRowDatas:[]
})
const [payload,setPayload] = useSetState({
......@@ -139,7 +144,6 @@ export const useGetMetaTableInfo=(props:p3)=>{
}
console.log(result)
if(httpUtil.checkSuccess(result,1)){
alert(1)
setPayload({tablelist:result.data.content,tableload:false,tabletotal:result.data.totalElements})
}else{
setPayload({tablelist:[],tableload:false,tabletotal:0})
......@@ -154,6 +158,10 @@ export const useGetMetaTableInfo=(props:p3)=>{
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