From e164d0e0a3387d9f79e091811aab51889fe8d6af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A2=81=E5=B8=85?= Date: Tue, 20 Sep 2022 15:28:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=AF=84=E6=A0=87=E5=9C=BA?= =?UTF-8?q?=E6=89=80=E5=92=8C=E5=8C=BA=E5=9F=9F=E7=AE=A1=E7=90=86=E9=83=A8?= =?UTF-8?q?=E5=88=86=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/router_elecEvaluation.ts | 4 + .../PlaceAreasManage/components/Areas.tsx | 226 +++++++++++ .../PlaceAreasManage/components/PcaSelect.tsx | 137 +++++++ .../PlaceAreasManage/components/PcaService.ts | 38 ++ .../PlaceAreasManage/components/Place.tsx | 278 +++++++++++++ .../components/modal/AreasModal.tsx | 135 +++++++ .../components/modal/PlaceModal.tsx | 377 ++++++++++++++++++ .../ElecEvaluation/PlaceAreasManage/index.tsx | 34 ++ .../PlaceAreasManage/service.ts | 73 ++++ .../VideoMonitor/Online/service.ts | 2 +- 10 files changed, 1303 insertions(+), 1 deletion(-) create mode 100644 src/pages/ElecEvaluation/PlaceAreasManage/components/Areas.tsx create mode 100644 src/pages/ElecEvaluation/PlaceAreasManage/components/PcaSelect.tsx create mode 100644 src/pages/ElecEvaluation/PlaceAreasManage/components/PcaService.ts create mode 100644 src/pages/ElecEvaluation/PlaceAreasManage/components/Place.tsx create mode 100644 src/pages/ElecEvaluation/PlaceAreasManage/components/modal/AreasModal.tsx create mode 100644 src/pages/ElecEvaluation/PlaceAreasManage/components/modal/PlaceModal.tsx create mode 100644 src/pages/ElecEvaluation/PlaceAreasManage/index.tsx create mode 100644 src/pages/ElecEvaluation/PlaceAreasManage/service.ts diff --git a/config/router_elecEvaluation.ts b/config/router_elecEvaluation.ts index 4d4886b..6a7c916 100644 --- a/config/router_elecEvaluation.ts +++ b/config/router_elecEvaluation.ts @@ -66,6 +66,10 @@ export const elecBidEvaluation = [ path: '/ElecEvaluation/ElecEvalReserve', component: './ElecEvaluation/ElecEvalReserve', }, + {//评标场所及区域管理 + path: '/ElecEvaluation/PlaceAreasManage', + component: './ElecEvaluation/PlaceAreasManage', + }, ], }, ] \ No newline at end of file diff --git a/src/pages/ElecEvaluation/PlaceAreasManage/components/Areas.tsx b/src/pages/ElecEvaluation/PlaceAreasManage/components/Areas.tsx new file mode 100644 index 0000000..2ecb238 --- /dev/null +++ b/src/pages/ElecEvaluation/PlaceAreasManage/components/Areas.tsx @@ -0,0 +1,226 @@ +import { isNotEmpty } from '@/utils/CommonUtils'; +import ProTable, { ActionType, ProColumns } from '@ant-design/pro-table'; +import { Button, Spin, message } from 'antd'; +import React, { useRef, useState } from 'react'; +import { useHistory } from 'umi'; +import AreasModal from './modal/AreasModal'; +import { getAreasPage, deleteAreasInfo } from '../service'; + +/** + * 评标区域列表 + * @returns + */ +const AreasManage: React.FC<{}> = () => { + const actionRef = useRef(); + const [spin, spinSet] = useState(false); + const [visible, setVisible] = useState(false); + //查询分页数据 + const [pageData, pageDataSet] = useState({ + pageNo: 1, + pageSize: 10 + }); + const history = useHistory(); + const areasModalRef = useRef(null); + //编辑 + const editAreas = (record: any) => { + setVisible(true); + areasModalRef.current?.InitData(record); + } + //新增 + const insertAreas = () => { + setVisible(true); + areasModalRef.current?.InitData(null); + } + //关闭 + const closeAreasModal = () => { + setVisible(false); + } + //删除 + const deleteAreas = async(id: string) => { + await deleteAreasInfo({ id }).then((res) => { + if (res?.success) { + message.success('删除成功'); + } + }) + .catch(e => { + message.error('删除失败'); + }).finally(()=>{ + actionRef?.current?.reload(); + }); + } + + const columns: ProColumns[] = [ + { + title: '序号', + valueType: 'index', + align: 'center', + width: 50, + hideInSearch: true, + }, + { + title: '评标区域编号', + align: 'center', + dataIndex: 'areaRegionCode', + width: '10%', + hideInSearch: true, + }, + { + title: '评标区域名称', + align: 'center', + dataIndex: 'areaName', + width: '15%', + hideInSearch: false, + }, + { + title: '评标场所', + align: 'center', + dataIndex: 'placeName', + width: '15%', + hideInSearch: true, + }, + { + title: '区域类型', + align: 'center', + dataIndex: 'areaType', + hideInSearch: false, + width: '8%', + valueEnum: { + 'eval_room': { text: '评标室' }, + 'report_area': { text: '报道区' }, + 'monitor_room': { text: '监控室' }, + }, + }, + { + title: '可容纳人数', + align: 'center', + dataIndex: 'areaNumber', + hideInSearch: true, + width: '8%', + }, + { + title: '详细地址', + align: 'center', + dataIndex: 'areaAddress', + hideInSearch: true, + }, + { + title: '操作', + align: 'center', + valueType: 'option', + width: '9%', + render: (_: any, record: any) => + ( + <> + + + + ) + }, + ] + + return ( + +
+ { + let params = '' + for (const key in form?.getFieldsValue()) { + let element = form?.getFieldsValue()[key]; + if (element != undefined) { + params = params + '&' + key + '=' + element + } + } + return [ + , + , + + ]; + }, + }} + columns={columns} + options={false} + bordered={false} + size='small' + loading={false} + request={async (params) => { + spinSet(true); + return await getAreasPage({ + ...params, + pageNo: pageData.pageNo, + pageSize: pageData.pageSize, + }).then((res) => { + const result = { + data: res.data.records, + total: res.data.total, + success: res.success, + pageSize: res.data.size, + current: res.data.current + } + return result; + }).finally(() => { + isNotEmpty(window.location.search) && history.push(window.location.pathname); + spinSet(false); + }) + } + } + pagination={{ + defaultPageSize: 10, + pageSizeOptions: [10, 20, 30, 50], + defaultCurrent: 1, + size: "small", + showSizeChanger: true, + onChange: (page, pageSize) => pageDataSet({ pageNo: page, pageSize: pageSize }), + onShowSizeChange: (current, size) => pageDataSet({ pageNo: current, pageSize: size }), + }} + onReset={() => { pageDataSet({ pageNo: 1, pageSize: 10 }) }} + rowKey={"id"} + /> +
+ closeAreasModal()} ref={areasModalRef} /> +
+ ) +} +export default AreasManage; + diff --git a/src/pages/ElecEvaluation/PlaceAreasManage/components/PcaSelect.tsx b/src/pages/ElecEvaluation/PlaceAreasManage/components/PcaSelect.tsx new file mode 100644 index 0000000..1af758c --- /dev/null +++ b/src/pages/ElecEvaluation/PlaceAreasManage/components/PcaSelect.tsx @@ -0,0 +1,137 @@ +import { Select } from 'antd'; +import React, { forwardRef, useImperativeHandle, useRef, useState, useEffect } from 'react'; +import { getAreaList, getCityList, getProviceList } from './PcaService'; + +const { Option } = Select; + +interface PcaKeyValues{ + pid?:string, + id?:string, + name?:string +} + +interface PcaProps { + value?: string; + onChange?: (value: string) => void; +} + +const PcaSelect: React.FC = forwardRef((props,ref) => { + const {value,onChange} = props; + const [provinceList, setProvinceList] = useState(); + const [cityList, setCityList] = useState(); + const [areaList, setAreaList] = useState(); + const currentProvince = useRef(''); + const currentCity = useRef(''); + const currentArea = useRef(''); + useImperativeHandle(ref, () => ({ + // InitControl, + })); + useEffect(() => { + InitControl(); + }, []); + //初始化控件 + const InitControl = () =>{ + getProviceList().then(res => { + if(res.code === 200){ + setProvinceList([...EnvOptions(res.data)]); + } + }) + } + const OnChangeNotice = () =>{ + if(currentArea?.current){ + onChange!(currentArea?.current); + }else if(currentCity?.current){ + onChange!(currentCity?.current); + }else if(currentProvince?.current){ + onChange!(currentProvince?.current); + } + } + //省份onChange事件 + const handleProvinceChange = (value: any) => { + //设置当前省分 + currentProvince.current = value; + //清空市options + setCityList([]); + //清空县options + setAreaList([]); + //根据id获取对应所有的市 + if(value){ + getCityList(value).then(res => { + if(res.code === 200){ + setCityList([...EnvOptions(res.data)]); + } + }) + }else{ + currentCity.current = ''; + currentArea.current = ''; + } + OnChangeNotice(); + } + //市onChange事件 + const handleCityChange = (value: any) => { + //设置当前市 + currentCity.current = value; + //清空县options + setAreaList([]); + if(value){ + //根据id获取市下对应的区县 + getAreaList(value).then(res => { + if(res.code === 200){ + setAreaList([...EnvOptions(res.data)]); + } + }) + }else{ + currentArea.current = ''; + } + OnChangeNotice(); + } + //区县onChange事件 + const handleAreaChange = (value: any) => { + //设置当前市 + currentArea.current = value; + OnChangeNotice(); + } + //封装options + const EnvOptions = (data: PcaKeyValues[]) =>{ + let value = []; + for (let i = 0; i < data.length; i++) { + if (i === 0) { + value.push({label:'-全部-',value:''}); + } + value.push({label:data[i].name, value:data[i].id}); + } + return value; + } + return ( + + + - + + - + + + ); +}) +export default PcaSelect; \ No newline at end of file diff --git a/src/pages/ElecEvaluation/PlaceAreasManage/components/PcaService.ts b/src/pages/ElecEvaluation/PlaceAreasManage/components/PcaService.ts new file mode 100644 index 0000000..d42de74 --- /dev/null +++ b/src/pages/ElecEvaluation/PlaceAreasManage/components/PcaService.ts @@ -0,0 +1,38 @@ +import request from '@/utils/request'; +/** + * 查询所有的省 + * @param params + */ +export async function getProviceList() { + return request('/api/biz-service-ebtp-project/v1/dictRegion/getChild',{ + params:{pId:0} + }); +} + +/** + * 根据id获取数据 + * @param id + */ + export async function getDictRegion(id:any){ + return request('/api/biz-service-ebtp-project/v1/dictRegion/' + id); + } + +/** + * 查询对应省下所有的市 + * @param provinceId + */ + export async function getCityList(provinceId:string) { + return request('/api/biz-service-ebtp-project/v1/dictRegion/getChild',{ + params:{pId:provinceId} + }); +} + +/** + * 查询对应市下所有的区县 + * @param cityId + */ + export async function getAreaList(cityId:any){ + return request('/api/biz-service-ebtp-project/v1/dictRegion/getChild',{ + params:{pId:cityId} + }); + } \ No newline at end of file diff --git a/src/pages/ElecEvaluation/PlaceAreasManage/components/Place.tsx b/src/pages/ElecEvaluation/PlaceAreasManage/components/Place.tsx new file mode 100644 index 0000000..ef3375e --- /dev/null +++ b/src/pages/ElecEvaluation/PlaceAreasManage/components/Place.tsx @@ -0,0 +1,278 @@ +import { isNotEmpty } from '@/utils/CommonUtils'; +import ProTable, { ActionType, ProColumns } from '@ant-design/pro-table'; +import { Button, Spin, message } from 'antd'; +import React, { useRef, useState } from 'react'; +import { useHistory } from 'umi'; +import PlaceModal from './modal/PlaceModal'; +import { getPlacePage, deletePlaceInfo } from '../service'; +import PcaSelect from './PcaSelect'; + +interface PlaceInfo { + id ?: string; + status ?: number; + placeRegionCode ?: string; + placeName ?: string; + contactName ?: string; + contactTel ?: string; + provinceDictName ?: string; + provinceId ?: string; + cityId: string; + countyId ?: string; + placeAddress ?: string; + regionDictId:string; + regionDictName:string; +} + +/** + * 评标场所列表 + * @returns + */ +const PlaceManage: React.FC<{}> = () => { + const actionRef = useRef(); + const [spin, spinSet] = useState(false); + const [visible, setVisible] = useState(false); + const placeInfo = useRef(); + //查询分页数据 + const [pageData, pageDataSet] = useState({ + pageNo: 1, + pageSize: 10 + }); + const history = useHistory(); + const placeModalRef = useRef(null); + //编辑 + const editPlace = (record: any) => { + placeInfo.current = record; + setVisible(true); + } + //新增 + const insertPlace = () => { + placeInfo.current = null; + setVisible(true); + } + //关闭 + const closePlaceModal = () => { + setVisible(false); + } + //删除 + const deletePlace = async(id: string) => { + await deletePlaceInfo({ id }).then((res) => { + if (res?.success) { + message.success('删除成功'); + } + }) + .catch(e => { + message.error('删除失败'); + }).finally(()=>{ + actionRef?.current?.reload(); + }); + } + const columns: ProColumns[] = [ + { + title: '序号', + valueType: 'index', + align: 'center', + width: 50, + hideInSearch: true, + }, + { + title: '评标场所编号', + align: 'center', + dataIndex: 'placeRegionCode', + width: '10%', + hideInSearch: true, + }, + { + title: '评标场所名称', + align: 'center', + dataIndex: 'placeName', + width: '15%', + hideInSearch: false, + }, + { + title: '联系人', + align: 'center', + dataIndex: 'contactName', + width: '7%', + hideInSearch: true, + }, + { + title: '联系电话', + align: 'center', + dataIndex: 'contactTel', + hideInSearch: true, + width: '7%', + }, + { + title: '服务省分', + align: 'center', + dataIndex: 'provinceDictName', + hideInSearch: true, + width: '8%', + }, + { + title: '所在省', + align: 'center', + dataIndex: 'provinceName', + hideInSearch: true, + width: '8%', + }, + { + title: '所在市', + align: 'center', + dataIndex: 'cityName', + hideInSearch: true, + width: '8%', + }, + { + title: '所在县/区', + align: 'center', + dataIndex: 'countyName', + hideInSearch: true, + width: '8%', + }, + { + title: '所在省-市-县/区', + align: 'center', + dataIndex: 'regionDictId', + hideInTable:true, + colSize:2, + renderFormItem: (_, { type, defaultRender, ...rest }, form) => { + if (type === 'form') { + return null; + } + return ( + // value 和 onchange 会通过 form 自动注入。 + + ); + } + }, + { + title: '详细地址', + align: 'center', + dataIndex: 'placeAddress', + hideInSearch: true, + }, + { + title: '操作', + align: 'center', + valueType: 'option', + width: '9%', + render: (_: any, record: any) => + ( + <> + + + + ) + }, + ] + + return ( + +
+ { + let params = '' + for (const key in form?.getFieldsValue()) { + let element = form?.getFieldsValue()[key]; + if (element != undefined) { + params = params + '&' + key + '=' + element + } + } + return [ + , + , + + ]; + }, + }} + columns={columns} + options={false} + bordered={false} + size='small' + loading={false} + request={async (params) => { + spinSet(true); + return await getPlacePage({ + ...params, + pageNo: pageData.pageNo, + pageSize: pageData.pageSize, + }).then((res) => { + const result = { + data: res.data.records, + total: res.data.total, + success: res.success, + pageSize: res.data.size, + current: res.data.current + } + return result; + }).finally(() => { + isNotEmpty(window.location.search) && history.push(window.location.pathname); + spinSet(false); + }) + } + } + pagination={{ + defaultPageSize: 10, + pageSizeOptions: [10, 20, 30, 50], + defaultCurrent: 1, + size: "small", + showSizeChanger: true, + onChange: (page, pageSize) => pageDataSet({ pageNo: page, pageSize: pageSize }), + onShowSizeChange: (current, size) => pageDataSet({ pageNo: current, pageSize: size }), + }} + onReset={() => { pageDataSet({ pageNo: 1, pageSize: 10 }) }} + rowKey={"id"} + /> +
+ closePlaceModal()} ref={placeModalRef} /> +
+ ) +} +export default PlaceManage; + diff --git a/src/pages/ElecEvaluation/PlaceAreasManage/components/modal/AreasModal.tsx b/src/pages/ElecEvaluation/PlaceAreasManage/components/modal/AreasModal.tsx new file mode 100644 index 0000000..1f348b2 --- /dev/null +++ b/src/pages/ElecEvaluation/PlaceAreasManage/components/modal/AreasModal.tsx @@ -0,0 +1,135 @@ +import { Spin, Modal, message, Button, Form, Input, Select } from 'antd'; +import React, { useState, useImperativeHandle, forwardRef } from 'react'; +import { saveAreasInfo } from '../../service'; + +interface AreasModalProps { + modalVisible: boolean; //开启关闭控制 + onCancel: () => void; //关闭方法传入 +} + +interface AreasInfo { + projectName ?: string; + projectNum ?: string; + packageNames ?: string; + areaName ?: string; + reserveStartDate ?: string; + reserveEndDate ?: string; + status: number; + realStartDate ?: string; + realEndDate ?: string; +} + +/** + * 新增修改弹出层 + * @returns + */ + const AreasModal: React.FC = forwardRef((props,ref) => { + const {modalVisible, onCancel} = props; + const [areasInfo, setAreasInfo] = useState(); + const [saveLoading, setSaveLoading] = useState(false); + const InitData = (record:AreasInfo) => { + setAreasInfo(record); + } + + useImperativeHandle(ref, () => ({ + InitData, + })); + + const renderFooter = () => { + return ( + <> + + + + ); + } + + /** + * 提交 + */ + const onFinish = async (values: any) => { + setSaveLoading(true); + await saveAreasInfo({ ...values }).then((res) => { + if (res?.success) { + message.success('保存成功'); + onCancel(); + } + }) + .catch(e => { + message.error('保存失败'); + }).finally(()=>{ + setSaveLoading(false); + }); + } + return ( {onCancel()}} + title={
+ 评标区域信息 +
} + footer={renderFooter()} + width={"30%"} + > + +
+ + + + + + + + + + + + + + + + + + +
+
+
) +}) +export default AreasModal; + diff --git a/src/pages/ElecEvaluation/PlaceAreasManage/components/modal/PlaceModal.tsx b/src/pages/ElecEvaluation/PlaceAreasManage/components/modal/PlaceModal.tsx new file mode 100644 index 0000000..207162b --- /dev/null +++ b/src/pages/ElecEvaluation/PlaceAreasManage/components/modal/PlaceModal.tsx @@ -0,0 +1,377 @@ +import { Spin, Modal, message, Button, Form, Input, Select, Row, Col } from 'antd'; +import { isEmpty } from 'lodash'; +import React, { useState, useImperativeHandle, forwardRef, useEffect } from 'react'; +import { savePlaceInfo, getServiceProvices } from '../../service'; +import { getProviceList, getCityList, getAreaList, getDictRegion } from '../PcaService' + +interface PcaKeyValues{ + pid?:string, + id?:string, + name?:string +} + +interface SpKeyValues{ + provincesNumber?:string, + provincesName?:string +} + +interface PlaceModalProps { + placeInfo?:PlaceInfo; + modalVisible: boolean; //开启关闭控制 + onCancel: () => void; //关闭方法传入 +} + +interface PlaceInfo { + id ?: string; + status ?: number; + placeRegionCode ?: string; + placeName ?: string; + contactName ?: string; + contactTel ?: string; + provinceDictId ?: string; + provinceDictName ?: string; + provinceId ?: string; + provinceName?: string; + cityId ?: string; + cityName ?: string; + countyId ?: string; + countyName ?: string; + placeAddress ?: string; + regionDictId :string; + regionDictName :string; +} + +/** + * 新增修改弹出层 + * @returns + */ + const PlaceModal: React.FC = forwardRef((props,ref) => { + const {placeInfo, modalVisible, onCancel} = props; + const [saveLoading, setSaveLoading] = useState(false); + //省数据 + const [provinceList, setProvinceList] = useState([]); + //市下拉选数据 + const [cityList, setCityList] = useState([]); + //区下拉选数据 + const [areaList, setAreaList] = useState([]); + //服务省分 + const [serviceProvices, setServiceProvices] = useState([]); + //省默认值 + const [currentProvince, setCurrentProvince] = useState(null); + const [form] = Form.useForm(); + useEffect(() => { + form.resetFields(); + getServiceProvices().then(res =>{ + if (res.code === 200) { + setServiceProvices(EnvServiceProvinceOptions(res.data)); + form.setFieldsValue({ + provinceDictId:placeInfo?.provinceDictId, + }); + } + }) + getProviceList().then(res => { + if (res.code === 200) { + setProvinceList(EnvOptions(res.data)); + //回显省市区 + if(placeInfo){ + getProvinceCityDistrict(placeInfo.regionDictId); + } + } + }) + }, [placeInfo]); + /** + * 省回调 + */ + const handleProvinceChange = (value: any) => { + form.resetFields(["regionDictId"]); + form.resetFields(["cityId"]); + getCityList(value).then(res => { + if (res.code === 200) { + setCityList(EnvOptions(res.data)); + } + }) + }; + /** + * 市回调 + * @param value + */ + const handleCityChange = (value: any) => { + form.resetFields(["regionDictId"]); + if (value) { + getAreaList(value).then(res => { + if (res.code === 200) { + setAreaList(EnvOptions(res.data)); + } + }) + } else { + setAreaList(EnvOptions([])); + } + }; + /** + * 区回调 + * @param value + */ + const handleCountyChange = (value: any) => { + if(placeInfo){ + form.setFieldsValue({ + regionDictId: value['value'] + }); + placeInfo.regionDictName = value['label']; + } + }; + /** + * 服务省分onchange + * @param value + */ + const handleServiceProvinceChange = (value: any) => { + if(placeInfo){ + form.setFieldsValue({ + provinceDictId: value['value'] + }); + placeInfo.provinceDictName = value['label']; + } + } + /** + * 获取省市区数据 + * @param regionDictId + * @returns + */ + const getProvinceCityDistrict = (regionDictId: string) => { + if (isEmpty(regionDictId)) { + return; + } + //省 + if (regionDictId.substring(regionDictId.length - 4) === '0000') { + form.setFieldsValue({ + regionDictId: null, + cityId:null, + provinceId: regionDictId + }); + + setCurrentProvince(regionDictId); + getCityList(regionDictId).then(res => { + if (res.code === 200) { + setCityList(EnvOptions(res.data)); + } + }) + //市 + } else if (regionDictId.substring(regionDictId.length - 1) === '0') { + let pId = regionDictId.substring(0, regionDictId.length - 4) + '0000'; + //获取省数据 + getCityList(pId).then(res => { + if (res.code === 200) { + setCityList(EnvOptions(res.data)); + form.setFieldsValue({ + cityId: regionDictId, + regionDictId: null, + provinceId: pId + }); + setCurrentProvince(pId); + //获取区数据 + getAreaList(regionDictId).then(res => { + if (res.code === 200) { + setAreaList(EnvOptions(res.data)); + } + }) + } + }) + //区 + } else { + //回显省市区数据 + getDictRegion(regionDictId).then(response => { + let region = response.data; + //获取区数据 + getAreaList(region.pid).then(res => { + if (res.code === 200) { + setAreaList(EnvOptions(res.data)); + let pid = ''; + pid = res.data[0].pid; + pid = pid.substring(0, pid.length - 3) + '000'; + //获取市数据 + getCityList(pid).then(res => { + if (res.code === 200) { + setCityList(EnvOptions(res.data)); + form.setFieldsValue({ + regionDictId:regionDictId, + cityId: region.pid, + provinceId: pid + }); + } + }) + setCurrentProvince(pid); + } + }) + }) + } + } + //封装options + const EnvOptions = (data: PcaKeyValues[]) =>{ + let value = []; + for (let i = 0; i < data.length; i++) { + if (i === 0 && data[i].pid !== '0') { + value.push({label:'-请选择-',value:''}); + } + value.push({label:data[i].name, value:data[i].id}); + } + return value; + } + //封装options + const EnvServiceProvinceOptions = (data: SpKeyValues[]) =>{ + let value = []; + for (let i = 0; i < data.length; i++) { + if (i === 0) { + value.push({label:'-请选择-',value:''}); + } + value.push({label:data[i].provincesName, value:data[i].provincesNumber}); + } + console.log(value); + return value; + } + useImperativeHandle(ref, () => ({ + // InitData, + })); + + const renderFooter = () => { + return ( + <> + + + + ); + } + + /** + * 提交 + */ + const onFinish = async (values: any) => { + delete values.cityId; + delete values.provinceId; + setSaveLoading(true); + await savePlaceInfo({ ...values, regionDictName: placeInfo?.regionDictName, provinceDictName: placeInfo?.provinceDictName}).then((res) => { + if (res?.success) { + message.success('保存成功'); + onCancel(); + } + }) + .catch(e => { + message.error('保存失败'); + }).finally(()=>{ + setSaveLoading(false); + }); + } + return ( {onCancel()}} + title={
+ 评标场所信息 +
} + footer={renderFooter()} + width={"35%"} + > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
) +}) +export default PlaceModal; + diff --git a/src/pages/ElecEvaluation/PlaceAreasManage/index.tsx b/src/pages/ElecEvaluation/PlaceAreasManage/index.tsx new file mode 100644 index 0000000..5d03e51 --- /dev/null +++ b/src/pages/ElecEvaluation/PlaceAreasManage/index.tsx @@ -0,0 +1,34 @@ +import { Card, Radio } from 'antd'; +import React, { useState } from 'react'; +import PlaceManage from './components/Place'; +import AreasManage from './components/Areas'; +/** + * 评标场所及区域管理 + * @returns + */ +const PlaceAreasManage: React.FC<{}> = () => { + //radio value + const [mode, setMode] = useState('Place'); + + const handleModeChange = (e: any) => { + const mode = e.target.value; + setMode(mode); + }; + + return ( + + + 评标场所管理 + 评标区域管理 + + { + mode === 'Place' ? ( + + ) : ( + + ) + } + + ) +} +export default PlaceAreasManage; \ No newline at end of file diff --git a/src/pages/ElecEvaluation/PlaceAreasManage/service.ts b/src/pages/ElecEvaluation/PlaceAreasManage/service.ts new file mode 100644 index 0000000..ff07d29 --- /dev/null +++ b/src/pages/ElecEvaluation/PlaceAreasManage/service.ts @@ -0,0 +1,73 @@ +import request from '@/utils/request'; +/** + * 查询场所数据并分页 + * @param params + */ +export async function getPlacePage(params?: any) { + return request('/api/biz-service-ebtp-evaluation/v1/elec/eval/place/page/list', { + method: 'GET', + params: {...params} + }); +} + +/** + * 保存/更新场所信息 + * @param params 场所实体 + */ + export async function savePlaceInfo(params?: any) { + return request('/api/biz-service-ebtp-evaluation/v1/elec/eval/place/save', { + method: 'POST', + data: params, + }); +} + +/** + * 删除场所信息 + * @param params 场所实体 + */ + export async function deletePlaceInfo(params?: any) { + return request('/api/biz-service-ebtp-evaluation/v1/elec/eval/place/del/' + params, { + method: 'POST' + }); +} + +/** + * 查询区域数据并分页 + * @param params + */ + export async function getAreasPage(params?: any) { + return request('/api/biz-service-ebtp-evaluation/v1/elec/eval/area/page/list', { + method: 'POST', + data: params + }); + } + + /** + * 保存/更新区域信息 + * @param params 场所实体 + */ + export async function saveAreasInfo(params?: any) { + return request('/api/biz-service-ebtp-evaluation/v1/elec/eval/area/save', { + method: 'POST', + data: params, + }); + } + + /** + * 删除区域信息 + * @param params 场所实体 + */ + export async function deleteAreasInfo(params?: any) { + return request('/api/biz-service-ebtp-evaluation/v1/elec/eval/area/del/' + params, { + method: 'POST' + }); + } + + /** + * 获取服务省分 + */ + export async function getServiceProvices() { + return request('/api/biz-service-ebtp-project/v1/dictprovincescode/queryAll?childCompany=false', { + method: 'GET' + }); + } diff --git a/src/pages/ElecEvaluation/VideoMonitor/Online/service.ts b/src/pages/ElecEvaluation/VideoMonitor/Online/service.ts index 1777360..29492f2 100644 --- a/src/pages/ElecEvaluation/VideoMonitor/Online/service.ts +++ b/src/pages/ElecEvaluation/VideoMonitor/Online/service.ts @@ -4,7 +4,7 @@ import request from '@/utils/request'; * @param params */ export async function getPage(params?: any) { - return request('/api/biz-service-ebtp-evaluation//v1/eval/room/reserve/supervise/list', { + return request('/api/biz-service-ebtp-evaluation/v1/eval/room/reserve/supervise/list', { method: 'POST', data: params, });