Browse Source

删除多余代码 修改取消

MFMF 3 years ago
parent
commit
6e79c87364

+ 10 - 22
src/components/DictManager/addDict.js

@@ -1,16 +1,11 @@
-import React, {
-  useState, useEffect, useContext
-} from 'react';
-import { Modal, Form, Input, Select, Button, Switch, TreeSelect, message, Space } from 'antd';
+import { useContext} from 'react';
+import { Form, Input, Select, Button, Switch, TreeSelect, message, Space } from 'antd';
 import apiObj from '@api/index';
 import utils from '@utils/index'
 import DictContext from './Dict-context';
 import { useSelector } from 'react-redux'
 import Item from 'antd/lib/list/Item';
-const { post, api, xPost } = apiObj;
-const { Option, OptGroup } = Select;
-const { organizationData } = utils;
-const { SHOW_PARENT } = TreeSelect;
+const { post, api } = apiObj;
 const { TextArea } = Input;
 
 function AddDict(props) {
@@ -20,11 +15,9 @@ function AddDict(props) {
   const staticInfo = useSelector(state => {
     return state.staticInfo;
   });
-  const { titleList } = staticInfo;
   const initialValues = formData;
 
   const onFinish = values => {
-	  values.groupType =Number(values.groupType)
 	  values.status ? values.status=1:values.status=0
     let params = values
     if (type == 3) {
@@ -56,7 +49,11 @@ function AddDict(props) {
     })
   }
   function cancel() {
-    props.DictChange()
+  	props.cancel()
+  }
+  
+  function onValuesChange() {
+  	props.isChange(form.isFieldsTouched())
   }
 
   return (
@@ -68,22 +65,13 @@ function AddDict(props) {
         name="register"
         onFinish={onFinish}
         initialValues={initialValues}
+		onValuesChange={onValuesChange}
       >
 
         <Form.Item
           name="groupType"
           label="代码类别"
           rules={[
-			  {
-				  type: 'number',
-				  transform(value){
-					  if(value){
-						  return Number(value);
-					  }
-					  return null
-				  },
-				  message: '请输入数值',
-			  },
             {
               required: true,
               message: '请输入代码类别',
@@ -149,7 +137,7 @@ function AddDict(props) {
         </Form.Item>
         <Form.Item
           name="status"
-		  valuePropName={initialValues.status=="启用"?"checked":""}
+		  valuePropName={initialValues.status=="禁用"?"":"checked"}
           label="当前状态"
           rules={[{ required: true, message: '请选择状态' }]}
         >

+ 47 - 11
src/components/DictManager/index.js

@@ -1,9 +1,9 @@
-import React, { useState, useEffect, useRef } from 'react';
-import { Form, Input, Button, Table, Select, Pagination, Space, Menu, Dropdown, Modal, Breadcrumb, message, Row, Col } from 'antd';
-import { DownOutlined, PlusOutlined, ExclamationCircleOutlined } from '@ant-design/icons';
+import { useState, useEffect} from 'react';
+import { Form, Input, Button, Table, Select, Pagination, Space, Modal,  message, Row, Col } from 'antd';
+import { PlusOutlined } from '@ant-design/icons';
 import AddDict from './addDict'
 import '@common/common.less';
-import { useSelector } from 'react-redux'
+// import { useSelector } from 'react-redux'
 import apiObj from '@api/index';
 import DictContext from './Dict-context';
 
@@ -19,7 +19,8 @@ function DictManager() {
   const [title, setTitle] = useState("");//数据总量
   const [visible, setVisible] = useState(false);//弹窗
   const [msvisible, setMsvisible] = useState(false);//删除的弹窗
-  const [modalType, setModalType] = useState("");
+  const [unsaved, setUnsaved] = useState(false);//修改未保存弹窗
+  const [revise, setRevise] = useState(false);//是否修改 新增修改内容
   const [groupTypeList, setgroupTypeList] = useState([]);//代码类别模糊查找
   const [type, setType] = useState("");
   const [formData, setFormData] = useState(null);//当前行数据
@@ -135,19 +136,43 @@ function DictManager() {
 	setDictid(id)
     setMsvisible(true)
   }
-
-  //提示框取消
+//删除 提示框取消或关闭
   function handleCancel() {
     setMsvisible(false);
   }
+  
+  //新增修改 取消或关闭
   function cancel() {
-    setVisible(false)
-    setFormData(null)
+	if(revise){
+		setUnsaved(true)
+	}else{
+		setVisible(false)
+		setFormData(null)
+	}
+  }
+  
+  function isChange(a) {
+  	setRevise(a)
+  }
+  
+  function addCancel() {
+	setRevise(false)
+	setVisible(false)
+	setUnsaved(false)
+	setFormData(null)
+  }
+  
+  function unsavedCancel() {
+    setUnsaved(false)
   }
+
+  //新增修改 保存
   function DictChange() {
+	setRevise(false)
     setVisible(false)
 	getDictPage();
   }
+  
   const columns = [
     { title: '代码类别', dataIndex: 'groupType', key: 'index' },
     { title: '字典编码', dataIndex: 'val', key: 'index' },
@@ -248,9 +273,20 @@ function DictManager() {
           forceRender={true}
         >
           <DictContext.Provider value={{type, formData}}>
-            <AddDict DictChange={DictChange} />
+            <AddDict DictChange={DictChange} cancel={cancel} isChange={isChange}/>
           </DictContext.Provider>
-
+				<Modal
+				title="提示"
+				okText='确定'
+				cancelText='取消'
+				// bodyStyle={{'zIndex':'1050'}}
+				width={400}
+				visible={unsaved}
+				onOk={addCancel}
+				onCancel={unsavedCancel}
+				 >
+				<p>当前数据未保存 是否确认关闭?</p>
+				</Modal>
         </Modal>
         : ''}
       <Modal

+ 16 - 21
src/components/HospitalSet/addHospset.js

@@ -1,16 +1,14 @@
-import React, {
-  useState, useEffect, useContext
-} from 'react';
-import { Modal, Form, Input, Select, Button, Switch, TreeSelect, message, Space } from 'antd';
+import  {useState, useContext} from 'react';
+import { Form, Input, Select, Button,  TreeSelect, message, Space} from 'antd';
 import apiObj from '@api/index';
 import utils from '@utils/index'
 import HospsetContext from './Hospset-context';
 import { useSelector } from 'react-redux'
 import Item from 'antd/lib/list/Item';
 const { post, api, xPost } = apiObj;
-const { Option, OptGroup } = Select;
-const { organizationData } = utils;
-const { SHOW_PARENT } = TreeSelect;
+const { Option } = Select;
+// const { organizationData } = utils;
+// const { SHOW_PARENT } = TreeSelect;
 const { TextArea } = Input;
 
 function AddHospset(props) {
@@ -20,11 +18,10 @@ function AddHospset(props) {
   const staticInfo = useSelector(state => {
     return state.staticInfo;
   });
-  const { titleList } = staticInfo;
+  // const { titleList } = staticInfo;
   const initialValues = formData;
 
   const onFinish = values => {
-	values.status ? values.status=1:values.status=0
     let params = values
     if (type == 3) {
 	  params.id=initialValues.id
@@ -73,10 +70,14 @@ function AddHospset(props) {
    function onFocus() {
    	  getHospitalNames("")
    }
-  function cancel() {
-    props.HospsetChange()
-  }
 
+   function cancel() {
+	props.cancel()
+  }
+  
+  function onValuesChange() {
+  	props.isChange(form.isFieldsTouched())
+  }
   return (
     <>
       <Form
@@ -85,7 +86,8 @@ function AddHospset(props) {
         form={form}
         name="register"
         onFinish={onFinish}
-        initialValues={initialValues}
+		initialValues={initialValues}
+		onValuesChange={onValuesChange}
       >
 
         <Form.Item
@@ -177,14 +179,7 @@ function AddHospset(props) {
 		      <TextArea placeholder="50个字以内" rows={4} />
 		    }
         </Form.Item>
-        <Form.Item
-          name="status"
-          valuePropName={initialValues.status=="启用"?"checked":""}
-          label="当前状态"
-          rules={[{ required: true, message: '请选择状态' }]}
-        >
-        <Switch/>
-        </Form.Item>
+
           <Form.Item wrapperCol={{ offset: 8, span: 16 }}>
             <Space size="middle">
               <Button htmlType="button" onClick={e => cancel()}>

+ 45 - 10
src/components/HospitalSet/index.js

@@ -1,9 +1,8 @@
-import React, { useState, useEffect, useRef } from 'react';
-import { Form, Input, Button, Table, Select, Pagination, Space, Menu, Dropdown, Modal, Breadcrumb, message, Row, Col } from 'antd';
+import  { useState, useEffect} from 'react';
+import { Form, Input, Button, Table, Select, Pagination, Space, Modal,  message, Row, Col } from 'antd';
 import { DownOutlined, PlusOutlined, ExclamationCircleOutlined } from '@ant-design/icons';
 import AddHospset from './addHospset'
 import '@common/common.less';
-import { useSelector } from 'react-redux'
 import apiObj from '@api/index';
 import HospsetContext from './Hospset-context';
 
@@ -20,7 +19,8 @@ function HospitalSet() {
   const [title, setTitle] = useState("");//数据总量
   const [visible, setVisible] = useState(false);//弹窗
   const [msvisible, setMsvisible] = useState(false);//删除的弹窗
-  const [modalType, setModalType] = useState("");
+  const [unsaved, setUnsaved] = useState(false);//修改未保存弹窗
+  const [revise, setRevise] = useState(false);//是否修改 新增修改内容
   const [HospsetidList, setHospsetidList] = useState([]);//代码类别模糊查找
   const [type, setType] = useState("");
   const [formData, setFormData] = useState(null);//当前行数据
@@ -142,15 +142,38 @@ function HospitalSet() {
     setMsvisible(true)
   }
 
-  //提示框取消
+  //删除 提示框取消或关闭
   function handleCancel() {
     setMsvisible(false);
   }
+  //新增修改 取消或关闭
   function cancel() {
-    setVisible(false)
-    setFormData(null)
+	if(revise){
+		setUnsaved(true)
+	}else{
+		setVisible(false)
+		setFormData(null)
+	}
+  }
+  
+  function isChange(a) {
+  	setRevise(a)
+  }
+  
+  function addCancel() {
+	setRevise(false)
+	setVisible(false)
+	setUnsaved(false)
+	setFormData(null)
   }
+  
+  function unsavedCancel() {
+    setUnsaved(false)
+  }
+
+  //新增修改 保存
   function HospsetChange() {
+	setRevise(false)
     setVisible(false)
 	getHospitalSet();
   }
@@ -160,7 +183,6 @@ function HospitalSet() {
     { title: '参数值', dataIndex: 'val', key: 'index' },
     { title: '参数说明', dataIndex: 'code', key: 'index' },
     { title: '参数描述', dataIndex: 'remark', key: 'index'},
-	{ title: '状态', dataIndex: 'status', key: 'index'},
     {
       title: '操作', dataIndex: 'key', render: (text, record) => (
         <Space size="middle">
@@ -260,9 +282,20 @@ function HospitalSet() {
           forceRender={true}
         >
           <HospsetContext.Provider value={{type, formData}}>
-            <AddHospset HospsetChange={HospsetChange} />
+            <AddHospset HospsetChange={HospsetChange} cancel={cancel} isChange={isChange}/>
           </HospsetContext.Provider>
-
+				<Modal
+				title="提示"
+				okText='确定'
+				cancelText='取消'
+				// bodyStyle={{'zIndex':'1050'}}
+				width={400}
+				visible={unsaved}
+				onOk={addCancel}
+				onCancel={unsavedCancel}
+				 >
+				<p>当前数据未保存 是否确认关闭?</p>
+				</Modal>
         </Modal>
         : ''}
       <Modal
@@ -276,6 +309,8 @@ function HospitalSet() {
       >
         <p>确定要删除该参数?</p>
       </Modal>
+	  
+	   
     </div >
   )
 }