From bb4d63cd30a12d9782e153934acb7fdff3b082ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=8D=9A=E6=96=87?= <1179111926@qq.com> Date: Wed, 17 Aug 2022 11:50:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .umirc.ts | 4 + .../BasicManager/List/Allotment/index.tsx | 29 +- .../BasicManager/List/Register/index.less | 35 ++ .../BasicManager/List/Register/index.tsx | 354 ++++++++++++++++++ src/styles/base.less | 10 +- 5 files changed, 405 insertions(+), 27 deletions(-) create mode 100644 src/pages/Manager/BasicManager/List/Register/index.less create mode 100644 src/pages/Manager/BasicManager/List/Register/index.tsx diff --git a/.umirc.ts b/.umirc.ts index 86de48f..42c7e91 100644 --- a/.umirc.ts +++ b/.umirc.ts @@ -80,6 +80,10 @@ export default defineConfig({ path: '/manager/basicManager', component: '@/pages/Manager/BasicManager', routes: [ + { + path: '/manager/basicManager/register', + component: '@/pages/Manager/BasicManager/List/Register', + }, { path: '/manager/basicManager/manufacturer', component: '@/pages/Manager/BasicManager/List/Manufacturer', diff --git a/src/pages/Manager/BasicManager/List/Allotment/index.tsx b/src/pages/Manager/BasicManager/List/Allotment/index.tsx index f6657ec..9dcf805 100644 --- a/src/pages/Manager/BasicManager/List/Allotment/index.tsx +++ b/src/pages/Manager/BasicManager/List/Allotment/index.tsx @@ -30,7 +30,7 @@ const Page: FC = () => { //编辑新增弹框 const [visible, setVisible] = useState(false); const [modalData, setModalData] = useState([]); - const [selectKey, setSelectKey] = useState([]); + // const [selectKey, setSelectKey] = useState([]); //选择设备弹框 const [facilityVisible, setFacilityVisible] = useState(false); @@ -158,7 +158,8 @@ const Page: FC = () => { }, { title: '装备型号', - dataIndex: 'type', + dataIndex: 'deviceType', + render: (v: any) => v?.name, }, { title: '装备名称', @@ -175,12 +176,7 @@ const Page: FC = () => { { title: '生产厂商', dataIndex: 'producer', - render: (v: any) => v.name, - }, - { - title: '生产厂商', - dataIndex: 'producer', - render: (v: any) => v.name, + render: (v: any) => v?.name, }, { title: '操作', @@ -190,7 +186,6 @@ const Page: FC = () => { { - setSelectKey(selectKey.filter((e: any) => e !== r.id)); setModalData(modalData.filter((e: any) => e.id !== r.id)); }} title="删除" @@ -209,7 +204,7 @@ const Page: FC = () => { }; const handleFinish = async (v: any) => { - if (selectKey.length === 0) { + if (modalData.length === 0) { message.warn('请选择配发设备'); return; } @@ -218,7 +213,7 @@ const Page: FC = () => { data: { ...v, type: '2', - deviceList: selectKey.map((e: any) => ({ id: e })), + deviceList: modalData.map((e: any) => ({ id: e.id })), id: editId.current, }, }); @@ -248,7 +243,6 @@ const Page: FC = () => { const handleEdit = (param: any) => { form.setFieldsValue({ ...param }); - setSelectKey(param?.deviceList.map((e: any) => e.id)); setModalData(param?.deviceList); editId.current = param.id; setVisible(true); @@ -376,14 +370,13 @@ const Page: FC = () => { { form.resetFields(); editId.current = null; - setSelectKey([]); setModalData([]); }} cancelText="取消" @@ -472,7 +465,6 @@ const Page: FC = () => { onClick={() => { getFacilityData({}); setFacilityVisible(true); - setSelectKey([]); setFacilityKey(modalData.map((e: any) => e.id)); setFacilityKeyData(modalData); }} @@ -482,13 +474,6 @@ const Page: FC = () => { { - setSelectKey(selectedRowKeys); - }, - }} dataSource={modalData} bordered={false} rowKey="id" diff --git a/src/pages/Manager/BasicManager/List/Register/index.less b/src/pages/Manager/BasicManager/List/Register/index.less new file mode 100644 index 0000000..1b4cc9e --- /dev/null +++ b/src/pages/Manager/BasicManager/List/Register/index.less @@ -0,0 +1,35 @@ +.page { + .title { + height: 36px; + background: #e3effc; + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 20px; + font-weight: 500; + color: #464f66; + + i { + cursor: pointer; + } + } + + .btn { + padding: 13px 20px; + + i { + font-size: 14px; + margin-right: 5px; + } + } + + .action { + cursor: pointer; + color: #6b758b; + padding: 0 10px; + + &:hover { + color: @primary-color; + } + } +} diff --git a/src/pages/Manager/BasicManager/List/Register/index.tsx b/src/pages/Manager/BasicManager/List/Register/index.tsx new file mode 100644 index 0000000..bb20b0b --- /dev/null +++ b/src/pages/Manager/BasicManager/List/Register/index.tsx @@ -0,0 +1,354 @@ +import styles from './index.less'; +import { + Button, + Select, + Row, + Modal, + Form, + message, + Empty, + Table, + InputNumber, + Input, + Col, + Space, +} from 'antd'; +import Fetch from '@/utils/fetch'; +import { useEffect, useState, FC, useRef, Fragment } from 'react'; +import { downLoadLink } from '@/utils/download'; +import url from '@/utils/url'; +import { ColumnsType } from 'antd/lib/table'; + +interface PageProps {} + +const Page: FC = () => { + const [data, setData] = useState([]); + const [loading, setLoading] = useState(true); + const [total, setTotal] = useState(0); + const [visible, setVisible] = useState(false); + const [value, setValue] = useState(1); + const [randomNumber, setRandomNumber] = useState(null); + const [firmList, setFirmList] = useState([]); + const [deviceList, setDeviceList] = useState([]); + const [form] = Form.useForm(); + const [params, setParams] = useState({ + pageNumber: 1, + pageSize: 20, + }); + const editId = useRef(null); + + useEffect(() => { + getData(params); + getFirmList(); + getDeviceList(); + }, []); + + const getData = async (record: any) => { + setLoading(true); + const res = await Fetch('/openi/device/page', { + method: 'get', + params: record, + }); + if (res.result === 'success') { + setData(res?.data?.[0]?.list); + setTotal(res?.data?.[0]?.total); + } + setLoading(false); + }; + + const getFirmList = async () => { + const res = await Fetch('/openi/deviceType/list'); + if (res.result === 'success') { + const data = res?.data?.[0]; + setFirmList(data); + } + }; + + const getDeviceList = async () => { + const res = await Fetch('/openi/producer/list'); + if (res.result === 'success') { + const data = res?.data?.[0]; + setDeviceList(data); + } + }; + + const columns: ColumnsType = [ + { + title: '序号', + align: 'center', + dataIndex: 'index', + render: (text: string, record: any, index: number) => + params.pageSize * (params.pageNumber - 1) + index + 1, + }, + { + title: '装备型号', + dataIndex: 'deviceType', + render: (v: any) => v?.name, + }, + { + title: '装备名称', + dataIndex: 'name', + }, + { + title: '铭牌编号', + dataIndex: 'deviceId', + }, + { + title: '管理标识', + dataIndex: 'producerNumber4', + }, + { + title: '生产厂商', + dataIndex: 'producer', + render: (v: any) => v?.name, + }, + { + title: '操作', + dataIndex: 'action', + align: 'center', + fixed: 'right', + width: 110, + render: (v: any, r: any) => ( + + handleEdit(r)} + title="修改" + className={'iconfont icon-xiugaikucundixian ' + styles.action} + /> + handleDelete(r.id)} + title="删除" + className={'iconfont icon-shanchuzhuangbeixinghao ' + styles.action} + /> + + ), + }, + ]; + + const handleChangePage = (param: any) => { + params.pageNumber = param?.current; + params.pageSize = param?.pageSize; + setParams({ ...params }); + getData(params); + }; + + const handleFinish = async (v: any) => { + console.log(v, 222); + // const res = await Fetch(`/openi/producer/editOrAdd`, { + // method: 'post', + // data: { + // ...v, + // id: editId.current, + // }, + // }); + // if (res.result === 'success') { + // params.pageNumber = 1; + // setParams({ ...params }); + // getData(params); + // setVisible(false); + // } + }; + + const handleAdd = () => { + if (!value) { + message.warn('请输入添加设备台数'); + return; + } + const randomNumber = String(Math.random())?.slice(-8); + setRandomNumber(randomNumber); + setVisible(true); + }; + + const handleEdit = (param: any) => { + form.setFieldsValue({ ...param }); + editId.current = param.id; + setVisible(true); + }; + + const handleDelete = (id: any) => { + Modal.confirm({ + title: '提示', + okText: '确认', + cancelText: '取消', + content: '确认删除吗?', + onOk: async () => { + const res = await Fetch(`/openi/producer/delete/${id}`, { + method: 'post', + }); + if (res.result === 'success') { + const page = + 1 === data.length && params.pageNumber > 1 + ? params.pageNumber - 1 + : params.pageNumber; + params.pageNumber = page; + setParams({ ...params }); + getData(params); + } + }, + }); + }; + + return ( +
+
+ 注册登记 + getData(params)} + className="iconfont icon-a-shuaxin2" + /> +
+ + + 增加设备台数 + setValue(k)} + style={{ width: 90 }} + /> + + + + + +
( + + 共{total}条数据 + + ), + }} + /> + { + form.resetFields(); + editId.current = null; + }} + cancelText="取消" + onOk={() => { + form.submit(); + }} + onCancel={() => { + setVisible(false); + }} + > +
+ + {(fields) => + fields.map((field: any, index: number) => { + const num = randomNumber + (index + 1); + console.log(field, 222); + return ( + + + + + + + + + + + + + + + ); + }) + } + + +
+ + ); +}; +export default Page; diff --git a/src/styles/base.less b/src/styles/base.less index 8138298..4e9d03d 100755 --- a/src/styles/base.less +++ b/src/styles/base.less @@ -103,7 +103,7 @@ } .ml10 { - margin-left: 10px; + margin-left: 10px !important; } .ml10soft { @@ -115,7 +115,7 @@ } .ml20 { - margin-left: 20px; + margin-left: 20px !important; } .ml25 { @@ -171,7 +171,7 @@ } .mr10 { - margin-right: 10px; + margin-right: 10px !important; } .mr15 { @@ -179,7 +179,7 @@ } .mr20 { - margin-right: 20px; + margin-right: 20px !important; } .mr25 { @@ -496,7 +496,7 @@ } .font14 { - font-size: 14px; + font-size: 14px !important; } .font15 {