From 7fb88159b83518029215ca37b51560ce310bc227 Mon Sep 17 00:00:00 2001 From: wang_yp <357754663@qq.com> Date: Thu, 20 Mar 2025 16:50:43 +0800 Subject: [PATCH] fix(staff) --- src/components/layout/layout.less | 5 +- src/components/layout/layout.tsx | 14 ++-- src/components/layout/layout_config.tsx | 6 -- src/create.js | 33 ---------- src/create/create_page.js | 87 +++++++++++++++++++++++++ src/create/create_store.js | 26 ++++++++ src/pages/city/config.tsx | 63 ++++++++++++++++++ src/pages/city/index.tsx | 77 +++++++++++++++++++++- src/pages/order/config.tsx | 63 ++++++++++++++++++ src/pages/order/index.tsx | 82 ++++++++++++++++++++--- src/service/config.ts | 39 +++++++++++ src/service/user_config.ts | 9 --- src/store/city.ts | 13 ++++ src/store/index.ts | 4 ++ src/store/order.tsx | 14 ++++ src/store/user.ts | 4 +- 16 files changed, 470 insertions(+), 69 deletions(-) delete mode 100644 src/create.js create mode 100644 src/create/create_page.js create mode 100644 src/create/create_store.js create mode 100644 src/pages/city/config.tsx create mode 100644 src/pages/order/config.tsx create mode 100644 src/service/config.ts delete mode 100644 src/service/user_config.ts create mode 100644 src/store/city.ts create mode 100644 src/store/order.tsx diff --git a/src/components/layout/layout.less b/src/components/layout/layout.less index 03bc6b1..cf5c5ee 100644 --- a/src/components/layout/layout.less +++ b/src/components/layout/layout.less @@ -29,7 +29,10 @@ align-items: center; justify-content: space-between; } - +:where(.css-dev-only-do-not-override-nqoqt9).ant-menu-dark .ant-menu-item-selected, :where(.css-dev-only-do-not-override-nqoqt9).ant-menu-dark>.ant-menu .ant-menu-item-selected { + color: rgba(22, 119, 255,0.8); + background-color: transparent +} .loginOut { cursor: pointer; padding-right: 20px; diff --git a/src/components/layout/layout.tsx b/src/components/layout/layout.tsx index cb11dd2..43cf849 100644 --- a/src/components/layout/layout.tsx +++ b/src/components/layout/layout.tsx @@ -36,19 +36,19 @@ const LayOut = (props: Store) => { { title: "数据管理" }, ]; useEffect(() => { - // if (usrStore.isNeedLogin) { - // nav("/login"); - // } + if (usrStore.isNeedLogin) { + nav("/login"); + } // eslint-disable-next-line react-hooks/exhaustive-deps }, [usrStore.isNeedLogin]); - + return (
logo
- {/* */} - } /> - {/* */} + + } /> +
[] = [ { label: `员工管理`, key: "/rbac/staff" }, ], }, - { - icon: , - key: "/city", - label: `区域管理`, - children: [{ label: `区域列表`, key: "/city/list" }], - }, { key: "/sys", label: `系统管理`, diff --git a/src/create.js b/src/create.js deleted file mode 100644 index bb90b57..0000000 --- a/src/create.js +++ /dev/null @@ -1,33 +0,0 @@ -let fs = require("fs") -let fileName = "test.tsx"; -let path = "pages/test" -let storeName = "TestStore" -let className = "Test" - -let str =` -import { Tooltip } from "antd"; -import { inject, observer } from "mobx-react"; -import type { ColumnsType } from 'antd/es/table'; -import BTable from "@/components/useTable"; -import { UserDataType } from "@/store/user"; - -const ${className} = (props) => { - const { ${storeName} } = props; - return ( -
- -
- ); -}; - -export default inject("${storeName}")(observer(${className})); -` - -fs.mkdirSync(path); -fs.writeFile(path + "/" + fileName, str, function (err) { - console.log(err); -}) - -fs.writeFile(path + "/" + fileName, str, function (err) { - console.log(err); -}) \ No newline at end of file diff --git a/src/create/create_page.js b/src/create/create_page.js new file mode 100644 index 0000000..dd15dad --- /dev/null +++ b/src/create/create_page.js @@ -0,0 +1,87 @@ +let fs = require("fs") +let fileName = "index.tsx"; +let path = "../pages/order" +let storeName = "OrderStore" +let className = "Order" + +let str = ` +import React from "react"; +import { Button, Space, Modal, FormInstance } from "antd"; +import { Store } from "antd/lib/form/interface"; +import { inject, observer } from "mobx-react"; +import { useEffect, useState } from "react"; +import { columns, formConfig } from "./config"; +import BTable from "@/components/b_table"; +import SimpleForm from "@/components/form/simple_form"; + +const ${className} = (props) => { + const { ${storeName} } = props; + const [isModalOpen, setIsModalOpen] = useState(false); + const formRef = React.useRef(null); + const [userId, setId] = useState(null); + const [record, setRecord] = useState(null); + // 获取列表数据 + useEffect(() => { + ${storeName}.getlist(); + }, [${storeName}]); + return ( +
+ + + { + ${storeName}.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); + }} + > + { + ${storeName}.add(formRef.current?.getFieldsValue()) + setIsModalOpen(false); + }} + createCallback={() => { + formRef.current?.setFieldsValue(record); + }} + formDatas={formConfig as any} + > + + +
+ ); +}; + +export default inject("${storeName}")(observer(${className})); +` +fs.mkdirSync(path); +fs.writeFile(path + "/" + fileName, str, function (err) { + console.log(err); +}) \ No newline at end of file diff --git a/src/create/create_store.js b/src/create/create_store.js new file mode 100644 index 0000000..a85d953 --- /dev/null +++ b/src/create/create_store.js @@ -0,0 +1,26 @@ +let fs = require("fs") +let fileName = "order.tsx"; +let path = "../store" +let storeName = "OrderStore" +let storeNames = "orderStore" +let config = "OrderConfig" + +let str =` +import { makeObservable } from "mobx"; +import BaseStore from "./baseStore"; +import { UserDataType } from "@/model/userModel"; +import { ${config} } from "@/service/config"; + +class ${storeName} extends BaseStore { + constructor() { + super(${config}) + makeObservable(this, {}) + } +} +const ${storeNames} = new ${storeName}(); +export default ${storeNames}; +` + +fs.writeFile(path + "/" + fileName, str, function (err) { + console.log(err); +}) \ No newline at end of file diff --git a/src/pages/city/config.tsx b/src/pages/city/config.tsx new file mode 100644 index 0000000..6326246 --- /dev/null +++ b/src/pages/city/config.tsx @@ -0,0 +1,63 @@ +import { FormType } from "@/components/form/interface"; +import { UserDataType } from "@/model/userModel"; +import { ColumnsType } from "antd/lib/table"; +export const formConfig = [ + { + type: FormType.input, + label: "城市名称", + name: "city_name", + value: "", + rules: [{ required: true, message: "城市名称不能为空!" }], + }, + { + type: FormType.input, + label: "城市编码", + name: "code", + value: "", + rules: [{ required: true, message: "城市编码不能为空" }], + }, + { + type: FormType.inputNumber, + label: "经度", + name: "lat", + value: 0, + rules: [{ required: true, message: "经度不能为空" }], + }, + { + type: FormType.inputNumber, + label: "纬度", + name: "long", + value: 0, + rules: [{ required: true, message: "纬度不能为空" }], + }, + { + type: FormType.input, + label: "所属省份", + name: "pidentity", + value: "", + }, +]; + +export const columns: ColumnsType = [ + { + title: "城市名称", + dataIndex: "city_name", + fixed: "left", + }, + { + title: "城市编码", + dataIndex: "code", + }, + { + title: "纬度", + dataIndex: "lat", + }, + { + title: "经度", + dataIndex: "long", + }, + { + title: "所属省份", + dataIndex: "pidentity", + }, +]; diff --git a/src/pages/city/index.tsx b/src/pages/city/index.tsx index 8a00829..c2da213 100644 --- a/src/pages/city/index.tsx +++ b/src/pages/city/index.tsx @@ -1,5 +1,76 @@ -const City = () => { - return
City
; +import React from "react"; +import { Button, Space, Modal, FormInstance } from "antd"; +import { Store } from "antd/lib/form/interface"; +import { inject, observer } from "mobx-react"; +import { useEffect, useState } from "react"; +import { columns, formConfig } from "./config"; +import BTable from "@/components/b_table"; +import SimpleForm from "@/components/form/simple_form"; +const City = (props: Store) => { + const { cityStore } = props; + const [isModalOpen, setIsModalOpen] = useState(false); + const formRef = React.useRef(null); + const [userId, setId] = useState(null); + const [record, setRecord] = useState(null); + + // 获取列表数据 + useEffect(() => { + cityStore.getlist(); + }, [cityStore]); + + return ( +
+ + + { + cityStore.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); + }} + > + { + cityStore.add(formRef.current?.getFieldsValue()) + setIsModalOpen(false); + }} + createCallback={() => { + formRef.current?.setFieldsValue(record); + }} + formDatas={formConfig as any} + > + + +
+ ); }; -export default City; +export default inject("cityStore")(observer(City)); diff --git a/src/pages/order/config.tsx b/src/pages/order/config.tsx new file mode 100644 index 0000000..6326246 --- /dev/null +++ b/src/pages/order/config.tsx @@ -0,0 +1,63 @@ +import { FormType } from "@/components/form/interface"; +import { UserDataType } from "@/model/userModel"; +import { ColumnsType } from "antd/lib/table"; +export const formConfig = [ + { + type: FormType.input, + label: "城市名称", + name: "city_name", + value: "", + rules: [{ required: true, message: "城市名称不能为空!" }], + }, + { + type: FormType.input, + label: "城市编码", + name: "code", + value: "", + rules: [{ required: true, message: "城市编码不能为空" }], + }, + { + type: FormType.inputNumber, + label: "经度", + name: "lat", + value: 0, + rules: [{ required: true, message: "经度不能为空" }], + }, + { + type: FormType.inputNumber, + label: "纬度", + name: "long", + value: 0, + rules: [{ required: true, message: "纬度不能为空" }], + }, + { + type: FormType.input, + label: "所属省份", + name: "pidentity", + value: "", + }, +]; + +export const columns: ColumnsType = [ + { + title: "城市名称", + dataIndex: "city_name", + fixed: "left", + }, + { + title: "城市编码", + dataIndex: "code", + }, + { + title: "纬度", + dataIndex: "lat", + }, + { + title: "经度", + dataIndex: "long", + }, + { + title: "所属省份", + dataIndex: "pidentity", + }, +]; diff --git a/src/pages/order/index.tsx b/src/pages/order/index.tsx index bca0527..5e27d28 100644 --- a/src/pages/order/index.tsx +++ b/src/pages/order/index.tsx @@ -1,9 +1,75 @@ -const Order = () => { - return ( -
- 订单管理 -
- ) -} +import React from "react"; +import { Button, Space, Modal, FormInstance } from "antd"; +import { Store } from "antd/lib/form/interface"; +import { inject, observer } from "mobx-react"; +import { useEffect, useState } from "react"; +import BTable from "@/components/b_table"; +import SimpleForm from "@/components/form/simple_form"; +import { columns, formConfig } from "./config"; -export default Order \ No newline at end of file +const Order = (props: Store) => { + const { orderStore } = props; + const [isModalOpen, setIsModalOpen] = useState(false); + const formRef = React.useRef(null); + const [userId, setId] = useState(null); + const [record, setRecord] = useState(null); + // 获取列表数据 + useEffect(() => { + orderStore.getlist(); + }, [orderStore]); + return ( +
+ + + { + orderStore.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); + }} + > + { + orderStore.add(formRef.current?.getFieldsValue()); + setIsModalOpen(false); + }} + createCallback={() => { + formRef.current?.setFieldsValue(record); + }} + formDatas={formConfig as any} + > + + +
+ ); +}; + +export default inject("orderStore")(observer(Order)); diff --git a/src/service/config.ts b/src/service/config.ts new file mode 100644 index 0000000..eea0a70 --- /dev/null +++ b/src/service/config.ts @@ -0,0 +1,39 @@ +class UserConfig { + static LOGINURI: string = "/anth/login" + static ADD: string = "/user"; + static EDIT: string = "/user"; + static LIST: string = "/user/list"; + static DELETE: string = "/user"; +} + + +class CityConfig { + static ADD: string = "/city"; + static EDIT: string = "/city"; + static LIST: string = "/city/list"; + static DELETE: string = "/city"; +} + + +class Skuconfig { + static ADD: string = "/sku"; + static EDIT: string = "/sku"; + static LIST: string = "/sku/list"; + static DELETE: string = "/sku"; +} + +class SkuCatconfig { + static ADD: string = "/skuCat"; + static EDIT: string = "/skuCat"; + static LIST: string = "/skuCat/list"; + static DELETE: string = "/skuCat"; +} + +class Orderconfig { + static ADD: string = "/order"; + static EDIT: string = "/order"; + static LIST: string = "/order/list"; + static DELETE: string = "/order"; +} + +export { UserConfig, CityConfig, SkuCatconfig, Skuconfig, Orderconfig }; \ No newline at end of file diff --git a/src/service/user_config.ts b/src/service/user_config.ts deleted file mode 100644 index 49a774b..0000000 --- a/src/service/user_config.ts +++ /dev/null @@ -1,9 +0,0 @@ -class UserConfig { - static LOGINURI: string = "/anth/login" - static ADD: string = "/user"; - static EDIT: string = "/user"; - static LIST: string = "/user/list"; - static DELETE: string = "/user"; -} - -export default UserConfig; \ No newline at end of file diff --git a/src/store/city.ts b/src/store/city.ts new file mode 100644 index 0000000..21c49bf --- /dev/null +++ b/src/store/city.ts @@ -0,0 +1,13 @@ +import { makeObservable } from "mobx"; +import BaseStore from "./baseStore"; +import { UserDataType } from "@/model/userModel"; +import { CityConfig } from "@/service/config"; + +class CityStore extends BaseStore { + constructor() { + super(CityConfig) + makeObservable(this, {}) + } +} +const cityStore = new CityStore(); +export default cityStore; \ No newline at end of file diff --git a/src/store/index.ts b/src/store/index.ts index dfe0f9d..e8a5ed6 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -1,7 +1,11 @@ import usrStore from '@/store/user' +import cityStore from '@/store/city' +import orderStore from './order'; const store = { usrStore, + cityStore, + orderStore }; export default store; \ No newline at end of file diff --git a/src/store/order.tsx b/src/store/order.tsx new file mode 100644 index 0000000..52eb587 --- /dev/null +++ b/src/store/order.tsx @@ -0,0 +1,14 @@ + +import { makeObservable } from "mobx"; +import BaseStore from "./baseStore"; +import { UserDataType } from "@/model/userModel"; +import { Orderconfig } from "@/service/config"; + +class OrderStore extends BaseStore { + constructor() { + super(Orderconfig) + makeObservable(this, {}) + } +} +const orderStore = new OrderStore(); +export default orderStore; diff --git a/src/store/user.ts b/src/store/user.ts index f847f51..160c86a 100644 --- a/src/store/user.ts +++ b/src/store/user.ts @@ -3,7 +3,7 @@ import { base } from "@/service/base"; import BaseStore from "./baseStore"; import { UserDataType, UserInfos } from "@/model/userModel"; import { message } from "antd"; -import UserConfig from "@/service/user_config"; +import { UserConfig } from "@/service/config"; class UserStore extends BaseStore { _userinfo: UserInfos = {}; // 用户信息 @@ -62,7 +62,7 @@ class UserStore extends BaseStore { closeLoginDilog() { this.isNeedLogin = false; } - + setUserDetaul(data) { this.userDetail = data }