|
@@ -1,5 +1,5 @@
|
|
|
import { useEffect, useState, useContext } from 'react';
|
|
|
-import { Form, Input, Button, Steps, Tabs, Space, Switch, Breadcrumb, Radio, TreeSelect, Tree, Tag, Card, message } from 'antd';
|
|
|
+import { Form, Input, Button, Steps, Tabs, Space, Switch, Breadcrumb, Radio, TreeSelect, Tree, Tag, Card, message, Modal } from 'antd';
|
|
|
import './index.less';
|
|
|
import DataContext from './data-context';
|
|
|
import MenuTree from './MenuTree';
|
|
@@ -25,6 +25,8 @@ function AddData(props) {
|
|
|
}, []);
|
|
|
const { back, } = props;
|
|
|
const [form] = Form.useForm();
|
|
|
+ const [isChange, setIsChange] = useState(false);
|
|
|
+ const [visible, setVisible] = useState(false);
|
|
|
const [value, setValue] = useState([]);
|
|
|
const [key, setKey] = useState();
|
|
|
const [index, setIndex] = useState('0');
|
|
@@ -44,7 +46,19 @@ function AddData(props) {
|
|
|
const validateMessages = {
|
|
|
required: '${label}不能为空',
|
|
|
};
|
|
|
-
|
|
|
+ function handleOk() {
|
|
|
+ back()
|
|
|
+ }
|
|
|
+ function handleCancel() {
|
|
|
+ setVisible(false)
|
|
|
+ }
|
|
|
+ const goback = () => {
|
|
|
+ if (form.getFieldsValue().name != undefined || isChange) {
|
|
|
+ setVisible(true)
|
|
|
+ } else {
|
|
|
+ back()
|
|
|
+ }
|
|
|
+ };
|
|
|
//获取当前用于所属角色
|
|
|
function getCreateRoles() {
|
|
|
const params = {
|
|
@@ -53,7 +67,7 @@ function AddData(props) {
|
|
|
xPost(api.getCreateRoles, params).then((res) => {
|
|
|
if (res.data.code === 200) {
|
|
|
const data = res.data.data;
|
|
|
- let arr = JSON.parse(JSON.stringify(data).replaceAll(/name/g, 'title').replaceAll(/id/g, 'value'))
|
|
|
+ let arr = JSON.parse(JSON.stringify(data).replace(/name/g, 'title').replace(/id/g, 'value'))
|
|
|
setTreeRloe(arr)
|
|
|
}
|
|
|
})
|
|
@@ -77,7 +91,7 @@ function AddData(props) {
|
|
|
item.depts.forEach(it => {
|
|
|
it.key = item.hospitalId + '-' + it.deptId + '-' + it.deptName
|
|
|
})
|
|
|
- item.children = JSON.parse(JSON.stringify(item.depts).replaceAll(/deptName/g, 'title').replaceAll(/deptId/g, 'key'))
|
|
|
+ item.children = JSON.parse(JSON.stringify(item.depts).replace(/deptName/g, 'title').replace(/deptId/g, 'key'))
|
|
|
return
|
|
|
}
|
|
|
if (item.children) {
|
|
@@ -147,6 +161,7 @@ function AddData(props) {
|
|
|
setTags([...tags])
|
|
|
setValue([...val])
|
|
|
setSelectedRowKeys([...selectedRowKeys])
|
|
|
+ setIsChange(true)
|
|
|
};
|
|
|
// 删除选择标签
|
|
|
function delTag(type, id, i) {
|
|
@@ -187,6 +202,7 @@ function AddData(props) {
|
|
|
form.setFieldsValue({
|
|
|
softwareVOS: arr
|
|
|
});
|
|
|
+ setIsChange(true)
|
|
|
}
|
|
|
// 去重
|
|
|
function unique(arr) {
|
|
@@ -293,7 +309,7 @@ function AddData(props) {
|
|
|
return (
|
|
|
<>
|
|
|
<Breadcrumb separator="">
|
|
|
- <Breadcrumb.Item><img className='back-icon' src={backIcon} onClick={back} alt="返回上一页" /></Breadcrumb.Item>
|
|
|
+ <Breadcrumb.Item><img className='back-icon' src={backIcon} onClick={goback} alt="返回上一页" /></Breadcrumb.Item>
|
|
|
<Breadcrumb.Item>数据权限</Breadcrumb.Item>
|
|
|
<Breadcrumb.Separator />
|
|
|
<Breadcrumb.Item>{type == 3 ? '修改' : '新增'}数据权限</Breadcrumb.Item>
|
|
@@ -373,53 +389,64 @@ function AddData(props) {
|
|
|
return (
|
|
|
<Form.Item
|
|
|
key={i}
|
|
|
- style={{ display:i == index ? 'block' : 'none'}}
|
|
|
+ style={{ display: i == index ? 'block' : 'none' }}
|
|
|
>
|
|
|
- { index == i ?
|
|
|
- <Form.Item key={i + "b"}
|
|
|
- name={['softwareVOS', i, 'roles']}
|
|
|
- rules={[
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请选择所属角色',
|
|
|
- },
|
|
|
- ]}>
|
|
|
- <TreeSelect
|
|
|
- style={{ width: 300 }}
|
|
|
- showSearch={false}
|
|
|
- treeData={treeRloe}
|
|
|
- onChange={treeChange}
|
|
|
- maxTagCount={1}
|
|
|
- treeCheckable
|
|
|
- showCheckedStrategy={SHOW_PARENT}
|
|
|
- placeholder="请选择角色"
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
- : null}
|
|
|
+ {index == i ?
|
|
|
+ <Form.Item key={i + "b"}
|
|
|
+ name={['softwareVOS', i, 'roles']}
|
|
|
+ rules={[
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择所属角色',
|
|
|
+ },
|
|
|
+ ]}>
|
|
|
+ <TreeSelect
|
|
|
+ style={{ width: 300 }}
|
|
|
+ showSearch={false}
|
|
|
+ treeData={treeRloe}
|
|
|
+ onChange={treeChange}
|
|
|
+ maxTagCount={1}
|
|
|
+ treeCheckable
|
|
|
+ showCheckedStrategy={SHOW_PARENT}
|
|
|
+ placeholder="请选择角色"
|
|
|
+ />
|
|
|
+ </Form.Item>
|
|
|
+ : null}
|
|
|
|
|
|
- </Form.Item>
|
|
|
+ </Form.Item>
|
|
|
)
|
|
|
})
|
|
|
}
|
|
|
</Form.Item>
|
|
|
- <Form.Item
|
|
|
- name="status"
|
|
|
- valuePropName="checked"
|
|
|
- label="当前状态"
|
|
|
- rules={[{ required: true, message: '请选择状态' }]}
|
|
|
- >
|
|
|
- <Switch onChange={swichChange} />
|
|
|
- </Form.Item>
|
|
|
- <Form.Item wrapperCol={{ span: 6, offset: 21 }}>
|
|
|
- <Button className='but' onClick={back}>
|
|
|
- 取消
|
|
|
+ <Form.Item
|
|
|
+ name="status"
|
|
|
+ valuePropName="checked"
|
|
|
+ label="当前状态"
|
|
|
+ rules={[{ required: true, message: '请选择状态' }]}
|
|
|
+ >
|
|
|
+ <Switch onChange={swichChange} />
|
|
|
+ </Form.Item>
|
|
|
+ <Form.Item wrapperCol={{ span: 6, offset: 20 }}>
|
|
|
+ <Button className='but' onClick={goback}>
|
|
|
+ 取消
|
|
|
</Button>
|
|
|
- <Button type="primary" htmlType="submit">
|
|
|
- 保存
|
|
|
+ <Button type="primary" htmlType="submit">
|
|
|
+ 保存
|
|
|
</Button>
|
|
|
- </Form.Item>
|
|
|
+ </Form.Item>
|
|
|
</Form>
|
|
|
- </div>
|
|
|
+ <Modal
|
|
|
+ title="提示"
|
|
|
+ okText='确定'
|
|
|
+ cancelText='取消'
|
|
|
+ width={400}
|
|
|
+ visible={visible}
|
|
|
+ onOk={handleOk}
|
|
|
+ onCancel={handleCancel}
|
|
|
+ >
|
|
|
+ <p>您还有内容未保存,确定要退出?</p>
|
|
|
+ </Modal>
|
|
|
+ </div>
|
|
|
</>
|
|
|
)
|
|
|
}
|