From c6da1f9557fbbe5354cac7c7cd0f3c77fff44d84 Mon Sep 17 00:00:00 2001 From: cclu <1106109051@qq.com> Date: Wed, 26 Mar 2025 18:59:26 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=A5=20feat(=E6=A8=A1=E5=9D=97):=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E4=B8=AA=E5=BE=88=E6=A3=92=E7=9A=84?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/router.ts | 13 +- src/components/Avatar/index.less | 2 +- src/components/Avatar/index.tsx | 20 ++- src/components/IconFont/index.tsx | 21 +++ .../leftSelectTree/leftSelectTree.tsx | 41 ++--- src/components/leftSelectTree/service.ts | 11 ++ src/layouts/index.tsx | 7 + src/models/user.ts | 14 +- src/pages/authority.ts | 1 + src/pages/examine/modal/index.tsx | 69 ++++++--- src/pages/examine/modal/service.ts | 13 +- src/pages/examine/question/index.tsx | 4 +- src/pages/examine/record/1.js | 26 ++++ src/pages/examine/record/index.tsx | 88 ++++++----- src/pages/examine/record/service.ts | 9 ++ src/pages/setting/menu/components/addMenu.tsx | 26 ++++ src/pages/setting/menu/index.tsx | 142 ++++++++++++++++++ src/pages/setting/menu/service.ts | 10 ++ src/utils/request.ts | 4 +- 19 files changed, 437 insertions(+), 84 deletions(-) create mode 100644 src/components/IconFont/index.tsx create mode 100644 src/pages/examine/record/1.js create mode 100644 src/pages/setting/menu/components/addMenu.tsx create mode 100644 src/pages/setting/menu/index.tsx create mode 100644 src/pages/setting/menu/service.ts diff --git a/config/router.ts b/config/router.ts index fb1c12c..20bd1d4 100644 --- a/config/router.ts +++ b/config/router.ts @@ -46,8 +46,19 @@ export default [ component: "@/pages/examine/record/index", } ] - }, + { + path: "/setting", + redirect: '', + name: '系统设置', + routes: [ + { + path: '/setting/menu', + name: '菜单管理', + component: "@/pages/setting/menu/index", + }, + ] + } ] } diff --git a/src/components/Avatar/index.less b/src/components/Avatar/index.less index 5a511bb..6a89ced 100644 --- a/src/components/Avatar/index.less +++ b/src/components/Avatar/index.less @@ -10,7 +10,7 @@ height: 30.9px; } .username{ - color: #fff; + color: #000; } &:hover { // background: #252a3d; diff --git a/src/components/Avatar/index.tsx b/src/components/Avatar/index.tsx index 800ec83..96b087f 100644 --- a/src/components/Avatar/index.tsx +++ b/src/components/Avatar/index.tsx @@ -1,14 +1,18 @@ + import type { FC } from 'react'; import { connect } from 'umi'; import { Dropdown, Space } from 'antd'; import { LogoutOutlined } from '@ant-design/icons'; import type { UserConnectedProps } from '@/models/user'; import './index.less'; +import IconFont from '../IconFont'; const Avatar: FC = (props) => { const { user: { data }, dispatch, } = props; + console.log('user32323', data); + const handleLogout = () => { dispatch?.({ @@ -41,12 +45,16 @@ const Avatar: FC = (props) => { menu={{ items }} > - avatar - {data.name} + { + data.avatarUrl ? avatar : + + } + + {data.adminName} ); diff --git a/src/components/IconFont/index.tsx b/src/components/IconFont/index.tsx new file mode 100644 index 0000000..945af13 --- /dev/null +++ b/src/components/IconFont/index.tsx @@ -0,0 +1,21 @@ +/* + * @Author: cclu 1106109051@qq.com + * @Date: 2025-03-26 16:52:53 + * @LastEditors: cclu 1106109051@qq.com + * @LastEditTime: 2025-03-26 16:55:11 + * @FilePath: \cloudNew\src\components\IconFont\index.tsx + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ +import { createFromIconfontCN } from '@ant-design/icons' + +const IconEle = createFromIconfontCN({ + // 该地址为iconfont中的项目地址,根据实际进行修改 + scriptUrl: '//at.alicdn.com/t/font_2794551_586f2xpreyu.js' +}); + +const IconFont = ({ name, style, size, className }: { name: string, style?: any, size: string | number, className?: any }) => { + // const newStyle = size ? { ...{ fontSize: `${size}px`,lineHeight:`${size}px` }, ...style } : {...style} + return +} + +export default IconFont; diff --git a/src/components/leftSelectTree/leftSelectTree.tsx b/src/components/leftSelectTree/leftSelectTree.tsx index 151f4c6..2094822 100644 --- a/src/components/leftSelectTree/leftSelectTree.tsx +++ b/src/components/leftSelectTree/leftSelectTree.tsx @@ -8,7 +8,7 @@ import ProForm, { ProFormText } from "@ant-design/pro-form"; import { Button, Col, FormInstance, Row, Tree } from "antd"; // import { getServerpartTree } from "@/services/options"; import useRequest from "@ahooksjs/use-request"; -import { getMerchantShopTree, getServerpartTree } from "./service"; +import { getMerchantShopTree, getServerpartTree, handleGetAllServicePart } from "./service"; // import './style.less' // import { getMerchantShopTree } from "@/pages/Setting/Users/service"; @@ -39,9 +39,19 @@ const LeftSelectTree = ({ setSelectedId, reload, actionRef, currentUser, width, const { loading: treeLoading, data: treeViews } = useRequest(async () => { let data: any = [] if (currentUser?.UserPattern === 2000) { - data = await getMerchantShopTree({ BusinessManId: currentUser?.BusinessManID, ShowShop: false }); + // data = await getMerchantShopTree({ BusinessManId: currentUser?.BusinessManID, ShowShop: false }); } else { - data = await getServerpartTree(currentUser?.provinceCode, currentUser?.CityAuthority, true, true, true, false, 1000) + // data = await getServerpartTree(currentUser?.provinceCode, currentUser?.CityAuthority, true, true, true, false, 1000) + let req: any = { + page: 1, + limit: 999, + sortBy: 'sort', + sortOrder: 'ASC', + code: '510000' + } + data = await handleGetAllServicePart(req) + data.data.list[0].key = data.data.list[0].id + data = data.data.list } console.log('datatree', data); @@ -60,11 +70,11 @@ const LeftSelectTree = ({ setSelectedId, reload, actionRef, currentUser, width, list.push(item.children[0]) } else { if (haveTest) { - if (item.value !== 424) { + if (item.id !== 424) { list.push(item) } } else { - if (item.value !== 424 && item.value !== 586) { + if (item.id !== 424 && item.id !== 586) { list.push(item) } } @@ -137,7 +147,7 @@ const LeftSelectTree = ({ setSelectedId, reload, actionRef, currentUser, width, const handleFilterList = (list: any, id: any) => { let res: any = [] list.forEach((item: any) => { - if (item.value === id) { + if (item.id === id) { } else { res.push(item) @@ -207,22 +217,17 @@ const LeftSelectTree = ({ setSelectedId, reload, actionRef, currentUser, width, > {treeView && treeView.length > 0 ? 0 ? treeShowRow : ['0-0'] : []} + defaultExpandAll={isShowAllInTree ? true : false} + defaultExpandedKeys={isShowAllInTree ? [] : [510000]} onCheck={(checkedKeys: React.Key[] | any, info) => { - const selectedIds = info.checkedNodes.filter((n: any) => n?.type === 1) - setSelectedId(selectedIds.map(n => n?.value)?.toString() || '') + const selectedIds = info.checkedNodes.filter((n: any) => n?.districtId > 0) + setSelectedId(selectedIds.map(n => n?.id) || '') if (reload) { actionRef?.current?.reload() } diff --git a/src/components/leftSelectTree/service.ts b/src/components/leftSelectTree/service.ts index 8401fce..3ae2bb4 100644 --- a/src/components/leftSelectTree/service.ts +++ b/src/components/leftSelectTree/service.ts @@ -59,3 +59,14 @@ export async function handleGetServerpartDDL(params: any) { return data.Result_Data.List } + +import requestNew from "@/utils/request" +// 新的拿到服务区的树的接口 + +export async function handleGetAllServicePart(params?: any) { + const data = await requestNew.get('/server-part/provinces', params) + if (data.code === 200) { + return data.data + } + return [] +} \ No newline at end of file diff --git a/src/layouts/index.tsx b/src/layouts/index.tsx index adcc110..128b916 100644 --- a/src/layouts/index.tsx +++ b/src/layouts/index.tsx @@ -200,6 +200,13 @@ const BasicLayout: FC<{ user: UserModelState, global: ProfileModelState, dispatc hideInMenu: false, name: "考核记录管理", path: "/examine/record", + }, + { + SYSTEMMODULE_DESC: "", + guid: "6", + hideInMenu: false, + name: "菜单管理", + path: "/setting/menu", } ] diff --git a/src/models/user.ts b/src/models/user.ts index f84269d..25e2566 100644 --- a/src/models/user.ts +++ b/src/models/user.ts @@ -244,8 +244,19 @@ const UserModel: UserModelType = { component: "@/pages/examine/record", } ] - }, + { + path: "/setting", + redirect: '', + name: '系统设置', + children: [ + { + path: '/setting/menu', + name: '菜单管理', + component: "@/pages/setting/menu/index", + }, + ] + } ] let indexAllMenuItemByPath: any = [] let indexValidMenuItemByPath: any = [] @@ -278,6 +289,7 @@ const UserModel: UserModelType = { '/examine/modal', '/examine/question', '/examine/record', + '/setting/menu' ], rootSubmenuKeys: handleGetRootSubmenuKeys(menuRes.data), indexAllMenuItemById: handleGetEachDatumFromNestedDataByKey(menuRes.data, 'id'), diff --git a/src/pages/authority.ts b/src/pages/authority.ts index dfbde5d..a315255 100644 --- a/src/pages/authority.ts +++ b/src/pages/authority.ts @@ -14,6 +14,7 @@ const authority: PageAuthority = { '/examine/record': [ '/examine/record', ], + '/setting/menu': ['/setting/menu'] }; diff --git a/src/pages/examine/modal/index.tsx b/src/pages/examine/modal/index.tsx index f7848ba..54abaf8 100644 --- a/src/pages/examine/modal/index.tsx +++ b/src/pages/examine/modal/index.tsx @@ -5,7 +5,7 @@ import { Button, Col, message, Modal, Popconfirm, Row, Space, Image, Drawer } fr import moment from "moment"; import { useEffect, useRef, useState } from "react"; import { connect } from "umi"; -import { handleAddTemplates, handleDeleteTemplates, handleGetQuestionList, handleGetTemplatesList, handleUpdateTemplates, handleUploadFile } from "./service"; +import { handleAddTemplates, handleDeleteTemplates, handleGetQuestionList, handleGetTemplatesList, handleSearchModalTree, handleUpdateTemplates, handleUploadFile } from "./service"; import { handleGetExamineTypeTreeList } from "../index/service"; import QRCode from 'qrcode'; import { base64ToFile } from "@/utils/publicMethods"; @@ -27,7 +27,7 @@ const examineModal: React.FC<{ currentUser: any }> = (props) => { // 弹出框的表单实例 const modalRef = useRef() // 树相关的属性和方法 - const [selectedId, setSelectedId] = useState() + const [selectedId, setSelectedId] = useState() const [collapsible, setCollapsible] = useState(false) // 显示新增点位的悬浮框 @@ -55,7 +55,7 @@ const examineModal: React.FC<{ currentUser: any }> = (props) => { const [previewIndex, setPreviewIndex] = useState(0) const [columnsStateMap, setColumnsStateMap] = useState({ updatedAt: { show: false }, - createdAt: { show: false }, + // createdAt: { show: false }, operator: { show: false }, }) // 显示新增大类的抽屉 @@ -66,20 +66,42 @@ const examineModal: React.FC<{ currentUser: any }> = (props) => { const [bigTypeList, setBigTypeList] = useState() const columns: any = [ + // { + // title: "巡查类型", + // dataIndex: "status", + // hideInTable: true, + // valueType: "select", + // valueEnum: { + // "1": '异常', + // "0": "正常" + // } + // }, + // { + // title: "搜索内容", + // dataIndex: "anySearchParams", + // hideInTable: true, + // fieldProps: { + + // } + // }, { title:
服务区名称
, dataIndex: "serverPartName", hideInSearch: true, - width: 150, - ellipsis: true - }, - { - title:
点位名称
, - dataIndex: "title", - hideInSearch: true, width: 200, - ellipsis: true + ellipsis: true, + render: (_, record) => { + return record?.type === 'district' || record?.type === 'servicePart' ? record?.name : + record?.title + } }, + // { + // title:
点位名称
, + // dataIndex: "title", + // hideInSearch: true, + // width: 200, + // ellipsis: true + // }, { title:
问题列表
, dataIndex: "questions", @@ -127,7 +149,7 @@ const examineModal: React.FC<{ currentUser: any }> = (props) => { width: 100, ellipsis: true, render: (_, record) => { - return record?.status ? '有效' : '无效' + return record?.type === 'district' || record?.type === 'servicePart' ? '' : record?.status ? '有效' : '无效' } }, { @@ -175,7 +197,7 @@ const examineModal: React.FC<{ currentUser: any }> = (props) => { fixed: "right", width: 120, render: (_: any, record: any) => { - return + return record?.type === 'district' || record?.type === 'servicePart' ? '' : { console.log('record', record); setCurrentRow(record) @@ -288,11 +310,11 @@ const examineModal: React.FC<{ currentUser: any }> = (props) => { return (
- {/* */} +
= (props) => { expandable={{ expandRowByClick: true }} + rowKey={(record) => { + return `${record?.id}` + }} scroll={{ x: "100%", y: 'calc(100vh - 400px)' }} headerTitle={走动式点位管理} search={{ span: 6 }} request={async () => { - const req: any = { + console.log('selectedId', selectedId); + + if (!(selectedId && selectedId.length > 0)) { + return } - const data = await handleGetTemplatesList() + + + const req: any = { + serverPartIds: selectedId && selectedId.length > 0 ? selectedId : [], + } + const data = await handleSearchModalTree(req) if (data && data.length > 0) { return { data, success: true } } diff --git a/src/pages/examine/modal/service.ts b/src/pages/examine/modal/service.ts index 4a96f92..7aa4e37 100644 --- a/src/pages/examine/modal/service.ts +++ b/src/pages/examine/modal/service.ts @@ -4,7 +4,7 @@ import request from "@/utils/request" // 拿到模版id列表 去绑定服务区的多个站点信息 的列表接口 export async function handleGetTemplatesList(params?: any) { - const data = await request.get('/questionnaire-templates', {params}) + const data = await request.get('/questionnaire-templates', { params }) if (data.code === 200) { return data.data } @@ -42,4 +42,13 @@ export async function handleGetQuestionList(params?: any) { export async function handleUploadFile(params?: any) { const data = await request.post(`/oss/upload`, params) return data -} \ No newline at end of file +} + +// 模版树的查询 +export async function handleSearchModalTree(params?: any) { + const data = await request.post(`/questionnaire-templates/search/tree`, params) + if (data.code === 200) { + return data.data + } + return [] +} diff --git a/src/pages/examine/question/index.tsx b/src/pages/examine/question/index.tsx index 88f6e10..163d350 100644 --- a/src/pages/examine/question/index.tsx +++ b/src/pages/examine/question/index.tsx @@ -4,7 +4,7 @@ import { Button, Col, message, Modal, Popconfirm, Row, Space } from "antd"; import { useRef, useState } from "react"; import { connect } from "umi"; import { handleAddQuestion, handleDeleteQuestion, handleEditQuestion, handleGetQuestionList } from "./service"; -import { handleGetExamineTypeList, handleGetExamineTypeTreeList } from "../index/service"; +import { handleGetAddExamineType, handleGetExamineTypeList, handleGetExamineTypeTreeList } from "../index/service"; import moment from "moment"; import AddQuestion from "./components/addQuestion"; @@ -227,6 +227,7 @@ const examineQuestion: React.FC<{ currentUser: any }> = (props) => { }} scroll={{ x: "100%", y: 'calc(100vh - 400px)' }} request={async (params) => { + console.log('params', params); // 拿到分类数据 将 问题数据 拼到对应的分类下面去 const typeReq = { @@ -234,6 +235,7 @@ const examineQuestion: React.FC<{ currentUser: any }> = (props) => { "key": "" }] } + params?.id let typeData = await handleGetExamineTypeTreeList(typeReq) let bigType = JSON.parse(JSON.stringify(typeData)) console.log('bigType', bigType); diff --git a/src/pages/examine/record/1.js b/src/pages/examine/record/1.js new file mode 100644 index 0000000..75995b0 --- /dev/null +++ b/src/pages/examine/record/1.js @@ -0,0 +1,26 @@ +{ + // 第一层 片区 + value: 81, // (id 变成value), + ... // 别的一样没事 + childnre: [{ + // 第二层 服务区 + value: 528, // (id变value) + SPRegionTypeName: "", // 片区名称 + SPRegionTypeId: "", // 片区id + ... // 别的一样 + childnre: [{ + // 第三层 实际业务 + serverPartName: "", // 服务区名称 + serverPartId: "", // 服务区id + SPRegionTypeName: "", // 片区名称 + SPRegionTypeId: "", // 片区id + serverPartShopName:"" ,// 门店名称(可能会有) + serverPartShopId:"",// 门店id (可能会有) + ... // 实际业务内容 + } + + ] + }] + + +} diff --git a/src/pages/examine/record/index.tsx b/src/pages/examine/record/index.tsx index a7f4fdb..ade954e 100644 --- a/src/pages/examine/record/index.tsx +++ b/src/pages/examine/record/index.tsx @@ -2,11 +2,12 @@ import { ConnectState } from "@/models/global"; import { ActionType, FormInstance, ProTable } from "@ant-design/pro-components"; import { useRef, useState } from "react"; import { connect } from "umi"; -import { handleDeleteRecord, handleGetRecordList, handleUpdateExtend } from "./service"; +import { handleDeleteRecord, handleGetRecordList, handleGetRecordTreeList, handleUpdateExtend } from "./service"; import moment from "moment"; import { Button, Drawer, Image, message, Popconfirm, Space } from "antd"; import { handleGetServerpartDDL } from "@/components/leftSelectTree/service"; import RecordDetail from "./components/recordDetail"; +import LeftSelectTree from "@/components/leftSelectTree/leftSelectTree"; const examineRecord: React.FC<{ currentUser: any }> = (props) => { const { currentUser } = props @@ -26,11 +27,12 @@ const examineRecord: React.FC<{ currentUser: any }> = (props) => { const [showDetail, setShowDetail] = useState(false) // 判断是否点了出现的是异常处理的抽屉 const [showAbnormal, setShowAbnormal] = useState(false) + // 树相关的属性和方法 + const [selectedId, setSelectedId] = useState() const [columnsStateMap, setColumnsStateMap] = useState({ score: { show: false } }) - - + const [collapsible, setCollapsible] = useState(false) const columns: any = [ { @@ -52,21 +54,20 @@ const examineRecord: React.FC<{ currentUser: any }> = (props) => { format: 'YYYY-MM-DD', } }, - { - title: "服务区", - dataIndex: "serverPartId", - hideInTable: true, - valueType: "select", - request: async () => { - const req = { - ProvinceCode: currentUser?.provinceCode, - StatisticsType: 1000 - } - const data = await handleGetServerpartDDL(req) - return data - } - }, - + // { + // title: "服务区", + // dataIndex: "serverPartId", + // hideInTable: true, + // valueType: "select", + // request: async () => { + // const req = { + // ProvinceCode: currentUser?.provinceCode, + // StatisticsType: 1000 + // } + // const data = await handleGetServerpartDDL(req) + // return data + // } + // }, { title: "巡查类型", dataIndex: "inspectionType", @@ -81,22 +82,27 @@ const examineRecord: React.FC<{ currentUser: any }> = (props) => { title:
服务区名称
, dataIndex: "serverPartName", hideInSearch: true, - width: 150, + width: 200, ellipsis: true, render: (_, record) => { - return record?.template.serverPartName ? record?.template.serverPartName : "-" - } - }, - { - title:
站点名称
, - dataIndex: "placeName", - hideInSearch: true, - width: 150, - ellipsis: true, - render: (_, record) => { - return record?.template.title ? record?.template.title : "-" + return record?.type === 'district' || record?.type === 'servicePart' ? record?.name : + record?.template ? record?.template.title : "-" + + + + // return record?.name ? record?.name : record?.template && record?.serverPartName ? record?.serverPartName : "-" } }, + // { + // title:
站点名称
, + // dataIndex: "placeName", + // hideInSearch: true, + // width: 150, + // ellipsis: true, + // render: (_, record) => { + // return record?.template && record?.template.title ? record?.template.title : "-" + // } + // }, { title:
巡查类型
, dataIndex: "placeName", @@ -216,7 +222,7 @@ const examineRecord: React.FC<{ currentUser: any }> = (props) => { render: (_: any, record: any) => { let res: any = record.extend ? JSON.parse(record.extend) : "-" - return + return record?.type === 'district' || record?.type === 'servicePart' ? '' : { res.situation === 1 ?
= (props) => { return (
+ + +
= (props) => { expandable={{ expandRowByClick: true }} + rowKey={(record) => { + return `${record?.id}` + }} scroll={{ x: "100%", y: 'calc(100vh - 400px)' }} headerTitle={考核记录管理} search={{ span: 6 }} request={async (params) => { + // selectedId console.log('params', params); + console.log('selectedId', selectedId); + if (!(selectedId && selectedId.length > 0)) { + return + } const req: any = { + serverPartIds: selectedId && selectedId.length > 0 ? selectedId : [], startTime: params?.startTime ? `${params?.startTime}T00:00:00` : "", endTime: params?.endTime ? `${params?.endTime}T23:59:59` : "", - serverPartId: params?.serverPartId ? params?.serverPartId : undefined, + // serverPartId: params?.serverPartId ? params?.serverPartId : undefined, extend: params?.inspectionType ? [{ key: "situation", value: params?.inspectionType @@ -296,7 +314,7 @@ const examineRecord: React.FC<{ currentUser: any }> = (props) => { } console.log('req', req); - const data = await handleGetRecordList(req) + const data = await handleGetRecordTreeList(req) console.log('data', data); if (data && data.length > 0) { diff --git a/src/pages/examine/record/service.ts b/src/pages/examine/record/service.ts index 2000d4b..e535ea0 100644 --- a/src/pages/examine/record/service.ts +++ b/src/pages/examine/record/service.ts @@ -10,6 +10,15 @@ export async function handleGetRecordList(params?: any) { return [] } +// 拿到记录的树型结构 +export async function handleGetRecordTreeList(params?: any) { + const data = await request.post('/questionnaire-responses/tree', params) + if (data.code === 200) { + return data.data + } + return [] +} + // 删除记录 export async function handleDeleteRecord(params?: any) { diff --git a/src/pages/setting/menu/components/addMenu.tsx b/src/pages/setting/menu/components/addMenu.tsx new file mode 100644 index 0000000..2ba1c74 --- /dev/null +++ b/src/pages/setting/menu/components/addMenu.tsx @@ -0,0 +1,26 @@ +import { Modal } from "antd"; +import { connect } from "umi"; + +type DetailProps = { + currentUser?: any // 用户详情的公参 + showDrawer: boolean // 显示悬浮框的判断 + parentRow?: any // 点击的行 编辑的时候有用 +} +const AddBigType = ({ currentUser, showDrawer, parentRow }: DetailProps) => { + + { + + }} + onCancel={() => { + + }} + /> + +} +export default connect(({ user }: ConnectState) => ({ + currentUser: user.data +}))(AddBigType); \ No newline at end of file diff --git a/src/pages/setting/menu/index.tsx b/src/pages/setting/menu/index.tsx new file mode 100644 index 0000000..fdfaa20 --- /dev/null +++ b/src/pages/setting/menu/index.tsx @@ -0,0 +1,142 @@ +import { ActionType, FormInstance, ProTable } from "@ant-design/pro-components"; +import { Button } from "antd"; +import { useRef, useState } from "react"; +import { connect } from "umi"; +import { handleGetMenuList } from "./service"; + +const menuIndex: React.FC<{ currentUser: any }> = (props) => { + const { currentUser } = props + + const actionRef = useRef(); + const formRef = useRef(); + // 打开新增的悬浮框 + const [openAddModal, setOpenAddModal] = useState(false) + // 显示新增和编辑的悬浮框 + + + // 表格组件 + const columns: any = [ + { + title: "菜单名称", + dataIndex: "menuName", + width: 300, + hideInSearch: true, + }, + { + title: "菜单图标", + dataIndex: "menuIcon", + width: 120, + hideInSearch: true, + }, + { + title: "菜单索引", + dataIndex: "id", + width: 180, + hideInSearch: true, + }, + { + title: '状态', + dataIndex: 'hidden', + hideInSearch: true, + width: 180, + }, + { + title: '说明', + dataIndex: 'desc', + width: 200, + hideInSearch: true + }, + { + title: '操作', + dataIndex: 'option', + valueType: 'option', + hideInDescriptions: true, + width: 260, + render: (_, record) => { } + } + ] + // 表格子集的columns + const childrenColumns: any = [ + { + title: "模块名称", + dataIndex: "menuName", + width: 300, + hideInSearch: true, + }, + { + title: "模块地址", + dataIndex: "", + width: 120, + hideInSearch: true, + }, + { + title: "模块索引", + dataIndex: "id", + width: 180, + hideInSearch: true, + }, + { + title: '状态', + dataIndex: 'hidden', + hideInSearch: true, + width: 180, + }, + { + title: '说明', + dataIndex: 'desc', + width: 200, + hideInSearch: true + }, + { + title: '操作', + dataIndex: 'option', + valueType: 'option', + hideInDescriptions: true, + width: 260, + render: (_, record) => { } + } + ] + + return ( +
+ { + return `${record?.id}` + }} + scroll={{ x: "100%", y: 'calc(100vh - 400px)' }} + headerTitle={菜单管理} + request={async (params) => { + const req: any = { + + } + const data = await handleGetMenuList() + console.log('data', data); + if (data && data.length > 0) { + return { data, success: true } + } + return { data: [], success: true } + }} + toolbar={{ + actions: [ + + ] + }} + /> +
+ ) +} + +export default connect(({ user }: ConnectState) => ({ + currentUser: user.data +}))(menuIndex); diff --git a/src/pages/setting/menu/service.ts b/src/pages/setting/menu/service.ts new file mode 100644 index 0000000..a687c7d --- /dev/null +++ b/src/pages/setting/menu/service.ts @@ -0,0 +1,10 @@ +import request from "@/utils/request" + +// 拿到类别列表接口 +export async function handleGetMenuList(params?: any) { + const data = await request.get('/menus/getAll', { params }) + if (data.code === 200) { + return data.data + } + return [] +} \ No newline at end of file diff --git a/src/utils/request.ts b/src/utils/request.ts index e18de99..09b3c1f 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -12,7 +12,9 @@ const { UMI_APP_BASEURL } = process.env; // const instance = axios.create({ baseURL: 'http://home.robot-z.cn:7001/' }); // 修改baseURL为完整的API地址,确保在生产环境中正确访问 -const instance = axios.create({ baseURL: 'https://es.robot-z.cn' }); +// const instance = axios.create({ baseURL: 'https://es.robot-z.cn' }); + +const instance = axios.create({ baseURL: 'https://es.eshangtech.com' });