Commit 83f0aadb by fanyongjun

4.9

parent dc615ba6
import React,{useState, useEffect} from "react"
import {Card,Checkbox,Button,List,Skeleton,Row,Col,Typography,Pagination ,Space,Modal} from "antd"
import {Card,Checkbox,Button,List,Skeleton,Row,Col,Typography,Pagination ,Space,Modal,Switch} from "antd"
import "./AssetTable.less"
import {dispatch } from '../../../../model';
import AssetModal from "./AssetModal"
......@@ -29,6 +29,8 @@ export default (props) =>{
const [modal, contextHolder] = Modal.useModal();
const [visible,setVisible] = useState({visible:false,addtype:true})
const [visible2,setVisible2] = useState({visible:false,box:{}})
const [selectBox,setSelectBox] = useState([])
const [checkValue,setCheckValue] = useState(false)
useEffect(()=>{
getListBasicAttrs()
......@@ -37,7 +39,9 @@ export default (props) =>{
useEffect(()=>{
if(nodeId)
getTable()
},[nodeId,rebuild,keyMessage])
},[nodeId,rebuild])
const changeCurrent=(page,size)=>{
......@@ -69,6 +73,8 @@ export default (props) =>{
payload: {dirId:nodeId,pageNum:page,pageSize:size,keyword:keyMessage},
callback: dataBox => {
setTableBox({dataList:dataBox.data,total:dataBox.total})
setSelectBox([])
setCheckValue(false)
setTableLoad(false)
},
error: () => {
......@@ -108,7 +114,7 @@ export default (props) =>{
content: '该资产在所有目录上唯一存在,移除后,你可以前往“资产回收站”重新挂载。',
onOk: () => {
assetS.deleteDataAssets(nodeId,[`${data.id}`],response=>{
setPageNumber({...pageNumber,rebuild:new Date().getTime})
setPageNumber({...pageNumber,rebuild:new Date().getTime()})
showMessage("success","删除成功")
},error=>{
})
......@@ -127,6 +133,50 @@ export default (props) =>{
}
const fetchTableList=()=>{
setKeyMessage(keyWord)
setPageNumber({...pageNumber,page:1,rebuild:new Date().getTime()})
}
const onCheck =(checked)=>{
if(checked){
let box = []
if(dataList&&dataList[0]!==undefined){
for (let data of dataList){
box.push(String(data.id))
}
}
setSelectBox(box)
}else{
setSelectBox([])
}
setCheckValue(checked)
}
const onChange=(checkedValue)=>{
if(checkedValue.length===dataList.length){
setCheckValue(true)
}else{
setCheckValue(false)
}
setSelectBox(checkedValue)
}
const dels=()=>{
if(selectBox&&selectBox[0]!==undefined){
modal.confirm({
title: '提示',
content: `你已选择了${selectBox.length}个资产,确定把它们都从挂载目录上移除吗?`,
onOk: () => {
assetS.deleteDataAssets(nodeId,selectBox,response=>{
setPageNumber({...pageNumber,page:1,rebuild:new Date().getTime()})
showMessage("success","删除成功")
},error=>{
})
}
})
}else{
showMessage("warn","请选择删除项")
}
}
return(
......@@ -154,20 +204,18 @@ export default (props) =>{
}
>
<div style={{display:'flex',justifyContent:'space-between',height:52,padding:'10px 0',borderBottom:'1px solid #f0f0f0',lineHeight:'32px'}}>
{/* <Switch checkedChildren="全选" unCheckedChildren="取消" defaultChecked style={{marginTop:4}}/> */}
<div></div>
<Switch checkedChildren="全选" unCheckedChildren="全选" checked={checkValue} onChange={onCheck} defaultChecked={false} style={{marginTop:4}}/>
<Space>
<Button type="primary" onClick={add}>新增</Button>
{/* <Button type="primary" danger>删除</Button> */}
<Button type="primary" danger onClick={dels} >删除</Button>
{/* <Button type="primary" >导入</Button>
<Button type="primary" >导出</Button> */}
</Space>
</div>
<Checkbox.Group style={{width:'100%'}}>
<Checkbox.Group style={{width:'100%'}} onChange={onChange} value={selectBox}>
<List
loading={tableLoad}
itemLayout="vertical"
dataSource={dataList || []}
......@@ -185,8 +233,8 @@ export default (props) =>{
<List.Item.Meta
title={
<div>
{/* <Checkbox value={item.id}></Checkbox> */}
<span dangerouslySetInnerHTML={{ __html: item.id || '' }} />
<Checkbox value={item.id}></Checkbox>
<span dangerouslySetInnerHTML={{ __html: item.id || '' }} style={{marginLeft:8}}/>
</div>
}
description={
......
......@@ -11,7 +11,7 @@ import './LeftTree.less';
const {TreeNode} = Tree
export default (props)=>{
const {setNodeId} = props
const {setNodeId,nodeId} = props
const [treeBox,setTreeBox] = useState([])
const [dataList,setDataList] = useState([])
......@@ -23,7 +23,6 @@ export default (props)=>{
const [autoExpandParent,setAutoExpandParent] = useState(false)
const [modal, contextHolder] = Modal.useModal();
const [searchMessage,setSearchMessage] = useState('')
const [allTpoic,setAllTopic] = useState([])
const [detailBox,setDetailBox] = useState({})
const [visible2,setVisible2] = useState(false)
......@@ -36,10 +35,31 @@ export default (props)=>{
}//展开树
const selectNode=(selectedKeys,e)=>{
// console.log('selectedKeys',selectedKeys)
// console.log('e',e)
if(e.selectedNodes[0]){
setNodeId(selectedKeys[0])
getNodeDetail(selectedKeys[0])
setNodeBox({...nodeBox,selectKey:selectedKeys,dataBox:e.selectedNodes[0].dataRef})
}else{
console.log('nodeId',nodeId)
console.log('nodeBox',nodeBox)
}
}//点击树
const getNodeDetail=(nodeId)=>{
dispatch({
type: 'assetmanage.getDirectoryById',
payload: {dirId:nodeId},
callback: dataBox => {
setDetailBox(dataBox)
},
error: () => {
}
})
}
const getTree =()=>{
setTreeLoad(true)
......@@ -56,9 +76,11 @@ export default (props)=>{
setTreeBox(newTree)
setNodeId(newTree[0].key)
setNodeBox({openNode:[],selectKey:[String(newTree[0].key)],dataBox:newTree[0]})
getNodeDetail(newTree[0].key)
}else if(treeRebuild.type==='add'){
if(treeBox&&treeBox[0]){
}else{
getNodeDetail(newTree[0].key)
setNodeBox({openNode:[],selectKey:[String(newTree[0].key)],dataBox:newTree[0]})
}
}else if(treeRebuild.type==='edit'){
......@@ -66,10 +88,12 @@ export default (props)=>{
}else if(treeRebuild.type==='delete'){
const box = getPatentNode(newTree,nodeBox.dataBox.pid)
setNodeId(box.key)
getNodeDetail(box.key)
setNodeBox({...nodeBox,selectKey:[String(box.key)],dataBox:box,})
}
}else{
setTreeBox([])
setDetailBox({})
setNodeBox({openNode:[],selectKey:[],dataBox:{}})
}
setTreeLoad(false)
......@@ -115,62 +139,28 @@ export default (props)=>{
}//获取父节点
const add = ()=>{
if(nodeBox.dataBox.nodeId!=undefined){
for (let topic of allTpoic){
if(topic.id===nodeBox.dataBox.nodeId){
setDetailBox(topic)
}
}
}
setVisible(true)
setTreeRebuild({...treeRebuild,type:'add'})
}
const update = ()=>{
if(nodeBox.dataBox.nodeId!=undefined){
// for (let topic of allTpoic){
// if(topic.id===nodeBox.dataBox.nodeId){
// console.log(topic)
// setDetailBox(topic)
// }
// }
dispatch({
type: 'assetmanage.getDirectoryById',
payload: {dirId:nodeBox.dataBox.nodeId},
callback: dataBox => {
setDetailBox(dataBox)
setVisible(true)
setTreeRebuild({...treeRebuild,type:'edit'})
},
error: () => {
}
})
}
}
const importFunction =()=>{
if(nodeBox.dataBox.nodeId!=undefined){
for (let topic of allTpoic){
if(topic.id===nodeBox.dataBox.nodeId){
setDetailBox(topic)
}
}
}
setVisible2(true)
}
const exportFunction=(type)=>{
if(!type){
window.open(`/api/dataassetmanager/directoryApi/export`);
}else{
if(nodeBox.dataBox.nodeId!=undefined){
for (let topic of allTpoic){
if(topic.id===nodeBox.dataBox.nodeId){
window.open(`/api/dataassetmanager/directoryApi/export?parentPath=${topic.path}`);
return
}
}
window.open(`/api/dataassetmanager/directoryApi/export?parentPath=${detailBox.path}`);
}else{
showMessage("warn","请选择目录")
......@@ -202,7 +192,6 @@ export default (props)=>{
}
},
error: () => {
}
})
......@@ -232,7 +221,6 @@ export default (props)=>{
return null;
})
.filter((item, i, self) => item && self.indexOf(item) == i);
console.log({...nodeBox,openNode:expandedKeys})
setAutoExpandParent(true)
setNodeBox({...nodeBox,openNode:expandedKeys})
setSearchValue(searchMessage)
......@@ -375,7 +363,7 @@ export default (props)=>{
{loop(treeBox)}
</Tree>
</Spin>
<TreeModal visible={visible} handleCancle={handleCancle} addType={treeRebuild.type==='add'?true:false} editBox={detailBox} selectKey={nodeBox.selectKey[0]} setTreeRebuild={setTreeRebuild} treeRebuild={treeRebuild} />
<TreeModal visible={visible} handleCancle={handleCancle} addType={treeRebuild.type==='add'?true:false} editBox={detailBox} selectKey={nodeBox.selectKey[0]} setTreeRebuild={setTreeRebuild} treeRebuild={treeRebuild} getNodeDetail={getNodeDetail} />
<ThemeFile fileVisible={visible2} handleCancle={handleCancle2} editBox={detailBox} selectKey={nodeBox.selectKey[0]} setTreeRebuild={setTreeRebuild} />
{contextHolder}
</Card>
......
......@@ -129,7 +129,7 @@ export default (props)=>{
>
<Form {...formItemLayout} form={form}>
<Form.Item
label="文件"
label="挂载位置"
name="type"
rules={[{ required: true, message: '必填项'}]}
......
......@@ -7,7 +7,7 @@ import { showMessage } from '../../../../util';
const {TabPane} = Tabs
export default (props)=>{
const {handleCancle,visible,editBox,addType,selectKey,setDataCache,setTreeRebuild,treeRebuild} = props
const {handleCancle,visible,editBox,addType,selectKey,getNodeDetail,setTreeRebuild,treeRebuild} = props
const [form] = Form.useForm()
const [saveLoad,setSaveLod] = useState(false)
......@@ -79,6 +79,7 @@ export default (props)=>{
payload: {param:{parentPath:editBox.path},data:box},
callback: data => {
setSaveLod(false)
getNodeDetail(data.id)
showMessage("success","修改成功")
setTreeRebuild({...treeRebuild,build:new Date().getTime()})
handleCancle()
......
......@@ -25,7 +25,7 @@ class Index extends React.Component {
return (
<Row gutter={15}>
<Col span={6}>
<LeftTree setNodeId={this.setNodeId}/>
<LeftTree setNodeId={this.setNodeId} nodeId={this.state.nodeId}/>
</Col>
<Col span={18}>
<AssetTable nodeId={this.state.nodeId} />
......
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