From b7e03d58d1445031b293bb2cbef1f1fc36a6c268 Mon Sep 17 00:00:00 2001 From: dminyi <1301963064@qq.com> Date: Sat, 17 Aug 2024 09:46:17 +0800 Subject: [PATCH] Merge branch 'master' of http://120.79.193.119:9090/r/gzzfw/frontEnd/gzDyh into master --- gz-customerSystem/src/views/register/visit/component/applyDialog.jsx | 41 +++- gz-customerSystem/src/views/register/index.less | 26 ++ gz-customerSystem/src/views/register/visit/component/agentDialog.jsx | 214 ++++++++++++++++++++++++++ gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx | 25 ++ gz-customerSystem/src/views/register/visit/component/selectUnitDialog.jsx | 142 +++++++++++++++++ 5 files changed, 427 insertions(+), 21 deletions(-) diff --git a/gz-customerSystem/src/views/register/index.less b/gz-customerSystem/src/views/register/index.less index 4ec9806..13ec458 100644 --- a/gz-customerSystem/src/views/register/index.less +++ b/gz-customerSystem/src/views/register/index.less @@ -153,20 +153,32 @@ } .ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr>th { - border-right: 1px solid rgba(0,0,0,0.2); - border-bottom: 1px solid rgba(0,0,0,0.2); + border-right: 1px solid rgba(0, 0, 0, 0.2); + border-bottom: 1px solid rgba(0, 0, 0, 0.2); } .ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tbody>tr>td { - border-right: 1px solid rgba(0,0,0,0.2); - border-bottom: 1px solid rgba(0,0,0,0.2); + border-right: 1px solid rgba(0, 0, 0, 0.2); + border-bottom: 1px solid rgba(0, 0, 0, 0.2); } - .ant-table.ant-table-bordered > .ant-table-container { - border-left: 1px solid rgba(0,0,0,0.2); + .ant-table.ant-table-bordered>.ant-table-container { + border-left: 1px solid rgba(0, 0, 0, 0.2); } } -.arco-upload-list-type-text .arco-upload-list-item:first-of-type, .arco-upload-list-type-picture-list .arco-upload-list-item:first-of-type{ +.arco-upload-list-type-text .arco-upload-list-item:first-of-type, +.arco-upload-list-type-picture-list .arco-upload-list-item:first-of-type { margin-top: 34px; + +} + +.unitDialogResult { + font-size: 16px; + font-family: PingFang SC, PingFang SC-400; + font-weight: 400; + text-align: LEFT; + color: #1d2129; + line-height: 24px; + margin-bottom: 20px; } \ No newline at end of file diff --git a/gz-customerSystem/src/views/register/visit/component/agentDialog.jsx b/gz-customerSystem/src/views/register/visit/component/agentDialog.jsx new file mode 100644 index 0000000..d3c4e7b --- /dev/null +++ b/gz-customerSystem/src/views/register/visit/component/agentDialog.jsx @@ -0,0 +1,214 @@ +import React, { useState, useEffect, useRef, Fragment } from "react"; +import { Row, Col, Space } from 'antd'; +import { Form, Input, Button, Radio, Select, Checkbox, Upload } from '@arco-design/web-react'; +import KeyVisits from "./keyVisits"; + +const FormItem = Form.Item; +const Option = Select.Option; +const InputSearch = Input.Search; +const RadioGroup = Radio.Group; +const CheckboxGroup = Checkbox.Group; + +export default function AgentDialog(props) { + return ( + <div className="applyDialog"> + <div style={{ height: '590px', overflowY: 'scroll' }}> + <Row gutter={[16, 16]} style={{ margin: '0 2px 0 0' }}> + <Col span={24}> + <Form + ref={props.formRef} + layout='vertical' + requiredSymbol={false} + initialValues={{ + }}//默认值 + > + <Row gutter={[32, 0]} style={{ margin: '0 -10px' }}> + <Col span={24}> + <FormItem + label='身份证明材料' + field='file' + > + <Upload + drag + multiple + accept='image/*' + action='/' + onDrop={(e) => { + }} + tip='支持png、jpg、pdf格式的图片上传,每次上传大小不超过10M' + /> + </FormItem> + </Col> + <Col span={24}> + <FormItem + label='代理人委托书' + field='file1' + > + <Upload + drag + multiple + accept='image/*' + action='/' + onDrop={(e) => { + }} + tip='支持png、jpg、pdf格式的图片上传,每次上传大小不超过10M' + /> + </FormItem> + </Col> + <Col span={12}> + <FormItem + label={(<div style={{ display: 'flex' }}>姓名<div className="must">必填</div></div>)} + field='name' + > + <Input placeholder='请填写' /> + </FormItem> + </Col> + <Col span={12}> + <FormItem + label={(<div style={{ display: 'flex' }}>联系方式<div className="must">必填</div></div>)} + field='phone' + > + <Input placeholder='请填写' /> + </FormItem> + </Col> + <Col span={12}> + <FormItem + label={(<div style={{ display: 'flex' }}>证件类型<div className="must">必填</div></div>)} + field='zhengjian' + > + <Select placeholder='请选择' allowClear> + {['居民身份证',].map((option, index) => ( + <Option key={option} value={option}> + {option} + </Option> + ))} + </Select> + </FormItem> + </Col> + <Col span={12}> + <FormItem + label={(<div style={{ display: 'flex' }}>证件号码<div className="must">必填</div></div>)} + rules={[{ required: true }]} + field='peopleNumber' + > + <InputSearch + searchButton='读取卡证' + placeholder='请填写' + /> + </FormItem> + </Col> + <Col span={12}> + <FormItem label='联系地址' field='money'> + <Input placeholder='请填写' /> + </FormItem> + </Col> + <Col span={12}> + <FormItem label='户籍地址' field='money'> + <Input placeholder='请填写' /> + </FormItem> + </Col> + <Col span={12}> + <FormItem label='工作单位' field='money'> + <Input placeholder='请填写' /> + </FormItem> + </Col> + <Col span={12}> + <FormItem + label='民族' + field='minzu' + > + <Select placeholder='请选择' allowClear> + {['汉族',].map((option, index) => ( + <Option key={option} value={option}> + {option} + </Option> + ))} + </Select> + </FormItem> + </Col> + <Col span={12}> + <FormItem + label='性别' + field='sex' + > + <RadioGroup + type='button' + > + <Radio value='0'>男</Radio> + <Radio value='1'>女</Radio> + </RadioGroup> + </FormItem> + </Col> + <Col span={12}> + <FormItem + label='是否极具个人极端倾向' + field='isBad' + > + <RadioGroup> + <Radio value='0'>否</Radio> + <Radio value='1'>是</Radio> + </RadioGroup> + </FormItem> + </Col> + <Col span={12}> + <FormItem + label='委托关系' + field='weituo' + > + <Select placeholder='请选择' allowClear> + {['亲属',].map((option, index) => ( + <Option key={option} value={option}> + {option} + </Option> + ))} + </Select> + </FormItem> + </Col> + <Col span={12}> + <FormItem + label='委托类型' + field='type' + > + <Select placeholder='请选择' allowClear> + {['一般授权代理',].map((option, index) => ( + <Option key={option} value={option}> + {option} + </Option> + ))} + </Select> + </FormItem> + </Col> + <Col span={12}> + <FormItem + label={(<div style={{ display: 'flex' }}>代理对象<div className="must">必填</div></div>)} + rules={[{ required: true }]} + field='dailimap' + > + <CheckboxGroup direction='vertical' options={['张三丰', '广东好又多贸易有限公司', '广东科贸创意有限公司']} /> + </FormItem> + </Col> + </Row> + </Form> + </Col> + </Row> + + {/* 重复来访重点人员 */} + <div style={{ width: 'calc(100% - 9px)', background: '#f2f3f5', marginBottom: '20px', padding: '12px' }}> + <KeyVisits /> + </div> + </div> + <div className='dialogFooter'> + <Button + type="primary" + className="dialogPrimary" + // onClick={handleSave} + > + 保存信息 + </Button> + <Button className="dialogBack"> + 重置 + </Button> + </div> + </div> + ) +} diff --git a/gz-customerSystem/src/views/register/visit/component/applyDialog.jsx b/gz-customerSystem/src/views/register/visit/component/applyDialog.jsx index 78003e0..cfcb874 100644 --- a/gz-customerSystem/src/views/register/visit/component/applyDialog.jsx +++ b/gz-customerSystem/src/views/register/visit/component/applyDialog.jsx @@ -12,8 +12,9 @@ caseperfection_organize, caseperfection_organize_active, } from '../../../../assets/images/icon'; -import { Form, Input, Button, Radio, Select, DatePicker, Cascader, Upload, Message } from '@arco-design/web-react'; +import { Form, Input, Button, Radio, Select, Modal, Cascader, Upload, Message } from '@arco-design/web-react'; import KeyVisits from "./keyVisits"; +import SelectUnitDialog from "./selectUnitDialog"; const FormItem = Form.Item; const Option = Select.Option; @@ -23,7 +24,8 @@ export default function ApplyDialog(props) { const formRef = useRef(); const [perClass, setPerClass] = useState('09_01001-1'); - + const [visible, setVisible] = useState(false); + const personIconType = (v) => { switch (v) { @@ -157,11 +159,12 @@ ) } else { //法人、非法人组织 + let isLegal = type === '09_01001-2' return ( <> <Col span={24}> <FormItem - label='企业登记材料' + label={isLegal ? '企业登记材料' : '机构登记材料'} field='file' > <Upload @@ -177,7 +180,7 @@ </Col> <Col span={24}> <FormItem - label='法定代表人身份证明材料' + label={isLegal ? '法定代表人身份证明材料' : '机构代表人身份证明材料'} field='file1' > <Upload @@ -193,13 +196,14 @@ </Col> <Col span={12}> <FormItem - label='企业名称' + label={isLegal ? '企业名称' : '机构名称'} rules={[{ required: true }]} field='peopleNumber' > <InputSearch searchButton='选择' placeholder='请填写' + onSearch={handleSelect} /> </FormItem> </Col> @@ -209,23 +213,23 @@ </FormItem> </Col> <Col span={12}> - <FormItem label='企业所在地' field='money'> + <FormItem label={isLegal ? '企业所在地' : '机构所在地'} field='money'> <Input placeholder='请填写' /> </FormItem> </Col> <Col span={12}> - <FormItem label='统一社会信用代码' field='money'> + <FormItem label={isLegal ? '统一社会信用代码' : '组织机构代码'} field='money'> <Input placeholder='请填写' /> </FormItem> </Col> <Col span={12}> - <FormItem label='法定代表人' field='money'> + <FormItem label={isLegal ? '法定代表人' : '机构代表人'} field='money'> <Input placeholder='请填写' /> </FormItem> </Col> <Col span={12}> <FormItem - label='企业类型' + label={ isLegal ? '企业类型' : '机构类型'} field='minzu' > <Select placeholder='请选择' allowClear> @@ -254,6 +258,11 @@ console.log(errors, values); }); } + } + + //选择 + const handleSelect = (value) => { + setVisible(true) } return ( @@ -288,10 +297,11 @@ initialValues={{ }}//默认值 > - <Row gutter={[32, 0]}>{formType(perClass)}</Row> + <Row gutter={[32, 0]} style={{ margin: '0 -10px' }}>{formType(perClass)}</Row> </Form> </Col> </Row> + {/* 重复来访重点人员 */} <div style={{ width: 'calc(100% - 9px)', background: '#f2f3f5', marginBottom: '20px', padding: '12px' }}> <KeyVisits /> @@ -309,6 +319,17 @@ 重置 </Button> </div> + <Modal + title={'选择单位'} + visible={visible} + onOk={() => setVisible(false)} + onCancel={() => setVisible(false)} + autoFocus={false} + focusLock={true} + footer={null} + > + <SelectUnitDialog /> + </Modal> </div> ) } diff --git a/gz-customerSystem/src/views/register/visit/component/selectUnitDialog.jsx b/gz-customerSystem/src/views/register/visit/component/selectUnitDialog.jsx new file mode 100644 index 0000000..709d4c8 --- /dev/null +++ b/gz-customerSystem/src/views/register/visit/component/selectUnitDialog.jsx @@ -0,0 +1,142 @@ +import React, { useState, useRef } from 'react' +import TableSearch from '../../../../components/TableSearch'; +import TableView from '../../../../components/TableView'; +import { Row, Col } from 'antd'; +import { Form, Input, Button, Divider } from '@arco-design/web-react'; + +const FormItem = Form.Item; +const formItemLayout = { + labelCol: { + span: 4, + }, + wrapperCol: { + span: 17, + }, +}; + +export default function SelectUnitDialog(props) { + const formRef = useRef(); + const [search, setSearch] = useState({ page: 1, size: 10, status: '1' });// 搜索 + // 数据 + const [data, setData] = useState({}); + + const fakeData1 = [ + { + id: 1, + caseNo: 'A20230101', + judicNo: 'J20230101', + perClassName: '自然人', + inputUserName: '张三', + mediateUserName: '李四', + judgeName: '王五', + mediator: '赵六', + handlerUserName: '钱七', + returnUserName: '孙八', + expireTime: '2023-08-10T08:00:00.000Z', + processName: '进行中', + otherMediator: '周九', + canalName: '网络', + judicResult: '通过', + assistName: '吴十', + mediTypeName: '民事调解', + serieStatus: '1', // 1 表示非系列案,2 表示系列案 + // 更多字段... + }, + // 更多数据... + ]; + + // 列配置 + const fakeColumns = [ + { + title: '序号', + dataIndex: 'caseNo', + key: 'caseNo', + render: (text, record, index) => <span>{index + 1}</span>, + }, + { + title: '材料类型', + dataIndex: 'judicNo', + key: 'judicNo', + }, + { + title: '材料数量', + dataIndex: 'perClassName', + key: 'perClassName', + }, + { + title: '材料名称', + dataIndex: 'perClassName', + key: 'perClassName', + }, + { + title: '上传时间', + dataIndex: 'perClassName', + key: 'perClassName', + }, + { + title: '操作', + dataIndex: 'perClassName', + key: 'perClassName', + width: 120, + render: (text) => ( + <div style={{ display: 'flex', color: '#1A6FB8', gap: '16px' }}> + <div>选择</div> + </div> + ) + }, + // 更多列配置... + ]; + + // 搜索 or 重置 + function handleSearch(type, data) { + if (type === 'changePage') { + let obj = type === 'changeTabs' ? { page: 1, status: data } : { page: data[0], size: data[1] }; + // getSignForListData({ ...search, ...obj }); + } + } + + return ( + <div> + <Form + ref={formRef} + requiredSymbol={false} + layout='inline' + {...formItemLayout} + > + <FormItem + label='单位名称:' + field='name' + > + <Input placeholder='请填写' style={{width: '500px'}}/> + </FormItem> + <Button style={{marginRight: '20px'}}> + 重置 + </Button> + <Button + type="primary" + // onClick={handleSave} + > + 查询 + </Button> + </Form> + <Divider /> + <div className='unitDialogResult'> + 查询结果 + </div> + <TableView + columns={fakeColumns} + dataSource={fakeData1} + size="small" + rowKey="id" + bordered={true} + style={{ marginBottom: '60px' }} + pagination={{ + current: search.page, + pageSize: search.size, + total: data.total, + onChange: (page, pageSize) => handleSearch('changePage', [page, pageSize]), + }} + /> + </div> + ) +} diff --git a/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx b/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx index 1bb3f3e..f8413d3 100644 --- a/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx +++ b/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx @@ -18,6 +18,7 @@ import TableView from '../../../../components/TableView'; import '../../index.less'; import ApplyDialog from "./applyDialog"; +import AgentDialog from "./agentDialog"; import FilesCheck from '../../../filesCheck'; import { IconFileAudio, @@ -104,7 +105,7 @@ const [upload, setUpLoad] = useState(false); const [sourceType, setSourceType] = useState('09_01010-1'); const [filesCheck, setFilesCheck] = useState(false); - const [file, setFile] = useState(); + const [fileView, setFileView] = useState(); const [selectedAddress, setSelectedAddress] = useState(''); const [fileTip, setFileTip] = useState('0'); @@ -114,6 +115,7 @@ // 更多地址... ]; + const [agentVisible, setAgentVisible] = useState(false); const personIconType = (v) => { switch (v) { @@ -348,8 +350,12 @@ //添加申请人: 0、被申请人: 1、代理人: 2 const handleAdd = (type) => { + if(type === 2) { + setAgentVisible(true) + } else { + setAddVisabled(true) + } setDialogType(type) - setAddVisabled(true) } @@ -586,7 +592,7 @@ if (info.length > 0) { setScanImage(true); } - setFile({ + setFileView({ ...currentFile, url: URL.createObjectURL(currentFile.originFile), @@ -603,7 +609,7 @@ </Modal> <Modal style={{ width: '944px' }} visible={scanImage} onCancel={() => setScanImage(false)} footer={null} title='选择识别范围' centered> <img - src={file?.url} + src={fileView?.url} alt="" style={{ display: 'block', // 确保图片在容器中居中显示 @@ -684,6 +690,17 @@ > <ApplyDialog /> </Modal> + <Modal + title={'添加代理人'} + visible={agentVisible} + onOk={() => setAgentVisible(false)} + onCancel={() => setAgentVisible(false)} + autoFocus={false} + focusLock={true} + footer={null} + > + <AgentDialog /> + </Modal> </div> ) } -- Gitblit v1.8.0