Commit 13f218bc authored by 皮倩雯's avatar 皮倩雯

fix: '组态平台接口翻新'

parent 0a64e8b6
Pipeline #50850 skipped with stages
......@@ -199,88 +199,89 @@ const AddModal = props => {
};
useEffect(() => {
console.log(isVisible);
// 用于判断分组名与字段名重复时提示当前未选中字段
if (keepTreeFirst.indexOf(itemData.name) != -1 && itemData.children) {
setShow('none');
} else {
setShow('block');
}
setTreeValue(treeData);
setValueData([]);
setExpendKey(itemData.ID);
setCurrentSelectOrg(itemData.ID);
console.log(treeData);
if (isType != '') {
let req1 = getField({ fieldID: itemData.ID });
let req2 = loadTableFields({ tableName: formObj1 });
let req3 = LoadEventType({});
Promise.all([req1, req2, req3]).then(res => {
res[1].msg === 'Ok' && setFieldName(res[1].data.root);
res[2].msg === 'Ok' && setEventList(res[2].data.root);
if (res[0].msg === 'Ok') {
form.setFieldsValue({ ...res[0].data.root });
if (res[0].data.root.ExceptionEventFields === '') {
setCharacterValue('');
setCheckedList([]);
setIsShow(false);
} else {
setIsShow(true);
setCharacterValue(res[0].data.root.ExceptionEventFields);
setCheckedList(res[0].data.root.ExceptionEventFields.split(','));
}
setShape(res[0].data.root.Shape);
let coordinates = false,
picture = false,
must = false;
switch (res[0].data.root.Shape) {
case '坐标控件':
res[0].data.root.Config === '当前坐标' ? (coordinates = true) : (coordinates = false);
break;
case '图片':
case '可预览图片':
res[0].data.root.Preset === '拍照相册' ? (picture = true) : (picture = false);
res[0].data.root.ValidationRule === 'required' ? (must = true) : (must = false);
break;
case '编码':
let code = res[0].data.root.Config.split('.');
form.setFieldsValue({
code: code[0] || '',
prefix: code[1] === 'undefined' ? '' : code[1],
});
break;
}
setPramData({ ...res[0].data.root, coordinates, must, picture });
if (
res[0].data.root.Shape == '多行文本' ||
res[0].data.root.Shape == '附件' ||
res[0].data.root.Shape == '可预览附件' ||
res[0].data.root.Shape == '图片' ||
res[0].data.root.Shape == '可预览图片' ||
res[0].data.root.Shape == '录音' ||
res[0].data.root.Shape == '视频'
) {
form.setFieldsValue({ RowSpan: 6 });
} else {
if (pramData.RowSpan) {
form.setFieldsValue({ RowSpan: res[0].data.root.RowSpan });
if (isVisible) {
// 用于判断分组名与字段名重复时提示当前未选中字段
if (keepTreeFirst.indexOf(itemData.name) != -1 && itemData.children) {
setShow('none');
} else {
setShow('block');
}
setTreeValue(treeData);
setValueData([]);
setExpendKey(itemData.ID);
setCurrentSelectOrg(itemData.ID);
console.log(treeData);
if (isType != '') {
let req1 = getField({ fieldID: itemData.ID });
let req2 = loadTableFields({ tableName: formObj1 });
let req3 = LoadEventType({});
Promise.all([req1, req2, req3]).then(res => {
res[1].msg === 'Ok' && setFieldName(res[1].data.root);
res[2].msg === 'Ok' && setEventList(res[2].data.root);
if (res[0].msg === 'Ok') {
form.setFieldsValue({ ...res[0].data.root });
if (res[0].data.root.ExceptionEventFields === '') {
setCharacterValue('');
setCheckedList([]);
setIsShow(false);
} else {
setIsShow(true);
setCharacterValue(res[0].data.root.ExceptionEventFields);
setCheckedList(res[0].data.root.ExceptionEventFields.split(','));
}
form.setFieldsValue({ RowSpan: 1 });
}
console.log(pramData);
// 清空表单数据
if (isVisible == false) {
console.log(123);
setPramData([]);
form.resetFields();
setShape(res[0].data.root.Shape);
let coordinates = false,
picture = false,
must = false;
switch (res[0].data.root.Shape) {
case '坐标控件':
res[0].data.root.Config === '当前坐标'
? (coordinates = true)
: (coordinates = false);
break;
case '图片':
case '可预览图片':
res[0].data.root.Preset === '拍照相册' ? (picture = true) : (picture = false);
res[0].data.root.ValidationRule === 'required' ? (must = true) : (must = false);
break;
case '编码':
let code = res[0].data.root.Config.split('.');
form.setFieldsValue({
code: code[0] || '',
prefix: code[1] === 'undefined' ? '' : code[1],
});
break;
}
setPramData({ ...res[0].data.root, coordinates, must, picture });
if (
res[0].data.root.Shape == '多行文本' ||
res[0].data.root.Shape == '附件' ||
res[0].data.root.Shape == '可预览附件' ||
res[0].data.root.Shape == '图片' ||
res[0].data.root.Shape == '可预览图片' ||
res[0].data.root.Shape == '录音' ||
res[0].data.root.Shape == '视频'
) {
form.setFieldsValue({ RowSpan: 6 });
} else {
if (pramData.RowSpan) {
form.setFieldsValue({ RowSpan: res[0].data.root.RowSpan });
}
form.setFieldsValue({ RowSpan: 1 });
}
console.log(pramData);
// 清空表单数据
let index = res[2].data.root.find(item => {
return item.Name == res[0].data.root.ExceptionEvent;
});
console.log(index);
getFieldData(index.TableName);
}
let index = res[2].data.root.find(item => {
return item.Name == res[0].data.root.ExceptionEvent;
});
console.log(index);
getFieldData(index.TableName);
}
});
});
}
} else {
setPramData([]);
form.resetFields();
}
}, [isVisible]);
......
......@@ -260,7 +260,7 @@ const AddModal = props => {
<span />
) : (
<>
<Tooltip title="修改">
{/* <Tooltip title="修改">
<EditOutlined
style={{ fontSize: '16px', color: '#1890FF' }}
onClick={() => {
......@@ -269,7 +269,7 @@ const AddModal = props => {
>
编辑
</EditOutlined>
</Tooltip>
</Tooltip> */}
<div onClick={e => e.stopPropagation()}>
<Popconfirm
title="是否删除该字段?"
......
......@@ -3,7 +3,7 @@
* @Description:
* @Author: leizhe
* @Date: 2022-04-11 18:12:39
* @LastEditTime: 2022-05-19 17:31:42
* @LastEditTime: 2022-05-20 15:25:04
* @LastEditors: leizhe
*/
import React, { useEffect, useState } from 'react';
......@@ -74,8 +74,8 @@ const importModal = props => {
const title1 = (
<>
<span>导入数据</span>
<span style={{ color: 'rgb(24, 144, 255)' }}>覆盖导入</span>
<span>覆盖导入数据</span>
<span style={{ color: 'rgb(24, 144, 255)' }}>不支持导入从老运维导出的数据</span>
</>
);
return (
......
......@@ -2,7 +2,7 @@
* @Description:
* @Author: leizhe
* @Date: 2022-04-07 10:23:26
* @LastEditTime: 2022-04-11 17:06:39
* @LastEditTime: 2022-05-20 14:19:53
* @LastEditors: leizhe
*/
import React, { useEffect } from 'react';
......@@ -10,7 +10,7 @@ import { Modal, Form, Input, notification, message } from 'antd';
import { Save } from '@/services/drawBoardManage/api';
const AddModal = props => {
const { visible, onCancel, updateTrees } = props;
const { visible, onCancel, callBackSubmit = () => {} } = props;
const [addForm] = Form.useForm();
useEffect(() => {
......@@ -20,20 +20,20 @@ const AddModal = props => {
const submitAdd = () => {
console.log(addForm.getFieldValue().name);
if (addForm.getFieldValue().name) {
Save({ name: addForm.getFieldValue().name })
Save({ modelTypeName: addForm.getFieldValue().name })
.then(res => {
if (res.statusCode === '0000') {
if (res.code === 0) {
callBackSubmit(addForm.getFieldValue('name'));
onCancel();
notification.success({
message: '提交成功',
duration: 2,
});
// 重新获取机构树与用户表
updateTrees();
} else {
notification.error({
message: '提交失败',
description: res.errMsg,
description: res.msg,
});
}
})
......
......@@ -3,7 +3,7 @@
* @Description:
* @Author: leizhe
* @Date: 2022-04-07 10:23:26
* @LastEditTime: 2022-04-14 19:52:28
* @LastEditTime: 2022-05-19 18:41:38
* @LastEditors: leizhe
*/
import React, { useEffect, useState } from 'react';
......@@ -42,29 +42,28 @@ const AddTemplate = props => {
const submitAdd = () => {
addTemplateForm.validateFields().then(validate => {
if (validate) {
let aa = {};
aa.width = addTemplateForm.getFieldsValue().imageWidth.toString();
aa.height = addTemplateForm.getFieldsValue().imageHeight.toString();
let width = addTemplateForm.getFieldsValue().imageWidth.toString();
let height = addTemplateForm.getFieldsValue().imageHeight.toString();
const formData = new FormData();
formData.append('Name', addTemplateForm.getFieldsValue().Name);
formData.append('Type', selectValue);
formData.append('Dimension', '二维');
formData.append('Size', JSON.stringify(aa));
formData.append('ModelName', addTemplateForm.getFieldsValue().ModelFile);
formData.append('ModelType', selectValue);
formData.append('width', width);
formData.append('height', height);
formData.append('ModelFile', file);
console.log(formData);
SaveUpload(formData).then(res => {
if (res.statusCode === '0000') {
if (res.code === 0) {
callBackSubmit();
notification.success({
message: '提示',
duration: 3,
description: res.info,
description: res.msg,
});
} else {
notification.error({
message: '提示',
duration: 3,
description: res.errMsg,
description: res.msg,
});
}
});
......@@ -151,7 +150,7 @@ const AddTemplate = props => {
},
]}
>
<Input placeholder="仅支持png和svg格式" />
<Input placeholder="仅支持png和svg格式" disabled />
</Form.Item>
</Col>
<Col span={7}>
......@@ -163,7 +162,7 @@ const AddTemplate = props => {
</Col>
</Row>
<Form.Item label="模型名称" name="Name">
<Input placeholder="请输入菜单组名称" />
<Input placeholder="菜单组名称" disabled />
</Form.Item>
<Row>
<Col span={13}>
......
/* eslint-disable prefer-template */
/* eslint-disable indent */
/*
* @Description:
* @Author: leizhe
* @Date: 2022-05-17 10:26:35
* @LastEditTime: 2022-05-20 09:38:44
* @LastEditors: leizhe
*/
import React, { useEffect, useState } from 'react';
import { Modal, Form, Input, notification, Button, Select, Space, Image } from 'antd';
import { UpdateParentId, modelManageListAll } from '@/services/drawBoardManage/api';
const { Option } = Select;
const AssociationModel = props => {
const { visible, onCancel, obj, callBackSubmit = () => {} } = props;
const { Item } = Form;
const [form] = Form.useForm();
const [data, setData] = useState([]);
const [imageData, setImgData] = useState('');
useEffect(() => {
console.log(obj);
if (visible) {
modelManageListAll({
modelName: '',
modelType: '',
}).then(res => {
if (res.code === 0) {
if (res.data.length > 0) {
let aa = [];
res.data.map(i => {
aa.push(i);
});
let bb = aa;
console.log(bb);
console.log(obj);
if (bb && bb.length > 0) {
if (obj.RelModel != 0) {
bb.splice(bb.findIndex(item => item.ID === obj.RelModel), 1);
} else {
bb.splice(bb.findIndex(item => item.ID === obj.ID), 1);
}
bb.map(i => {
if (i.children && i.children.length > 0) {
delete i.children;
}
});
console.log(bb);
setData(bb);
}
}
}
});
} else {
form.resetFields();
setImgData('');
setData('');
}
}, [visible]);
const onSubmit = () => {
form.validateFields().then(validate => {
if (validate) {
let obj1 = form.getFieldsValue();
let aa = [];
aa.push(obj.ID);
UpdateParentId({ modelIds: aa, parentId: obj1.Name }).then(res => {
if (res.code === 0) {
callBackSubmit();
onCancel();
notification.success({
message: '关联成功',
duration: 2,
});
} else {
notification.error({
message: '关联失败',
description: res.msg,
});
}
});
}
});
};
const handleChange = e => {
console.log(e);
console.log(data);
let aa = data.find(i => i.ID === e);
console.log(aa);
setImgData(aa.Path);
};
return (
<Modal
title="关联父模型"
visible={visible}
onCancel={onCancel}
destroyOnClose
width="600px"
footer={
<Space>
<Button onClick={onSubmit} type="primary">
确定
</Button>
</Space>
}
>
<Form form={form} style={{ overflowY: 'scroll' }}>
<Item
labelCol={{ span: 8 }}
name="Name"
rules={[
{
required: true,
message: '请选择父模型',
},
]}
>
<Select
style={{ width: '100%' }}
placeholder="选择父模型"
optionLabelProp="label"
onChange={handleChange}
optionFilterProp="label"
showSearch
>
{data.length
? data.map((item, index) => (
<>
<Option value={item.ID} label={item.ModelName}>
<div className="demo-option-label-item">
{item.ModelName}
<span role="img" aria-label={item.ModelTypeName}>
{item.ModelTypeName}
</span>
</div>
</Option>
</>
))
: ''}
</Select>
</Item>
<Item>
{imageData == '' ? (
<></>
) : (
<Image
src={
window.location.origin +
`/Publish/Web/File/ModelManage/ModelFilePreview/${encodeURIComponent(imageData)}`
}
height="60px"
/>
)}
</Item>
</Form>
</Modal>
);
};
export default AssociationModel;
......@@ -3,7 +3,7 @@
* @Description:
* @Author: leizhe
* @Date: 2022-04-07 10:23:26
* @LastEditTime: 2022-04-14 19:58:49
* @LastEditTime: 2022-05-20 09:45:00
* @LastEditors: leizhe
*/
import React, { useEffect, useState } from 'react';
......@@ -34,36 +34,36 @@ const ChildAddTemplate = props => {
useEffect(() => {
console.log(obj);
addTemplateForm.resetFields();
addTemplateForm.setFieldsValue({ Type: obj.typeName });
addTemplateForm.setFieldsValue({ Type: obj.ModelTypeName });
}, [visible]);
const submitAdd = () => {
addTemplateForm.validateFields().then(validate => {
if (validate) {
let aa = {};
aa.width = addTemplateForm.getFieldsValue().imageWidth.toString();
aa.height = addTemplateForm.getFieldsValue().imageHeight.toString();
let width = addTemplateForm.getFieldsValue().imageWidth.toString();
let height = addTemplateForm.getFieldsValue().imageHeight.toString();
const formData = new FormData();
formData.append('Name', addTemplateForm.getFieldsValue().Name);
formData.append('Type', addTemplateForm.getFieldsValue().Type);
formData.append('Dimension', '二维');
formData.append('Size', JSON.stringify(aa));
formData.append('ModelName', addTemplateForm.getFieldsValue().ModelFile);
formData.append('ModelType', addTemplateForm.getFieldsValue().Type);
// formData.append('Size', JSON.stringify(aa));
formData.append('width', width);
formData.append('height', height);
formData.append('ModelFile', file);
formData.append('RelModel', obj.id);
formData.append('RelModel', obj.ID);
console.log(formData);
SaveUpload(formData).then(res => {
if (res.statusCode === '0000') {
if (res.code === 0) {
callBackSubmit();
notification.success({
message: '提示',
duration: 3,
description: res.info,
description: res.msg,
});
} else {
notification.error({
message: '提示',
duration: 3,
description: res.errMsg,
description: res.msg,
});
}
});
......@@ -150,7 +150,7 @@ const ChildAddTemplate = props => {
},
]}
>
<Input />
<Input disabled />
</Form.Item>
</Col>
<Col span={7}>
......@@ -162,7 +162,7 @@ const ChildAddTemplate = props => {
</Col>
</Row>
<Form.Item label="模型名称" name="Name">
<Input placeholder="请输入菜单组名称" />
<Input placeholder="请输入菜单组名称" disabled />
</Form.Item>
<Row>
<Col span={13}>
......
/* eslint-disable operator-assignment */
/* eslint-disable no-undef */
/* eslint-disable no-lonely-if */
/* eslint-disable prefer-template */
/* eslint-disable no-shadow */
/*
* @Description:
* @Author: leizhe
* @Date: 2022-04-06 11:38:46
* @LastEditTime: 2022-04-22 18:25:48
* @LastEditTime: 2022-05-20 14:23:36
* @LastEditors: leizhe
*/
import React, { useState, useEffect } from 'react';
......@@ -24,6 +28,8 @@ import {
notification,
message,
Pagination,
Dropdown,
Menu,
} from 'antd';
import {
typeList,
......@@ -43,6 +49,8 @@ import {
UploadOutlined,
SyncOutlined,
PlusSquareFilled,
ShareAltOutlined,
DownOutlined,
} from '@ant-design/icons';
import classnames from 'classnames';
import zhCN from 'antd/es/locale/zh_CN';
......@@ -53,6 +61,7 @@ import AddTemplate from './AddTemplate';
import ChildAddTemplate from './ChildAddTemplate';
import EditTemplate from './EditTemplate';
import ImportModal from './ImportModal';
import AssociationModel from './AssociationModel';
const { TabPane } = Tabs;
......@@ -77,17 +86,22 @@ const DrawBoardManage = () => {
const [selectedRowKeys, setSelectedRowKeys] = useState([]); // 已选字段配置数,机构改变时重置
const [deleteVisible, setDeleteVisible] = useState(false);
const [editVisible, setEditVisible] = useState(false);
const [associationVisible, setAssociationVisible] = useState(false);
const [multDeleteVisible, setMultDeleteVisible] = useState(false);
const [changeObj, setChangeObj] = useState('');
const [obj, setObj] = useState('');
const [importVisible, setImportVisible] = useState(false);
const { Search } = Input;
const [keepId, setKeepId] = useState('');
const [total, setTotal] = useState('');
const [totalData, setTotal] = useState('');
const [page, setPage] = useState(1);
const setRowClassName = record => (record.id === selectColor.id ? styles.clickRowStyle : '');
const [multiOperate, setMultiOperate] = useState(true); // 是否禁用用户批量操作
const [multiOperateButtonType, setMultiOperateButtonType] = useState(''); // 更改批量操作按钮样式
const [keepRow, setKeepRow] = useState([]);
const setRowClassName = record => (record.ID === selectColor.ID ? styles.clickRowStyle : '');
useEffect(() => {
setMultiOperate(true);
if (pickItem) {
updateTableData(pickItem.name, searchWord);
}
......@@ -102,51 +116,67 @@ const DrawBoardManage = () => {
}, []);
// 获取Tree数据
const updateTrees = () => {
const updateTrees = e => {
setTreeLoading(true);
typeList({ name: '二维' }).then(res => {
if (res.say.statusCode === '0000') {
typeList().then(res => {
if (res.code === 0) {
setTreeLoading(false);
if (!pickItem) {
// setPickItem(res.getMe[0]);
updateTableData('', searchWord);
if (e) {
let aa = res.data.find(i => i.name === e);
setPickItem(aa);
updateTableData(e, searchWord);
} else {
if (!pickItem) {
updateTableData('', searchWord);
} else {
updateTableData(pickItem.name, searchWord);
}
}
setTreeData(res.getMe);
setTreeData(res.data);
}
});
};
const addBack = props => {
console.log(props);
updateTrees(props);
};
const editBack = props => {
console.log(props);
updateTrees(props);
};
// 获取表格数据
const updateTableData = (e, searchWord) => {
console.log(e);
console.log(pickItem);
setTableLoading(true);
setSelectedRowKeys([]);
modelManageList({
dimonsion: '二维',
name: searchWord,
type: e,
modelName: searchWord,
modelType: e,
}).then(res => {
setTableLoading(false);
if (res.say.statusCode === '0000') {
if (res.code === 0) {
if (searchWord != '') {
setShowSearchStyle(true);
} else {
setShowSearchStyle(false);
}
if (res.getMe.length > 0) {
if (res.data.length > 0) {
if (!pickItem) {
let aa = [];
console.log(res.getMe);
res.getMe.map(i => {
i.list.map(j => {
aa.push(j);
});
});
let aa = res.data;
// res.data.map(i => {
// i.list.map(j => {
// aa.push(j);
// });
// });
// 一级数据
let bb = aa;
let len = bb.length;
if (bb.length > 0) {
bb.map(i => {
if (i.children.length > 0) {
len = len + i.children.length;
i.children.map(j => {
delete j.children;
});
......@@ -155,16 +185,17 @@ const DrawBoardManage = () => {
}
});
}
setTotal(len);
console.log(bb);
console.log(bb.length);
setTotal(bb.length);
setTableData(bb);
setSelectGroup(bb);
} else {
let aa = res.getMe[0].list;
let aa = res.data;
let len = aa.length;
if (aa.length > 0) {
aa.map(i => {
if (i.children.length > 0) {
len = len + i.children.length;
i.children.map(j => {
delete j.children;
});
......@@ -173,8 +204,8 @@ const DrawBoardManage = () => {
}
});
}
console.log(aa.length);
setTotal(aa.length);
console.log(aa);
setTotal(len);
setTableData(aa);
setSelectGroup(aa);
}
......@@ -191,29 +222,29 @@ const DrawBoardManage = () => {
setTableLoading(true);
setSelectedRowKeys([]);
modelManageList({
dimonsion: '二维',
name: searchWord,
type: e,
modelName: searchWord,
modelType: e,
}).then(res => {
setTableLoading(false);
if (res.say.statusCode === '0000') {
if (res.code === 0) {
if (searchWord != '') {
setShowSearchStyle(true);
} else {
setShowSearchStyle(false);
}
if (res.getMe.length > 0) {
let aa = [];
console.log(res.getMe);
res.getMe.map(i => {
i.list.map(j => {
aa.push(j);
});
});
if (res.data.length > 0) {
let aa = res.data;
// res.getMe.map(i => {
// i.list.map(j => {
// aa.push(j);
// });
// });
let bb = aa;
let len = bb.length;
if (bb.length > 0) {
bb.map(i => {
if (i.children.length > 0) {
len = len + i.children.length;
i.children.map(j => {
delete j.children;
});
......@@ -222,9 +253,7 @@ const DrawBoardManage = () => {
}
});
}
console.log(bb);
console.log(bb.length);
setTotal(bb.length);
setTotal(len);
setTableData(bb);
setSelectGroup(bb);
} else {
......@@ -240,16 +269,16 @@ const DrawBoardManage = () => {
title: '模型类型',
align: 'center',
dataIndex: 'typeName',
key: 'typeName',
dataIndex: 'ModelTypeName',
key: 'ModelTypeName',
render: (text, record) => {
console.log(record);
// console.log(record);
if (record.children) {
console.log(record.children.length);
// console.log(record.children.length);
}
const obj = {
children: <>{record.realModel == 0 ? <span size="middle">{text}</span> : <span />}</>,
children: <>{record.RelModel == 0 ? <span size="middle">{text}</span> : <span />}</>,
props: {},
};
obj.props.colSpan = 1;
......@@ -260,8 +289,8 @@ const DrawBoardManage = () => {
title: '模型名称',
align: 'center',
dataIndex: 'name',
key: 'name',
dataIndex: 'ModelName',
key: 'ModelName',
render: (text, record) => {
const obj = {
children: <span>{searchStyle(text)} </span>,
......@@ -275,8 +304,8 @@ const DrawBoardManage = () => {
title: '图像',
align: 'center',
dataIndex: 'modelPath',
key: 'modelPath',
dataIndex: 'Path',
key: 'Path',
render: (text, record) => {
let time = new Date();
let timestamp = Date.parse(time);
......@@ -312,21 +341,21 @@ const DrawBoardManage = () => {
// return obj;
// },
// },
{
title: '设计者',
align: 'center',
dataIndex: 'people',
width: 80,
key: 'people',
render: (text, record) => {
const obj = {
children: <span>{text} </span>,
props: {},
};
obj.props.colSpan = 1;
return obj;
},
},
// {
// title: '设计者',
// align: 'center',
// dataIndex: 'people',
// width: 80,
// key: 'people',
// render: (text, record) => {
// const obj = {
// children: <span>{text} </span>,
// props: {},
// };
// obj.props.colSpan = 1;
// return obj;
// },
// },
{
title: '创建日期',
align: 'center',
......@@ -348,6 +377,7 @@ const DrawBoardManage = () => {
width: 150,
key: 'action',
render: record => {
// console.log(record);
let aa = (
<Space size="middle">
<Tooltip title="编辑">
......@@ -362,6 +392,28 @@ const DrawBoardManage = () => {
style={{ fontSize: '16px', color: '#1890FF' }}
/>
</Tooltip>
{record.children ? (
<Space size="middle">
<Tooltip title="关联父模型">
<ShareAltOutlined
onClick={() => {
message.warning('该模型存在子模型不能关联父模型');
}}
style={{ fontSize: '16px', color: 'rgb(199 194 194)' }}
/>
</Tooltip>
</Space>
) : (
<Space size="middle">
<Tooltip title="关联父模型">
<ShareAltOutlined
onClick={() => associationModel(record)}
style={{ fontSize: '16px', color: '#1890FF' }}
/>
</Tooltip>
</Space>
)}
<Tooltip title="删除">
<DeleteOutlined
onClick={() => ondelete(record)}
......@@ -374,7 +426,7 @@ const DrawBoardManage = () => {
children: aa,
props: {},
};
obj.props.colSpan = record.realModel == 0 ? 1 : 1;
obj.props.colSpan = record.RelModel == 0 ? 1 : 1;
return obj;
},
},
......@@ -388,7 +440,7 @@ const DrawBoardManage = () => {
const obj = {
children: (
<>
{record.realModel == 0 ? (
{record.RelModel == 0 ? (
<Space size="middle">
<Tooltip title="新增">
<PlusOutlined
......@@ -404,7 +456,7 @@ const DrawBoardManage = () => {
),
props: {},
};
obj.props.colSpan = record.realModel == 0 ? 1 : 1;
obj.props.colSpan = record.RelModel == 0 ? 1 : 1;
return obj;
},
},
......@@ -420,6 +472,11 @@ const DrawBoardManage = () => {
setEditVisible(true);
};
const associationModel = e => {
setObj(e);
setAssociationVisible(true);
};
const onexport = e => {
console.log(e);
setObj(e);
......@@ -443,7 +500,7 @@ const DrawBoardManage = () => {
const handleSearch = e => {
setSearchWord(e.target.value);
updateTableData(pickItem.name, e.target.value);
// updateTableData(pickItem.name, e.target.value);
};
const addModal = () => {
......@@ -452,12 +509,53 @@ const DrawBoardManage = () => {
const rowSelection = {
selectedRowKeys,
onChange: (selectedRowKeys, selectedRows) => {
setSelectedRowKeys(selectedRowKeys);
console.log(selectedRowKeys);
onChange: (selectedRow, selectedRows) => {
if (selectedRow.length < selectedRowKeys.length) {
let aa;
// 找到取消勾选一级模形id
selectedRowKeys.map(i => {
if (selectedRow.indexOf(i) == -1) {
aa = i;
}
});
// 从已选数组中删除取消勾选一级模型的二级模型id
keepRow.map(j => {
if (j.ID == aa) {
// 判断是否存在二级模型
if (j.children) {
j.children.map(ii => {
selectedRow.splice(selectedRow.findIndex(item => item.ID === ii.ID), 1);
});
}
}
});
setSelectedRowKeys(selectedRow);
} else {
let aa = selectedRow;
// 找到勾选一级模型的二级模型id存入已勾选列表
selectedRows.map(i => {
// 判断是否存在二级模型
if (i.children) {
i.children.map(i => {
aa.push(i.ID);
});
}
});
setSelectedRowKeys(Array.from(new Set(aa)));
}
setKeepRow(selectedRows);
// 控制批量操作模型按钮样式
if (selectedRow.length > 0) {
setSelectColor({});
setMultiOperate(false);
setMultiOperateButtonType('primary');
} else {
setMultiOperate(true);
setMultiOperateButtonType('default');
}
},
renderCell: (checked, record, index, originNode) => {
if (record.realModel != 0) {
if (record.RelModel != 0) {
return null;
}
return originNode;
......@@ -496,7 +594,7 @@ const DrawBoardManage = () => {
const deleteModalData = () => {
setTableLoading(true);
DelModelType({ modelId: changeObj.id }).then(res => {
DelModelType({ id: changeObj.ID }).then(res => {
setTableLoading(false);
if (res.code === 0) {
setDeleteModalVisible(false);
......@@ -521,9 +619,9 @@ const DrawBoardManage = () => {
const deleteData = () => {
setTableLoading(true);
deleteByModel({ ids: obj.id }).then(res => {
deleteByModel({ ids: obj.ID }).then(res => {
setTableLoading(false);
if (res.statusCode === '0000') {
if (res.code === 0) {
setDeleteVisible(false);
notification.success({
message: '删除成功',
......@@ -533,7 +631,7 @@ const DrawBoardManage = () => {
} else {
notification.error({
message: '删除失败',
description: res.info,
description: res.msg,
});
}
});
......@@ -547,7 +645,7 @@ const DrawBoardManage = () => {
setTableLoading(true);
deleteByModel({ ids: selectedRowKeys.toString() }).then(res => {
setTableLoading(false);
if (res.statusCode === '0000') {
if (res.code === 0) {
setMultDeleteVisible(false);
notification.success({
message: '删除成功',
......@@ -557,7 +655,7 @@ const DrawBoardManage = () => {
} else {
notification.error({
message: '删除失败',
description: res.info,
description: res.msg,
});
}
});
......@@ -579,7 +677,20 @@ const DrawBoardManage = () => {
};
const onImportSubmit = () => {
setPickItem('');
setImportVisible(false);
setTreeLoading(true);
typeList().then(res => {
if (res.code === 0) {
setTreeLoading(false);
updateTableData('', searchWord);
setTreeData(res.data);
}
});
// updateTableData(pickItem.name, searchWord);
};
const onAssociationSubmit = () => {
updateTableData(pickItem.name, searchWord);
};
......@@ -608,9 +719,14 @@ const DrawBoardManage = () => {
}
};
const ExportDataAll = () => {
window.location.href = DownLoadModelType({ modelList: 'all' });
// window.location.href = Export({ Ids: selectedRowKeys.toString() });
};
const ExportSingle = e => {
console.log(e);
window.location.href = DownLoadModelTypeSingle({ modeId: e.id });
window.location.href = DownLoadModelTypeSingle({ modeId: e.ID });
};
const choose = () => {
......@@ -619,6 +735,21 @@ const DrawBoardManage = () => {
updateTableDataAll('', '');
};
// 用户批量操作
const userButtonMenu = (
<Menu>
{/* <Menu.Item key="1" onClick={importFile} icon={<UploadOutlined />}>
批量导入模型
</Menu.Item> */}
<Menu.Item key="1" onClick={ExportData} icon={<DownloadOutlined />}>
批量导出模型
</Menu.Item>
<Menu.Item key="2" onClick={multDeleteData} icon={<DeleteOutlined />}>
批量删除模型
</Menu.Item>
</Menu>
);
return (
<div className={styles.base_container}>
<Card style={{ width: '100%', height: 'calc(100vh - 130px)' }}>
......@@ -669,7 +800,7 @@ const DrawBoardManage = () => {
<div
className={classnames({
[styles.listItem]: true,
[styles.pickItem]: item.id === pickItem.id,
[styles.pickItem]: item.ID === pickItem.ID,
[styles.listHover]: item !== pickItem && item === hoverItemIndex,
})}
onClick={e => {
......@@ -683,7 +814,7 @@ const DrawBoardManage = () => {
onMouseLeave={() => {
setHoverItemIndex('');
}}
key={item.id}
key={item.ID}
>
<div className={styles.title}>
<span>{item.name}</span>
......@@ -726,8 +857,8 @@ const DrawBoardManage = () => {
<Search
style={{ width: 260 }}
placeholder="请输入关键词"
onSearch={submitSearchUser}
onChange={e => handleSearch(e)}
onSearch={submitSearchUser}
enterButton
value={searchWord}
/>
......@@ -737,34 +868,45 @@ const DrawBoardManage = () => {
type="primary"
icon={<PlusOutlined />}
onClick={addTemplate}
style={{ marginLeft: '20px' }}
style={{ marginRight: '20px' }}
>
新增
</Button>
<Button
type="primary"
icon={<DeleteOutlined />}
onClick={multDeleteData}
style={{ marginLeft: '20px' }}
>
删除
</Button>
<Button
type="primary"
icon={<UploadOutlined />}
onClick={importFile}
style={{ marginLeft: '20px' }}
style={{ marginRight: '20px' }}
>
导入
</Button>
<Button
type="primary"
icon={<DownloadOutlined />}
onClick={ExportData}
onClick={ExportDataAll}
style={{ marginRight: '20px' }}
>
导出全部
</Button>
{/* <Button
type="primary"
icon={<DeleteOutlined />}
onClick={multDeleteData}
style={{ marginLeft: '20px' }}
>
导出
删除
</Button>
*/}
<Dropdown
overlay={userButtonMenu}
disabled={multiOperate}
style={{ marginRight: '20px' }}
>
<Button type={multiOperateButtonType}>
模型批量操作 <DownOutlined />
</Button>
</Dropdown>
</div>
</div>
<Table
......@@ -773,10 +915,10 @@ const DrawBoardManage = () => {
size="small"
expandIconAsCell={false}
expandIconColumnIndex={-1}
rowKey={record => record.id}
rowKey={record => record.ID}
locale={zhCN}
bordered
expandedRowKeys={selectGroup.map(item => item.id)}
expandedRowKeys={selectGroup.map(item => item.ID)}
// expandRowByClick
columns={columns}
dataSource={tableData}
......@@ -785,16 +927,19 @@ const DrawBoardManage = () => {
scroll={{ y: 'calc(100vh - 262px)', x: '800px' }}
onExpand={onUnfold}
onRow={record => ({
// onDoubleClick: event => {
// event.stopPropagation();
// editEventType(record);
// }, // 双击
onDoubleClick: event => {
event.stopPropagation();
onedit(record);
}, // 双击
onClick: e => {
setSelectColor(record);
},
})}
pagination={{
showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共 ${total} 条`,
showTotal: (total, range) => {
// console.log(range);
return `共 ${totalData} 条`;
},
pageSizeOptions: [10, 20, 50, 100],
defaultPageSize: 10,
showQuickJumper: true,
......@@ -812,13 +957,13 @@ const DrawBoardManage = () => {
<AddModal
visible={addModalVisible}
onCancel={() => setAddModalVisible(false)}
updateTrees={updateTrees}
callBackSubmit={addBack}
/>
<EditModal
visible={editModalVisible}
onCancel={() => setEditModalVisible(false)}
updateTrees={updateTrees}
changeObj={changeObj}
callBackSubmit={editBack}
/>
<AddTemplate
visible={addTemplateVisible}
......@@ -866,7 +1011,7 @@ const DrawBoardManage = () => {
cancelText="取消"
onOk={deleteData}
>
<span>是否删除该数据</span>
<span>是否删除该模型</span>
</Modal>
<Modal
visible={multDeleteVisible}
......@@ -876,13 +1021,19 @@ const DrawBoardManage = () => {
cancelText="取消"
onOk={multDelete}
>
<span>是否批量删除所选数据</span>
<span>是否批量删除所选模型</span>
</Modal>
<ImportModal
visible={importVisible}
onCancel={() => setImportVisible(false)}
callBackSubmit={onImportSubmit}
/>
<AssociationModel
visible={associationVisible}
obj={obj}
onCancel={() => setAssociationVisible(false)}
callBackSubmit={onAssociationSubmit}
/>
</div>
);
};
......
......@@ -2,7 +2,7 @@
* @Description:
* @Author: leizhe
* @Date: 2022-04-07 10:23:26
* @LastEditTime: 2022-04-11 16:24:40
* @LastEditTime: 2022-05-20 09:30:13
* @LastEditors: leizhe
*/
import React, { useEffect } from 'react';
......@@ -10,7 +10,7 @@ import { Modal, Form, Input, notification, message } from 'antd';
import { UpdateModelType } from '@/services/drawBoardManage/api';
const EditModal = props => {
const { visible, onCancel, updateTrees, changeObj } = props;
const { visible, onCancel, changeObj, callBackSubmit = () => {} } = props;
const [addForm] = Form.useForm();
useEffect(() => {
......@@ -18,18 +18,19 @@ const EditModal = props => {
}, [visible]);
const submitEdit = () => {
console.log(changeObj);
console.log(addForm.getFieldValue('name'));
if (addForm.getFieldValue('name')) {
UpdateModelType({ modelName: addForm.getFieldValue('name'), modelId: changeObj.id })
UpdateModelType({ modelTypeName: addForm.getFieldValue('name'), id: changeObj.ID })
.then(res => {
if (res.code === 0) {
callBackSubmit(addForm.getFieldValue('name'));
onCancel();
notification.success({
message: '提交成功',
duration: 2,
});
// 重新获取机构树与用户表
updateTrees();
} else {
notification.error({
message: '提交失败',
......
......@@ -26,10 +26,10 @@ const EditTemplate = props => {
addTemplateForm.resetFields();
console.log(pickItem);
console.log(obj);
if (obj.modelPath) {
let index = obj.modelPath.lastIndexOf('\\');
let ab = obj.modelPath.substring(index + 1, obj.modelPath.length);
let a = JSON.parse(obj.size);
if (obj.Path) {
let index = obj.Path.lastIndexOf('\\');
let ab = obj.Path.substring(index + 1, obj.Path.length);
let a = JSON.parse(obj.Json);
console.log(a);
let aa;
let bb;
......@@ -43,8 +43,8 @@ const EditTemplate = props => {
}
}
addTemplateForm.setFieldsValue({
Name: obj.name,
Type: obj.typeName,
Name: obj.ModelName,
Type: obj.ModelTypeName,
ModelFile: ab,
imageWidth: aa,
imageHeight: bb,
......@@ -61,11 +61,11 @@ const EditTemplate = props => {
console.log(aa);
console.log(file);
const formData = new FormData();
formData.append('ModelName', addTemplateForm.getFieldsValue().Name);
formData.append('ModelType', obj.typeName);
formData.append('ModelName', addTemplateForm.getFieldsValue().ModelFile);
formData.append('ModelType', obj.ModelTypeName);
formData.append('width', aa.width);
formData.append('height', aa.height);
formData.append('ID', obj.id);
formData.append('ID', obj.ID);
formData.append('ModelFile', file);
// if (obj.realModal != 0) {
// formData.append('RelModel', obj.realModel);
......@@ -77,13 +77,13 @@ const EditTemplate = props => {
notification.success({
message: '提示',
duration: 3,
description: res.info,
description: res.msg,
});
} else {
notification.error({
message: '提示',
duration: 3,
description: res.errMsg,
description: res.msg,
});
}
});
......@@ -111,7 +111,7 @@ const EditTemplate = props => {
imageWidth: `${image.width}px`,
imageHeight: `${image.height}px`,
ModelFile: file.name,
// Name: file.name.substring(0, file.name.lastIndexOf('.')),
Name: file.name.substring(0, file.name.lastIndexOf('.')),
});
};
// };
......@@ -169,7 +169,7 @@ const EditTemplate = props => {
},
]}
>
<Input placeholder="仅支持png和svg格式" />
<Input placeholder="仅支持png和svg格式" disabled />
</Form.Item>
</Col>
<Col span={7}>
......
......@@ -2,7 +2,7 @@
* @Description:
* @Author: leizhe
* @Date: 2022-04-11 18:12:39
* @LastEditTime: 2022-04-14 15:57:18
* @LastEditTime: 2022-05-19 17:28:25
* @LastEditors: leizhe
*/
import React, { useEffect, useState } from 'react';
......@@ -13,8 +13,10 @@ const ImportModal = props => {
const { visible, onCancel, callBackSubmit = () => {} } = props;
const [addForm] = Form.useForm();
const [file, setFile] = useState('');
const [load, setLoad] = useState(false); // 提交加载
useEffect(() => {
setLoad(false);
addForm.resetFields();
}, [visible]);
......@@ -32,22 +34,24 @@ const ImportModal = props => {
const importData = () => {
addForm.validateFields().then(validate => {
if (validate) {
setLoad(true);
const formData = new FormData();
formData.append('file', file);
Import(formData).then(res => {
if (res.statusCode === '0000') {
setLoad(false);
if (res.code === 0) {
callBackSubmit();
addForm.resetFields();
notification.success({
message: '提示',
duration: 3,
description: res.info,
description: res.msg,
});
} else {
notification.error({
message: '提示',
duration: 3,
description: res.errMsg,
description: res.msg,
});
}
});
......@@ -61,6 +65,7 @@ const ImportModal = props => {
onCancel={onCancel}
destroyOnClose
onOk={importData}
confirmLoading={load}
afterClose={() => {
addForm.resetFields();
}}
......
.formStyle{
margin-bottom: 40px;
padding-bottom: 30px;
// height: 100%;
// overflow-y: scroll;
}
.formbtn{
.formbtn {
position: fixed;
bottom: 40px;
right:40%
right: 40%;
}
.divbox{
.divbox {
height: 100%;
overflow: hidden;
}
\ No newline at end of file
}
.formStyle {
margin-bottom: 40px;
padding-bottom: 30px;
}
.rolebox {
display: flex;
justify-content: space-between;
flex-wrap: nowrap;
}
.cardItemData {
display: flex;
justify-content: space-around;
width: 100%;
padding: 1rem;
border: 1px solid #b5b8c8;
margin-bottom: 1rem;
overflow-x: scroll;
}
.divBox {
// display: flex;
width: 100%;
flex-wrap: wrap;
border: 1px solid #c2cdfd;
border-radius: 5px;
margin-top: 20px;
min-height: 50px;
padding: 0 10px 10px 20px;
.ant-checkbox-wrapper {
background-color: #fff;
}
.topCheckbox {
height: 20px;
margin: -10px 0 0 0px;
line-height: 20px;
}
.topCheckbox > label :hover {
font-weight: 600;
}
.checkdiv {
display: flex;
flex-wrap: wrap;
// margin-left: 20px;
// justify-content: space-between;
}
}
.boe {
border: 1px solid #d9d9d9;
width: 100%;
}
import React, { useState, useEffect } from 'react';
import { Form, Input, Button, Row, Col, notification } from 'antd';
import { Form, Input, Button, Row, Col, notification, Checkbox } from 'antd';
import classnames from 'classnames';
import styles from './addForm.less';
import PicturesWall from '@/components/Upload/index';
......@@ -8,10 +8,14 @@ import CheckList from './checkBox';
const { Item } = Form;
const EditForm = props => {
const { submitCallback, nodeType, info, valueCallback = () => {} } = props;
const { submitCallback, nodeType, info, inf, checkList, valueCallback = () => {} } = props;
const [form] = Form.useForm();
const [otherForm] = Form.useForm();
const [showParmarModal, setShowParmarModal] = useState(false);
const [choo, setChoo] = useState(false); // 最外层复选框状态
const [indeterminate, setIndeterminate] = useState([]);
const [plainOptions, setPlainOptions] = useState([]); // 存储一级数据
const [indeterminateAll, setIndeterminateAll] = useState(false);
const layout = {
layout: 'horizontal',
labelCol: { span: 2, offset: 0 },
......@@ -21,26 +25,66 @@ const EditForm = props => {
useEffect(() => {
form.resetFields();
otherForm.resetFields();
setPlainOptions(inf);
}, [info]);
useEffect(() => {
if (JSON.stringify(info) != '{}') {
let data = info.data;
if (nodeType === 1 || nodeType === 2) {
let arr = Object.keys(form.getFieldsValue());
let obj = {};
arr.map(i => {
obj[i] = data[i];
console.log(info);
if (nodeType === 1 || nodeType === 2) {
let arr = Object.keys(form.getFieldsValue());
let obj = {};
arr.map(i => {
obj[i] = info[i];
});
form.setFieldsValue({ ...obj, shortName: info.menuShortName });
}
if (nodeType === 3 || nodeType === 4) {
let arr = Object.keys(otherForm.getFieldsValue());
let obj = {};
arr.map(i => {
obj[i] = info[i];
});
otherForm.setFieldsValue({ ...obj, shortName: info.menuShortName });
}
if (inf.length > 0) {
let list = [];
inf.map(item => {
list.push(item);
});
let chooseData = [];
let listData = [];
list.forEach((item, index) => {
chooseData.push(
!!list[index].checkedList.size && list[index].checkedList.size < list[index].list.length,
);
item.list.map(i => {
listData.push(i.related);
});
form.setFieldsValue({ ...obj, shortName: data.menuShortName });
}
if (nodeType === 3 || nodeType === 4) {
let arr = Object.keys(otherForm.getFieldsValue());
let obj = {};
arr.map(i => {
obj[i] = data[i];
});
let data = new Set();
let datalist = [];
inf.map(item => {
if (item.isChecked == true) {
data.add(item.groupName);
}
});
list.map((k, i) => {
k.list.map(p => {
datalist.push(p.related);
});
otherForm.setFieldsValue({ ...obj, shortName: data.menuShortName });
});
if (data.size == inf.length) {
setChoo(true);
} else {
setChoo(false);
}
if (datalist.indexOf(true) == -1) {
setIndeterminateAll(false);
} else if (datalist.indexOf(false) == -1) {
setIndeterminateAll(false);
} else {
setIndeterminateAll(true);
}
setIndeterminate(chooseData);
}
}, [info]);
......@@ -53,6 +97,19 @@ const EditForm = props => {
if (nodeType === 3 || nodeType === 4) {
let obj = otherForm.getFieldsValue();
console.log(obj, '3,4');
console.log(obj);
console.log(plainOptions);
let data = [];
plainOptions.map(item => {
item.checkedList.forEach(i => {
data.push(i);
});
});
if (data.length > 0) {
obj.relatedRoleList = data.toString();
} else {
obj.relatedRoleList = '';
}
submitCallback(obj);
}
};
......@@ -68,6 +125,143 @@ const EditForm = props => {
}
setShowParmarModal(true);
};
// 全选复选框改变事件
const checkAll = () => {
let list = [];
plainOptions.map(item => {
list.push(item);
});
if (choo == false) {
indeterminate.forEach((i, j) => {
if (i == true) {
indeterminate[j] = false;
}
});
setChoo(true);
list.map((item, index) => {
item.isChecked = true;
item.list.map(i => {
i.related = true;
list[index].checkedList.add(i.relatedRoleCode);
});
});
} else {
setChoo(false);
list.map((item, index) => {
item.isChecked = false;
item.list.map(i => {
i.related = false;
list[index].checkedList.delete(i.relatedRoleCode);
});
});
}
setIndeterminateAll(false);
setPlainOptions(list);
};
// 一级复选框改变事件
const selectChange = (e, index, value) => {
let list = [];
plainOptions.map(item => {
list.push(item);
});
list[index].isChecked = e.target.checked;
if (e.target.checked) {
checkList.add(list[index].groupName);
list[index].list.map(i => {
i.related = true;
list[index].checkedList.add(i.relatedRoleCode);
});
} else {
checkList.delete(list[index].groupName);
list[index].list.map(i => {
i.related = false;
list[index].checkedList.delete(i.relatedRoleCode);
});
}
const indeterminateArr = [...indeterminate];
indeterminateArr[index] = false;
setIndeterminate(indeterminateArr);
let flag = [];
let data = [];
list.map(item => {
if (item.isChecked == false) {
flag.push(item);
}
});
list.map((k, i) => {
k.list.map(p => {
data.push(p.related);
});
});
if (data.indexOf(true) == -1) {
setIndeterminateAll(false);
} else if (data.indexOf(false) == -1) {
setIndeterminateAll(false);
} else {
setIndeterminateAll(true);
}
if (flag.length > 0) {
setChoo(false);
} else {
setChoo(true);
}
setPlainOptions(list);
};
// 二级复选框改变事件
const handleChecked = (e, index, value, i) => {
let list = [];
plainOptions.map(item => {
list.push(item);
});
list[index].list[i].related = e.target.checked;
if (e.target.checked) {
list[index].checkedList.add(list[index].list[i].relatedRoleCode);
} else {
list[index].checkedList.delete(list[index].list[i].relatedRoleCode);
}
const indeterminateArr = [...indeterminate];
indeterminateArr[index] =
!!list[index].checkedList.size && list[index].checkedList.size < list[index].list.length;
setIndeterminate(indeterminateArr);
if (
list[index].checkedList.size == 0 ||
list[index].checkedList.size < list[index].list.length
) {
list[index].isChecked = false;
}
if (list[index].checkedList.size == list[index].list.length) {
list[index].isChecked = true;
}
let flag = [];
let data = [];
list.map(item => {
if (item.isChecked == false) {
flag.push(item);
}
});
list.map((k, i) => {
k.list.map(p => {
data.push(p.related);
});
// data.push(list[i].isChecked);
});
if (data.indexOf(true) == -1) {
setIndeterminateAll(false);
} else if (data.indexOf(false) == -1) {
setIndeterminateAll(false);
} else {
setIndeterminateAll(true);
}
if (flag.length > 0) {
setChoo(false);
} else {
setChoo(true);
}
setPlainOptions(list);
};
return (
<div className={classnames({ [styles.divbox]: true })}>
{(nodeType === 1 || nodeType === 2) && (
......@@ -222,12 +416,101 @@ const EditForm = props => {
<Item label="功能参数" name="funParam" style={{ marginLeft: '11px' }}>
<Input style={{ width: '100%' }} />
</Item>
<CheckList
{/* <CheckList
info={info.data ? info.data : {}}
nodeType={nodeType}
valueCallback={valueCallback}
style={{ width: '100%' }}
/>
/> */}
<div className={styles.boe}>
<div
style={{ width: '95%', marginLeft: '2%', marginTop: '10px', marginBottom: '20px' }}
>
<div style={{ marginTop: '-23px', backgroundColor: 'white', width: '92px' }}>
<Checkbox
onChange={checkAll}
checked={choo}
nodeType={nodeType}
indeterminate={indeterminateAll}
>
<span style={{ fontWeight: 'bold', fontSize: '15px' }}>关联角色</span>
</Checkbox>
</div>
{plainOptions && plainOptions.length > 0 ? (
plainOptions.map((item, index) => {
return (
<div
className={classnames({
[styles.divBox]: item.groupName.length > 0,
})}
>
<div style={{ marginTop: '-12px' }}>
{item.groupName.length == 0 ? (
<span style={{ marginLeft: '15px', marginTop: '0px' }} />
) : (
<Checkbox
onChange={e => {
selectChange(e, index, item);
}}
checked={item.isChecked}
indeterminate={indeterminate[index]}
>
<span style={{ fontWeight: 'bold', fontSize: '15px' }}>
{item.groupName}
</span>
</Checkbox>
)}
</div>
<div style={{ marginLeft: '0px', marginTop: '5px' }}>
{item.groupName.length == 0 ? (
<>
<Row>
{item.list.map((val, i) => {
return (
<Col span={4} style={{ marginBottom: '10px' }}>
<Checkbox
onChange={e => {
handleChecked(e, index, item, i);
}}
checked={val.related}
>
{val.relatedRoleName}
</Checkbox>
</Col>
);
})}
</Row>
</>
) : (
<>
<Row>
{item.list.map((val, i) => {
return (
<Col span={4}>
<Checkbox
onChange={e => {
handleChecked(e, index, item, i);
}}
checked={val.related}
>
{val.relatedRoleName}
</Checkbox>
</Col>
);
})}
</Row>
</>
)}
</div>
</div>
);
})
) : (
<span />
)}
</div>
</div>
<Item wrapperCol={{ offset: 10 }}>
<Button type="primary" htmlType="submit">
提交
......
......@@ -24,6 +24,7 @@ import Tree from '@/components/ExpendableTree';
import AddForm from './AddForm';
import EditForm from './editForm';
import CheckList from './checkBox';
import { setIn } from 'immutable';
const MiniMenu = props => {
const { userMode, clientName, parentKey } = props;
......@@ -50,6 +51,8 @@ const MiniMenu = props => {
const [keepId, setKeepId] = useState('');
const [mapDataList, setMapDataList] = useState(new Set());
const [keepType, setKeepType] = useState('');
const [inf, setInf] = useState({});
const [checkList, setCheckList] = useState([]);
// 获取菜单树
useEffect(() => {
......@@ -270,7 +273,26 @@ const MiniMenu = props => {
.then(res => {
setLoading(false);
if (res.code === 0) {
setInfo({ ...res });
let infoList = res.data.relatedRoleList.map(item => ({
groupName: item.groupName,
isChecked: item.isChecked,
list: item.list,
checkedList: new Set([]),
}));
setInf(infoList);
setInfo({ ...res.data });
let data = new Set();
infoList.map(item => {
if (item.isChecked == true) {
data.add(item.groupName);
}
item.list.map(i => {
if (i.related) {
item.checkedList.add(i.relatedRoleCode);
}
});
});
setCheckList(data);
} else {
notification.error({
message: '提示',
......@@ -416,9 +438,9 @@ const MiniMenu = props => {
setLoading(true);
console.log(prop);
let obj = { ...prop };
if (nodeType === 3 || nodeType === 4) {
obj.relatedRoleList = String(roleList) || '';
}
// if (nodeType === 3 || nodeType === 4) {
// obj.relatedRoleList = String(roleList) || '';
// }
editMenu({
_dc: Date.now(),
menuID,
......@@ -755,6 +777,8 @@ const MiniMenu = props => {
<EditForm
nodeType={nodeType}
info={info}
inf={inf}
checkList={checkList}
submitCallback={editSubmitCallback}
valueCallback={valueCallback}
/>
......
......@@ -47,6 +47,8 @@ const EditForm = props => {
};
// 回显表单
useEffect(() => {
console.log(info);
console.log(infoAll);
form.resetFields();
otherForm.resetFields();
setPlainOptions(info);
......
......@@ -2,40 +2,44 @@
* @Description:
* @Author: leizhe
* @Date: 2022-04-06 17:28:30
* @LastEditTime: 2022-05-13 09:54:37
* @LastEditTime: 2022-05-19 19:31:58
* @LastEditors: leizhe
*/
import { get, post, postForm, PUBLISH_SERVICE, WebSERVICE, CoreSERVICE } from '@/services/index';
export const typeList = param => get(`${WebSERVICE}/ModelType/ModelType/TypeList`, param);
export const typeList = param => get(`${PUBLISH_SERVICE}/ModelType/GetModelType`, param);
// export const typeList = param => get(`${CoreSERVICE}/ModelType/List`, param);
export const modelManageList = param => get(`${WebSERVICE}/Models/Models/ModelManageList`, param);
export const modelManageList = param => post(`${PUBLISH_SERVICE}/ModelType/GetModelInfo`, param);
export const modelManageListAll = param => post(`${PUBLISH_SERVICE}/ModelType/GetModelInfo`, param);
// export const modelManageList = param => get(`${CoreSERVICE}/Model/ModelList`, param);
export const SaveUpload = query =>
post(`${WebSERVICE}/Models/Models/SaveUpload`, query, {
headers: {
'Content-Type': 'multipart/form-data;charset=UTF-8',
},
});
// export const SaveUpload = query =>
// post(`${CoreSERVICE}/Model/Save`, query, {
// post(`${WebSERVICE}/Models/Models/SaveUpload`, query, {
// headers: {
// 'Content-Type': 'multipart/form-data;charset=UTF-8',
// },
// });
export const SaveUpload = query =>
post(`${PUBLISH_SERVICE}/ModelType/AddModelInfo`, query, {
headers: {
'Content-Type': 'multipart/form-data;charset=UTF-8',
},
});
export const Save = param => get(`${WebSERVICE}/ModelType/ModelType/Save`, param);
// export const Save = param => get(`${WebSERVICE}/ModelType/ModelType/Save`, param);
export const Save = param => post(`${PUBLISH_SERVICE}/ModelType/AddModelType`, param);
export const deleteByModel = param => get(`${WebSERVICE}/Models/Models/DeleteByModel`, param);
// export const deleteByModel = param => get(`${WebSERVICE}/Models/Models/DeleteByModel`, param);
export const deleteByModel = param => get(`${PUBLISH_SERVICE}/ModelType/DeleteModel`, param);
export const UpdateModelType = param => get(`${PUBLISH_SERVICE}/ModelType/UpdateModelType`, param);
export const UpdateModelType = param => post(`${PUBLISH_SERVICE}/ModelType/UpdateModelType`, param);
export const DelModelType = param => get(`${PUBLISH_SERVICE}/ModelType/DelModelType`, param);
export const DelModelType = param => post(`${PUBLISH_SERVICE}/ModelType/DelModelType`, param);
export const Import = query =>
post(`${WebSERVICE}/Models/Models/Import`, query, {
post(`${PUBLISH_SERVICE}/ModelType/UpLoadModel`, query, {
headers: {
'Content-Type': 'multipart/form-data;charset=UTF-8',
},
......@@ -58,3 +62,5 @@ export const DownLoadModelTypeSingle = query =>
`${PUBLISH_SERVICE}/ModelType/DownLoadModelTypeSingle?modeId=${query.modeId}`;
export const Export = query => `${WebSERVICE}/Models/Models/Export?Ids=${query.Ids}`;
export const UpdateParentId = param => post(`${PUBLISH_SERVICE}/ModelType/UpdateParentId`, param);
/*
* @Description:
* @Author: leizhe
* @Date: 2021-12-23 17:51:09
* @LastEditTime: 2022-05-20 11:47:20
* @LastEditors: leizhe
*/
import { get, post, PUBLISH_SERVICE, CITY_SERVICE } from '@/services/index';
import qs from 'qs';
/**
* @param {*} params
*/
export const miniAppSiteTree = params =>
get(`${CITY_SERVICE}/OMS.svc/MiniAppSiteTree`, params);
export const miniAppSiteTree = params => get(`${CITY_SERVICE}/OMS.svc/MiniAppSiteTree`, params);
/**
* 获取网站配置
* @param {*} params
* title:'名称'
*/
export const getWebsite = params =>
get(`${PUBLISH_SERVICE}/WebSite/MiniApp_GetWebsite`, params);
export const getWebsite = params => get(`${PUBLISH_SERVICE}/WebSite/MiniApp_GetWebsite`, params);
/**
*
* @param {*} params
......@@ -31,11 +36,7 @@ export const getWebsite = params =>
export const editWebsite = (params, options) => {
let strParams = params;
let qsParams = strParams;
return post(
`${PUBLISH_SERVICE}/WebSite/MiniApp_EditWebsite?_version=9999`,
qsParams,
options,
);
return post(`${PUBLISH_SERVICE}/WebSite/MiniApp_EditWebsite?_version=9999`, qsParams, options);
};
/**
......@@ -64,8 +65,7 @@ export const getMiniAppModuleTree = params =>
relatedRoleList: //角色数组
}
*/
export const addMenu = params =>
post(`${PUBLISH_SERVICE}/WebSite/MiniApp_AddMenu`, params);
export const addMenu = params => post(`${PUBLISH_SERVICE}/WebSite/MiniApp_AddMenu`, params);
// 获取菜单详情
/**
......@@ -73,16 +73,13 @@ export const addMenu = params =>
* menuID:''
* }
*/
export const getMenuInfo = params =>
get(`${PUBLISH_SERVICE}/PlatformCenter/Mini_GetMenuInfo`, params);
export const getMenuInfo = params => get(`${PUBLISH_SERVICE}/PlatformCenter/GetMenuInfo`, params);
// 编辑菜单
export const editMenu = params =>
post(`${PUBLISH_SERVICE}/WebSite/MiniApp_EditMenu`, params);
export const editMenu = params => post(`${PUBLISH_SERVICE}/WebSite/MiniApp_EditMenu`, params);
// 删除菜单
export const deleteMenu = params =>
post(`${PUBLISH_SERVICE}/WebSite/MiniApp_DeleteMenu`, params);
export const deleteMenu = params => post(`${PUBLISH_SERVICE}/WebSite/MiniApp_DeleteMenu`, params);
// 获取角色列表
export const getRoleListPlain = params =>
......@@ -95,19 +92,13 @@ export const deleteWebsite = params =>
export const addWebsite = (params, options) =>
// let strParams = JSON.stringify(params);
// let qsParams = qs.stringify({ config: strParams });
post(
`${PUBLISH_SERVICE}/WebSite/MiniApp_AddWebsite?_version=9999`,
params,
options,
);
post(`${PUBLISH_SERVICE}/WebSite/MiniApp_AddWebsite?_version=9999`, params, options);
// 菜单拖拽
export const dragMenu = params =>
post(`${PUBLISH_SERVICE}/WebSite/DragMenu `, params);
export const dragMenu = params => post(`${PUBLISH_SERVICE}/WebSite/DragMenu `, params);
export const deleteMiniMenu = params =>
get(`${PUBLISH_SERVICE}/PlatformCenter/DeleteMiniMenu`, params);
// 获取移动应用上传APK信息
export const getMobileFiles = params =>
get(`${PUBLISH_SERVICE}/FileCenter/GetMobileFiles`, params);
export const getMobileFiles = params => get(`${PUBLISH_SERVICE}/FileCenter/GetMobileFiles`, params);
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