From 80e40362a760c5c53c51e8a1e79c9a11c6a0f5fe Mon Sep 17 00:00:00 2001
From: dminyi <1301963064@qq.com>
Date: Sat, 07 Sep 2024 14:24:37 +0800
Subject: [PATCH] 事件材料查看+ai页面
---
gz-customerSystem/src/views/register/handleFeedback/component/handle.jsx | 59 ++
gz-customerSystem/src/views/register/matterDetail/FileUpLoad.jsx | 1
gz-customerSystem/src/views/register/index.less | 12
gz-customerSystem/src/assets/images/index.js | 10
gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx | 128 +++----
gz-customerSystem/src/views/filesCheck/newFileCheck.jsx | 719 +++++++++++++++++++++---------------------
gz-customerSystem/src/views/register/visit/component/levelDetail.jsx | 32 +
gz-customerSystem/src/views/register/handleFeedback/index.jsx | 19
gz-customerSystem/src/assets/images/aiPerson.png | 0
gz-customerSystem/src/assets/images/caselogo.png | 0
gz-customerSystem/src/views/register/handleFeedback/component/AuditView.jsx | 2
11 files changed, 527 insertions(+), 455 deletions(-)
diff --git a/gz-customerSystem/src/assets/images/aiPerson.png b/gz-customerSystem/src/assets/images/aiPerson.png
new file mode 100644
index 0000000..203085f
--- /dev/null
+++ b/gz-customerSystem/src/assets/images/aiPerson.png
Binary files differ
diff --git a/gz-customerSystem/src/assets/images/caselogo.png b/gz-customerSystem/src/assets/images/caselogo.png
new file mode 100644
index 0000000..f064573
--- /dev/null
+++ b/gz-customerSystem/src/assets/images/caselogo.png
Binary files differ
diff --git a/gz-customerSystem/src/assets/images/index.js b/gz-customerSystem/src/assets/images/index.js
index 128e320..9a8f3c0 100644
--- a/gz-customerSystem/src/assets/images/index.js
+++ b/gz-customerSystem/src/assets/images/index.js
@@ -2,7 +2,7 @@
* @Company: hugeInfo
* @Author: lwh
* @Date: 2023-04-24 16:12:00
- * @LastEditTime: 2024-08-30 10:47:30
+ * @LastEditTime: 2024-09-07 14:08:18
* @LastEditors: dminyi 1301963064@qq.com
* @Version: 1.0.0
* @Description:
@@ -61,7 +61,9 @@
import applyRecord from "./applyRecord.png";
import downO from "./downO.png";
import up from "./up.png";
-import Audit from "./Audit.png"
+import Audit from "./Audit.png";
+import aiPerson from "./aiPerson.png";
+import caselogo from "./caselogo.png";
export {
ledger_1,
@@ -118,5 +120,7 @@
applyRecord,
downO,
up,
- Audit
+ Audit,
+ aiPerson,
+ caselogo
};
\ No newline at end of file
diff --git a/gz-customerSystem/src/views/filesCheck/newFileCheck.jsx b/gz-customerSystem/src/views/filesCheck/newFileCheck.jsx
index 5d85122..ee5cf4e 100644
--- a/gz-customerSystem/src/views/filesCheck/newFileCheck.jsx
+++ b/gz-customerSystem/src/views/filesCheck/newFileCheck.jsx
@@ -2,7 +2,7 @@
* @Company: hugeInfo
* @Author: ldh
* @Date: 2022-03-11 11:03:44
- * @LastEditTime: 2024-09-05 20:46:47
+ * @LastEditTime: 2024-09-07 11:55:54
* @LastEditors: dminyi 1301963064@qq.com
* @Version: 1.0.0
* @Description: 大厅来访材料附件查看
@@ -19,376 +19,377 @@
POWERPOINT("22_00017-9", "PowerPoint"),
UNKNOWN("22_00017-99", "其它文件");
*/
-import React, { useState, useEffect, useRef } from 'react';
-import { Button, Menu, Tooltip, Row, Col, Form, Space } from 'antd';
-import { Select, DatePicker } from '@arco-design/web-react';
-import { useSearchParams } from 'react-router-dom';
-import {
- CaretRightOutlined,
- CaretDownOutlined,
- FileOutlined,
- FileImageOutlined,
- FilePdfOutlined,
- FileWordOutlined,
- FileExcelOutlined,
- RotateRightOutlined,
- RotateLeftOutlined,
- DownloadOutlined,
- LeftOutlined,
- RightOutlined,
-} from '@ant-design/icons';
-import * as $$ from '../../utils/utility';
-
-
-const { SubMenu } = Menu;
-const FormItem = Form.Item;
-const Option = Select.Option;
-
-// http://localhost:9002/dyh-sys/api/web/fileInfo/listFileByCat?mainId=10001&ownerCat=&createStart=&createEnd=&uploaderType=
-// 获取附件
-function getFileListDataApi(submitData) {
- return $$.ax.request({ url: `fileInfo/listFileByCat?mainId=${submitData}`, type: 'get', service: 'mediate' });
-}
-
-const NewFileCheck = ({ caseId }) => {
- let appUrl = $$.appUrl;
-
- const [searchParams] = useSearchParams();
-
- const fileId = searchParams.get('fileId');
-
- const [data, setData] = useState([]);
-
- const [openKeys, setOpenKeys] = useState([]);
-
- // files数组
- const [files, setFiles] = useState([{}]);
-
- // 当前点击的file的index
- const [fileIndex, setFileIndex] = useState(0);
-
- const imgBgRef = useRef();
-
- const imgRef = useRef();
- const formRef = useRef();
-
-
- // 图片旋转
- function handleRotateImg(type) {
- if (!imgRef || !imgRef.current) {
- return false;
- }
- let transform = imgRef.current.style.transform,
- reg = /(-)?[0-9][0-9]*/g,
- arr = transform.split('rotate'),
- rotate = Number(transform.match(reg)[4] || 0),
- num = 0;
- if (type === 'right') {
- num = rotate + 90;
- } else {
- num = rotate + -90;
- }
- imgRef.current.style.transform = `${arr[0]}rotate(${num}deg)`;
+ import React, { useState, useEffect, useRef } from 'react';
+ import { Button, Menu, Tooltip, Row, Col, Form, Space } from 'antd';
+ import { Select, DatePicker } from '@arco-design/web-react';
+ import { useSearchParams } from 'react-router-dom';
+ import {
+ CaretRightOutlined,
+ CaretDownOutlined,
+ FileOutlined,
+ FileImageOutlined,
+ FilePdfOutlined,
+ FileWordOutlined,
+ FileExcelOutlined,
+ RotateRightOutlined,
+ RotateLeftOutlined,
+ DownloadOutlined,
+ LeftOutlined,
+ RightOutlined,
+ } from '@ant-design/icons';
+ import * as $$ from '../../utils/utility';
+
+
+ const { SubMenu } = Menu;
+ const FormItem = Form.Item;
+ const Option = Select.Option;
+
+ // 获取附件
+ function getFileListDataApi() {
+ return $$.ax.request({ url: `fileInfo/listFileByCat?mainId=${'10001'}&ownerCat=&createStart=&createEnd=&uploaderType=`, type: 'get', service: 'sys', });
}
-
- // 监听图片滚动事件放大,缩小
- function imgScrollFunc(e) {
- if (!imgRef || !imgRef.current) {
- return false;
- }
- let transform = imgRef.current.style.transform,
- reg = /\((.+?)\)/g,
- scale3d = transform.match(reg)[0],
- scale3dNum = scale3d.substring(1, 2);
- let num = Number(scale3dNum);
- if (e.wheelDelta) {
- //判断浏览器IE,谷歌滑轮事件
- if (e.wheelDelta > 0) {
- //当滑轮向上滚动时
- num = num + 1;
+
+ const NewFileCheck = ({ caseId }) => {
+ let appUrl = $$.appUrl;
+
+ const [searchParams] = useSearchParams();
+
+ const fileId = searchParams.get('fileId');
+
+ const [data, setData] = useState([]);
+
+ const [openKeys, setOpenKeys] = useState([]);
+
+ // files数组
+ const [files, setFiles] = useState([{}]);
+
+ // 当前点击的file的index
+ const [fileIndex, setFileIndex] = useState(0);
+
+ const imgBgRef = useRef();
+
+ const imgRef = useRef();
+ const formRef = useRef();
+
+
+ // 图片旋转
+ function handleRotateImg(type) {
+ if (!imgRef || !imgRef.current) {
+ return false;
}
- if (e.wheelDelta < 0) {
- //当滑轮向下滚动时
- num = num - 1;
+ let transform = imgRef.current.style.transform,
+ reg = /(-)?[0-9][0-9]*/g,
+ arr = transform.split('rotate'),
+ rotate = Number(transform.match(reg)[4] || 0),
+ num = 0;
+ if (type === 'right') {
+ num = rotate + 90;
+ } else {
+ num = rotate + -90;
}
- } else if (e.detail) {
- //Firefox滑轮事件
- if (e.detail > 0) {
- //当滑轮向上滚动时
- num = num + 1;
+ imgRef.current.style.transform = `${arr[0]}rotate(${num}deg)`;
+ }
+
+ // 监听图片滚动事件放大,缩小
+ function imgScrollFunc(e) {
+ if (!imgRef || !imgRef.current) {
+ return false;
}
- if (e.detail < 0) {
- //当滑轮向下滚动时
- num = num - 1;
- }
- }
- let res = `scale3d(${num < 1 ? 1 : num},${num < 1 ? 1 : num},1) rotate${transform.match(reg)[1]}`;
- imgRef.current.style.transform = res;
- }
-
- // 判断文件的icon
- function iconType(fileType) {
- let result = <FileOutlined />;
- if (fileType === '22_00017-3') {
- result = <FileImageOutlined />;
- }
- if (fileType === '22_00017-5') {
- result = <FileExcelOutlined />;
- }
- if (fileType === '22_00017-4') {
- result = <FileWordOutlined />;
- }
- if (fileType === '22_00017-6') {
- result = <FilePdfOutlined />;
- }
- return result;
- }
-
- // 切换下一个,上一个
- async function handleNext(type) {
- global.setSpinning(true);
- let index = fileIndex + (type === 'next' ? 1 : -1);
- if (files[index]) {
- setFileIndex(index);
- } else {
- global.setSpinning(false);
- if (index < 0) {
- setFileIndex(files.length - 1);
- return;
- }
- setFileIndex(0);
- }
- }
-
- // 获取附件数据
- async function getFileListData() {
- global.setSpinning(true);
- const res = await getFileListDataApi(caseId || searchParams.get('caseId'));
- global.setSpinning(false);
- if (res.type) {
- let resData = res.data?.dataList || [];
- let arr = [];
- let filesArr = [];
- let index = 0;
- resData.forEach((x, t) => {
- arr.push(x.ownerTypeName);
- filesArr = filesArr.concat(x.fileList || []);
- });
- forEach: for (let i = 0; i < filesArr.length - 1; i++) {
- if (filesArr[i].id === fileId) {
- index = i;
- break forEach;
+ let transform = imgRef.current.style.transform,
+ reg = /\((.+?)\)/g,
+ scale3d = transform.match(reg)[0],
+ scale3dNum = scale3d.substring(1, 2);
+ let num = Number(scale3dNum);
+ if (e.wheelDelta) {
+ //判断浏览器IE,谷歌滑轮事件
+ if (e.wheelDelta > 0) {
+ //当滑轮向上滚动时
+ num = num + 1;
+ }
+ if (e.wheelDelta < 0) {
+ //当滑轮向下滚动时
+ num = num - 1;
+ }
+ } else if (e.detail) {
+ //Firefox滑轮事件
+ if (e.detail > 0) {
+ //当滑轮向上滚动时
+ num = num + 1;
+ }
+ if (e.detail < 0) {
+ //当滑轮向下滚动时
+ num = num - 1;
}
}
- setData({ data: resData, caseNo: res.data?.caseNo });
- setFileIndex(index);
- setFiles(filesArr);
- setOpenKeys(arr);
+ let res = `scale3d(${num < 1 ? 1 : num},${num < 1 ? 1 : num},1) rotate${transform.match(reg)[1]}`;
+ imgRef.current.style.transform = res;
}
- }
-
- useEffect(() => {
- getFileListData();
- }, []);
-
- // 监听鼠标滚动事件
- useEffect(() => {
- if (imgRef.current) {
- imgRef.current.onload = () => {
- imgBgRef.current.onmousewheel = imgScrollFunc;
- };
+
+ // 判断文件的icon
+ function iconType(fileType) {
+ let result = <FileOutlined />;
+ if (fileType === '22_00017-3') {
+ result = <FileImageOutlined />;
+ }
+ if (fileType === '22_00017-5') {
+ result = <FileExcelOutlined />;
+ }
+ if (fileType === '22_00017-4') {
+ result = <FileWordOutlined />;
+ }
+ if (fileType === '22_00017-6') {
+ result = <FilePdfOutlined />;
+ }
+ return result;
}
- }, [files]);
-
- // 切换文件加载
- useEffect(() => {
- if (imgRef.current) {
- imgRef.current.src = `${appUrl.fileUrl}${appUrl.fileShowUrl}${files[fileIndex]?.id}`;
- imgRef.current.onload = () => {
+
+ // 切换下一个,上一个
+ async function handleNext(type) {
+ global.setSpinning(true);
+ let index = fileIndex + (type === 'next' ? 1 : -1);
+ if (files[index]) {
+ setFileIndex(index);
+ } else {
+ global.setSpinning(false);
+ if (index < 0) {
+ setFileIndex(files.length - 1);
+ return;
+ }
+ setFileIndex(0);
+ }
+ }
+
+ // 获取附件数据
+ async function getFileListData() {
+ global.setSpinning(true);
+ const res = await getFileListDataApi(caseId || searchParams.get('caseId'));
+ global.setSpinning(false);
+ if (res.type) {
+ let resData = res.data || [];
+ let arr = [];
+ let filesArr = [];
+ let index = 0;
+ resData.forEach((x, t) => {
+ arr.push(x.ownerCatName);
+ filesArr = filesArr.concat(x.fileList || []);
+ });
+ forEach: for (let i = 0; i < filesArr.length - 1; i++) {
+ if (filesArr[i].id === fileId) {
+ index = i;
+ break forEach;
+ }
+ }
+ setData({ data: resData, caseNo: res.data?.caseNo });
+ setFileIndex(index);
+ setFiles(filesArr);
+ setOpenKeys(arr);
+ }
+ }
+
+ useEffect(() => {
+ getFileListData();
+ }, []);
+
+ // 监听鼠标滚动事件
+ useEffect(() => {
+ if (imgRef.current) {
+ imgRef.current.onload = () => {
+ imgBgRef.current.onmousewheel = imgScrollFunc;
+ };
+ }
+ }, [files]);
+
+ // 切换文件加载
+ useEffect(() => {
+ if (imgRef.current) {
+ imgRef.current.src = `${appUrl.fileUrl}${appUrl.fileShowUrl}${files[fileIndex]?.id}`;
+ imgRef.current.onload = () => {
+ global.setSpinning(false, 'only');
+ };
+ } else {
global.setSpinning(false, 'only');
- };
- } else {
- global.setSpinning(false, 'only');
- }
- }, [appUrl.fileShowUrl, fileIndex, appUrl.baseUrl, files]);
-
- return (
- <>
- <nav className="filesCheck-nav" style={{ borderRight: '1px solid transparent' }}>
- <Form
- ref={formRef}
- layout='horizontal'
- style={{ marginTop: '24px', marginBottom: '20px' }}
- requiredSymbol={false}
- scrollToFirstError={true}
- initialValues={{
- level: '三级',
- isSerious: '否',
- }}//默认值
- >
- <Row gutter={24} style={{ marginRight: '0px' }}>
- <Col span={7}>
- <FormItem label='材料类型:' field='level'>
- <Select placeholder='Select city' allowClear>
- {['一级', '二级', '三级', '四级'].map((option, index) => (
- <Option key={option} value={option}>
- {option}
- </Option>
- ))}
- </Select>
- </FormItem>
- </Col>
- <Col span={7}>
- <FormItem
- label='上传时间:'
- field='name'
- onChange={(e) => console.log(e.target.value, 'vvv')}
- >
- <DatePicker.RangePicker
- defaultValue={['2020-08-08', '2020-08-18']}
- separator='~'
- style={{ width: '100%' }}
- />
- </FormItem>
- </Col>
- <Col span={7}>
- <FormItem
- label='上传人类型:'
- field='name'
- onChange={(e) => console.log(e.target.value, 'vvv')}
- >
- <Select placeholder='Select city' allowClear style={{ width: '100%' }}>
- {['一级', '二级', '三级', '四级'].map((option, index) => (
- <Option key={option} value={option}>
- {option}
- </Option>
- ))}
- </Select>
- </FormItem>
-
- </Col>
- <Col span={3}>
- <Space>
- <Button size="middle " type='primary'>查询</Button>
- <Button size="middle ">查询</Button>
- </Space>
- </Col>
-
- </Row>
-
- </Form>
-
- <Menu
- className="filesCheck-nav-menu"
- style={{ width: '200px' }}
- onOpenChange={(openKeys) => setOpenKeys(openKeys)}
- mode="inline"
- selectedKeys={[files[fileIndex]?.id]}
- openKeys={openKeys}
- >
- {data.data?.map((x, t) => {
- return (
- <SubMenu
- key={x.ownerTypeName}
- expandIcon={openKeys.includes(x.ownerTypeName) ? <CaretRightOutlined /> : <CaretDownOutlined />}
- title={x.ownerTypeName}
- >
- {x.fileList?.map((y, z) => {
- return (
- <Menu.Item
- onClick={async () => {
- global.setSpinning(true);
- for (let i = 0; i < files.length; i++) {
- if (files[i].id === y.id) {
- setFileIndex(i);
- break;
+ }
+ }, [appUrl.fileShowUrl, fileIndex, appUrl.baseUrl, files]);
+
+ return (
+ <>
+ <nav className="filesCheck-nav" style={{ borderRight: '1px solid transparent' }}>
+ <Form
+ ref={formRef}
+ layout='horizontal'
+ style={{ marginTop: '24px', marginBottom: '20px' }}
+ requiredSymbol={false}
+ scrollToFirstError={true}
+ initialValues={{
+ level: '三级',
+ isSerious: '否',
+ }}//默认值
+ >
+ <Row gutter={24} style={{ marginRight: '0px' }}>
+ <Col span={7}>
+ <FormItem label='材料类型:' field='level'>
+ <Select placeholder='Select city' allowClear>
+ {['一级', '二级', '三级', '四级'].map((option, index) => (
+ <Option key={option} value={option}>
+ {option}
+ </Option>
+ ))}
+ </Select>
+ </FormItem>
+ </Col>
+ <Col span={7}>
+ <FormItem
+ label='上传时间:'
+ field='name'
+ onChange={(e) => console.log(e.target.value, 'vvv')}
+ >
+ <DatePicker.RangePicker
+ defaultValue={['2020-08-08', '2020-08-18']}
+ separator='~'
+ style={{ width: '100%' }}
+ />
+ </FormItem>
+ </Col>
+ <Col span={7}>
+ <FormItem
+ label='上传人类型:'
+ field='name'
+ onChange={(e) => console.log(e.target.value, 'vvv')}
+ >
+ <Select placeholder='Select city' allowClear style={{ width: '100%' }}>
+ {['一级', '二级', '三级', '四级'].map((option, index) => (
+ <Option key={option} value={option}>
+ {option}
+ </Option>
+ ))}
+ </Select>
+ </FormItem>
+
+ </Col>
+ <Col span={3}>
+ <Space>
+ <Button size="middle " type='primary'>查询</Button>
+ <Button size="middle ">查询</Button>
+ </Space>
+ </Col>
+
+ </Row>
+
+ </Form>
+
+ <Menu
+ className="filesCheck-nav-menu"
+ style={{ width: '200px' }}
+ onOpenChange={(openKeys) => setOpenKeys(openKeys)}
+ mode="inline"
+ selectedKeys={[files[fileIndex]?.id]}
+ openKeys={openKeys}
+ >
+ {data.data?.map((x, t) => {
+ return (
+ <SubMenu
+ key={x.ownerCatName}
+ expandIcon={openKeys.includes(x.ownerCatName) ? <CaretRightOutlined /> : <CaretDownOutlined />}
+ title={x.ownerCatName}
+ >
+ {x.fileList?.map((y, z) => {
+ return (
+ <Menu.Item
+ onClick={async () => {
+ global.setSpinning(true);
+ for (let i = 0; i < files.length; i++) {
+ if (files[i].id === y.id) {
+ setFileIndex(i);
+ break;
+ }
}
- }
- }}
- icon={iconType(y.cat)}
- key={y.id}
+ }}
+ icon={iconType(y.cat)}
+ key={y.id}
+ >
+ {y.name}
+ </Menu.Item>
+ );
+ })}
+ </SubMenu>
+ );
+ })}
+ </Menu>
+ </nav>
+ {/*图片查看*/}
+ {files[fileIndex] ? (
+ <main className="filesCheck-main">
+ {/* 头部操作区 */}
+ <div className="filesCheck-main-action">
+ <div className="filesCheck-main-action-title">
+ <h3>{files[fileIndex]?.name}</h3>
+ </div>
+ {files[fileIndex]?.cat === '22_00017-3' && (
+ <>
+ <div className="filesCheck-main-action-item">
+ <Tooltip title="左转">
+ <RotateLeftOutlined onClick={() => handleRotateImg('left')} />
+ </Tooltip>
+ </div>
+ <div className="filesCheck-main-action-item">
+ <Tooltip title="右转">
+ <RotateRightOutlined onClick={() => handleRotateImg('right')} />
+ </Tooltip>
+ </div>
+ </>
+ )}
+ <div className="filesCheck-main-action-item">
+ <Tooltip title="下载">
+ <a href={`${appUrl.fileUrl}${appUrl.fileDownUrl}${files[fileIndex]?.id}`}>
+ <DownloadOutlined />
+ </a>
+ </Tooltip>
+ </div>
+ </div>
+ {files[fileIndex]?.cat === '22_00017-3' ? (
+ <div className="filesCheck-main-imgBg" ref={imgBgRef}>
+ <img
+ ref={imgRef}
+ style={{ transform: 'scale3d(1,1,1) rotate(0deg)' }}
+ className="filesCheck-main-img"
+ src={`${appUrl.fileUrl}${appUrl.fileShowUrl}${files[fileIndex]?.id}`}
+ alt="图片加载中..."
+ />
+ </div>
+ ) : (
+ <div className="filesCheck-main-other">
+ <div className="filesCheck-main-other-icon">{iconType(files[fileIndex]?.cat)}</div>
+ <div className="filesCheck-main-other-text">
+ 您所查看的附件不支持预览,请下载查看{files[fileIndex]?.cat === '22_00017-6' ? '或跳转预览' : ''}。
+ </div>
+ <div>
+ {files[fileIndex]?.cat === '22_00017-6' && (
+ <Button
+ className="public-buttonMargin"
+ onClick={() => window.open(`${appUrl.fileUrl}${appUrl.fileShowUrl}${files[fileIndex]?.id}`)}
>
- {y.name}
- </Menu.Item>
- );
- })}
- </SubMenu>
- );
- })}
- </Menu>
- </nav>
- {files[fileIndex] ? (
- <main className="filesCheck-main">
- {/* 头部操作区 */}
- <div className="filesCheck-main-action">
- <div className="filesCheck-main-action-title">
- <h3>{files[fileIndex]?.name}</h3>
- </div>
- {files[fileIndex]?.cat === '22_00017-3' && (
- <>
- <div className="filesCheck-main-action-item">
- <Tooltip title="左转">
- <RotateLeftOutlined onClick={() => handleRotateImg('left')} />
- </Tooltip>
+ 跳转查看
+ </Button>
+ )}
+ <a href={`${appUrl.fileUrl}${appUrl.fileDownUrl}${files[fileIndex]?.id}`}>
+ <Button type="primary">下载</Button>
+ </a>
</div>
- <div className="filesCheck-main-action-item">
- <Tooltip title="右转">
- <RotateRightOutlined onClick={() => handleRotateImg('right')} />
- </Tooltip>
- </div>
- </>
+ </div>
)}
- <div className="filesCheck-main-action-item">
- <Tooltip title="下载">
- <a href={`${appUrl.fileUrl}${appUrl.fileDownUrl}${files[fileIndex]?.id}`}>
- <DownloadOutlined />
- </a>
- </Tooltip>
+ <div className="filesCheck-imgLeft" onClick={() => handleNext('back')}>
+ <LeftOutlined />
</div>
- </div>
- {files[fileIndex]?.cat === '22_00017-3' ? (
- <div className="filesCheck-main-imgBg" ref={imgBgRef}>
- <img
- ref={imgRef}
- style={{ transform: 'scale3d(1,1,1) rotate(0deg)' }}
- className="filesCheck-main-img"
- src={`${appUrl.fileUrl}${appUrl.fileShowUrl}${files[fileIndex]?.id}`}
- alt="图片加载中..."
- />
+ <div className="filesCheck-imgRight" onClick={() => handleNext('next')}>
+ <RightOutlined />
</div>
- ) : (
- <div className="filesCheck-main-other">
- <div className="filesCheck-main-other-icon">{iconType(files[fileIndex]?.cat)}</div>
- <div className="filesCheck-main-other-text">
- 您所查看的附件不支持预览,请下载查看{files[fileIndex]?.cat === '22_00017-6' ? '或跳转预览' : ''}。
- </div>
- <div>
- {files[fileIndex]?.cat === '22_00017-6' && (
- <Button
- className="public-buttonMargin"
- onClick={() => window.open(`${appUrl.fileUrl}${appUrl.fileShowUrl}${files[fileIndex]?.id}`)}
- >
- 跳转查看
- </Button>
- )}
- <a href={`${appUrl.fileUrl}${appUrl.fileDownUrl}${files[fileIndex]?.id}`}>
- <Button type="primary">下载</Button>
- </a>
- </div>
- </div>
- )}
- <div className="filesCheck-imgLeft" onClick={() => handleNext('back')}>
- <LeftOutlined />
- </div>
- <div className="filesCheck-imgRight" onClick={() => handleNext('next')}>
- <RightOutlined />
- </div>
- </main>
- ) : (
- <div style={{ width: '100%', paddingTop: '20%' }}>{$$.MyEmpty()}</div>
- )}
- </>
- );
-};
-
-export default NewFileCheck;
+ </main>
+ ) : (
+ <div style={{ width: '100%', paddingTop: '20%' }}>{$$.MyEmpty()}</div>
+ )}
+ </>
+ );
+ };
+
+ export default NewFileCheck;
+
\ No newline at end of file
diff --git a/gz-customerSystem/src/views/register/handleFeedback/component/AuditView.jsx b/gz-customerSystem/src/views/register/handleFeedback/component/AuditView.jsx
index e9238b0..fb9456b 100644
--- a/gz-customerSystem/src/views/register/handleFeedback/component/AuditView.jsx
+++ b/gz-customerSystem/src/views/register/handleFeedback/component/AuditView.jsx
@@ -8,7 +8,7 @@
const FormItem = Form.Item;
const appUrl = $$.appUrl;
-const RadioGroup = Radio.Group;// 根据调解案号获取纠纷登记信息
+const RadioGroup = Radio.Group;
function delFile(id) {
diff --git a/gz-customerSystem/src/views/register/handleFeedback/component/handle.jsx b/gz-customerSystem/src/views/register/handleFeedback/component/handle.jsx
index 186e5cf..0340129 100644
--- a/gz-customerSystem/src/views/register/handleFeedback/component/handle.jsx
+++ b/gz-customerSystem/src/views/register/handleFeedback/component/handle.jsx
@@ -1,6 +1,6 @@
import React, { useState, useRef, useEffect } from 'react';
import { Col, Space, Row, Tooltip } from 'antd';
-import { register, } from '@/assets/images';
+import { register, aiPerson } from '@/assets/images';
import { Form, Input, Tabs, Typography, Button, Modal, Select } from '@arco-design/web-react';
import { question1, } from '@/assets/images';
import ProgressStep from '@/components/ProgressStep/VisitStep';
@@ -13,7 +13,8 @@
import ArcoUpload from '@/components/ArcoUpload';
import HandleRecord from '../../matterDetail/HandleRecord';
import SupervisingView from '../../matterDetail/Supervising'
-import UniteHandle from '../../matterDetail/UniteHandle'
+import UniteHandle from '../../matterDetail/UniteHandle';
+
const Option = Select.Option;
const FormItem = Form.Item;
@@ -99,7 +100,13 @@
return $$.ax.request({ url: `caseFeedback/updateFeedback`, type: 'post', service: 'mediate', data });
}
+function getFeedbackInfoApi(caseTaskId) {
+ return $$.ax.request({ url: `caseFeedback/getFeedbackInfo?caseTaskId=` + caseTaskId, type: 'get', service: 'mediate' });
+}
+function getByIdRoleApi(id) {
+ return $$.ax.request({ url: `ctUser/getByIdRole?id=` + id, type: 'get', service: 'cust' });
+}
@@ -112,6 +119,8 @@
const [personView, setPersonView] = useState(false);
const [supervising, setSupervising] = useState(false)
const [data, setData] = useState({})
+ const [feedbackInfoData, setFeedbackInfoData] = useState({})
+ const [personData, setPersonData] = useState({})
const [caseResult, SetCaseResult] = useState(false);
const [list, setList] = useState([]);
const [mode, SetMode] = useState(false);
@@ -175,6 +184,12 @@
}
+ const getByIdRole = async () => {
+ const res = await getByIdRoleApi('2105180249501982')
+ setPersonData(res.data)
+
+ }
+
//删除文件
const handleDelFile = async (id) => {
@@ -201,7 +216,7 @@
} else {
const res = await saveFeedbackApi({
...submitData,
- caseId: '24083010062110001',
+ caseId: "24083010062110001",
id: id,
caseTaskId: '',
})
@@ -210,6 +225,12 @@
listFeedback('24083010062110001')
}
}
+ }
+
+ const getFeedbackInfo = async () => {
+ const res = await getFeedbackInfoApi('24083010062110001')
+ setFeedbackInfoData(res.data)
+ console.log(res.data, 'res.data')
}
//获取办理记录接口
@@ -277,10 +298,16 @@
setSupervising(!supervising)
}
+ const handlePersonView = () => {
+ setPersonView(!personView)
+
+ }
+
useEffect(() => {
listFeedback('24083010062110001');
- // getByIdRole()
+ getFeedbackInfo();
+ getByIdRole();
}, [])
@@ -296,22 +323,22 @@
<Row gutter={[16, 16]}>
<Col span={8} style={{ display: 'flex' }}>
<div><div className="title-text">承办部门:</div></div>
- <div>天河区棠下街综治中心</div>
+ <div>{feedbackInfoData?.handleUnitName}</div>
</Col>
<Col span={8} style={{ display: 'flex' }}>
<div><div className="title-text">经办人:</div></div>
<div style={{ display: 'flex' }}>
- <div>王一顺</div>
- <img onClick={() => setPersonView(!personView)} src={register} alt='' style={{ width: '14px', height: '14px', marginLeft: '8px', marginTop: '4px' }} />
+ <div>{feedbackInfoData?.handleUserName}</div>
+ <img onClick={() => handlePersonView()} src={register} alt='' style={{ width: '14px', height: '14px', marginLeft: '8px', marginTop: '4px' }} />
</div>
</Col>
<Col span={8} style={{ display: 'flex' }}>
<div><div className="title-text">配合部门:</div></div>
- <div>-</div>
+ <div>{feedbackInfoData?.assistUnitName}</div>
</Col>
<Col span={8} style={{ display: 'flex' }}>
<div><div className="title-text">受理时间:</div></div>
- <div>2024-7-5 11:45</div>
+ <div>{feedbackInfoData?.acceptTime}</div>
</Col>
</Row>
@@ -395,7 +422,7 @@
>
<ArcoUpload
params={{
- action: `${appUrl.fileUrl}/${appUrl.sys}/api/web/fileInfo/upload?mainId='24083010062110001'&&ownerId=${id}&ownerType=22_00018-102`,
+ action: `${appUrl.fileUrl}/${appUrl.sys}/api/web/fileInfo/upload?mainId=${'24083010062110001'}&ownerId=${id}&ownerType=${'22_00018-501'}`,
}}
field='file1'
// handleChangeFile={handleChangeFile}
@@ -499,21 +526,21 @@
<table border="1" align="center" cellpadding="5" className="table">
<tr>
<th bgcolor="#F7F8FA" className="table-title" width="120">姓名</th>
- <td width='380'><div style={{ display: 'flex' }}><div>{data.trueName}</div></div></td>
+ <td width='380'><div style={{ display: 'flex' }}><div>{personData?.trueName}</div></div></td>
<th bgcolor="#F7F8FA" className="table-title" width="120">登录账号</th>
- <td width='380'>{data.acc}</td>
+ <td width='380'>{personData?.acc}</td>
</tr>
<tr>
<th bgcolor="#F7F8FA" className="table-title">手机号码</th>
- <td>{data.mobile}</td>
+ <td>{personData?.mobile}</td>
<th bgcolor="#F7F8FA" className="table-title">工作电话</th>
- <td>020-83002020</td>
+ <td>-</td>
</tr>
<tr>
<th bgcolor="#F7F8FA" className="table-title">所属部门</th>
- <td>{data.deptName}</td>
+ <td>{personData?.deptName}</td>
<th bgcolor="#F7F8FA" className="table-title">职务</th>
- <td>主任</td>
+ <td>{personData?.userRoles}</td>
</tr>
</table>
</Modal>
diff --git a/gz-customerSystem/src/views/register/handleFeedback/index.jsx b/gz-customerSystem/src/views/register/handleFeedback/index.jsx
index d384530..2aa9934 100644
--- a/gz-customerSystem/src/views/register/handleFeedback/index.jsx
+++ b/gz-customerSystem/src/views/register/handleFeedback/index.jsx
@@ -3,22 +3,22 @@
* @Author: dminyi 1301963064@qq.com
* @Date: 2024-08-09 09:59:43
* @LastEditors: dminyi 1301963064@qq.com
- * @LastEditTime: 2024-09-06 12:03:54
+ * @LastEditTime: 2024-09-06 17:43:15
* @FilePath: \gzDyh\gz-customerSystem\src\views\basicInformation\organization\index.jsx
* @Description: 来访登记
*
*/
-import React, { useState, useRef, Fragment } from "react";
+import React, { useState } from "react";
import NewPage from '@/components/NewPage';
-import * as $$ from '@/utils/utility';
import "@arco-themes/react-gzzz/css/arco.css";
import '../index.less';
import { Typography, Steps, Tabs } from '@arco-design/web-react';
-import { Audit, Matter, transfer } from '@/assets/images'
+import { Audit, Matter, transfer, aiPerson } from '@/assets/images'
import MatterDetail from '../matterDetail';
import Handle from './component/handle';
-import AuditView from './component/AuditView'
+import AuditView from './component/AuditView';
+import {AiQuestion} from '../visit/component/levelDetail'
const Step = Steps.Step;
const TabPane = Tabs.TabPane;
@@ -31,6 +31,7 @@
const Organization = () => {
const [current, setCurrent] = useState(3);
const [tabsActive, setTabsActive] = useState('1');
+ const [AiQuestionView, setAiQuestionView] = useState(false)
const [tabsList, setTabList] = useState([
{
img: Matter,
@@ -102,6 +103,14 @@
})}
</Tabs>
</NewPage>
+ <div className="gradient-box" onClick={() => setAiQuestionView(true)}>
+ <div><img src={aiPerson} alt='' style={{ width: '24px', height: '24px', marginRight: '6px' }} /></div>
+ <div style={{ color: '#FFFFFF' }}>智能调解助理</div>
+ </div>
+ <AiQuestion
+ visible={AiQuestionView}
+ onClose={() => setAiQuestionView(false)}
+ />
</div>
)
}
diff --git a/gz-customerSystem/src/views/register/index.less b/gz-customerSystem/src/views/register/index.less
index d5732f0..8da2fc6 100644
--- a/gz-customerSystem/src/views/register/index.less
+++ b/gz-customerSystem/src/views/register/index.less
@@ -696,4 +696,16 @@
align-items: center;
margin-bottom: 4px;
+}
+
+.gradient-box {
+ position: absolute;
+ right: 0;
+ top: 50%;
+ transform: translateY(-50%);
+ background: linear-gradient(to right, #6a1b9a, #e040fb);
+ display: flex;
+ align-items: center;
+ padding: 12px 8px;
+ border-radius: 12px 0px 0px 12px;
}
\ No newline at end of file
diff --git a/gz-customerSystem/src/views/register/matterDetail/FileUpLoad.jsx b/gz-customerSystem/src/views/register/matterDetail/FileUpLoad.jsx
index 3167be5..5d1dba2 100644
--- a/gz-customerSystem/src/views/register/matterDetail/FileUpLoad.jsx
+++ b/gz-customerSystem/src/views/register/matterDetail/FileUpLoad.jsx
@@ -35,7 +35,6 @@
const handleScaned = () => {
setScaned(true)
const content = fileView.response.data.ocrResult.wordsResult.join('\n')
-
setTimeout(() => {
console.log(formRef.current, content);
formRef.current.setFieldValue('scanContent', content)
diff --git a/gz-customerSystem/src/views/register/visit/component/levelDetail.jsx b/gz-customerSystem/src/views/register/visit/component/levelDetail.jsx
index 43816a1..7e985cb 100644
--- a/gz-customerSystem/src/views/register/visit/component/levelDetail.jsx
+++ b/gz-customerSystem/src/views/register/visit/component/levelDetail.jsx
@@ -2,12 +2,14 @@
* @Author: dminyi 1301963064@qq.com
* @Date: 2024-08-27 16:47:12
* @LastEditors: dminyi 1301963064@qq.com
- * @LastEditTime: 2024-09-05 17:03:04
+ * @LastEditTime: 2024-09-07 14:20:23
* @FilePath: \gzDyh\gz-customerSystem\src\views\register\visit\component\levelDetail.jsx
* @Description: 右抽屉提示
*/
import React from 'react';
import MyDrawer from '@/components/MyDrawer';
+import { caselogo } from '@/assets/images';
+
const EventLevelDrawer = ({ visible, onClose }) => {
return (
@@ -102,6 +104,32 @@
}
+const AiQuestion = ({ visible, onClose }) => {
+ return (
+ <MyDrawer
+ visible={visible}
+ onClose={onClose}
+ title="事项概况指南"
+ width={1000}
+ style={{ position: 'absolute' }}
+ bodyStyle={{ marginTop: '-8px' }}
+ titleBefore={true}
+ >
+ <div style={{ display: 'flex' }}>
+
+ <div style={{ width: '100px' }}>111</div>
+ <div style={{ flex: 1, backgroundColor: '#F2F3F5', height: '100vh' }}>
+ <div>
+ <img src={caselogo} alt='' style={{ width: '30px', height: '30px' }} />
+ <span>刘家健入职吴昆物流公司工作6天,因不适应工作内容、环境等,向吴昆物流公司提出离职申请,但公司称入职1周内因个人原因辞职不予支付工资。刘家健因此向社区调委会申请调解。刘家健希望吴昆物流公司支付6天的工资。经调解,双方达成一致意见,吴昆物流公司同意支付刘家健6天的工资共计1575元。基于这个案件生成合理的调解策略.</span>
+ </div>
+ </div>
+ </div>
+ </MyDrawer>
+
+ )
+}
-export { EventLevelDrawer, MattersDetail, NoHandleReason };
\ No newline at end of file
+
+export { EventLevelDrawer, MattersDetail, NoHandleReason, AiQuestion };
\ 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 ce4f64f..fd11eb0 100644
--- a/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx
+++ b/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx
@@ -57,6 +57,32 @@
const [evidenceNumber, setEvidenceNumber] = useState('');
const [applyFile, setApplyFile] = useState([]);
const [evidenceFile, setEvidenceFile] = useState([]);
+ const [fakeData1, setFakeData1] = useState([
+ {
+ ownerTyp: "22_00018-101",
+ ownerTypeName: "申请材料",
+ size: '0',
+ ownerId: null,
+ ownerName: null,
+ perType: null,
+ agentStatus: null,
+ fileNames: "-",
+ fileList: []
+ },
+ {
+ ownerType: "22_00018-102",
+ ownerTypeName: "证据材料",
+ size: '0',
+ ownerId: null,
+ ownerName: null,
+ perType: null,
+ agentStatus: null,
+ fileNames: "-",
+ fileList: []
+ },
+
+ ]);
+
const peopleMap = {
'15_020008-1': '申请方',
'15_020008-2': '被申请方',
@@ -109,13 +135,19 @@
const listIdTypeInfo = async () => {
const res = await listIdTypeInfoApi({
- mainId: "2409061125411006", //事项ID
- ownerIdList: ["2409061125411006"], //具体所属编号
+ mainId: props.mainId, //事项ID
+ ownerIdList: [props.mainId], //具体所属编号
+ typeList: []
})
if (res.type) {
- console.log(res,'resres')
+ let data = res.data?.[0]?.fileList
+ if (res.data.length > 0) {
+ setFakeData1(data)
+ }
}
}
+
+ // console.log(fakeData1,'fakeData1')
@@ -166,52 +198,6 @@
}
}
- const fakeData1 = [
- {
- id: 1,
- caseNo: 'A20230101',
- judicNo: '申请材料',
- perClassName: '李晓明的纠纷化解申请表、身份证...',
- inputUserName: '0',
- mediateUserName: '2024-7-12 12:00',
- judgeName: '王五',
- mediator: '赵六',
- handlerUserName: '钱七',
- returnUserName: '孙八',
- expireTime: '2023-08-10T08:00:00.000Z',
- processName: '进行中',
- otherMediator: '周九',
- canalName: '网络',
- judicResult: '通过',
- assistName: '吴十',
- mediTypeName: '民事调解',
- serieStatus: '1', // 1 表示非系列案,2 表示系列案
- // 更多字段...
- },
- {
- id: 2,
- caseNo: 'A20230101',
- judicNo: '证据材料',
- perClassName: '李晓明的纠纷化解申请表、身份证...',
- inputUserName: '0',
- mediateUserName: '2024-7-12 12:00',
- judgeName: '王五',
- mediator: '赵六',
- handlerUserName: '钱七',
- returnUserName: '孙八',
- expireTime: '2023-08-10T08:00:00.000Z',
- processName: '进行中',
- otherMediator: '周九',
- canalName: '网络',
- judicResult: '通过',
- assistName: '吴十',
- mediTypeName: '民事调解',
- serieStatus: '1', // 1 表示非系列案,2 表示系列案
- // 更多字段...
- },
-
- // 更多数据...
- ];
// 列配置
const fakeColumns = [
@@ -224,36 +210,30 @@
},
{
title: '材料类型',
- dataIndex: 'judicNo',
- key: 'judicNo',
+ dataIndex: 'ownerTypeName',
+ key: 'ownerTypeName',
width: 60,
},
{
title: '材料数量',
- dataIndex: 'inputUserName',
- key: 'perClassName',
+ dataIndex: 'size',
+ key: 'size',
width: 180,
- render: (text, index) => (
- <div onClick={() => console.log(text, index)}>
- 1
- {/* {sourceType === '1' ? matterNumber : sourceType === '2' ? evidenceNumber : 0}份 */}
- </div>
- )
-
+ render: (text) => <span>{text}份</span>,
},
{
title: '材料名称',
- dataIndex: 'perClassName',
- key: 'perClassName',
+ dataIndex: 'fileNames',
+ key: 'fileNames',
width: 180,
},
{
title: '最新上传时间',
- dataIndex: 'mediateUserName',
- key: 'mediateUserName',
+ dataIndex: 'fileNames',
+ key: 'fileNames',
width: 180,
},
@@ -304,6 +284,11 @@
};
+ const handleUpload = () => {
+ listIdTypeInfo()
+ setUpLoad(false);
+ };
+
const handleCancel = () => {
// 处理取消逻辑
setScanFile(false);
@@ -350,10 +335,17 @@
setEditData(value)
}
+ const uploadQuery = {
+ mainId: props.mainId,
+ ownerCat: null,
+ createStart: null,
+ createEnd: null,
+ uploaderType:null
+ }
+
// console.log(sourceType, 'sourceType')
// console.log(props.formRef?.current?.getFields(),'formRef.current.getFields()')
useEffect(() => {
- listIdTypeInfo()
}, [])
return (
@@ -597,7 +589,7 @@
columns={fakeColumns}
dataSource={fakeData1}
size="small"
- rowKey="id"
+ rowKey="ownerType"
bordered={true}
style={{ marginBottom: '65px' }}
/>
@@ -642,7 +634,7 @@
<Row gutter={[32, 0]}>{formType(sourceType)}</Row>
</Form>
</Col>
- <Button type="primary" style={{ marginTop: '-20px', marginLeft: '16px' }} onClick={() => { setMatterNumber(fileLength?.length); setEvidenceNumber(evidenceLength?.length); setUpLoad(false) }}>上传完成</Button>
+ <Button type="primary" style={{ marginTop: '-20px', marginLeft: '16px' }} onClick={() => handleUpload()}>上传完成</Button>
</Row>
</div>
@@ -650,7 +642,7 @@
<Modal style={{ width: '1200px' }} visible={filesCheck} onCancel={() => setFilesCheck(false)} footer={null} title='查看事件材料' centered>
{/* <div className="mediationWindow-modal-main" style={{ display: 'flex' }}> */}
<div style={{ marginTop: '-16px' }}>
- <NewFileCheck />
+ <NewFileCheck />
</div>
{/* </div> */}
</Modal>
--
Gitblit v1.8.0