Browse Source

软件锁收回功能+服务记录/日志列表自动刷新

outaozhen 5 years ago
parent
commit
29660a172d

+ 2 - 1
src/models/refresh.js

@@ -3,7 +3,8 @@ export default {
   state: {
     contactlist: false,
     contact: false,
-    company: false
+    company: false,
+    longle: false
   },
   // 用于处理异步操作和业务逻辑,由action触发,但不能修改state
   effects: {

+ 1 - 2
src/pages/Product/Lock/Lockstore/components/LocksDetail/LockModal.jsx

@@ -18,7 +18,6 @@ const LockModal = props => {
   const [form] = Form.useForm()
   const { Option } = Select
   const { visible, onCancel, onConfirm, loading, type, longleId, keyNum, status } = props
-
   const layout = {
     layout: 'vertical'
   }
@@ -67,7 +66,7 @@ const LockModal = props => {
         {type === lockTypeEnum.RECOVER ? (
           <>
             <p>
-              收回锁号<span className="zh-fw-600">{keyNum}</span>
+              收回锁号 <b>{keyNum}</b>
             </p>
             <Form.Item name="longleId" hidden>
               <Input />

+ 10 - 3
src/pages/Product/Lock/Lockstore/components/LocksDetail/LockTabList.jsx

@@ -7,9 +7,11 @@ import { ProductLabel } from '@/pages/Product/Lock/Lockstore'
 import LockModal from './LockModal'
 import { lockTypeEnum } from './LockModal'
 import { servicelogEnum, showProductsStatus, showNewLongleStatus, showMarkStatus } from './consts'
+import { useDispatch } from 'dva'
 
 const LockTabList = props => {
-  const { longleLog, clientId, longleId } = props
+  const { longleLog, clientId, longleId, keyNum } = props
+  const dispatch = useDispatch()
   const [state, setState] = useState({
     visible: false
   })
@@ -22,7 +24,7 @@ const LockTabList = props => {
   })
 
   const handleAddLonglelog = async values => {
-    console.log(values)
+    // console.log(values)
     setAddLonglelog({ ...addLonglelog, loading: true })
     const { code = -1 } = await apiSoftwareAddLonglelog({
       ...values,
@@ -35,6 +37,11 @@ const LockTabList = props => {
     }
     // 请求完了
     setAddLonglelog({ ...addLonglelog, loading: false, visible: false })
+    // 刷新数据
+    dispatch({
+      type: 'refresh/commitAction',
+      payload: 'longle'
+    })
   }
 
   return (
@@ -65,7 +72,6 @@ const LockTabList = props => {
                         /> */}
                       </Col>
                       <Col span="16">
-                        {/* <ProductLabel data={item.product} /> */}
                         <RenderLongleCon longleService={item} />
                       </Col>
                     </Row>
@@ -131,6 +137,7 @@ const LockTabList = props => {
           visible={addLonglelog.visible}
           onCancel={() => setAddLonglelog({ ...addLonglelog, visible: false })}
           type={addLonglelog.type}
+          keyNum={keyNum}
         />
       </div>
     </div>

+ 14 - 16
src/pages/Product/Lock/Lockstore/components/LocksDetail/index.jsx

@@ -8,7 +8,7 @@ import LockTabList from '@/pages/Product/Lock/Lockstore/components/LocksDetail/L
 import { connect } from 'dva'
 
 const Index = props => {
-  const { visible, id = '' } = props
+  const { dispatch, visible, id = '', shouldUpdate } = props
   const [state, setState] = useState({
     longle: {},
     log: [],
@@ -21,10 +21,21 @@ const Index = props => {
       code = -1
     } = await apiSoftwareDetail(id)
     if (code === consts.RET_CODE.SUCCESS) {
+      if (shouldUpdate) {
+        dispatch({
+          type: 'refresh/commitAction',
+          payload: 'longle'
+        })
+      }
       setState({ ...state, longle, log, longleLog })
     }
   }
   useEffect(() => {
+    if (shouldUpdate) {
+      initData()
+    }
+  }, [shouldUpdate])
+  useEffect(() => {
     if (visible) {
       initData()
     }
@@ -49,26 +60,13 @@ const Index = props => {
             <LockLowerList log={state.log} />
           </Col>
         </Row>
-        {/* <Drawer
-          title="软件锁"
-          placement="right"
-          bodyStyle={{
-            height: y,
-            overflowY: 'hidden'
-          }}
-          width={clientWidth}
-          closable
-          onClose={onClose}
-          visible={visible}
-          // mask={false}
-        >
-        </Drawer> */}
       </div>
     </div>
   )
 }
 
 // export default Index
-export default connect(({ single }) => ({
+export default connect(({ refresh, single }) => ({
+  shouldUpdate: refresh.longle,
   visible: single.drawer.visible
 }))(Index)

+ 2 - 4
src/pages/Product/Lock/Lockstore/index.jsx

@@ -18,10 +18,8 @@ export const ProductLabel = ({ data }) => {
   return (
     <div>
       {newData.map((item, index) => (
-        <span className="zh-mg-bottom-5 zh-block">
-          <Tag key={index} color="#886ab5">
-            {item}
-          </Tag>
+        <span key={index} className="zh-mg-bottom-5 zh-block">
+          <Tag color="#886ab5">{item}</Tag>
         </span>
       ))}
     </div>