diff --git a/src/components/b_table.tsx b/src/components/b_table.tsx index 69a9f2e..317fce7 100644 --- a/src/components/b_table.tsx +++ b/src/components/b_table.tsx @@ -1,5 +1,7 @@ import { Button, + FormInstance, + Modal, Pagination, PaginationProps, Popconfirm, @@ -8,6 +10,8 @@ import { Table, } from "antd"; import { useState } from "react"; +import SimpleForm from "./form/simple_form"; +import React from "react"; const BTable = (props: any) => { const { store, @@ -19,8 +23,13 @@ const BTable = (props: any) => { actionCloumn, onSizeChange, onPageChange, + config, + btnText, } = props; const [selectedRowKeys, setSelectedRowKeys] = useState([]); + const formRef = React.useRef(null); + const [record, setRecord] = useState(null); + const [isModalOpen, setIsModalOpen] = useState(false); const onSelectChange = (newSelectedRowKeys: React.Key[]) => { setSelectedRowKeys(newSelectedRowKeys); selectCallback(newSelectedRowKeys); @@ -62,6 +71,8 @@ const BTable = (props: any) => { type="dashed" size="small" onClick={() => { + setRecord(record); + setIsModalOpen(true); editCallback(record); }} > @@ -85,8 +96,15 @@ const BTable = (props: any) => { ), }; + const addHandler = () => { + setRecord(null); + setIsModalOpen(true); + }; return ( - <> + + { onChange={onChange} /> - + formRef.current?.resetFields()} + onOk={() => formRef.current?.submit()} + okText="确定" + cancelText="取消" + onCancel={() => { + setIsModalOpen(false); + }} + > + { + store.add(formRef.current?.getFieldsValue()); + }} + createCallback={() => { + formRef.current?.setFieldsValue(record); + }} + formDatas={config} + > + + ); }; diff --git a/src/pages/dep/index.tsx b/src/pages/dep/index.tsx index 7f14fce..8835cdf 100644 --- a/src/pages/dep/index.tsx +++ b/src/pages/dep/index.tsx @@ -1,66 +1,26 @@ -import { Button, Space, Modal, FormInstance } from "antd"; import { inject, observer } from "mobx-react"; import BTable from "@/components/b_table"; -import { useEffect, useState } from "react"; +import { useEffect } from "react"; import { Store } from "antd/lib/form/interface"; -import React from "react"; import { columns, defaultConfig } from "./dep_config"; import "./dep.less"; -import SimpleForm from "@/components/form/simple_form"; const Dep = (props: Store) => { const { depStore } = props; - const [isModalOpen, setIsModalOpen] = useState(false); - const formRef = React.useRef(null); - const [userId, setId] = useState(null); - const [record, setRecord] = useState(null); + useEffect(() => { depStore.getlist(); - }, []); + }, [depStore]); - const addHandler = () => { - setIsModalOpen(true); - }; return (
- - - - - formRef.current?.resetFields()} - onOk={() => formRef.current?.submit()} - okText="确定" - cancelText="取消" - onCancel={() => { - setId(null); - setIsModalOpen(false); - }} - > - { - depStore.add(formRef.current?.getFieldsValue()); - }} - createCallback={() => { - formRef.current?.setFieldsValue(record); - }} - formDatas={defaultConfig} - > - - +
); }; diff --git a/src/pages/menu/index.tsx b/src/pages/menu/index.tsx index 7d9d251..7a0f992 100644 --- a/src/pages/menu/index.tsx +++ b/src/pages/menu/index.tsx @@ -1,48 +1,27 @@ -import { Button, Space, Modal, FormInstance } from "antd"; import { inject, observer } from "mobx-react"; import BTable from "@/components/b_table"; -import { useEffect, useState } from "react"; +import { useEffect } from "react"; import { Store } from "antd/lib/form/interface"; -import React from "react"; -import { columns } from "./menu_config"; +import { columns, defaultConfig } from "./menu_config"; import "./menu.less"; const Menu = (props: Store) => { const { menuStore } = props; - const [isModalOpen, setIsModalOpen] = useState(false); - const formRef = React.useRef(null); - const [userId, setId] = useState(null); - useEffect(() => {}, []); + useEffect(() => { + menuStore.getlist(); + }, [menuStore]); - const addHandler = () => {}; return (
- - - - - formRef.current?.resetFields()} - onOk={() => formRef.current?.submit()} - okText="确定" - cancelText="取消" - onCancel={() => { - setId(null); - setIsModalOpen(false); - }} - > - +
); }; diff --git a/src/pages/menu/menu_config.tsx b/src/pages/menu/menu_config.tsx index d0edb1f..9e42484 100644 --- a/src/pages/menu/menu_config.tsx +++ b/src/pages/menu/menu_config.tsx @@ -1,9 +1,9 @@ import { FormType } from "@/components/form/interface"; import { UserDataType } from "@/model/userModel"; import { ColumnsType } from "antd/lib/table"; -import { Image } from "antd"; import { getBirthDateAndGender } from "@/util/util"; -export const defaultConfig = (team, per) => [ + +export const defaultConfig = [ { type: FormType.input, label: "菜单名称", @@ -11,20 +11,50 @@ export const defaultConfig = (team, per) => [ value: "", rules: [{ required: true, message: "请输入名称!" }], }, - { - type: FormType.inputNumber, - label: "icon", + type: FormType.upload, + label: "图标", name: "icon", value: "", - rules: [{ required: true, message: "请输入年龄" }], }, { type: FormType.input, - label: "路径", - name: "id_card", + label: "路由", + name: "router_path", value: "", - rules: [{ required: true, message: "请输入身份证" }], + rules: [{ required: true, message: "请输入路由" }], + }, + { + type: FormType.input, + label: "路由标题", + name: "title", + value: "", + rules: [{ required: true, message: "请输入路由" }], + }, + { + type: FormType.input, + label: "路由外部链接", + name: "href", + value: "", + }, + { + type: FormType.input, + label: "上级菜单", + name: "pid", + value: "", + }, + { + type: FormType.input, + label: "激活子菜单", + name: "active_menu", + value: "", + }, + { + type: FormType.input, + label: "本地图标", + name: "local_icon", + value: "", + rules: [{ required: true, message: "请输入路由" }], }, ]; @@ -40,12 +70,24 @@ export const columns: ColumnsType = [ {getBirthDateAndGender(render.id_card)?.gender} ), }, - { - title: "路径", - dataIndex: "head_img", - render: (head_img) => { - return ; - }, + title: "路由", + dataIndex: "router_path", + }, + { + title: "路由标题", + dataIndex: "title", + }, + { + title: "路由外部链接", + dataIndex: "href", + }, + { + title: "指定激活子菜单", + dataIndex: "active_menu", + }, + { + title: "本地图标", + dataIndex: "local_icon", }, ]; diff --git a/src/pages/user/user.tsx b/src/pages/user/user.tsx index c48a3b6..5761ab3 100644 --- a/src/pages/user/user.tsx +++ b/src/pages/user/user.tsx @@ -1,20 +1,12 @@ -import { Button, Space, Modal, FormInstance } from "antd"; import { inject, observer } from "mobx-react"; import BTable from "@/components/b_table"; -import { useEffect, useState } from "react"; +import { useEffect } from "react"; import { Store } from "antd/lib/form/interface"; -import React from "react"; import { columns, defaultConfig } from "./user_config"; import "./user.less"; -import SimpleForm from "@/components/form/simple_form"; const User = (props: Store) => { const { usrStore } = props; - const [isModalOpen, setIsModalOpen] = useState(false); - const formRef = React.useRef(null); - const [userId, setId] = useState(null); - const [record, setRecord] = useState(null); - // 获取列表数据 useEffect(() => { usrStore.getlist(); @@ -22,54 +14,18 @@ const User = (props: Store) => { return (
- - - { - usrStore.deleteItem(record); - }} - editCallback={(record) => { - setIsModalOpen(true); - formRef.current?.setFieldsValue(record); - setRecord(record); - setId(record.id); - }} - /> - - formRef.current?.resetFields()} - onOk={() => formRef.current?.submit()} - okText="确定" - cancelText="取消" - onCancel={() => { - setId(null); - setRecord(null); - setIsModalOpen(false); - }} - > - { - usrStore.add(formRef.current?.getFieldsValue()) - }} - createCallback={() => { - formRef.current?.setFieldsValue(record); - }} - formDatas={defaultConfig as any} - > - - + { + usrStore.deleteItem(record); + }} + config={defaultConfig} + editCallback={(record) => {}} + />
); }; diff --git a/src/service/user_config.ts b/src/service/user_config.ts index fb4ea93..db519b7 100644 --- a/src/service/user_config.ts +++ b/src/service/user_config.ts @@ -14,10 +14,10 @@ class RoleConfig { } class MenuConfig { - static ADD: string = "/role"; - static EDIT: string = "/role"; - static LIST: string = "/role/list"; - static DELETE: string = "/role"; + static ADD: string = "/menu"; + static EDIT: string = "/menu"; + static LIST: string = "/menu/list"; + static DELETE: string = "/menu"; } diff --git a/src/store/menu.ts b/src/store/menu.ts index 1eb0a6d..9c255db 100644 --- a/src/store/menu.ts +++ b/src/store/menu.ts @@ -1,12 +1,12 @@ import { makeObservable } from "mobx"; import BaseStore from "./baseStore"; import { UserDataType } from "@/model/userModel"; -import { RoleConfig } from "@/service/user_config"; +import { MenuConfig } from "@/service/user_config"; class MenuStore extends BaseStore { constructor() { - super(RoleConfig) + super(MenuConfig) makeObservable(this, { }) }