From 4e3b493f07b4bc7f325a4b8ebc91704ec8e902a9 Mon Sep 17 00:00:00 2001 From: liuwh <964324856@qq.com> Date: Tue, 10 Sep 2024 16:54:43 +0800 Subject: [PATCH] PC端来访登记 --- gz-customerSystem/src/views/register/matterDetail/FileUpLoad.jsx | 53 +++-- gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx | 11 gz-customerSystem/src/views/register/matterDetail/FileTable.jsx | 1 gz-customerSystem/src/api/appUrl.js | 72 ++++---- gz-customerSystem/src/views/register/visit/index.jsx | 344 +++++++++++++++++++------------------ gz-customerSystem/src/views/register/matterDetail/index.less | 3 6 files changed, 250 insertions(+), 234 deletions(-) diff --git a/gz-customerSystem/src/api/appUrl.js b/gz-customerSystem/src/api/appUrl.js index 8045a55..68b163b 100644 --- a/gz-customerSystem/src/api/appUrl.js +++ b/gz-customerSystem/src/api/appUrl.js @@ -2,47 +2,47 @@ * @Company: hugeInfo * @Author: ldh * @Date: 2022-02-16 11:25:57 - * @LastEditTime: 2024-09-10 10:36:24 + * @LastEditTime: 2024-09-10 16:53:01 * @LastEditors: lwh * @Version: 1.0.0 * @Description: api地址 */ export const debug = { - // web服务 - // baseUrl: 'http://gz.hugeinfo.com.cn', - baseUrl: "http://192.168.3.108:9002", - // baseUrl: 'http://mdqgnh.natappfree.cc', + // web服务 + // baseUrl: 'http://gz.hugeinfo.com.cn', + // baseUrl: "http://192.168.3.108:9002", + baseUrl: 'http://6dycet.natappfree.cc', - // 附件服务 - fileUrl: "http://192.168.3.108:9002", - // fileUrl: 'http://gz.hugeinfo.com.cn', + // 附件服务 + // fileUrl: "http://192.168.3.108:9002", + // fileUrl: 'http://gz.hugeinfo.com.cn', + fileUrl: 'http://6dycet.natappfree.cc', + // 文件查看url 后面接附件编号 + fileShowUrl: '/dyh-sys/api/v1/fileInfo/show/', + // 文件下载url 后面接附件编号 + fileDownUrl: '/dyh-sys/api/v1/fileInfo/down/', + // 在线文档编辑链接 + fileDocx: '/word/docDraft/showWord', + // 签章的文档编辑链接 + fileDocx2: '/InsertSeal/Word/AddSeal1/Word1', - // 文件查看url 后面接附件编号 - fileShowUrl: "/dyh-sys/api/v1/fileInfo/show/", - // 文件下载url 后面接附件编号 - fileDownUrl: "/dyh-sys/api/v1/fileInfo/down/", - // 在线文档编辑链接 - fileDocx: "/word/docDraft/showWord", - // 签章的文档编辑链接 - fileDocx2: "/InsertSeal/Word/AddSeal1/Word1", - - // 不同服务接口type - mediate: "dyh-mediate", // dyh-mediate - cust: "dyh-cust", // dyh-cust - oper: "dyh-oper", // dyh-oper - sys: "dyh-sys", // dyh-sys - disp: "dyh-disp", //dyh-disp - utils: "dyh-utils", + // 不同服务接口type + mediate: 'dyh-mediate', // dyh-mediate + cust: 'dyh-cust', // dyh-cust + oper: 'dyh-oper', // dyh-oper + sys: 'dyh-sys', // dyh-sys + disp: 'dyh-disp', //dyh-disp + utils: 'dyh-utils', }; // 正式版 export const web = { - // web服务 - baseUrl: "https://zfw-dyh.by.gov.cn", - // baseUrl: 'http://146.4.99.61:8088/byzfw', + // web服务 + baseUrl: 'https://zfw-dyh.by.gov.cn', + // baseUrl: 'http://146.4.99.61:8088/byzfw', - // 附件服务 - fileUrl: "https://zfw-dyh.by.gov.cn", + // 附件服务 + fileUrl: 'https://zfw-dyh.by.gov.cn', // 文件查看url 后面接附件编号 fileShowUrl: '/dyh-sys/api/v1/fileInfo/show/', @@ -53,11 +53,11 @@ // 签章的文档编辑链接 fileDocx2: '/InsertSeal/Word/AddSeal1/Word1', - // 不同服务接口type - mediate: "gzdyh-mediate", // dyh-mediate - cust: "gzdyh-cust", // dyh-cust - oper: "gzdyh-oper", // dyh-oper - sys: "gzdyh-sys", // dyh-sys - disp: "gzdyh-disp", //dyh-disp - utils: "gzdyh-utils", + // 不同服务接口type + mediate: 'gzdyh-mediate', // dyh-mediate + cust: 'gzdyh-cust', // dyh-cust + oper: 'gzdyh-oper', // dyh-oper + sys: 'gzdyh-sys', // dyh-sys + disp: 'gzdyh-disp', //dyh-disp + utils: 'gzdyh-utils', }; diff --git a/gz-customerSystem/src/views/register/matterDetail/FileTable.jsx b/gz-customerSystem/src/views/register/matterDetail/FileTable.jsx index f1cc458..49760b1 100644 --- a/gz-customerSystem/src/views/register/matterDetail/FileTable.jsx +++ b/gz-customerSystem/src/views/register/matterDetail/FileTable.jsx @@ -363,6 +363,7 @@ return ( <Col span={12} key={t}> <div + onClick={() => { x.value !== sourceType && setSourceType(x.value) }} className={`casePerfection-cardTab-tab ${x.value === sourceType && 'casePerfection-cardTab-tabActive'}`} > <img src={x.value === sourceType ? personIconType(x.value)?.[1] : personIconType(x.value)?.[0]} alt="" style={{ width: '40px', height: '40px' }} /> diff --git a/gz-customerSystem/src/views/register/matterDetail/FileUpLoad.jsx b/gz-customerSystem/src/views/register/matterDetail/FileUpLoad.jsx index 5d1dba2..97f1cba 100644 --- a/gz-customerSystem/src/views/register/matterDetail/FileUpLoad.jsx +++ b/gz-customerSystem/src/views/register/matterDetail/FileUpLoad.jsx @@ -3,7 +3,7 @@ import * as $$ from '@/utils/utility'; import { Form, Input, Modal, Upload } from '@arco-design/web-react'; import { IconLink } from '@arco-design/web-react/icon'; - +import './index.less' const FormItem = Form.Item; const appUrl = $$.appUrl; @@ -51,6 +51,30 @@ return ( <> + + <Modal + style={{ width: '944px' }} + visible={scanImage} + onCancel={() => setScanImage(false)} + footer={null} + title='选择识别范围' + centered + unmountOnExit={true} + maskClosable={false} + > + <img + src={fileView?.url} + alt="" + style={{ + display: 'block', + margin: 'auto', + maxWidth: '100%', + maxHeight: '100%', + objectFit: 'contain', + }} + /> + <div><Button type="primary" onClick={() => handleScaned()} style={{ marginTop: '20px' }}>开始识别</Button></div> + </Modal> <Modal style={{ width: '1200px' }} visible={visible} @@ -105,32 +129,11 @@ </Form> - </Modal> + </Modal > <Modal - style={{ width: '944px' }} - visible={scanImage} - onCancel={() => setScanImage(false)} - footer={null} - title='选择识别范围' - centered - unmountOnExit={true} - maskClosable={false} - > - <img - src={fileView?.url} - alt="" - style={{ - display: 'block', - margin: 'auto', - maxWidth: '100%', - maxHeight: '100%', - objectFit: 'contain', - }} - /> - <div><Button type="primary" onClick={() => handleScaned()} style={{ marginTop: '20px' }}>开始识别</Button></div> - </Modal> - <Modal + className='scan-modal' style={{ width: '1200px' }} + wrapStyle={{ zIndex: 1002 }} visible={scaned} onCancel={() => setScaned(false)} footer={null} diff --git a/gz-customerSystem/src/views/register/matterDetail/index.less b/gz-customerSystem/src/views/register/matterDetail/index.less new file mode 100644 index 0000000..9fffc2b --- /dev/null +++ b/gz-customerSystem/src/views/register/matterDetail/index.less @@ -0,0 +1,3 @@ +.scan-modal { + +} \ No newline at end of file diff --git a/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx b/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx index 0a883e8..27c6b4e 100644 --- a/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx +++ b/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx @@ -26,6 +26,7 @@ const [addVisabled, setAddVisabled] = useState(false);//添加当事人弹窗控制 const [fakeData, setFakeData] = useState([]);//当事人信息数据 const [scanFile, setScanFile] = useState(false); + const [ocrText, setOcrText] = useState(''); const [mapView, setMapView] = useState(false); const [visible, setVisible] = useState(false); @@ -101,7 +102,7 @@ const handleConfirm = (scanContent) => { // 处理确认逻辑 - props.formRef.current.setFieldValue('caseDes', scanContent) + props.formRef.current.setFieldValue(ocrText, scanContent) setScanFile(false); console.log(scanContent, 'scanContent') @@ -330,7 +331,7 @@ </Tooltip> <div className="must" style={{ marginLeft: '4px' }}>必填</div> <img src={scan} alt="" style={{ marginRight: '-2px', marginLeft: '8px' }} /> - <div style={{ marginLeft: '8px', color: '#1A6FB8', fontSize: '14px', cursor: 'pointer' }} onClick={() => setScanFile(true)}>识别上传材料</div> + <div style={{ marginLeft: '8px', color: '#1A6FB8', fontSize: '14px', cursor: 'pointer' }} onClick={() => { setScanFile(true); setOcrText('caseDes') }}>识别上传材料</div> </div> } field='caseDes' @@ -354,7 +355,7 @@ </Tooltip> */} <div className="must">必填</div> <img src={scan} alt="" style={{ marginRight: '-2px', marginLeft: '8px' }} /> - <div style={{ marginLeft: '8px', color: '#1A6FB8', fontSize: '14px', cursor: 'pointer' }} onClick={() => setScanFile(true)}>识别上传材料</div> + <div style={{ marginLeft: '8px', color: '#1A6FB8', fontSize: '14px', cursor: 'pointer' }} onClick={() => { setScanFile(true); setOcrText('caseClaim') }}>识别上传材料</div> </div> } field='caseClaim' @@ -384,13 +385,13 @@ </div> </Row> - </Form> + </Form > <Col span={24} style={{ display: 'flex', alignItems: 'center', marginBottom: '8px', marginTop: '20px' }}> <Space size='small'> <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h4>事件材料</h4> </Space> </Col> - <FileTable mainId={props.mainId} fileInfoList={props.fileInfoList} isReview={false}/> + <FileTable mainId={props.mainId} fileInfoList={props.fileInfoList} isReview={false} /> <DocumentScanner visible={scanFile} diff --git a/gz-customerSystem/src/views/register/visit/index.jsx b/gz-customerSystem/src/views/register/visit/index.jsx index e00c310..85320b6 100644 --- a/gz-customerSystem/src/views/register/visit/index.jsx +++ b/gz-customerSystem/src/views/register/visit/index.jsx @@ -1,8 +1,8 @@ /* * @Author: dminyi 1301963064@qq.com * @Date: 2024-08-09 09:59:43 - * @LastEditors: dminyi 1301963064@qq.com - * @LastEditTime: 2024-09-10 10:10:03 + * @LastEditors: lwh + * @LastEditTime: 2024-09-10 11:20:47 * @FilePath: \gzDyh\gz-customerSystem\src\views\basicInformation\organization\index.jsx * @Description: 来访登记 */ @@ -22,197 +22,205 @@ const Step = Steps.Step; function saveDispute(data) { - return $$.ax.request({ url: `casedraftInfo/caseDraftRegister`, type: 'post', service: 'mediate', data }); + return $$.ax.request({ url: `casedraftInfo/caseDraftRegister`, type: 'post', service: 'mediate', data }); } function getId() { - return $$.ax.request({ url: `caseUtils/getNewTimeCaseId`, type: 'get', service: 'utils' }); + return $$.ax.request({ url: `caseUtils/getNewTimeCaseId`, type: 'get', service: 'utils' }); } function submitDispute(data) { - return $$.ax.request({ url: `caseInfo/caseRegister`, type: 'post', service: 'mediate', data }); + return $$.ax.request({ url: `caseInfo/caseRegister`, type: 'post', service: 'mediate', data }); } function getDetailData(id) { - return $$.ax.request({ url: `casedraftInfo/getCasedraftInfo?id=${id}`, type: 'get', service: 'mediate' }); + return $$.ax.request({ url: `casedraftInfo/getCasedraftInfo?id=${id}`, type: 'get', service: 'mediate' }); } const Organization = (props) => { - const formRef = useRef(); - const routeData = useParams(); - const navigate = useNavigate(); - const [isReview, setIsReview] = useState(false);//预览页面控制 - const [current, setCurrent] = useState(1); - const [id, setId] = useState(); - const [editData, setEditData] = useState({});//回显数据 + const formRef = useRef(); + const routeData = useParams(); + const navigate = useNavigate(); + const [isReview, setIsReview] = useState(false);//预览页面控制 + const [current, setCurrent] = useState(1); + const [id, setId] = useState(); + const [editData, setEditData] = useState({});//回显数据 - useEffect(() => { - if (routeData.id) { - getDeatil(routeData.id) - setId(routeData.id) - } else { - getAppId() - } + useEffect(() => { + if (routeData.id) { + getDeatil(routeData.id) + setId(routeData.id) + } else { + getAppId() + } - }, []) + }, []) - //编辑 - const getDeatil = async (id) => { - const res = await getDetailData(id) - if (res.type) { - const { agentList, personList, ...rest } = res.data - const parList = agentList.concat(personList) - const obj = { - ...rest, - fakeData: parList, - myCaseType: [rest.caseTypeFirst, rest.caseType], - myQuesAddress: rest.queRoad ? [rest.queProv, rest.queCity, rest.queArea, rest.queRoad] : undefined - } - formRef.current.setFieldsValue(obj) - setEditData(obj) - } - } + //编辑 + const getDeatil = async (id) => { + const res = await getDetailData(id) + if (res.type) { + const { agentList, personList, ...rest } = res.data + const parList = agentList.concat(personList) + const obj = { + ...rest, + fakeData: parList, + myCaseType: [rest.caseTypeFirst, rest.caseType], + myQuesAddress: rest.queRoad ? [rest.queProv, rest.queCity, rest.queArea, rest.queRoad] : undefined + } + formRef.current.setFieldsValue(obj) + setEditData(obj) + } + } - //获取id - const getAppId = async () => { - const res = await getId() - if (res.type) { - setId(res.data) - } - } + //获取id + const getAppId = async () => { + const res = await getId() + if (res.type) { + setId(res.data) + } + } - //提交信息,需要校验规则 - const handleSubmit = async () => { - if (formRef.current) { - formRef.current.validate(undefined, (errors, values) => { - if (!errors) { - const { myCaseType, myQuesAddress, ...rest } = formRef.current.getFields() - const params = handleData(rest) - reauestSubmit({ - ...params, - isSelfAccept: 0, - isDraft: 0, - operateType: 0, - }) - } - }); - } - } + //提交信息,需要校验规则 + const handleSubmit = async () => { + if (formRef.current) { + formRef.current.validate(undefined, (errors, values) => { + if (!errors) { + const { myCaseType, myQuesAddress, ...rest } = formRef.current.getFields() + const params = handleData(rest) + $$.modalInfo({ + title: '提醒', + content: '确定提交吗?', + cancelText: '我再想想', + onOk: () => { + reauestSubmit({ + ...params, + isSelfAccept: 0, + isDraft: 0, + operateType: 0, + }) + }, + }); - //保存草稿信息,不需要校验规则 - const handleSave = () => { - if (formRef.current) { - const { myCaseType, myQuesAddress, ...rest } = formRef.current.getFields() - const params = handleData(rest) - requestSave(params) - } - } + } + }); + } + } - //数据处理 - const handleData = (data) => { - const { fakeData, ...newObj } = data - if (data.id) { - return { - ...newObj, - personList: fakeData?.filter(item => item.perType === "15_020008-1" || item.perType === "15_020008-2"), - agentList: fakeData?.filter(item => item.perType === "24_00006-1" || item.perType === "24_00006-2").map(item => { - return { - ...item, - personId: item.personId.join(',') - } - }), - } - } else { - return { - ...newObj, - personList: fakeData?.filter(item => item.perType === "15_020008-1" || item.perType === "15_020008-2"), - agentList: fakeData?.filter(item => item.perType === "24_00006-1" || item.perType === "24_00006-2").map(item => { - return { - ...item, - personId: item.personId.join(',') - } - }), - id: id - } - } - } + //保存草稿信息,不需要校验规则 + const handleSave = () => { + if (formRef.current) { + const { myCaseType, myQuesAddress, ...rest } = formRef.current.getFields() + const params = handleData(rest) + requestSave(params) + } + } - //预览信息 - const handleReview = () => { - setIsReview(!isReview) - } + //数据处理 + const handleData = (data) => { + const { fakeData, ...newObj } = data + if (data.id) { + return { + ...newObj, + personList: fakeData?.filter(item => item.perType === "15_020008-1" || item.perType === "15_020008-2"), + agentList: fakeData?.filter(item => item.perType === "24_00006-1" || item.perType === "24_00006-2").map(item => { + return { + ...item, + personId: item.personId.join(',') + } + }), + } + } else { + return { + ...newObj, + personList: fakeData?.filter(item => item.perType === "15_020008-1" || item.perType === "15_020008-2"), + agentList: fakeData?.filter(item => item.perType === "24_00006-1" || item.perType === "24_00006-2").map(item => { + return { + ...item, + personId: item.personId.join(',') + } + }), + id: id + } + } + } - function selfAcceptance() { - $$.modalInfo({ - title: '自行受理确认', - content: '确定自行受理吗?', - okText: '确定受理', - cancelText: '我再想想', - onOk: async () => { - setCurrent(3); - navigate(`mediate/visit/handleFeedback`, { replace: true }) - }, - }); - } + //预览信息 + const handleReview = () => { + setIsReview(!isReview) + } - //保存请求 - const requestSave = async (data) => { - const response = await saveDispute(data) - if (response.type) { - Message.success('保存草稿成功!') - } - } + function selfAcceptance() { + $$.modalInfo({ + title: '自行受理确认', + content: '确定自行受理吗?', + okText: '确定受理', + cancelText: '我再想想', + onOk: async () => { + setCurrent(3); + navigate(`mediate/visit/handleFeedback`, { replace: true }) + }, + }); + } - //提交请求 - const reauestSubmit = async (data) => { - const response = await submitDispute(data) - if (response.type) { - Message.success('提交成功!') - navigate(`/mediate/visit/visitWorkBench`, { replace: true }) - setCurrent(2) - } - } + //保存请求 + const requestSave = async (data) => { + const response = await saveDispute(data) + if (response.type) { + Message.success('保存草稿成功!') + } + } - return ( - <div style={{ position: 'relative' }}> - <NewPage - pageHead={ - { breadcrumbData: [{ title: '工作台' }, { title: '来访登记' }], title: '来访登记' } - } - > - <Fragment> - <div style={{ backgroundColor: '#fff', margin: '12px 16px 0px 16px', paddingTop: '16px', paddingLeft: '91px' }}> - <Steps type='navigation' current={current}> - <Step title='来访登记' disabled /> - <Step title='事件流转' disabled /> - <Step title='办理反馈' disabled /> - <Step title='结案审核' disabled /> - <Step title='当事人评价' disabled /> - <Step title='结案归档' disabled /> - </Steps> - </div> - <Preview style={{ display: isReview ? '' : 'none' }} data={formRef?.current?.getFields()} /> - <VisitorRegister - formRef={formRef} - style={{ display: isReview ? 'none' : '' }} - mainId={id} - partyList={editData.fakeData} - fileInfoList={editData.fileInfoList} - /> - <div className="dataSync-excel"> - <Space size="large" style={{ margin: '4px 14px' }}> - <Button type="primary" style={{ backgroundColor: '#1A6FB8' }} onClick={handleSave} >保存</Button> - <Button type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} onClick={handleReview}>预览</Button> - <Button type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} onClick={handleSubmit}>提交</Button> - <Button type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} onClick={() => selfAcceptance()}>自行受理</Button> - <Button type='secondary' onClick={handleReview}>返回上级页面</Button> - </Space> - </div> - </Fragment> - </NewPage> - </div> - ) + //提交请求 + const reauestSubmit = async (data) => { + const response = await submitDispute(data) + if (response.type) { + Message.success('提交成功!') + navigate(`/mediate/visit/visitWorkBench`, { replace: true }) + setCurrent(2) + } + } + + return ( + <div style={{ position: 'relative' }}> + <NewPage + pageHead={ + { breadcrumbData: [{ title: '工作台' }, { title: '来访登记' }], title: '来访登记' } + } + > + <Fragment> + <div style={{ backgroundColor: '#fff', margin: '12px 16px 0px 16px', paddingTop: '16px', paddingLeft: '91px' }}> + <Steps type='navigation' current={current}> + <Step title='来访登记' disabled /> + <Step title='事件流转' disabled /> + <Step title='办理反馈' disabled /> + <Step title='结案审核' disabled /> + <Step title='当事人评价' disabled /> + <Step title='结案归档' disabled /> + </Steps> + </div> + <Preview style={{ display: isReview ? '' : 'none' }} data={formRef?.current?.getFields()} /> + <VisitorRegister + formRef={formRef} + style={{ display: isReview ? 'none' : '' }} + mainId={id} + partyList={editData.fakeData} + fileInfoList={editData.fileInfoList} + /> + <div className="dataSync-excel"> + <Space size="large" style={{ margin: '4px 14px' }}> + <Button type="primary" style={{ backgroundColor: '#1A6FB8' }} onClick={handleSave} >保存</Button> + <Button type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} onClick={handleReview}>预览</Button> + <Button type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} onClick={handleSubmit}>提交</Button> + <Button type='outline' style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} onClick={() => selfAcceptance()}>自行受理</Button> + <Button type='secondary' onClick={handleReview}>返回上级页面</Button> + </Space> + </div> + </Fragment> + </NewPage> + </div> + ) } export default Organization; \ No newline at end of file -- Gitblit v1.8.0