Browse Source

修改字典取值问题

fengxiang 2 years ago
parent
commit
93ac1f2ed7

+ 2 - 1
src/pages/facilityManagementChild/facMapElement/facMapElement.jsx

@@ -111,7 +111,8 @@ export default function FacMapElement() {
                 bordered={true}
                 rowKey="id"
             >
-                <Column title="类型" dataIndex="type" key="id" render={(text) => findDictValue(dictData, text)}/>
+                <Column title="类型" dataIndex="type" key="id"
+                        render={(text) => findDictValue(dictData, inputVal, text)}/>
                 <Column title="元素名称" dataIndex="name"/>
                 <Column title="经度" dataIndex="lon" key="id"/>
                 <Column title="维度" dataIndex="lat" key="id"/>

+ 0 - 134
src/pages/lineAnalysisChild/lineMapElement/components/modal.jsx

@@ -1,134 +0,0 @@
-import {Form, InputNumber, message, Modal, Select,} from 'antd';
-import axios from '@/utils/axios.js'
-import {useEffect, useRef} from 'react'
-import './modal.scss'
-import {useSelector} from "react-redux";
-import {getChild} from "@/utils/getDict.js";
-
-
-export default function ModalHooks({isModalOpen, closeModal, row, inputVal}) {
-    const [messageApi, contextHolder] = message.useMessage();
-    // 获取store的数据
-    const dictData = useSelector((state) => state.counter.dictData);
-    // 表单
-    const [form] = Form.useForm();
-    // 下拉框数值
-    let option = useRef([])
-    //状态下拉框
-    const status = [
-        {value: 1, label: '运营'},
-        {value: 2, label: '非运营'},
-    ]
-
-    /**
-     *确定时候的回调
-     */
-    function handleOk() {
-        // 验证表单
-        form.validateFields().then(async () => {
-            let formData = JSON.parse(JSON.stringify(form.getFieldsValue()))
-            // 新增类型
-            formData.type = inputVal
-            if (row?.id) {
-                // 修改数据
-                formData.id = row.id
-            }
-            let {code, message} = await axios.post('/homePageEdit/editMapElement', formData)
-            if (code === 200) {
-                messageApi.success(message)
-                handleCancel()
-            } else {
-                messageApi.error(message)
-            }
-        })
-    }
-
-    // 关闭页面
-    const handleCancel = () => {
-        closeModal(false);
-        form.resetFields()
-    };
-    // 表单
-    useEffect(() => {
-        if (row.id) {
-            let formData = JSON.parse(JSON.stringify(row))
-
-            form.setFieldsValue(formData)
-
-        }
-    }, [row])
-    useEffect(() => {
-        option.current = getChild(dictData, inputVal)
-    }, [inputVal]);
-
-    return (
-        <div className="form">
-
-            {contextHolder}
-            <Modal title={row?.id ? '修改数据' : '新增数据'} open={isModalOpen} onOk={handleOk} onCancel={handleCancel}
-                   width={900}
-                   cancelText="取消" okText="确定">
-                <Form
-                    name="statics"
-                    form={form}
-                    wrapperCol={
-                        {span: 30, offset: 0}
-                    }
-                    layout='inline'
-                    initialValues={{
-                        remember: true,
-                    }}
-
-                    autoComplete="off"
-                >
-
-                    <Form.Item
-                        label="元素名称"
-                        name="name"
-                        rules={[
-                            {
-                                required: true,
-                                message: '请输入',
-
-                            },
-                        ]}
-
-                    >
-                        <Select options={option.current} fieldNames={{label: 'name', value: 'val',}}></Select>
-                    </Form.Item>
-
-                    <Form.Item
-                        label="经度"
-                        name="lon"
-                        rules={[
-                            {
-                                required: true,
-                                message: '请输入',
-                            },
-                        ]}
-
-                    >
-                        <InputNumber min={0} style={{width: '100%'}}></InputNumber>
-                    </Form.Item>
-                    <Form.Item
-                        label="维度"
-                        name="lat"
-                        rules={[
-                            {
-                                required: true,
-                                message: '请输入',
-                            },
-                        ]}
-
-                    >
-                        <InputNumber min={0} style={{width: '100%'}}></InputNumber>
-                    </Form.Item>
-
-                </Form>
-
-            </Modal>
-        </div>
-    )
-
-
-}

+ 0 - 9
src/pages/lineAnalysisChild/lineMapElement/components/modal.scss

@@ -1,9 +0,0 @@
-#statics {
-  .ant-form-item{
-    width: 45%;
-    margin-bottom: 10px;
-    .ant-form-item-label{
-      width: 120px;
-    }
-  }
-}

+ 0 - 142
src/pages/lineAnalysisChild/lineMapElement/lineMapElement.jsx

