Przeglądaj źródła

feat: 大司空个人版地区列表

outaozhen 4 lat temu
rodzic
commit
e92fca1af2

+ 42 - 23
src/pages/Product/Road/Personal/index.jsx

@@ -7,8 +7,7 @@ import { useLocation, useSelector, useDispatch, connect } from 'umi'
 import { Input, Tooltip, Tag } from 'antd'
 
 const Personal = props => {
-  const { compilationv2 } = props
-  console.log(compilationv2)
+  const { compilationv2, provincev2 } = props
   const dispatch = useDispatch()
   const tRef = useRef()
   const [state, setState] = useState({
@@ -26,6 +25,14 @@ const Personal = props => {
         }
       })
     }
+    if (!provincev2?.length) {
+      dispatch({
+        type: 'road/fetchProvincev2',
+        payload: {
+          projectType: 1
+        }
+      })
+    }
   }, [])
   const columns = [
     {
@@ -116,15 +123,15 @@ const Personal = props => {
       width: 120,
       filters: true,
       filterMultiple: false,
-      // valueEnum: compilationv2.reduce((prev, curr) => {
-      //   const obj = { ...prev }
-      //   if (curr._id) {
-      //     obj[curr._id] = {
-      //       text: curr.name
-      //     }
-      //   }
-      //   return obj
-      // }, {}),
+      valueEnum: compilationv2.reduce((prev, curr) => {
+        const obj = { ...prev }
+        if (curr._id) {
+          obj[curr._id] = {
+            text: curr.name
+          }
+        }
+        return obj
+      }, {}),
       renderText: (_, record) =>
         record.latestUsedName && <Tag color="purple">{record.latestUsedName}</Tag>
     },
@@ -132,7 +139,16 @@ const Personal = props => {
       title: '地区',
       dataIndex: 'province',
       key: 'province',
-      width: 80
+      width: 80,
+      filters: true,
+      valueEnum: provincev2.reduce((prev, curr) => {
+        const obj = { ...prev }
+        obj[curr.value] = {
+          text: curr.label
+        }
+        return obj
+      }, {}),
+      filterMultiple: false
     },
     {
       title: '注册时间',
@@ -150,15 +166,15 @@ const Personal = props => {
       width: 150,
       filters: true,
       filterMultiple: false,
-      // valueEnum: compilation.reduce((prev, curr) => {
-      //   const obj = { ...prev }
-      //   if (curr._id) {
-      //     obj[curr._id] = {
-      //       text: curr.name
-      //     }
-      //   }
-      //   return obj
-      // }, {}),
+      valueEnum: compilationv2.reduce((prev, curr) => {
+        const obj = { ...prev }
+        if (curr._id) {
+          obj[curr._id] = {
+            text: curr.name
+          }
+        }
+        return obj
+      }, {}),
       renderText: (_, record) => (
         <div className="children:m-2px">
           {record.upgrade_list
@@ -166,7 +182,7 @@ const Personal = props => {
             .map(item => {
               return (
                 <Tag color="purple" key={item.compilationID}>
-                  {compilation?.find(i => i._id === item.compilationID)?.name}
+                  {compilationv2?.find(i => i._id === item.compilationID)?.name}
                 </Tag>
               )
             })}
@@ -218,4 +234,7 @@ const Personal = props => {
   )
 }
 
-export default connect(({ road }) => ({ compilationv2: road.compilationv2 }))(Personal)
+export default connect(({ road }) => ({
+  compilationv2: road.compilationv2,
+  provincev2: road.provincev2
+}))(Personal)

+ 22 - 15
src/pages/Product/Road/model.js

@@ -1,42 +1,49 @@
 import consts from '@/consts'
-import { queryCompilationListV2 } from '@/services/product'
+import { queryCompilationListV2, queryProvinceListV2 } from '@/services/product'
 
 export default {
   namespace: 'road',
   state: {
-    compilationv2: {} // 个人
+    compilationv2: [], // 个人
+    provincev2: [] // 地区
   },
   // 用于处理异步操作和业务逻辑,由action触发,但不能修改state
   effects: {
     *fetchCompilationv2({ payload }, { call, put }) {
       const response = yield call(queryCompilationListV2, payload)
-      if (response && response.code === consts.RET_CODE.SUCCESS) {
+      if (response?.code === consts.RET_CODE.SUCCESS) {
         yield put({
           type: 'changeCompilationStatev2',
           payload: {
-            key: payload?.projectType,
             data: response.data
           }
         })
       }
+    },
+    *fetchProvincev2({ payload }, { call, put }) {
+      const response = yield call(queryProvinceListV2, payload)
+      if (response?.code === consts.RET_CODE.SUCCESS) {
+        yield put({
+          type: 'changeProvinceStatev2',
+          payload: {
+            data: response.data.map((item, idx) => ({ label: item, value: idx + 1 }))
+          }
+        })
+      }
     }
   },
-  // reducers:用于处理同步操作,由action触发,可修改state
   reducers: {
-    // 通用reducer
     changeCompilationStatev2(state, action) {
       return {
         ...state,
-        compilationv2: { ...state.compilationv2, [action.payload.key]: action.payload.data }
+        compilationv2: action.payload.data
+      }
+    },
+    changeProvinceStatev2(state, action) {
+      return {
+        ...state,
+        provincev2: action.payload.data
       }
     }
   }
-  // reducers: {
-  //   changeCompilationState(state, action) {
-  //     return {
-  //       ...state,
-  //       compilation: { ...state.compilation, [action.payload.key]: action.payload.data }
-  //     }
-  //   }
-  // }
 }

+ 6 - 0
src/services/product.js

@@ -129,3 +129,9 @@ export async function queryCompilationListV2(params) {
     params
   })
 }
+/** 大司空2.0地区列表 */
+export async function queryProvinceListV2(params) {
+  return request('/RoadPricingv2/province', {
+    params
+  })
+}