diff --git a/src/pages/ElecEvaluation/DeviceManage/DeviceForm.tsx b/src/pages/ElecEvaluation/DeviceManage/DeviceForm.tsx index e35bb44..986735f 100644 --- a/src/pages/ElecEvaluation/DeviceManage/DeviceForm.tsx +++ b/src/pages/ElecEvaluation/DeviceManage/DeviceForm.tsx @@ -3,7 +3,7 @@ import { Button, Form, Input, message, Modal, Select, Spin, Row, Col } from "ant import Password from "antd/lib/input/Password"; import { fromPairs, values } from "lodash"; import React, { useEffect, useRef, useState } from "react" -import SelectDeviceModal from "./SelectDeviceModal"; +import SelectExternDeviceModal from "./SelectExternDeviceModal"; import { getDeviceById, saveDevice } from "./service"; @@ -197,11 +197,14 @@ const DeviceForm: React.FC = (props) => { // @ts-ignore return ( -
+ <> + 设备信息 +
} visible={modalVisible} onCancel={() => onCancel()} onOk={() => form.submit()} @@ -247,7 +250,7 @@ const DeviceForm: React.FC = (props) => { > - + @@ -311,8 +314,8 @@ const DeviceForm: React.FC = (props) => { - setSelectDeviceStatus(false)} onSubmit = {(value: any) => SelectDeviceData(value)} values ={deviceRelData?.current}> - + setSelectDeviceStatus(false)} onSubmit = {(value: any) => SelectDeviceData(value)} values ={deviceRelData?.current}> + ) } export default DeviceForm diff --git a/src/pages/ElecEvaluation/DeviceManage/SelectDeviceModal.tsx b/src/pages/ElecEvaluation/DeviceManage/SelectExternDeviceModal.tsx similarity index 100% rename from src/pages/ElecEvaluation/DeviceManage/SelectDeviceModal.tsx rename to src/pages/ElecEvaluation/DeviceManage/SelectExternDeviceModal.tsx diff --git a/src/pages/ElecEvaluation/DeviceManage/index.tsx b/src/pages/ElecEvaluation/DeviceManage/index.tsx index ca8428c..2f2fc67 100644 --- a/src/pages/ElecEvaluation/DeviceManage/index.tsx +++ b/src/pages/ElecEvaluation/DeviceManage/index.tsx @@ -261,12 +261,9 @@ const DeviceManage: React.FC<{}> = () => { filterType: 'query', optionRender: (searchConfig: any, { form }) => { return [ - , , + , ]; }, }} diff --git a/src/pages/ElecEvaluation/PlaceAreasManage/components/modal/AreasModal.tsx b/src/pages/ElecEvaluation/PlaceAreasManage/components/modal/AreasModal.tsx index 9847f64..3bbdbbc 100644 --- a/src/pages/ElecEvaluation/PlaceAreasManage/components/modal/AreasModal.tsx +++ b/src/pages/ElecEvaluation/PlaceAreasManage/components/modal/AreasModal.tsx @@ -1,7 +1,8 @@ import { ConsoleSqlOutlined } from '@ant-design/icons'; import { Spin, Modal, message, Button, Form, Input, Select, InputNumber } from 'antd'; -import React, { useState, useEffect, useImperativeHandle, forwardRef } from 'react'; +import React, { useState, useEffect, useImperativeHandle, forwardRef, useRef } from 'react'; import { saveAreasInfo, getPlaceListByPermission, getPlatAreaList } from '../../service'; +import SelectExternAreaModal from './SelectExternAreaModal'; interface AreasModalProps { areasInfo: AreasInfo; @@ -49,6 +50,8 @@ interface AreaOptions { const [saveLoading, setSaveLoading] = useState(false); const [placeList, setPlaceList] = useState([]); const [areaList, setAreaList] = useState([]); + const [selectAreaStatus, setSelectAreaStatus] = useState(); + const currentPlace = useRef(); const [form] = Form.useForm(); const clearForm = () => { form.resetFields(); @@ -109,19 +112,20 @@ interface AreaOptions { placeId: value['value'], }) - getPlatAreaList({placeId: value['key']}).then(res => { - if(res.code === 200){ - setAreaList(EnvAreaOptions(res.data)); - } - }) + currentPlace.current = value['value']; + // getPlatAreaList({placeId: value['key']}).then(res => { + // if(res.code === 200){ + // setAreaList(EnvAreaOptions(res.data)); + // } + // }) } - const handleAreaRegionChange = (value:any) => { - form.setFieldsValue({ - areaRegionCode: value['value'], - areaRegionName: value['label'] - }) - } + // const handleAreaRegionChange = (value:any) => { + // form.setFieldsValue({ + // areaRegionCode: value['value'], + // areaRegionName: value['label'] + // }) + // } // const renderFooter = () => { // return ( @@ -150,113 +154,130 @@ interface AreaOptions { }); } - return ( {onCancel();clearForm();}} - onOk = {() => {form.submit();}} - title={
- 评标区域信息 -
} - // footer={renderFooter()} - width={"30%"} + const ShowExternAreaModal = () => { + if(form.getFieldValue(['placeId'])){ + setSelectAreaStatus(true); + }else{ + message.error('请先选择评标场所'); + } + } + + const selectExternAreaCallBack = (value: any) => { + form.setFieldsValue({ + areaRegionName: value['name'], + areaName: value['name'], + areaRegionCode: value['indexCode'] + }) + } + + return (<> { onCancel(); clearForm(); } } + onOk={() => { form.submit(); } } + title={
+ 评标区域信息 +
} + // footer={renderFooter()} + width={"30%"} + > + +
- - - - - - - - - - - - - - - - - - - - - - - - - - -
-
) + + + + + + + + + + + + + {/* + + */} + + + + + + + + + + + + + + + + + +
setSelectAreaStatus(false)} onSubmit={(value: any) => selectExternAreaCallBack(value)} values={currentPlace?.current}> ) }) export default AreasModal; diff --git a/src/pages/ElecEvaluation/PlaceAreasManage/components/modal/PlaceModal.tsx b/src/pages/ElecEvaluation/PlaceAreasManage/components/modal/PlaceModal.tsx index a905f81..a3b1981 100644 --- a/src/pages/ElecEvaluation/PlaceAreasManage/components/modal/PlaceModal.tsx +++ b/src/pages/ElecEvaluation/PlaceAreasManage/components/modal/PlaceModal.tsx @@ -3,6 +3,7 @@ import { isEmpty } from 'lodash'; import React, { useState, useImperativeHandle, forwardRef, useEffect, useRef } from 'react'; import { savePlaceInfo, getServiceProvices, getPlatforms, getExternPlaces } from '../../service'; import { getProviceList, getCityList, getAreaList, getDictRegion } from '../PcaService' +import SelectExternPlaceModal from './SelectExternPlaceModal'; interface PcaKeyValues{ pid?:string, @@ -89,6 +90,9 @@ interface PlaceInfo { const currentCity = useRef(); //县默认值 const currentCounty = useRef(); + //当前平台 + const currentPlatform = useRef(); + const [selectPlaceStatus,setSelectPlaceStatus] = useState(); const [form] = Form.useForm(); const platformParams = useRef(); const clearForm = () => { @@ -99,17 +103,18 @@ interface PlaceInfo { currentCity.current = null; setAreaList([]); currentCounty.current = null; + currentPlatform.current = null; } useEffect(() => { clearForm(); getPlatforms(platformParams).then(res =>{ if(res.code === 200){ setPlatforms(EnvPlatformOptions(res.data)); - if(placeInfo?.platformList && placeInfo?.platformList[0]?.platformId){ - getExternPlaces(placeInfo?.platformList[0]?.platformId).then(res => { - setExternPlaces(EnvExternPlacesOptions(res.data)); - }) - } + // if(placeInfo?.platformList && placeInfo?.platformList[0]?.platformId){ + // getExternPlaces(placeInfo?.platformList[0]?.platformId).then(res => { + // setExternPlaces(EnvExternPlacesOptions(res.data)); + // }) + // } } }) getServiceProvices().then(res =>{ @@ -143,26 +148,27 @@ interface PlaceInfo { } ] }); - form.resetFields(["placeRegionCode"]); - let _plaform = form.getFieldValue('platformList'); - if(_plaform && _plaform[0].platformId){ - getExternPlaces({platformId: _plaform[0].platformId}).then(res => { - if(res.code === 200){ - setExternPlaces(EnvExternPlacesOptions(res.data)); - } - }) - } - } - /** - * 平台场所回调 - * @param value - */ - const handleExternPlaceChange = (value: any) =>{ - form.setFieldsValue({ - placeRegionName:value['label'], - placeRegionCode:value['value'] - }) + currentPlatform.current = form.getFieldValue(['platformList']); + // form.resetFields(["placeRegionCode"]); + // let _plaform = form.getFieldValue('platformList'); + // if(_plaform && _plaform[0].platformId){ + // getExternPlaces({platformId: _plaform[0].platformId}).then(res => { + // if(res.code === 200){ + // setExternPlaces(EnvExternPlacesOptions(res.data)); + // } + // }) + // } } + // /** + // * 平台场所回调 + // * @param value + // */ + // const handleExternPlaceChange = (value: any) =>{ + // form.setFieldsValue({ + // placeRegionName:value['label'], + // placeRegionCode:value['value'] + // }) + // } /** * 省回调 */ @@ -373,190 +379,197 @@ interface PlaceInfo { .finally(()=>{ setSaveLoading(false); }); + } + const ShowExternPlaceModal = () => { + if(form.getFieldValue(['platformList'])){ + setSelectPlaceStatus(true); + }else{ + message.error('请先选择管理平台'); + } + } - return ( {onCancel();clearForm();}} - onOk = {() => {form.submit();}} - title={
- 评标场所信息 -
} - // footer={renderFooter()} - width={"35%"} + const selectPlaceCallBack = (value: any) => { + form.setFieldsValue({ + placeRegionName: value['name'], + placeName: value['name'], + placeRegionCode: value['indexCode'] + + }) + } + return (<> { onCancel(); clearForm(); } } + onOk={() => { form.submit(); } } + title={
+ 评标场所信息 +
} + // footer={renderFooter()} + width={"35%"} + > + +
- - - - - - - - + + + + + + + + + + + + + + + + + {/* + + */} + + + + + {/* + + */} + + + + + - + + - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
) + + + + + + + + + + + + + + +
setSelectPlaceStatus(false)} onSubmit={(value: any) => selectPlaceCallBack(value)} values={currentPlatform?.current}> + ) }) export default PlaceModal; diff --git a/src/pages/ElecEvaluation/PlaceAreasManage/components/modal/SelectExternAreaModal.tsx b/src/pages/ElecEvaluation/PlaceAreasManage/components/modal/SelectExternAreaModal.tsx new file mode 100644 index 0000000..38e33fe --- /dev/null +++ b/src/pages/ElecEvaluation/PlaceAreasManage/components/modal/SelectExternAreaModal.tsx @@ -0,0 +1,135 @@ +import React, { useEffect, useRef, useState } from 'react'; +import { Button, message, Modal, Spin } from 'antd'; +import ProTable, { ActionType, ProColumns } from '@ant-design/pro-table'; +import { getPlatAreaList } from '../../service'; + +interface SelectExternAreaProps { + modalVisible: boolean; + onCancel: () => void; + onSubmit: (value: any) => void; + values: any; +} + +const SelectExternArea: React.FC = (props) => { + const { modalVisible, onCancel, onSubmit, values } = props; + const actionRef = useRef(); + //当前选择行areaId + const [selectedRowKeys, setSelectedRowKeys] = useState([]); + //当前选择行数据 + const selectedRecord = useRef(); + //loading + const [loading, setLoading] = useState(false); + + const columns: ProColumns[] = [ + { + valueType: 'index', + width: 48, + }, + { + title: '评标区域编码', + dataIndex: 'indexCode', + ellipsis: true, + hideInSearch: true, + }, + { + title: '评标区域名称', + dataIndex: 'name', + ellipsis: true, + hideInSearch: true, + }, + ]; + + const onOk = () => { + if (selectedRowKeys.length == 0) { + message.info("请选择评标区域"); + return; + } + onSubmit(selectedRecord?.current); + onCancel(); + } + + useEffect(() => { + setSelectedRowKeys([]); + selectedRecord.current = null; + }, [values]) + + const queryExternAreaList = async () => { + console.log(values); + setLoading(true); + return await getPlatAreaList({placeId: values}).then(res => { + if (res?.code == 200) { + return { + data: res?.data, + success: res?.success + } + } else { + return { + data: [], + success: false, + } + } + }).finally(()=>{ + setLoading(false); + }) + } + + return ( + onCancel()} + onOk={() => onOk()} + okText={"确认"} + okButtonProps={{ loading: loading }} + width={"40%"} + bodyStyle={{ overflowY: 'auto', }} + className="confirm table-no-alert" + centered + footer = {[ + , + , + , + ]} + > + + + columns={columns} + actionRef={actionRef} + bordered={false} + request={async (params) => { + return queryExternAreaList(); + }} + rowKey="indexCode" + search={false} + options={false} + pagination={false} + rowSelection={{ + type: "radio", + selectedRowKeys, + onChange: (selectedRowKeys, selectedRows) => { + setSelectedRowKeys(selectedRowKeys); + selectedRecord.current = selectedRows[0]; + }, + }} + dateFormatter="string" + toolBarRender={false} + /> + + + ); +}; + +export default SelectExternArea; diff --git a/src/pages/ElecEvaluation/PlaceAreasManage/components/modal/SelectExternPlaceModal.tsx b/src/pages/ElecEvaluation/PlaceAreasManage/components/modal/SelectExternPlaceModal.tsx new file mode 100644 index 0000000..6c10b43 --- /dev/null +++ b/src/pages/ElecEvaluation/PlaceAreasManage/components/modal/SelectExternPlaceModal.tsx @@ -0,0 +1,135 @@ +import React, { useEffect, useRef, useState } from 'react'; +import { Button, message, Modal, Spin } from 'antd'; +import ProTable, { ActionType, ProColumns } from '@ant-design/pro-table'; +import { getExternPlaces } from '../../service'; + +interface SelectExternPlaceProps { + modalVisible: boolean; + onCancel: () => void; + onSubmit: (value: any) => void; + values: any; +} + +const SelectExternPlace: React.FC = (props) => { + const { modalVisible, onCancel, onSubmit, values } = props; + const actionRef = useRef(); + //当前选择行areaId + const [selectedRowKeys, setSelectedRowKeys] = useState([]); + //当前选择行数据 + const selectedRecord = useRef(); + //loading + const [loading, setLoading] = useState(false); + + const columns: ProColumns[] = [ + { + valueType: 'index', + width: 48, + }, + { + title: '评标场所编码', + dataIndex: 'indexCode', + ellipsis: true, + hideInSearch: true, + }, + { + title: '评标场所名称', + dataIndex: 'name', + ellipsis: true, + hideInSearch: true, + }, + ]; + + const onOk = () => { + if (selectedRowKeys.length == 0) { + message.info("请选择评标场所"); + return; + } + onSubmit(selectedRecord?.current); + onCancel(); + } + + useEffect(() => { + setSelectedRowKeys([]); + selectedRecord.current = null; + }, [values]) + + const queryExternPlaceList = async () => { + console.log(values[0]?.platformId); + setLoading(true); + return await getExternPlaces({platformId:values[0]?.platformId}).then(res => { + if (res?.code == 200) { + return { + data: res?.data, + success: res?.success + } + } else { + return { + data: [], + success: false, + } + } + }).finally(()=>{ + setLoading(false); + }) + } + + return ( + onCancel()} + onOk={() => onOk()} + okText={"确认"} + okButtonProps={{ loading: loading }} + width={"40%"} + bodyStyle={{ overflowY: 'auto', }} + className="confirm table-no-alert" + centered + footer = {[ + , + , + , + ]} + > + + + columns={columns} + actionRef={actionRef} + bordered={false} + request={async (params) => { + return queryExternPlaceList(); + }} + rowKey="indexCode" + search={false} + options={false} + pagination={false} + rowSelection={{ + type: "radio", + selectedRowKeys, + onChange: (selectedRowKeys, selectedRows) => { + setSelectedRowKeys(selectedRowKeys); + selectedRecord.current = selectedRows[0]; + }, + }} + dateFormatter="string" + toolBarRender={false} + /> + + + ); +}; + +export default SelectExternPlace;