From e1961f3d69deb7bb75c365748f4726bcedb10dda Mon Sep 17 00:00:00 2001
From: zhangyongtian <1181606322@qq.com>
Date: Sat, 31 Aug 2024 15:37:54 +0800
Subject: [PATCH] feat:事件流转
---
gz-customerSystem/src/views/register/visit/component/agentDialog.jsx | 194 +++++++++++++++++++++++++++++++++++------------
1 files changed, 143 insertions(+), 51 deletions(-)
diff --git a/gz-customerSystem/src/views/register/visit/component/agentDialog.jsx b/gz-customerSystem/src/views/register/visit/component/agentDialog.jsx
index 684f9a7..b63946c 100644
--- a/gz-customerSystem/src/views/register/visit/component/agentDialog.jsx
+++ b/gz-customerSystem/src/views/register/visit/component/agentDialog.jsx
@@ -1,10 +1,11 @@
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";
+import KeyVisits from "@/components/personCard/KeyVisits";
import {
IconLink,
} from '@arco-design/web-react/icon';
+import * as $$ from '@/utils/utility';
const FormItem = Form.Item;
const Option = Select.Option;
@@ -13,17 +14,71 @@
const CheckboxGroup = Checkbox.Group;
export default function AgentDialog(props) {
+ const formRef = useRef();
+ const [visitList, setVisitList] = useState([])
+
+ useEffect(() => {
+ if (props.editData) {
+ //编辑
+ formRef.current.setFieldsValue({
+ ...props.editData
+ })
+ console.log(props);
+ //过滤代理人
+ setVisitList(props.fakeData.filter(item => {
+ if (props.editData.perType === '24_00006-1') {
+ return item.perType === '15_020008-1'
+ } else {
+ return item.perType === '15_020008-2'
+ }
+ }))
+ } else {
+ //过滤代理人
+ setVisitList(props.fakeData.filter(item => {
+ if (props.dialogType === '24_00006-1') {
+ return item.perType === '15_020008-1'
+ } else {
+ return item.perType === '15_020008-2'
+ }
+ }))
+ }
+ }, [])
+
+ //保存信息
+ const handleSave = () => {
+ if (formRef.current) {
+ formRef.current.validate(undefined, (errors, values) => {
+ if (!errors) {
+ const fieldValue = formRef.current.getFields()
+ if (props.editData) {
+ props.handleAddParty({
+ ...fieldValue
+ })
+ } else {
+ props.handleAddParty({
+ ...fieldValue,
+ perType: props.dialogType,
+ perTypeName: $$.options.personType.find(item => item.value === props.dialogType).label,
+ })
+ }
+ props.onClose()
+ }
+ });
+ }
+ }
+
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}
+ ref={formRef}
layout='vertical'
requiredSymbol={false}
initialValues={{
}}//默认值
+ scrollToFirstError
>
<Row gutter={[32, 0]} style={{ margin: '0 -10px' }}>
<Col span={24}>
@@ -64,7 +119,8 @@
<Col span={12}>
<FormItem
label={(<div style={{ display: 'flex' }}>姓名<div className="must">必填</div></div>)}
- field='name'
+ field='trueName'
+ rules={[{ required: true, message: '请输入姓名' }]}
>
<Input placeholder='请填写' />
</FormItem>
@@ -72,7 +128,11 @@
<Col span={12}>
<FormItem
label={(<div style={{ display: 'flex' }}>联系方式<div className="must">必填</div></div>)}
- field='phone'
+ field='mobile'
+ rules={[
+ { required: true, message: '请输入联系方式' },
+ { match: /^\+?(\d{1,3})?[-. (]*(\d{3})[-. )]*(\d{3})[-. ]*(\d{4})$/, message: '请输入正确的电话号码' },
+ ]}
>
<Input placeholder='请填写' />
</FormItem>
@@ -80,22 +140,27 @@
<Col span={12}>
<FormItem
label={(<div style={{ display: 'flex' }}>证件类型<div className="must">必填</div></div>)}
- field='zhengjian'
+ field='certiType'
+ rules={[{ required: true, message: '请选择证件类型' }]}
>
- <Select placeholder='请选择' allowClear>
- {['居民身份证',].map((option, index) => (
- <Option key={option} value={option}>
- {option}
- </Option>
- ))}
- </Select>
+ <Select
+ placeholder='请选择'
+ allowClear
+ options={$$.options.cardType}
+ onChange={(value, options) => {
+ formRef.current.setFieldValue('certiTypeName', options && options.children)
+ }}
+ />
</FormItem>
</Col>
<Col span={12}>
<FormItem
label={(<div style={{ display: 'flex' }}>证件号码<div className="must">必填</div></div>)}
- rules={[{ required: true }]}
- field='peopleNumber'
+ rules={[
+ { required: true, message: '请输入证件号码' },
+ { match: /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])\d{3}(\d|X)$/, message: '请输入正确的证件号码' }
+ ]}
+ field='certiNo'
>
<InputSearch
searchButton='读取卡证'
@@ -104,32 +169,38 @@
</FormItem>
</Col>
<Col span={12}>
- <FormItem label='联系地址' field='money'>
+ <FormItem label='联系地址' field='addr'>
<Input placeholder='请填写' />
</FormItem>
</Col>
<Col span={12}>
- <FormItem label='户籍地址' field='money'>
+ <FormItem label='户籍地址' field='placeAddr'>
<Input placeholder='请填写' />
</FormItem>
</Col>
<Col span={12}>
- <FormItem label='工作单位' field='money'>
+ <FormItem label='工作单位' field='workUnit'>
<Input placeholder='请填写' />
</FormItem>
</Col>
<Col span={12}>
<FormItem
label='民族'
- field='minzu'
+ field='nation'
>
- <Select placeholder='请选择' allowClear>
- {['汉族',].map((option, index) => (
- <Option key={option} value={option}>
- {option}
- </Option>
- ))}
- </Select>
+ <Select
+ placeholder='请选择'
+ allowClear
+ showSearch
+ options={$$.options.nation}
+ filterOption={(inputValue, option) =>
+ option.props.value.toLowerCase().indexOf(inputValue.toLowerCase()) >= 0 ||
+ option.props.children.toLowerCase().indexOf(inputValue.toLowerCase()) >= 0
+ }
+ onChange={(value, options) => {
+ formRef.current.setFieldValue('nationName', options && options.children)
+ }}
+ />
</FormItem>
</Col>
<Col span={12}>
@@ -139,58 +210,79 @@
>
<RadioGroup
type='button'
+ options={$$.options.sex}
+ onChange={(value, options) => {
+ if (value) {
+ formRef.current.setFieldValue('sexName', value === '09_00003-1' ? '男' : '女')
+ } else {
+ formRef.current.setFieldValue('sexName', '')
+ }
+ }}
>
- <Radio value='0'>男</Radio>
- <Radio value='1'>女</Radio>
</RadioGroup>
</FormItem>
</Col>
<Col span={12}>
<FormItem
label='是否极具个人极端倾向'
- field='isBad'
+ field='extreme'
>
<RadioGroup>
- <Radio value='0'>否</Radio>
- <Radio value='1'>是</Radio>
+ <Radio value={0}>否</Radio>
+ <Radio value={1}>是</Radio>
</RadioGroup>
</FormItem>
</Col>
<Col span={12}>
<FormItem
label='委托关系'
- field='weituo'
+ field='agentRelate'
>
- <Select placeholder='请选择' allowClear>
- {['亲属',].map((option, index) => (
- <Option key={option} value={option}>
- {option}
- </Option>
- ))}
- </Select>
+ <Select
+ placeholder='请选择'
+ allowClear
+ options={$$.options.agentRelate}
+ onChange={(value, options) => {
+ formRef.current.setFieldValue('agentRelateName', options && options.children)
+ }}
+ />
</FormItem>
</Col>
<Col span={12}>
<FormItem
label='委托类型'
- field='type'
+ field='agentType'
>
- <Select placeholder='请选择' allowClear>
- {['一般授权代理',].map((option, index) => (
- <Option key={option} value={option}>
- {option}
- </Option>
- ))}
- </Select>
+ <Select
+ placeholder='请选择'
+ allowClear
+ options={$$.options.agentType}
+ onChange={(value, options) => {
+ formRef.current.setFieldValue('agentTypeName', options && options.children)
+ }}
+ />
</FormItem>
</Col>
<Col span={12}>
<FormItem
label={(<div style={{ display: 'flex' }}>代理对象<div className="must">必填</div></div>)}
- rules={[{ required: true }]}
- field='dailimap'
+ rules={[{ required: true, message: '请选择代理对象' }]}
+ field='personId'
>
- <CheckboxGroup direction='vertical' options={['张三丰', '广东好又多贸易有限公司', '广东科贸创意有限公司']} />
+ <CheckboxGroup
+ direction='vertical'
+ options={visitList.map(x => ({
+ label: <span>{x.trueName} <span style={{ color: '#86909c' }}>({x.perTypeName})</span></span>,
+ value: x.id,
+ }))}
+ onChange={(value) => {
+ if (value) {
+ const personList = visitList.filter(item => value.indexOf(item.id) != -1).map(item => item.trueName)
+ formRef.current.setFieldValue('personNameList', personList)
+ }
+ }}
+ >
+ </CheckboxGroup>
</FormItem>
</Col>
</Row>
@@ -207,9 +299,9 @@
<Button
type="primary"
className="dialogPrimary"
- // onClick={handleSave}
+ onClick={handleSave}
>
- 保存信息
+ 保存
</Button>
<Button className="dialogBack">
重置
--
Gitblit v1.8.0