diff --git a/src/pages/company/account/components/MenuForm.jsx b/src/pages/company/account/components/MenuForm.jsx
index cd21632..8201025 100644
--- a/src/pages/company/account/components/MenuForm.jsx
+++ b/src/pages/company/account/components/MenuForm.jsx
@@ -1,36 +1,76 @@
import React, { useState, useEffect } from 'react';
-import { Modal, Tree, Row, Col, List,Tag } from 'antd';
+import { Modal, Tree, Row, Col, Checkbox } from 'antd';
import api from '../service';
import Enumerable from 'linq';
const MenuForm = (props) => {
- const [load, setLoad] = useState();
- const [selectedRowsState, setSelectedRows] = useState();
+ const [load, setLoad] = useState([]);
const [checkedKeys, setCheckedKeys] = useState();
+ const [indeterminate, setindeterminate] = useState(false);
+ const [checkAll,setcheckAll] = useState(false);
useEffect(async () => {
var arr = [];
+ var filteredArr=[]
Enumerable.from(props.values).forEach(t => {
if(!t.isParentMenu){
arr.push(t.id);
}
-
+ if(t.id !== null && typeof t.id !== "undefined"){
+ filteredArr.push(t);
+ }
});
setCheckedKeys(arr)
- console.log("props.values",props.datas)
- var parm={getType:'ALL',type:props.datas.type}
- var ret = await api.GetMenu(parm);
- var data = Enumerable.from(ret.data).toArray();
+ var data =props.treeData;
+ if(getTreeLength(data)===filteredArr.length){
+ setcheckAll(true)
+ setindeterminate(false);
+ }else{
+ setcheckAll(false);
+ if(props.values.length==0){
+ setindeterminate(false);
+ }else{
+ setindeterminate(true);
+ }
+
+ }
setLoad(data);
}, [props.modalVisible])
-
- const lbl = () => {
- var arr = [];
- Enumerable.from(props.values).forEach(t => {
- arr.push({t.name});
- });
- return arr;
+ function getTreeLength(tree) {
+ let length = tree.length; // 初始化计算器为根节点的子节点数量
+
+ for (let i = 0; i < tree.length; i++) {
+ if (Array.isArray(tree[i].children)) { // 如果当前节点有子节点
+ length += getTreeLength(tree[i].children); // 将子节点的长度加到计算器上
+ }
+ }
+
+ return length;
+}
+ const onCheckAllChange = (e) => {
+ if(!checkAll){
+ var data=getAllIds(load,[]);
+ setCheckedKeys(data)
+ setcheckAll(true)
+ setindeterminate(false);
+ }else{
+ setCheckedKeys([])
+ setcheckAll(false)
+ setindeterminate(false);
+ }
+
+ };
+ function getAllIds(tree, result) {
+ console.log(tree)
+ //遍历树 获取id数组
+ for (const i in tree) {
+ result.push(tree[i].key); // 遍历项目满足条件后的操作
+ if (tree[i].children) {
+ //存在子节点就递归
+ getAllIds(tree[i].children, result);
+ }
+ }
+ return result;
}
-
var html = {
maskClosable={false}>
+
+ 全选
+
{ setCheckedKeys(keys) }}
- defaultExpandAll={true}
+ onCheck={(keys, e) => {
+ if(getTreeLength(props.treeData)==keys.length){
+ setcheckAll(true)
+ setindeterminate(false);
+ }else{
+ setcheckAll(false)
+ setindeterminate(true);
+ }
+ setCheckedKeys(keys) ;
+ }}
+ defaultExpandAll={false}
checkedKeys={checkedKeys}
checkable />
diff --git a/src/pages/company/account/index.jsx b/src/pages/company/account/index.jsx
index d4db7a2..e4ed5ea 100644
--- a/src/pages/company/account/index.jsx
+++ b/src/pages/company/account/index.jsx
@@ -123,7 +123,7 @@ const companyManage = () => {
var parm={getType:'ALL',type:0}
api.GetMenu(parm).then((r) => {
if(r.data){
- setTreeData(r.data.data);
+ setTreeData(r.data);
}
});
diff --git a/src/pages/database/goods/goodstypemanage/components/CreateForm.jsx b/src/pages/database/goods/goodstypemanage/components/CreateForm.jsx
index 23b6d38..8b9d197 100644
--- a/src/pages/database/goods/goodstypemanage/components/CreateForm.jsx
+++ b/src/pages/database/goods/goodstypemanage/components/CreateForm.jsx
@@ -26,7 +26,7 @@ const CreateForm = (props) => {
-
+
{
>
更新
,
-
+ {
+ await DelDeviceInfo([record.id]).then((r) => {
+ if(r.data){
+ message.success('删除成功,即将刷新');
+ actionRef.current.reload();
+ }else{
+ message.error('删除失败');
+ }
+
+ });
+ }}
+ onCancel={() => { }}
+ >
+ 删除
+ ,
// {
@@ -326,15 +346,15 @@ const handleRemove = async (selectedRows) => {
>
新建
,
- ,
+ // ,
]}
request={async (params) => {
var data = [];
diff --git a/src/pages/device/deviceVesion/index.jsx b/src/pages/device/deviceVesion/index.jsx
index b2f6e90..20ce765 100644
--- a/src/pages/device/deviceVesion/index.jsx
+++ b/src/pages/device/deviceVesion/index.jsx
@@ -6,7 +6,7 @@ import { PlusOutlined } from '@ant-design/icons';
import ProTable from '@ant-design/pro-table';
import CreateForm from './components/CreateForm';
import { GetDeviceVesionPage, AddDeviceVesion, DelDeviceVesion, UpdateDeviceVesion, GetProductList,UpdateStatus } from "./services"
-
+import { history } from 'umi';
const key = 'message';
//添加
@@ -136,16 +136,17 @@ const GoodsTypeManage = () => {
dataIndex: 'productName',
valueType: 'textarea',
},
- {
- title: '是否存在模板',
- dataIndex: 'templatePath',
- valueType: 'textarea',
- render: (_, record) => [
-
- 存在模板
- 无模板
-
],
- },
+ // {
+ // title: '是否存在模板',
+ // dataIndex: 'templatePath',
+ // valueType: 'textarea',
+ // hideInSearch: true,
+ // render: (_, record) => [
+ //
+ // 存在模板
+ // 无模板
+ //
],
+ // },
{
title: '操作',
dataIndex: 'option',
@@ -182,26 +183,37 @@ const GoodsTypeManage = () => {
>
删除
,
- {
- setCurrentRow(record);
- setIsModalOpen(true);
- setIsAddGoodsTemplate(false);
- }} > 上传设备工艺模型,
- {
- setCurrentRow(record);
- setIsModalOpen(true);
- setIsAddGoodsTemplate(true);
- }} > 上传商品工艺模版,
- 下载工艺模板
+ // {
+ // setCurrentRow(record);
+ // setIsModalOpen(true);
+ // setIsAddGoodsTemplate(false);
+ // }} > 上传设备工艺模型,
+ // {
+ // setCurrentRow(record);
+ // setIsModalOpen(true);
+ // setIsAddGoodsTemplate(true);
+ // }} > 上传商品工艺模版,
+ // 下载工艺模板,
+ {
+ history.push({
+ pathname: '/device/productmanage',
+ query: {
+ isAdd: false,
+ values: record,
+ tabStatus: 'basis'
+ },
+ });
+ }} > 管理,
],
},
];
diff --git a/src/pages/device/product/index.jsx b/src/pages/device/product/index.jsx
index ecdd9e1..1f2771b 100644
--- a/src/pages/device/product/index.jsx
+++ b/src/pages/device/product/index.jsx
@@ -6,7 +6,7 @@ import { PlusOutlined } from '@ant-design/icons';
import ProTable from '@ant-design/pro-table';
import CreateForm from './components/CreateForm';
import { GetProductPage, AddProduct, DelProduct, UpdateProduct,UpdateStatus } from "./services"
-import { history } from 'umi';
+
const key = 'message';
const { Paragraph, Text } = Typography;
const GoodsTypeManage = () => {
@@ -75,18 +75,7 @@ const GoodsTypeManage = () => {
>
删除
,
- {
- history.push({
- pathname: '/device/productmanage',
- query: {
- isAdd: false,
- values: record,
- tabStatus: 'basis'
- },
- });
- }} > 管理,
+
],
},
];
diff --git a/src/pages/device/productmanage/components/CreateForm.jsx b/src/pages/device/productmanage/components/CreateForm.jsx
index 3204eae..d3f88bd 100644
--- a/src/pages/device/productmanage/components/CreateForm.jsx
+++ b/src/pages/device/productmanage/components/CreateForm.jsx
@@ -50,7 +50,7 @@ const CreateForm = (props) => {
form.setFieldsValue({
id: props?.values?.id,
type: props?.values?.type,
- deviceVersionKey: props?.values?.deviceVersionKey,
+ //deviceVersionKey: props?.values?.deviceVersionKey,
name: props?.values?.name,
dataType: props?.values?.dataType,
dataRange: props?.values?.dataRange,
@@ -200,7 +200,7 @@ const onChangeboolLabel1=(e)=>{
-
+ {/*
-
+ */}
属性
diff --git a/src/pages/device/productmanage/components/CreateTopis.jsx b/src/pages/device/productmanage/components/CreateTopis.jsx
index 2a39da9..94ca18f 100644
--- a/src/pages/device/productmanage/components/CreateTopis.jsx
+++ b/src/pages/device/productmanage/components/CreateTopis.jsx
@@ -51,7 +51,7 @@ const onChange=(e)=>{
// initialValues={props?.values}
onFinish={()=>{
form.setFieldsValue({
- topics:"/"+props.productCode+"/${deviceKey}/use/"+topics
+ topics:"/"+props.productCode+"/"+props.productVesion+"/${deviceKey}/use/"+topics
})
console.log(form.getFieldsValue())
props?.onFinish(form.getFieldsValue())
@@ -61,20 +61,20 @@ const onChange=(e)=>{
-
+
diff --git a/src/pages/device/productmanage/index.jsx b/src/pages/device/productmanage/index.jsx
index fa5839b..f4dd5c2 100644
--- a/src/pages/device/productmanage/index.jsx
+++ b/src/pages/device/productmanage/index.jsx
@@ -1,5 +1,5 @@
import { DropboxOutlined, PlusOutlined,ArrowLeftOutlined } from '@ant-design/icons';
-import { Button, message, Input, Upload, Modal, Popconfirm,Card,Typography } from 'antd';
+import { Button, message, Input, Upload, Modal, Popconfirm,Card,Typography,Tabs } from 'antd';
import React, { useState, useRef, useEffect } from 'react';
import { PageContainer, FooterToolbar } from '@ant-design/pro-layout';
import ProTable from '@ant-design/pro-table';
@@ -16,7 +16,8 @@ import {
getproducttopicspage,
addproducttopics,
updateproducttopics,
- deleteproducttopics
+ deleteproducttopics,
+ GetProduct
} from './services';
import { history } from 'umi';
const { Paragraph, Text } = Typography;
@@ -72,14 +73,16 @@ const bomtechnology = (props) => {
//绑定
const actionRef = useRef();
const actiontopisRef= useRef();
+ const actiontopismrRef= useRef();
const [currentRow, setCurrentRow] = useState();
const [currenttopsRow,setcurrenttopsRow] = useState();
//选中的行
const [selectedRowsState, setSelectedRows] = useState([]);
const [dataSource,setdataSource]=useState([]);
const [datafunctionSource,setdatafunctionSource]=useState([]);
- const [DeviceVesionData, setDeviceVesionData] = useState([]);
- const [DeviceVesionEnum, setDeviceVesionEnum] = useState({});
+ // const [DeviceVesionData, setDeviceVesionData] = useState([]);
+ // const [DeviceVesionEnum, setDeviceVesionEnum] = useState({});
+ const [Product, setProduct] = useState({});
const [total,settotal]=useState(0);
const [totalfun,settotalfun]=useState(0);
/** 国际化配置 */
@@ -92,17 +95,21 @@ const bomtechnology = (props) => {
SetCurrTabKey(tabStatus.tabActiveKey);
if(!props.location.query.values.id){
history.push({
- pathname: '/device/product',
+ pathname: '/device/deviceVesion',
});
}else{
- GetDeviceVesion(props.location.query.values.id).then((res)=>{
- let list = {};
- res.data.forEach((item) => {
- list[item.id] = { text: item.vesion };
- });
- setDeviceVesionData(res.data)
- setDeviceVesionEnum(list)
- var params={productId:props.location.query.values.id,deviceTypeKey:props.location.query.values.id,current:1,pageSize:10}
+ // GetDeviceVesion(props.location.query.values.id).then((res)=>{
+ // let list = {};
+ // res.data.forEach((item) => {
+ // list[item.id] = { text: item.vesion };
+ // });
+ // setDeviceVesionData(res.data)
+ // setDeviceVesionEnum(list)
+
+ // })
+ GetProduct(props.location.query.values.productId).then((res)=>{
+ setProduct(res.data)
+ var params={productId:props.location.query.values.productId,productVesionId:props.location.query.values.id,isDefault:true,current:1,pageSize:10}
LoadfunData(params)
LoadtopisData(params);
})
@@ -195,14 +202,14 @@ const bomtechnology = (props) => {
},
},
},
- {
- title: '版本',
- dataIndex: 'vesion',
- valueType: 'select',
- ellipsis: true,
- search: true,
- valueEnum:DeviceVesionEnum
- },
+ // {
+ // title: '版本',
+ // dataIndex: 'vesion',
+ // valueType: 'select',
+ // ellipsis: true,
+ // search: true,
+ // valueEnum:DeviceVesionEnum
+ // },
{
title: '创建时间',
dataIndex: 'createAt',
@@ -242,6 +249,7 @@ const bomtechnology = (props) => {
title: 'Topics类',
dataIndex: 'topics',
valueType: 'textarea',
+ with:500,
render: (text) => {text},
},
{
@@ -275,7 +283,7 @@ const bomtechnology = (props) => {
dataIndex: 'option',
valueType: 'option',
fixed: 'right',
- width: 450,
+ width: 250,
render: (_, record) => [
{
await deleteproducttopics([record.id]).then((r) => {
message.success('删除成功,即将刷新');
- var params={productId:props.location.query.values.id,current:1,pageSize:10}
+ var params={productId:props.location.query.values.productId,current:1,pageSize:10}
LoadtopisData(params)
});
}}
@@ -305,6 +313,60 @@ const bomtechnology = (props) => {
],
},
]
+ const topicsmrcolumns=[
+ {
+ title: '主键',
+ dataIndex: 'id',
+ tip: '规则名称是唯一的 key',
+ hideInSearch: true,
+ hideInTable: true,
+ render: (dom, entity) => {
+ return (
+ {
+ setCurrentRow(entity);
+ setShowDetail(true);
+ }}
+ >
+ {dom}
+
+ );
+ },
+ },
+ {
+ title: 'Topics类',
+ dataIndex: 'topics',
+ valueType: 'textarea',
+ with:500,
+ render: (text) => {text},
+ },
+ {
+ title: '类型',
+ dataIndex: 'topicsType',
+ valueType: 'select',
+ ellipsis: true,
+ search: true,
+ valueEnum: {
+ 0: {
+ text: '发布',
+ },
+ 1: {
+ text: '订阅',
+ },
+ 2: {
+ text: '发布和订阅',
+ },
+ },
+ },
+ {
+ title: '描述',
+ dataIndex: 'description',
+ valueType: 'textarea',
+ ellipsis: true,
+ search: false,
+ with:350,
+ },
+ ]
const operationTabList = [
{
key: 'basis',
@@ -312,7 +374,7 @@ const bomtechnology = (props) => {
},
{
key: 'topis',
- tab: 'topis类列表',
+ tab: 'topics类列表',
},
];
@@ -341,7 +403,7 @@ const handleAdd = async (fields) => {
await addgoodstechnology(JSON.stringify(fields)).then((r) => {
if (r.data) {
message.success('添加成功');
- var params={productId:props.location.query.values.id,deviceTypeKey:props.location.query.values.id,current:1,pageSize:10}
+ var params={productId:props.location.query.values.productId,deviceTypeKey:props.location.query.values.productId,current:1,pageSize:10}
LoadfunData(params)
handleModalVisible(false);
if (actionRef.current) {
@@ -366,7 +428,7 @@ const handleRemove = async (ids) => {
deletegoodstechnology(ids).then((r) => {
if (r.data) {
message.success('删除成功');
- var params={productId:props.location.query.values.id,deviceTypeKey:props.location.query.values.id,current:1,pageSize:10}
+ var params={productId:props.location.query.values.productId,deviceTypeKey:props.location.query.values.productId,current:1,pageSize:10}
LoadfunData(params)
} else {
message.error(r.errors);
@@ -392,7 +454,7 @@ const handleRemove = async (ids) => {
updategoodstechnology(fields).then((r) => {
if (r.data) {
message.success('修改成功');
- var params={productId:props.location.query.values.id,deviceTypeKey:props.location.query.values.id,current:1,pageSize:10}
+ var params={productId:props.location.query.values.productId,deviceTypeKey:props.location.query.values.productId,current:1,pageSize:10}
LoadfunData(params)
handleModalVisible(false);
if (actionRef.current) {
@@ -432,10 +494,123 @@ const handleRemove = async (ids) => {
// }
// //initGoodsType()
};
+ const onTabsChange=(key)=> {
+ console.log(key)
+ var params={}
+ if(key=="1"){
+ params.productId=props.location.query.values.productId
+ params.productVesionId=props.location.query.values.id
+ params.isDefault=true;
+ params.current=1;
+ params.pageSize=10
+ LoadtopisData(params)
+ }else{
+ //actiontopisRef.current.reload();
+
+ params.productId=props.location.query.values.productId
+ params.productVesionId=props.location.query.values.id
+ params.isDefault=false;
+ params.current=1;
+ params.pageSize=10
+ LoadtopisData(params)
+ }
+ }
+ const zdytopicslist={
+ zdy: (
+ [
+ ,
+
+ ]}
+ //数据绑定
+ dataSource={dataSource}
+ request={async (params) => {
+ var data = [];
+ var total = 0;
+ params.productId=props.location.query.values.productId
+ params.productVesionId=props.location.query.values.id
+ params.isDefault=false;
+ await getproducttopicspage(params).then((r) => {
+ setdataSource( r.data.data)
+ data = r.data.data;
+ total = r.data.total;
+ });
+ return {
+ data: data,
+ success: true,
+ total: total,
+ };
+ }}
+ // 每行选择点击事件
+ rowSelection={{
+ onChange: (_, selectedRows) => {
+ setSelectedRows(selectedRows);
+ },
+ }}
+ />
+ ),
+ mr:(
+ {
+ var data = [];
+ var total = 0;
+ params.productId=props.location.query.values.productId
+ params.productVesionId=props.location.query.values.id
+ params.isDefault=true;
+ await getproducttopicspage(params).then((r) => {
+ setdataSource( r.data.data)
+ data = r.data.data;
+ total = r.data.total;
+ });
+ return {
+ data: data,
+ success: true,
+ total: total,
+ };
+ }}
+ />
+ )
+ };
+ const items=[{
+ key: '1',
+ label: '默认topics',
+ children: zdytopicslist.mr,
+ },
+ {
+ key: '2',
+ label: '自定义topics',
+ children: zdytopicslist.zdy
+ }]
+
const contentList = {
basis: (
{
request={async (params) => {
var data = [];
var total = 0;
- params.deviceTypeKey=props.location.query.values.id
-
+ params.productId=props.location.query.values.productId
+ params.productVesionId=props.location.query.values.id
await getGoodstechnologypage(params).then((r) => {
data = r.data.data;
setdatafunctionSource( r.data.data)
@@ -496,8 +671,8 @@ const handleRemove = async (ids) => {
onFinish={async (value) => {
console.log("jnlaile ")
console.log(value)
- value.productId=props.location.query.values.id
- var success = false;
+ value.productId=props.location.query.values.productId
+ value.deviceVersionKey=props.location.query.values.id;
if (value.id) {
await handleUpdate(value);
} else {
@@ -510,7 +685,7 @@ const handleRemove = async (ids) => {
}}
createModalVisible={createModalVisible}
values={currentRow || {}}
- DeviceVesionData={DeviceVesionData}
+ // DeviceVesionData={DeviceVesionData}
/>
{
),
topis: (
- [
- ,
+
- ]}
- //数据绑定
- dataSource={dataSource}
- // 每行选择点击事件
- rowSelection={{
- onChange: (_, selectedRows) => {
- setSelectedRows(selectedRows);
- },
- }}
- >
- {
- value.productId=props.location.query.values.id
+ value.productId=props.location.query.values.productId
+ value.productVesionId=props.location.query.values.id
if (value.id) {
await updateproducttopics(value).then((r)=>{
if (r.data) {
message.success('修改成功');
+ actiontopisRef.current.reload();
setcreateTopisModalVisible(false)
- var params={productId:props.location.query.values.id,current:1,pageSize:10}
- LoadtopisData(params)
+ //var params={productId:props.location.query.values.productId,current:1,pageSize:10}
+ //LoadtopisData(params)
} else {
message.error(r.errors);
}
@@ -571,8 +721,9 @@ const handleRemove = async (ids) => {
await addproducttopics(value).then((r)=>{
if (r.data) {
message.success('添加成功');
- var params={productId:props.location.query.values.id,current:1,pageSize:10}
- LoadtopisData(params)
+ actiontopisRef.current.reload();
+ // var params={productId:props.location.query.values.productId,current:1,pageSize:10}
+ // LoadtopisData(params)
setcreateTopisModalVisible(false)
} else {
message.error(r.errors);
@@ -590,20 +741,19 @@ const handleRemove = async (ids) => {
),
};
-
-
return (
{
history.push({
- pathname: '/device/product',
+ pathname: '/device/deviceVesion',
});
}}>返回,
-
产品名称:{props.location.query.values.name}
-
产品key: {props.location.query.values.key}
+
产品版本:{props.location.query.values?.vesion}
+
产品名称:{Product?.name}
+
产品key: {Product?.key}
],
breadcrumb: {},
diff --git a/src/pages/device/productmanage/services.js b/src/pages/device/productmanage/services.js
index 87eaeed..32bc868 100644
--- a/src/pages/device/productmanage/services.js
+++ b/src/pages/device/productmanage/services.js
@@ -77,4 +77,9 @@ export async function addgoodstechnology(data) {
return request(getDataBaseUrl()+`/api/devicevesion/getdevicevesion?productId=${TypeCode}`, {
method: 'Get',
});
+ }
+ export async function GetProduct(productId) {
+ return request(getDataBaseUrl()+`/api/product/getproduct?productId=${productId}`, {
+ method: 'Get',
+ });
}
\ No newline at end of file
diff --git a/src/pages/org/orgamange/components/CreateForm.jsx b/src/pages/org/orgamange/components/CreateForm.jsx
index 0547252..e14afe7 100644
--- a/src/pages/org/orgamange/components/CreateForm.jsx
+++ b/src/pages/org/orgamange/components/CreateForm.jsx
@@ -41,7 +41,7 @@ const CreateForm = (props) => {
-
+
{
const [load, setLoad] = useState();
- const [selectedRowsState, setSelectedRows] = useState();
const [checkedKeys, setCheckedKeys] = useState();
+ const [indeterminate, setindeterminate] = useState(false);
+ const [checkAll,setcheckAll] = useState(false);
useEffect(async () => {
var arr = [];
+ var filteredArr=[]
Enumerable.from(props.values).forEach(t => {
- arr.push(t.id);
+ if(!t.isParentMenu){
+ arr.push(t.id);
+ }
+ if(t.id !== null && typeof t.id !== "undefined"){
+ filteredArr.push(t);
+ }
});
setCheckedKeys(arr)
- var ret = await api.SelectTree();
- var data = Enumerable.from(ret.data).toArray();
+ var data =props.treeData;
+ console.log("props.values",props.values)
+ console.log("data",data)
+ console.log("filteredArr",filteredArr)
+ if(getTreeLength(data)===filteredArr.length){
+ setcheckAll(true)
+ setindeterminate(false);
+ }else{
+ setcheckAll(false);
+ if(props.values.length==0){
+ setindeterminate(false);
+ }else{
+ setindeterminate(true);
+ }
+
+ }
setLoad(data);
}, [props.modalVisible])
+ function getTreeLength(tree) {
+ let length = tree.length; // 初始化计算器为根节点的子节点数量
+
+ for (let i = 0; i < tree.length; i++) {
+ if (Array.isArray(tree[i].children)) { // 如果当前节点有子节点
+ length += getTreeLength(tree[i].children); // 将子节点的长度加到计算器上
+ }
+ }
+
+ return length;
+}
+ const onCheckAllChange = (e) => {
+ if(!checkAll){
+ var data=getAllIds(load,[]);
+ setCheckedKeys(data)
+ setcheckAll(true)
+ setindeterminate(false);
+ }else{
+ setCheckedKeys([])
+ setcheckAll(false)
+ setindeterminate(false);
+ }
+
+ };
- const lbl = () => {
- var arr = [];
- Enumerable.from(props.values).forEach(t => {
- arr.push({t.name});
- });
- return arr;
+ function getAllIds(tree, result) {
+ console.log(tree)
+ //遍历树 获取id数组
+ for (const i in tree) {
+ result.push(tree[i].key); // 遍历项目满足条件后的操作
+ if (tree[i].children) {
+ //存在子节点就递归
+ getAllIds(tree[i].children, result);
+ }
+ }
+ return result;
}
-
var html = {
maskClosable={false}>
+
+ 全选
+
{ setCheckedKeys(keys) }}
- defaultExpandAll={true}
+ onCheck={(keys, e) => {
+ if(getTreeLength(props.treeData)==keys.length){
+ setcheckAll(true)
+ setindeterminate(false);
+ }else{
+ setcheckAll(false)
+ setindeterminate(true);
+ }
+ setCheckedKeys(keys) ;
+ }}
+ defaultExpandAll={false}
checkedKeys={checkedKeys}
checkable />
diff --git a/src/pages/org/roles/index.jsx b/src/pages/org/roles/index.jsx
index 9a536d4..b820318 100644
--- a/src/pages/org/roles/index.jsx
+++ b/src/pages/org/roles/index.jsx
@@ -5,7 +5,7 @@ import { PageContainer, FooterToolbar } from '@ant-design/pro-layout';
import ProTable, { ProColumns, ActionType, TableDropdown } from '@ant-design/pro-table';
import Enumerable from 'linq'
import CreateForm from './components/CreateForm';
-import { Page, add, edit, removeRole, setMenu, setUserGrantData, Enable, Disable, GetRoleMenu, SetDataRole } from './service';
+import { Page, add, edit, removeRole, setMenu, GetMenu, GetRoleMenu, SetDataRole } from './service';
import { useAccess } from 'umi';
import MenuForm from './components/MenuForm';
import OrgForm from './components/OrgForm';
@@ -105,7 +105,7 @@ const roleManager = () => {
const [row, setRow] = useState();
const [selectedRowsState, setSelectedRows] = useState();
const [selectData, setSelectData] = useState([]);
-
+ const [treeData, setTreeData] = useState();
/**
* 删除节点
* @param selectedRows
@@ -190,6 +190,15 @@ const roleManager = () => {
return arr;
}
+ useEffect(() => {
+ var parm={getType:'ALL',type:0}
+ GetMenu(parm).then((r) => {
+ if(r.data){
+ setTreeData(r.data);
+ }
+
+ });
+ }, []);
const columns = [
{
@@ -342,6 +351,7 @@ const roleManager = () => {
}}
modalVisible={updateMenuModalVisible}
values={row || {}}
+ treeData={treeData}
/>
) : null}
diff --git a/src/pages/org/roles/service.js b/src/pages/org/roles/service.js
index dff95d6..e253d2d 100644
--- a/src/pages/org/roles/service.js
+++ b/src/pages/org/roles/service.js
@@ -64,3 +64,10 @@ export async function SetDataRole(params) {
data:params
});
}
+ /** 查询功能菜单*/
+ export async function GetMenu(params) {
+ return request(getDataBaseUrl()+`/api/menu/menuparmytrees?getType=${params.getType}&&type=${params.type}`,
+ {
+ method: 'Get',
+ });
+}
diff --git a/src/pages/sys/dictionary/dictdata/components/CreateForm.jsx b/src/pages/sys/dictionary/dictdata/components/CreateForm.jsx
index 73e717b..f8d0bc6 100644
--- a/src/pages/sys/dictionary/dictdata/components/CreateForm.jsx
+++ b/src/pages/sys/dictionary/dictdata/components/CreateForm.jsx
@@ -34,7 +34,7 @@ const CreateForm = (props) => {
- {
);
})}
-
+
*/}
{/* {
dataIndex: 'code',
ellipsis:true
},
- {
- title: '字典类型',
- dataIndex: 'typeName',
- hideInForm: true,
- hideInSearch: true,
- },
- {
- title: '字典类型',
- dataIndex: 'typeId',
- hideInForm: true,
- hideInTable: true,
- hideInSearch: true,
- valueEnum: typeNames,
- },
+ // {
+ // title: '字典类型',
+ // dataIndex: 'typeName',
+ // hideInForm: true,
+ // hideInSearch: true,
+ // },
+ // {
+ // title: '字典类型',
+ // dataIndex: 'typeId',
+ // hideInForm: true,
+ // hideInTable: true,
+ // hideInSearch: true,
+ // valueEnum: typeNames,
+ // },
{
title: '备注',
dataIndex: 'remark',
@@ -279,7 +279,7 @@ const DictDataManage = (props) => {
{
-
+ value.typeId=props.currentRow.id;
var success = false;
if (value.id) {
success = await handleUpdate(value);
diff --git a/src/pages/sys/menus/index.jsx b/src/pages/sys/menus/index.jsx
index 43c90e2..66a3b21 100644
--- a/src/pages/sys/menus/index.jsx
+++ b/src/pages/sys/menus/index.jsx
@@ -179,7 +179,6 @@ const handleUpdate = async (fields) => {
{
title: '创建时间',
dataIndex: 'createAt',
- sorter: true,
hideInSearch: true,
},
{