diff --git a/src/pages/SitePerson/components/SitePersonModal.tsx b/src/pages/SitePerson/components/SitePersonModal.tsx new file mode 100644 index 0000000..9d40bbc --- /dev/null +++ b/src/pages/SitePerson/components/SitePersonModal.tsx @@ -0,0 +1,180 @@ +import React, { useEffect, useState } from 'react'; +import { Form, Input, Modal, Spin, Select, Button, Radio, RadioChangeEvent } from 'antd'; +import ExtendUpload from "@/utils/ExtendUpload"; +import { getFileListByBid } from '@/utils/DownloadUtils'; + + +interface SitePersonModalProps { + title: any; + modalVisible: boolean; + formDisabled: boolean; + values: any; + onSubmit: any; + type: string; + onCancel: () => void; + placeList: any[]; +} +const layout = { + labelCol: { span: 7 }, + wrapperCol: { span: 12 }, +}; +const SitePersonModal: React.FC = (props) => { + const [form] = Form.useForm(); + // const weboffice = useRef(null); + const { title, modalVisible, formDisabled, type, values, onSubmit: handleUpdate, onCancel, placeList } = props; + //loading + const [loading, setLoading] = useState(false); + const [value, setValue] = useState("1"); + + const onChange = (e: RadioChangeEvent) => { + console.log('radio checked', e.target.value); + setValue(e.target.value); + }; + + + useEffect(() => { + if (JSON.stringify(values) !== "{}") { + form.setFieldsValue({ + "id": values.id, + "evalPlaceId": {label: values.eroomName,value: values.evalPlaceId}, + "facePic": values.facePic, + "sex": values.sex, + "personName": values.personName, + "identityCard": values.identityCard + }); + } + }, [values]) + + + + const onOk = async () => { + const fieldsValue = await form.validateFields(); + setLoading(true) + fieldsValue["evalPlaceId"] = fieldsValue.evalPlaceId.value + console.log(fieldsValue) + + await getFileListByBid(fieldsValue.facePic).then(res => { + fieldsValue["facePicName"] = res[0].name + }) + console.log(fieldsValue) + await handleUpdate({ ...fieldsValue }).finally(() => { + setLoading(false) + }); + }; + + + const renderFooter = () => { + if (type == "read") { + return ( + <> + + + ); + } else { + return ( + <> + + + + ); + } + } + + return ( + onCancel()} + width={"60%"} + centered + footer={renderFooter()} + > + +
+ + + + + + + + + + + + + {/* 1-男性,2-女性 */} + + 男性 + 女性 + + + + + {/* maxSize={0.057} */} + + +
+
+
+ ); +}; + +export default SitePersonModal; diff --git a/src/pages/SitePerson/index.tsx b/src/pages/SitePerson/index.tsx new file mode 100644 index 0000000..8928a86 --- /dev/null +++ b/src/pages/SitePerson/index.tsx @@ -0,0 +1,203 @@ +import React, { useEffect, useRef, useState } from 'react'; +import ProTable, { ActionType } from '@ant-design/pro-table'; +import { getList, saveSitePerson, delSitePerson, getPlaceList } from './service'; +import { Button, Card, Form, message, Spin, Popconfirm } from 'antd'; +import SitePersonModal from './components/SitePersonModal'; +import { downloadFileObjectId } from '@/utils/DownloadUtils'; + + +const SitePersonList: React.FC<{}> = () => { + const checkRelationRef = useRef(); //操作数据后刷新列表 + const [isEditModalVisible, setIsEditModalVisible] = useState(false) //控制新增或编辑模态框是否显示 + const [form] = Form.useForm();//新增模块form + // const [editForm] = Form.useForm();//编辑模块form + //单条数据 + const [editForm, setEditForm] = useState({}); + const [spinning, setSping] = useState(false);//加载遮罩 + const [placeList, setPlaceList] = useState([]); //省分公司信息 + //下拉框是否可编辑 + const [placeFormDisabled, setPlaceFormDisabled] = useState(false); + const [type, setType] = useState('cease');//弹窗类型 + let typename = "新增"; + + + const columns: any = [ + { + title: '序号', + valueType: 'index', + width: 80, + search: false, + }, + // { + // title: '评标场所编号', + // dataIndex: 'eroomNum', + // }, + { + title: '评标场所名称', + dataIndex: 'eroomName', + search: false, + }, + // { + // title: '人员类型', + // dataIndex: 'bank', + // }, + { + title: '人员姓名', + dataIndex: 'personName', + }, + { + title: '身份证号', + dataIndex: 'identityCard', + width: 300, + ellipsis: true, + }, + { + title: '人脸照片', + dataIndex: 'facePicName', + search: false, + render: (text: any, record: any) => { + return ( + <> + downloadFileObjectId(record.facePic)}>{record.facePicName} + + ) + } + }, + { + title: '操作', + search: false, + render: (text: any, record: any) => { + return ( + <> + setFormVals(record)}>编辑 + { delPerson(record.id); }} okText="确定" cancelText="取消" > 删除 + + ) + } + }, + ] + + const delPerson = (id: any) => { // 删除 + setSping(true); + delSitePerson(id).then(res => { + if (res.code == 200) { + setSping(false); + message.success('删除成功'); + checkRelationRef.current?.reload(); + } else { + setSping(false); + form.resetFields() + } + }).finally(() => { + setSping(false); + });; + } + + // 编辑页面赋值 + const setFormVals = (item: any) => { + typename = "编辑"; + setEditForm(item); + setType("edit"); + setIsEditModalVisible(true) + setSping(false); + } + + // 新增页面 + const insertSitePerson = () => { + setType("insert"); + setIsEditModalVisible(true) + setSping(false); + } + + + useEffect(() => { + //查询当前人员权限下所有评标场所 + getPlaceList().then(res => { + if (res.code == 200) { + setPlaceList(res.data) + } + }); + }, []) + + return ( + <> + + + + [ + ...dom.reverse(), + , + ], + }} + + request={(params) => { + let trueParams = { + ...params, + pageNo: params.current, + } + return new Promise((resolve, reject) => { + getList(trueParams).then(res => { + if (res.code === 200) { + resolve({ + data: res.data.records, + success: res.success, + total: res.data.total, + }) + } else { + resolve({ + data: [], + success: false, + total: 0, + }) + } + }) + }); + }} + pagination={{ defaultPageSize: 10, showSizeChanger: false }}//默认显示条数 + /> + + {/* 新增及编辑银行账号Modal */} + { + isEditModalVisible ? + { + await saveSitePerson(value).then((res: any) => { + if (res.success === true) { + message.success("保存成功!"); + setIsEditModalVisible(false); + setEditForm({}); + // getSitePerson(); + checkRelationRef.current?.reload(); + } + }); + }} + onCancel={() => { + setIsEditModalVisible(!isEditModalVisible); + setEditForm({}); + }} + > + : null + } + + + + ); +} + +export default SitePersonList; \ No newline at end of file diff --git a/src/pages/SitePerson/service.ts b/src/pages/SitePerson/service.ts new file mode 100644 index 0000000..00fe843 --- /dev/null +++ b/src/pages/SitePerson/service.ts @@ -0,0 +1,40 @@ +import request from '@/utils/request'; +/** + * 查询数据并分页 + * @param params + */ +export async function getList(params?: any) { + return request('/api/biz-service-ebtp-evaluation/v1/eval/room/site/person/page', { + method: 'get', + params, + }); +} + + +export async function getPlaceList() { // 列表 + return request('/api/biz-service-ebtp-evaluation/v1/elec/eval/place/userlimit/list', { + method: 'get', + }); +} + +/** + * 新增 + * @param params + */ +export async function saveSitePerson(data?: any) { + return request('/api/biz-service-ebtp-evaluation/v1/eval/room/site/person/save', { + method: 'post', + data: data + }); +} + +/** + * 删除 + * @param params + */ +export async function delSitePerson(id?: any) { + return request('/api/biz-service-ebtp-evaluation/v1/eval/room/site/person/delete?id='+id, { + method: 'post', + }); +} +