@@ -1,142 +0,0 @@
-import {Button, Table} from "antd";
-import {useEffect, useState} from "react";
-import ModalHooks from "./components/modal.jsx";
-import "./lineMapElement.scss";
-import axios from "@/utils/axios.js";
-import DeleteButton from "@/components/delete.jsx";
-import DictSelect from "@/components/dictSelect.jsx";
-import {useSelector} from "react-redux";
-import {findDictValue} from "@/utils/getDict.js";
-
-const {Column} = Table;
-
-export default function LineMapElement() {
-    // 获取store的数据
-    const dictData = useSelector((state) => state.counter.dictData);
-    const [inputVal, setInputVal] = useState("");
-    // 页面数据
-    const [data, setData] = useState([]);
-    // 是否展示弹框
-    const [isModalOpen, setIsModalOpen] = useState(false);
-    const [row, setRow] = useState({});
-    // 当前页数
-    const [current, setCurrent] = useState(1)
-    // 每页条数
-    const pageSize = 10
-    // 总条数
-    let [total, setTotal] = useState(0)
-
-    // 新增用户页面
-    function addUser() {
-        setRow([]);
-        setIsModalOpen(true);
-    }
-
-    // 关闭页面
-    function closeModal() {
-        setIsModalOpen(false);
-        getData()
-    }
-
-    // 点击修改的回调
-    function modify(data) {
-        setRow(data);
-        setIsModalOpen(true);
-    }
-
-    // 获取数据
-    async function getData() {
-        let {data} = await axios.get("/homePage/getMapElement", {
-            params: {
-                pageSize,
-                pageNum: current,
-                type: inputVal ? inputVal : null
-            }
-        });
-        setData(data.list);
-        setTotal(data.total)
-    }
-
-    /**
-     * 删除页面
-     * @param data 删除每一条数据
-     * @returns {Promise<void>}
-     */
-    async function deleteRow(data) {
-        let {code} = await axios.get('/sys/delete', {params: {id: data.id}})
-        if (code === 200) {
-            await getData()
-        }
-    }
-
-    // 修改页面
-    function changeSize(e) {
-        setCurrent(e)
-
-    }
-
-    /**
-     * 下拉框改变时候同时请求数据
-     */
-    function getSelectVal(val) {
-        setCurrent(1)
-        setInputVal(val)
-    }
-
-    useEffect(() => {
-        if (!inputVal) return
-        getData();
-    }, [inputVal, current]);
-
-    return (
-        <div className="map">
-            <div className="top">
-                <div className="input">
-                    <DictSelect dictType='stationManagement' outSelectVal={getSelectVal}></DictSelect>
-                </div>
-                <div className="button">
-                    <Button type="primary" onClick={addUser}>
-                        新增地图元素
-                    </Button>
-                </div>
-            </div>
-            <Table
-                dataSource={data}
-                pagination={{
-                    total: total, // 数据的总数
-                    current: current, // 当前页数
-                    pageSize: pageSize, // 每页显示的数量
-                    onChange: changeSize
-                }}
-                bordered={true}
-                rowKey="id"
-            >
-                <Column title="元素名称" dataIndex="name" key="id" render={(text) => findDictValue(dictData, text)}/>
-                <Column title="经度" dataIndex="lon" key="id"/>
-                <Column title="维度" dataIndex="lat" key="id"/>
-
-                <Column
-                    title="操作"
-                    width="170px"
-                    dataIndex="id"
-                    key="id"
-                    render={(text, record) => (
-                        <div className="btn">
-                            <Button type="primary" onClick={() => modify(record)}>
-                                修改
-                            </Button>
-                            <DeleteButton url='/homePageEdit/delMapElement' id={text}
-                                          getData={getData}></DeleteButton>
-                        </div>
-                    )}
-                />
-            </Table>
-            <ModalHooks
-                isModalOpen={isModalOpen}
-                closeModal={closeModal}
-                row={row}
-                inputVal={inputVal}
-            ></ModalHooks>
-        </div>
-    );
-}

+ 0 - 31
src/pages/lineAnalysisChild/lineMapElement/lineMapElement.scss

@@ -1,31 +0,0 @@
-.map {
-  width: 100%;
-  height: 100%;
-
-  .top {
-    display: flex;
-    justify-content: space-between;
-    margin-bottom: 5px;
-
-    .input {
-      display: flex;
-
-      button {
-        margin-left: 10px;
-      }
-    }
-  }
-
-  .btn {
-    display: flex;
-    justify-content: space-between;
-  }
-
-}
-
-#basic {
-
-  .ant-form-item {
-    margin-bottom: 20px;
-  }
-}

+ 1 - 1
src/pages/linePageChild/basicInfomationOfTheLine/basicInfomationOfTheLine.jsx

@@ -131,7 +131,7 @@ export default function BasicInfomationOfTheLine() {
                     text === 1 ? '主线公交' : '干线公交'
                 }/>
                 <Column title="线路类型" dataIndex="lineType" key="id" render={(text) =>
-                    findDictValue(dictData, text)
+                    findDictValue(dictData, 'lineType', text)
 
                 }/>
                 <Column title="上行起点站" dataIndex="upStartStation" key="id"/>

+ 5 - 3
src/utils/getDict.js

@@ -12,14 +12,16 @@ export function getChild(dict, type) {
 }
 
 //根据值去匹配数据
-export function findDictValue(dict, value) {
+export function findDictValue(dict, parentKey, childKey) {
     if (!dict) {
         return ''
     }
     for (const item of dict) {
         for (const valueListElement of item.valueList) {
-            if (valueListElement.val === value) {
-                return valueListElement.name
+            if (valueListElement.type === parentKey) {
+                if (valueListElement.val === childKey) {
+                    return valueListElement.name
+                }
             }
         }
     }