Merge branch 'master' of http://120.79.193.119:9090/r/gzzfw/frontEnd/gzDyh
27 files added
33 files modified
| | |
| | | * @Company: hugeInfo |
| | | * @Author: ldh |
| | | * @Date: 2022-02-16 11:25:57 |
| | | * @LastEditTime: 2024-09-07 16:35:00 |
| | | * @LastEditTime: 2024-09-09 10:07:53 |
| | | * @LastEditors: dminyi 1301963064@qq.com |
| | | * @Version: 1.0.0 |
| | | * @Description: api地址 |
| | |
| | | export const debug = { |
| | | // web服务 |
| | | // baseUrl: 'http://gz.hugeinfo.com.cn', |
| | | baseUrl: "http://fydddb.natappfree.cc", |
| | | baseUrl: "http://w88bsz.natappfree.cc", |
| | | // baseUrl: 'http://mdqgnh.natappfree.cc', |
| | | |
| | | // 附件服务 |
| | | fileUrl: "http://fydddb.natappfree.cc", |
| | | fileUrl: "http://w88bsz.natappfree.cc", |
| | | // fileUrl: 'http://gz.hugeinfo.com.cn', |
| | | |
| | | // 文件查看url 后面接附件编号 |
| | |
| | | * @Company: hugeInfo |
| | | * @Author: lwh |
| | | * @Date: 2023-04-24 16:12:00 |
| | | * @LastEditTime: 2024-09-07 14:08:18 |
| | | * @LastEditTime: 2024-09-09 15:35:32 |
| | | * @LastEditors: dminyi 1301963064@qq.com |
| | | * @Version: 1.0.0 |
| | | * @Description: |
| | |
| | | import Audit from "./Audit.png"; |
| | | import aiPerson from "./aiPerson.png"; |
| | | import caselogo from "./caselogo.png"; |
| | | import tab1 from "./tab1.png"; |
| | | import tab2 from "./tab2.png"; |
| | | import tab3 from "./tab3.png"; |
| | | import tab4 from "./tab4.png"; |
| | | import tab5 from "./tab5.png"; |
| | | import tab6 from "./tab6.png"; |
| | | import visitInto from "./visitInto.png"; |
| | | import checkInto from "./checkInto.png"; |
| | | import floating from "./floating.png"; |
| | | |
| | | export { |
| | | ledger_1, |
| | |
| | | up, |
| | | Audit, |
| | | aiPerson, |
| | | caselogo |
| | | caselogo, |
| | | tab1, |
| | | tab2, |
| | | tab3, |
| | | tab4, |
| | | tab5, |
| | | tab6, |
| | | visitInto, |
| | | checkInto, |
| | | floating |
| | | }; |
| | |
| | | import React, { useEffect, useState } from 'react' |
| | | import KeyVisits from "./KeyVisits"; |
| | | import { link } from '@/assets/images' |
| | | import { link } from '@/assets/images'; |
| | | import { Scrollbars } from "react-custom-scrollbars"; |
| | | |
| | | export default function DetailDialog(props) { |
| | | const nuturalList = [ |
| | |
| | | }, []) |
| | | |
| | | return ( |
| | | <div style={{ maxHeight: '590px', overflowY: 'scroll' }}> |
| | | <Scrollbars |
| | | autoHide |
| | | autoHeight |
| | | autoHeightMin={200} // 最小高度为300px |
| | | autoHeightMax={590} |
| | | > |
| | | <table border="1" align="center" cellpadding="8" className="table" style={{ marginBottom: '20px' }}> |
| | | { |
| | | tableList?.map((item, index) => { |
| | |
| | | {/* <div style={{ width: 'calc(100% - 9px)', background: '#f2f3f5', marginBottom: '20px', padding: '12px' }}> |
| | | <KeyVisits /> |
| | | </div> */} |
| | | </div> |
| | | </Scrollbars> |
| | | ) |
| | | } |
| | |
| | | * @Company: hugeInfo |
| | | * @Author: ldh |
| | | * @Date: 2022-03-28 11:22:41 |
| | | * @LastEditTime: 2024-09-08 15:15:51 |
| | | * @LastEditTime: 2024-09-09 15:48:38 |
| | | * @LastEditors: dminyi 1301963064@qq.com |
| | | * @Version: 1.0.0 |
| | | * @Description: 路由 |
| | |
| | | <Route path="visit/:id?" element={<Visit />} /> |
| | | <Route path="visit/eventFlow/:caseTaskId?/:caseId?" element={<EventFlow />} /> |
| | | <Route path="visit/handleFeedback/:caseTaskId?/:caseId?" element={<HandleFeedback />} /> |
| | | <Route path="visit/fileMessage" element={<FileMessage />} /> |
| | | <Route path="visit/fileMessage/:caseTaskId?/:caseId?" element={<FileMessage />} /> |
| | | <Route path="visit/closingReview/:caseTaskId?/:caseId?" element={<ClosingReview />}/> |
| | | <Route path="visit/visitWorkBench" element={<VisitWorkBench />}/> |
| | | |
| | | |
| | | |
| | | {/* 工作流模块 */} |
| | | <Route path="workflowTemplate" element={<WorkflowTemplate />} /> |
| | |
| | | src: url('../assets/font/DingTalk_JinBuTi_Regular.ttf'); |
| | | } |
| | | |
| | | @font-face { |
| | | font-family: DouYu; |
| | | src: url('../assets/font/DingTalk_JinBuTi_Regular.ttf'); |
| | | } |
| | | |
| | | html, |
| | | body { |
| | | margin: 0; |
| | |
| | | |
| | | .arco-modal-header { |
| | | padding: 0; |
| | | margin-bottom: 0; |
| | | } |
| | | |
| | | .arco-modal-header { |
| | | .arco-modal-footer { |
| | | text-align: right; |
| | | margin-top: 0; |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | let caseTypeSelect = [ |
| | | { |
| | | 'label': '家庭邻里', |
| | | 'value': '24_000010-1', |
| | | 'parentId': 'root', |
| | | 'children': [ |
| | | "label": "城市管理", |
| | | "value": "24_01-3", |
| | | "icon": null, |
| | | "parentId": "root", |
| | | "children": [ |
| | | { |
| | | 'label': '邻里纠纷', |
| | | 'value': '24_000011-1', |
| | | 'parentId': '24_000010-1', |
| | | "label": "施工问题", |
| | | "value": "24_02-20", |
| | | "icon": null, |
| | | "parentId": "24_01-3", |
| | | "children": null |
| | | }, |
| | | { |
| | | 'label': '婚姻家庭纠纷', |
| | | 'value': '24_000011-2', |
| | | 'parentId': '24_000010-1', |
| | | "label": "违章建筑", |
| | | "value": "24_02-21", |
| | | "icon": null, |
| | | "parentId": "24_01-3", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "路桥坑洼、破损", |
| | | "value": "24_02-22", |
| | | "icon": null, |
| | | "parentId": "24_01-3", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "消防隐患举报", |
| | | "value": "24_02-23", |
| | | "icon": null, |
| | | "parentId": "24_01-3", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "噪声、气味、污水等环境问题", |
| | | "value": "24_02-25", |
| | | "icon": null, |
| | | "parentId": "24_01-3", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "乱摆卖、垃圾清理等街面问题", |
| | | "value": "24_02-24", |
| | | "icon": null, |
| | | "parentId": "24_01-3", |
| | | "children": null |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | 'label': '劳动社保', |
| | | 'value': '24_000010-2', |
| | | 'parentId': 'root', |
| | | 'children': [ |
| | | "label": "家庭邻里", |
| | | "value": "24_01-8", |
| | | "icon": null, |
| | | "parentId": "root", |
| | | "children": [ |
| | | { |
| | | 'label': '拖欠、克扣工资', |
| | | 'value': '24_000011-3', |
| | | 'parentId': '24_000010-2', |
| | | "label": "邻里纠纷", |
| | | "value": "24_02-48", |
| | | "icon": null, |
| | | "parentId": "24_01-8", |
| | | "children": null |
| | | }, |
| | | { |
| | | 'label': '门诊及住院待遇', |
| | | 'value': '24_000011-4', |
| | | 'parentId': '24_000010-2', |
| | | "label": "婚姻家庭纠纷", |
| | | "value": "24_02-47", |
| | | "icon": null, |
| | | "parentId": "24_01-8", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "男女情感问题", |
| | | "value": "24_02-49", |
| | | "icon": null, |
| | | "parentId": "24_01-8", |
| | | "children": null |
| | | } |
| | | ] |
| | | }, |
| | | |
| | | { |
| | | "label": "交通运输", |
| | | "value": "24_01-4", |
| | | "icon": null, |
| | | "parentId": "root", |
| | | "children": [ |
| | | { |
| | | "label": "出租车、公交车、站点等营运问题", |
| | | "value": "24_02-32", |
| | | "icon": null, |
| | | "parentId": "24_01-4", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "交通灯、电子警察等公安设施", |
| | | "value": "24_02-28", |
| | | "icon": null, |
| | | "parentId": "24_01-4", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "交通拥堵", |
| | | "value": "24_02-27", |
| | | "icon": null, |
| | | "parentId": "24_01-4", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "道路违章举报", |
| | | "value": "24_02-29", |
| | | "icon": null, |
| | | "parentId": "24_01-4", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "物流快递管理", |
| | | "value": "24_02-30", |
| | | "icon": null, |
| | | "parentId": "24_01-4", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "驾校纠纷", |
| | | "value": "24_02-31", |
| | | "icon": null, |
| | | "parentId": "24_01-4", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "车辆乱停放", |
| | | "value": "24_02-26", |
| | | "icon": null, |
| | | "parentId": "24_01-4", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "电动车违规问题", |
| | | "value": "24_02-33", |
| | | "icon": null, |
| | | "parentId": "24_01-4", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "其他(社会治安、限行、养犬等)", |
| | | "value": "24_02-34", |
| | | "icon": null, |
| | | "parentId": "24_01-4", |
| | | "children": null |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | "label": "教育医疗", |
| | | "value": "24_01-5", |
| | | "icon": null, |
| | | "parentId": "root", |
| | | "children": [ |
| | | { |
| | | "label": "教育事务、培训机构投诉", |
| | | "value": "24_02-35", |
| | | "icon": null, |
| | | "parentId": "24_01-5", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "医疗服务", |
| | | "value": "24_02-36", |
| | | "icon": null, |
| | | "parentId": "24_01-5", |
| | | "children": null |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | "label": "劳动社保", |
| | | "value": "24_01-2", |
| | | "icon": null, |
| | | "parentId": "root", |
| | | "children": [ |
| | | { |
| | | "label": "社保费用补缴", |
| | | "value": "24_02-16", |
| | | "icon": null, |
| | | "parentId": "24_01-2", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "生育待遇", |
| | | "value": "24_02-12", |
| | | "icon": null, |
| | | "parentId": "24_01-2", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "异地就医办理", |
| | | "value": "24_02-13", |
| | | "icon": null, |
| | | "parentId": "24_01-2", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "养老待遇", |
| | | "value": "24_02-14", |
| | | "icon": null, |
| | | "parentId": "24_01-2", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "失业保险待遇", |
| | | "value": "24_02-15", |
| | | "icon": null, |
| | | "parentId": "24_01-2", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "参保流程", |
| | | "value": "24_02-17", |
| | | "icon": null, |
| | | "parentId": "24_01-2", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "其他(职业技能、社保补贴等)", |
| | | "value": "24_02-18", |
| | | "icon": null, |
| | | "parentId": "24_01-2", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "港澳青年来穗服务", |
| | | "value": "24_02-19", |
| | | "icon": null, |
| | | "parentId": "24_01-2", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "医保个人账户", |
| | | "value": "24_02-11", |
| | | "icon": null, |
| | | "parentId": "24_01-2", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "门诊及住院待遇", |
| | | "value": "24_02-10", |
| | | "icon": null, |
| | | "parentId": "24_01-2", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "拖欠、克扣工资", |
| | | "value": "24_02-9", |
| | | "icon": null, |
| | | "parentId": "24_01-2", |
| | | "children": null |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | "label": "房屋规划", |
| | | "value": "24_01-7", |
| | | "icon": null, |
| | | "parentId": "root", |
| | | "children": [ |
| | | { |
| | | "label": "物业/业委会管理", |
| | | "value": "24_02-41", |
| | | "icon": null, |
| | | "parentId": "24_01-7", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "不动产登记", |
| | | "value": "24_02-42", |
| | | "icon": null, |
| | | "parentId": "24_01-7", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "开发商/中介纠纷", |
| | | "value": "24_02-43", |
| | | "icon": null, |
| | | "parentId": "24_01-7", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "电梯加装", |
| | | "value": "24_02-44", |
| | | "icon": null, |
| | | "parentId": "24_01-7", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "建设项目规划", |
| | | "value": "24_02-45", |
| | | "icon": null, |
| | | "parentId": "24_01-7", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "租赁纠纷", |
| | | "value": "24_02-46", |
| | | "icon": null, |
| | | "parentId": "24_01-7", |
| | | "children": null |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | "label": "公共服务", |
| | | "value": "24_01-6", |
| | | "icon": null, |
| | | "parentId": "root", |
| | | "children": [ |
| | | { |
| | | "label": "个人危险行为", |
| | | "value": "24_02-40", |
| | | "icon": null, |
| | | "parentId": "24_01-6", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "停水/电/气", |
| | | "value": "24_02-37", |
| | | "icon": null, |
| | | "parentId": "24_01-6", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "自然灾害", |
| | | "value": "24_02-38", |
| | | "icon": null, |
| | | "parentId": "24_01-6", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "公共卫生安全", |
| | | "value": "24_02-39", |
| | | "icon": null, |
| | | "parentId": "24_01-6", |
| | | "children": null |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | "label": "市场监管", |
| | | "value": "24_01-1", |
| | | "icon": null, |
| | | "parentId": "root", |
| | | "children": [ |
| | | { |
| | | "label": "金融纠纷", |
| | | "value": "24_02-6", |
| | | "icon": null, |
| | | "parentId": "24_01-1", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "网购及其他消费纠纷", |
| | | "value": "24_02-5", |
| | | "icon": null, |
| | | "parentId": "24_01-1", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "其他经济违法举报", |
| | | "value": "24_02-7", |
| | | "icon": null, |
| | | "parentId": "24_01-1", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "无证/无照/冒用信息等违法经营行为举报", |
| | | "value": "24_02-4", |
| | | "icon": null, |
| | | "parentId": "24_01-1", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "食品消费纠纷", |
| | | "value": "24_02-3", |
| | | "icon": null, |
| | | "parentId": "24_01-1", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "旅游消费纠纷", |
| | | "value": "24_02-2", |
| | | "icon": null, |
| | | "parentId": "24_01-1", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "通讯、宽带消费纠纷", |
| | | "value": "24_02-1", |
| | | "icon": null, |
| | | "parentId": "24_01-1", |
| | | "children": null |
| | | }, |
| | | { |
| | | "label": "电费问题", |
| | | "value": "24_02-8", |
| | | "icon": null, |
| | | "parentId": "24_01-1", |
| | | "children": null |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | |
| | | const obj = { |
New file |
| | |
| | | import axios from 'axios' |
| | | import qs from 'qs' |
| | | import * as $$ from '@/utils/utility'; |
| | | |
| | | export default function downloadFile(url, params) { |
| | | const link = document.createElement('a') |
| | | return axios({ |
| | | url, |
| | | params, |
| | | method: 'GET', |
| | | headers: { |
| | | Authorization: $$.getSessionStorage('customerSystemToken') |
| | | }, |
| | | responseType: 'blob', |
| | | paramsSerializer: (v) => qs.stringify(v, { |
| | | arrayFormat: 'repeat' |
| | | }), |
| | | }) |
| | | .then((res) => { |
| | | // 切割文件名 |
| | | const fileNameEncode = res.headers['content-disposition'].split('filename=')[1] |
| | | // 解码 |
| | | const fileName = decodeURIComponent(fileNameEncode) |
| | | // 设置type类型 |
| | | const blob = new Blob([res.data], { |
| | | type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; application/octet-stream', |
| | | }) |
| | | const fileUrl = window.URL.createObjectURL(blob) |
| | | link.href = fileUrl |
| | | link.setAttribute('download', fileName) |
| | | link.style.display = 'none' |
| | | link.click() |
| | | link.remove() |
| | | }) |
| | | .catch(() => { |
| | | $$.info({ |
| | | type: 'error', |
| | | content: '文件下载请求失败' |
| | | }); |
| | | }) |
| | | } |
| | |
| | | </div> |
| | | } |
| | | {tabsActive === 'sxxq' && |
| | | <MatterDetail hasApplet={true} hasEditBtn={true} /> |
| | | <MatterDetail hasApplet={true} hasEditBtn={true} caseId={routeData.caseId}/> |
| | | } |
| | | { |
| | | tabsActive === 'sxbl' && <Typography.Paragraph style={style}> |
| | |
| | | import React from 'react'; |
| | | /* |
| | | * @Author: dminyi 1301963064@qq.com |
| | | * @Date: 2024-09-08 15:14:12 |
| | | * @LastEditors: dminyi 1301963064@qq.com |
| | | * @LastEditTime: 2024-09-09 17:06:20 |
| | | * @FilePath: \gzDyh\gz-customerSystem\src\views\register\index.jsx |
| | | * @Description: 工作台 |
| | | */ |
| | | import React, { useEffect, useState } from 'react'; |
| | | import { useNavigate } from 'react-router-dom'; |
| | | import { tab1, tab2, tab3, tab4, tab5, tab6, visitInto, checkInto } from '@/assets/images' |
| | | import TableView from '../../components/TableView'; |
| | | import { Space } from 'antd'; |
| | | import { Tabs, Typography, Radio } from '@arco-design/web-react'; |
| | | import * as $$ from '@/utils/utility'; |
| | | |
| | | const TabPane = Tabs.TabPane; |
| | | |
| | | function pageMyTaskBlApi(data) { |
| | | return $$.ax.request({ url: `caseTask/pageMyTaskBl`, type: 'get', service: 'mediate', data }); |
| | | } |
| | | |
| | | function getCountListApi(data) { |
| | | return $$.ax.request({ url: `caseTask/getCountList`, type: 'get', service: 'mediate', data }); |
| | | } |
| | | |
| | | const VisitWorkBench = () => { |
| | | |
| | | const navigate = useNavigate(); |
| | | const [tabActivekey, setTabActivekey] = useState('1') |
| | | const [CountList, setCountList] = useState({}) |
| | | const [direction, setDirection] = useState('回退审核') |
| | | const tabsList = [ |
| | | { |
| | | key: '1', |
| | | label: '待分派', |
| | | bgColor: '#E8F8FF', |
| | | num: 10, |
| | | num: `${CountList?.waitDisp}`, |
| | | img: tab1 |
| | | }, |
| | | { |
| | | key: '2', |
| | | label: '待签收', |
| | | bgColor: '#E8FFEA', |
| | | num: 30, |
| | | num: `${CountList?.waitSign}`, |
| | | img: tab2 |
| | | |
| | | }, |
| | | { |
| | | key: '3', |
| | | label: '待受理', |
| | | bgColor: '#F5E8FF', |
| | | num: 50, |
| | | num: `${CountList?.waitAccept}`, |
| | | img: tab3 |
| | | |
| | | }, |
| | | { |
| | | key: '4', |
| | | label: '办理中', |
| | | bgColor: '#E6FFFB', |
| | | num: 60, |
| | | num: `${CountList?.waitReview}`, |
| | | img: tab4 |
| | | |
| | | }, |
| | | { |
| | | key: '5', |
| | | label: '待审核', |
| | | bgColor: '#E8F7FF', |
| | | num: 70, |
| | | num: `${CountList?.supervise}`, |
| | | img: tab5 |
| | | |
| | | }, |
| | | { |
| | | key: '6', |
| | | label: '督办', |
| | | bgColor: '#FFF7E6', |
| | | num: 80, |
| | | num: `${CountList?.processing}`, |
| | | img: tab6 |
| | | |
| | | }, |
| | | ] |
| | | |
| | | 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 表示系列案 |
| | | // 更多字段... |
| | | }, |
| | | { |
| | | id: 3, |
| | | 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: 4, |
| | | 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: 5, |
| | | 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: 6, |
| | | 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: 7, |
| | | 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: 8, |
| | | 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: 9, |
| | | 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: 10, |
| | | 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 [columnType, setColumnType] = useState([ |
| | | { |
| | | title: '流转时间', |
| | | dataIndex: 'turnaroundTime', |
| | | key: 'turnaroundTime', |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: '分派时限', |
| | | dataIndex: 'timeLimit', |
| | | key: 'timeLimit', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '事项等级', |
| | | dataIndex: 'caseGrade', |
| | | key: 'caseGrade', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '事项来源', |
| | | dataIndex: 'caseSource', |
| | | key: 'caseSource', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '事项类型', |
| | | dataIndex: 'caseType', |
| | | key: 'caseType', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '申请方', |
| | | dataIndex: 'plaintiffs', |
| | | key: 'plaintiffs', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '被申请方', |
| | | dataIndex: 'defendants', |
| | | key: 'defendants', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '操作', |
| | | dataIndex: 'actions', |
| | | key: 'actions', |
| | | width: 180, |
| | | render: (text, record) => ( |
| | | <Space style={{ color: '#1A6FB8' }}> |
| | | <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>详情</div> |
| | | <div onClick={() => navigate(`/mediate/visit/eventFlow?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>处理</div> |
| | | </Space> |
| | | ), |
| | | }, |
| | | ]) |
| | | |
| | | // 列配置 |
| | | const fakeColumns3 = [ |
| | | { |
| | | title: '流转时间', |
| | | dataIndex: 'turnaroundTime', |
| | | key: 'turnaroundTime', |
| | | width: 100, |
| | | render: (text, record, index) => <span>{index + 1}</span>, |
| | | }, |
| | | { |
| | | title: '分派时限', |
| | | dataIndex: 'timeLimit', |
| | | key: 'timeLimit', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '事项等级', |
| | | dataIndex: 'caseGrade', |
| | | key: 'caseGrade', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '事项来源', |
| | | dataIndex: 'caseSource', |
| | | key: 'caseSource', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '事项类型', |
| | | dataIndex: 'caseType', |
| | | key: 'caseType', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '申请方', |
| | | dataIndex: 'plaintiffs', |
| | | key: 'plaintiffs', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '被申请方', |
| | | dataIndex: 'defendants', |
| | | key: 'defendants', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '操作', |
| | | dataIndex: 'actions', |
| | | key: 'actions', |
| | | width: 180, |
| | | render: (text, record) => ( |
| | | <Space style={{ color: '#1A6FB8' }}> |
| | | <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>详情</div> |
| | | <div onClick={() => navigate(`/mediate/visit/eventFlow?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>处理</div> |
| | | </Space> |
| | | ), |
| | | }, |
| | | ]; |
| | | const fakeColumns1 = [ |
| | | { |
| | | title: '流转时间', |
| | | dataIndex: 'turnaroundTime', |
| | | key: 'turnaroundTime', |
| | | width: 100, |
| | | render: (text, record, index) => <span>{index + 1}</span>, |
| | | }, |
| | | { |
| | | title: '签收时限', |
| | | dataIndex: 'timeLimit', |
| | | key: 'timeLimit', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '事项等级', |
| | | dataIndex: 'caseGrade', |
| | | key: 'caseGrade', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '事项来源', |
| | | dataIndex: 'caseSource', |
| | | key: 'caseSource', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '事项类型', |
| | | dataIndex: 'caseType', |
| | | key: 'caseType', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '申请方', |
| | | dataIndex: 'plaintiffs', |
| | | key: 'plaintiffs', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '被申请方', |
| | | dataIndex: 'defendants', |
| | | key: 'defendants', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '操作', |
| | | dataIndex: 'actions', |
| | | key: 'actions', |
| | | width: 180, |
| | | render: (text, record) => ( |
| | | <Space style={{ color: '#1A6FB8' }}> |
| | | <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>详情</div> |
| | | <div>签收</div> |
| | | </Space> |
| | | ), |
| | | }, |
| | | ]; |
| | | const fakeColumns2 = [ |
| | | { |
| | | title: '流转时间', |
| | | dataIndex: 'turnaroundTime', |
| | | key: 'turnaroundTime', |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: '受理时限', |
| | | dataIndex: 'timeLimit', |
| | | key: 'timeLimit', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '事项等级', |
| | | dataIndex: 'caseGrade', |
| | | key: 'caseGrade', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '事项来源', |
| | | dataIndex: 'caseSource', |
| | | key: 'caseSource', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '事项类型', |
| | | dataIndex: 'caseType', |
| | | key: 'caseType', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '申请方', |
| | | dataIndex: 'plaintiffs', |
| | | key: 'plaintiffs', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '被申请方', |
| | | dataIndex: 'defendants', |
| | | key: 'defendants', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '操作', |
| | | dataIndex: 'actions', |
| | | key: 'actions', |
| | | width: 180, |
| | | render: (text, record) => ( |
| | | <Space style={{ color: '#1A6FB8' }}> |
| | | <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>详情</div> |
| | | <div onClick={() => navigate(`/mediate/visit/eventFlow?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>处理</div> |
| | | </Space> |
| | | ), |
| | | }, |
| | | ]; |
| | | |
| | | const [column, setColumn] = useState([ |
| | | { |
| | | title: '流转时间', |
| | | dataIndex: 'turnaroundTime', |
| | | key: 'turnaroundTime', |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: '已办天数', |
| | | dataIndex: 'processingDays', |
| | | key: 'processingDays', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '事项等级', |
| | | dataIndex: 'caseGrade', |
| | | key: 'caseGrade', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '事项来源', |
| | | dataIndex: 'caseSource', |
| | | key: 'caseSource', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '事项类型', |
| | | dataIndex: 'caseType', |
| | | key: 'caseType', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '承办部门', |
| | | dataIndex: 'organizingUnit', |
| | | key: 'organizingUnit', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '配合部门', |
| | | dataIndex: 'cooperatingUnit', |
| | | key: 'cooperatingUnit', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '经办人', |
| | | dataIndex: 'manager', |
| | | key: 'manager', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '申请方', |
| | | dataIndex: 'plaintiffs', |
| | | key: 'plaintiffs', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '被申请方', |
| | | dataIndex: 'defendants', |
| | | key: 'defendants', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '操作', |
| | | dataIndex: 'actions', |
| | | key: 'actions', |
| | | width: 180, |
| | | render: (text, record) => ( |
| | | <Space> |
| | | <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>详情</div> |
| | | <div onClick={() => navigate(`/mediate/visit/handleFeedback?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>处理</div> |
| | | </Space> |
| | | ), |
| | | }, |
| | | ]) |
| | | |
| | | const [backColumn, setBackColumn] = useState([ |
| | | { |
| | | title: '回退时间', |
| | | dataIndex: 'turnaroundTime', |
| | | key: 'turnaroundTime', |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: '回退部门', |
| | | dataIndex: 'backUnit', |
| | | key: 'backUnit', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '回退理由', |
| | | dataIndex: 'reason', |
| | | key: 'reason', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '事项等级', |
| | | dataIndex: 'caseGrade', |
| | | key: 'caseGrade', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '事项来源', |
| | | dataIndex: 'caseSource', |
| | | key: 'caseSource', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '事项类型', |
| | | dataIndex: 'caseType', |
| | | key: 'caseType', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '申请方', |
| | | dataIndex: 'plaintiffs', |
| | | key: 'plaintiffs', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '被申请方', |
| | | dataIndex: 'defendants', |
| | | key: 'defendants', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '操作', |
| | | dataIndex: 'actions', |
| | | key: 'actions', |
| | | width: 180, |
| | | render: (text, record) => ( |
| | | <Space> |
| | | <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>详情</div> |
| | | {/* <div onClick={() => navigate(`/mediate/visit/handleFeedback?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>处理</div> */} |
| | | {(direction === '回退审核' || direction === '上报审核') && |
| | | <div onClick={() => navigate(`/mediate/visit/eventFlow?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>处理</div> |
| | | |
| | | } |
| | | {(direction === '结案申请审核' || direction === '联合处置审核') && |
| | | <div onClick={() => navigate(`/mediate/visit/handleFeedback?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>处理</div> |
| | | } |
| | | </Space> |
| | | ), |
| | | }, |
| | | ]) |
| | | |
| | | const [mangeColumn, setMangeColumn] = useState([ |
| | | { |
| | | title: '督办时间', |
| | | dataIndex: 'turnaroundTime', |
| | | key: 'turnaroundTime', |
| | | width: 100, |
| | | render: (text, record, index) => <span>{index + 1}</span>, |
| | | }, |
| | | { |
| | | title: '回复时限', |
| | | dataIndex: 'timeLimit', |
| | | key: 'timeLimit', |
| | | width: 60, |
| | | }, |
| | | { |
| | | title: '督办部门', |
| | | dataIndex: 'caseGrade', |
| | | key: 'caseGrade', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '督办意见', |
| | | dataIndex: 'opinion', |
| | | key: 'opinion', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '事项等级', |
| | | dataIndex: 'caseGrade', |
| | | key: 'caseGrade', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '事项来源', |
| | | dataIndex: 'caseSource', |
| | | key: 'caseSource', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '事项类型', |
| | | dataIndex: 'caseType', |
| | | key: 'caseType', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '申请方', |
| | | dataIndex: 'plaintiffs', |
| | | key: 'plaintiffs', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '被申请方', |
| | | dataIndex: 'defendants', |
| | | key: 'defendants', |
| | | width: 180, |
| | | }, |
| | | { |
| | | title: '操作', |
| | | dataIndex: 'actions', |
| | | key: 'actions', |
| | | width: 180, |
| | | render: (text, record) => ( |
| | | <Space> |
| | | <div>回复</div> |
| | | <div>详情</div> |
| | | </Space> |
| | | ), |
| | | }, |
| | | ]) |
| | | |
| | | |
| | | |
| | | |
| | | const tabActive = (key) => { |
| | | console.log(key, 'key') |
| | | setTabActivekey(key); |
| | | if (key === '1') { |
| | | setColumnType(fakeColumns3) |
| | | } |
| | | if (key === '2') { |
| | | setColumnType(fakeColumns1) |
| | | } |
| | | if (key === '3') { |
| | | setColumnType(fakeColumns2) |
| | | } |
| | | if (key === '4') { |
| | | setColumnType(column) |
| | | } |
| | | if (key === '5') { |
| | | setColumnType(backColumn) |
| | | } |
| | | if (key === '6') { |
| | | setColumnType(mangeColumn) |
| | | } |
| | | } |
| | | |
| | | const pageMyTaskBl = async () => { |
| | | const res = await pageMyTaskBlApi({ page: 1, size: 10, timeStart: '', timeEnd: '', partyName: '', sortType: '', sortColmn: '' }) |
| | | if (res.type) { |
| | | console.log(res.data, 'res.data') |
| | | // setColumn(res.data) |
| | | } |
| | | } |
| | | |
| | | const getCountList = async () => { |
| | | const res = await getCountListApi() |
| | | if (res.type) { |
| | | const data = res.data |
| | | setCountList(data) |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | useEffect(() => { |
| | | // pageMyTaskBl(); |
| | | getCountList(); |
| | | }, [columnType,direction]) |
| | | |
| | | |
| | | |
| | | return ( |
| | | <div className='VisitWorkBench'> |
| | | <div className='VisitWorkBench-top'> |
| | | 工作总览 |
| | | <span style={{ fontWeight: 600 }}>工作总览</span> |
| | | <div className='VisitWorkBench-top-list'> |
| | | { |
| | | tabsList.map((item, index) => ( |
| | | <div key={index} className='VisitWorkBench-top-list-tabsItem' style={{ backgroundColor: item.bgColor }}> |
| | | <div key={index} className='VisitWorkBench-top-list-tabsItem' style={{ backgroundColor: item.bgColor }} onClick={() => tabActive(item.key)}> |
| | | <div> |
| | | <div>{item.label}</div> |
| | | <div>{item.num}件</div> |
| | | <span className='VisitWorkBench-top-list-tabsItem-title'>{item.num}</span>件 |
| | | </div> |
| | | <div> |
| | | <img src={item.img} alt=''/> |
| | | <img src={item.img} alt='' className='VisitWorkBench-top-list-tabsItem-imgView' /> |
| | | </div> |
| | | </div> |
| | | )) |
| | |
| | | </div> |
| | | </div> |
| | | <div className='VisitWorkBench-middle'> |
| | | 222 |
| | | <Tabs defaultActiveTab='1'> |
| | | <TabPane |
| | | // onChange={handleColumnType} |
| | | key='1' |
| | | title={ |
| | | <span style={{ fontSize: '15px' }}> |
| | | {tabActivekey === '1' ? '待分派' : |
| | | tabActivekey === '2' ? '待签收' : |
| | | tabActivekey === '3' ? '待受理' : |
| | | tabActivekey === '4' ? '办理中' : |
| | | tabActivekey === '5' ? '待审核' : '督办-未回复' |
| | | } |
| | | </span> |
| | | } |
| | | > |
| | | <Typography.Paragraph> |
| | | {tabActivekey === '5' && |
| | | <Radio.Group |
| | | type='button' |
| | | name='direction' |
| | | value={direction} |
| | | onChange={(e) => setDirection(e)} |
| | | style={{ marginBottom: 16 }} |
| | | options={['回退审核', '上报审核', '结案申请审核', '联合处置审核']} |
| | | ></Radio.Group> |
| | | } |
| | | <TableView |
| | | columns={columnType} |
| | | dataSource={fakeData1} |
| | | size="small" |
| | | rowKey="id" |
| | | bordered={true} |
| | | // style={{ marginBottom: '65px', marginTop: '-16px' }} |
| | | rowSelection={{ |
| | | type: 'Checkbox' |
| | | }} |
| | | /> |
| | | </Typography.Paragraph> |
| | | </TabPane> |
| | | <TabPane |
| | | key='2' |
| | | title={ |
| | | <span style={{ fontSize: '15px' }}> |
| | | {tabActivekey === '1' ? '已分派' : |
| | | tabActivekey === '2' ? '已签收' : |
| | | tabActivekey === '3' ? '已受理' : |
| | | tabActivekey === '4' ? '结案申请' : |
| | | tabActivekey === '5' ? '已审核' : '督办-未回复' |
| | | } |
| | | </span> |
| | | } |
| | | > |
| | | <Typography.Paragraph> |
| | | </Typography.Paragraph> |
| | | </TabPane> |
| | | {tabActivekey === '4' && |
| | | <TabPane |
| | | key='3' |
| | | title={ |
| | | <span style={{ fontSize: '15px' }}> |
| | | 已结案 |
| | | </span> |
| | | } |
| | | > |
| | | <Typography.Paragraph> |
| | | </Typography.Paragraph> |
| | | </TabPane> |
| | | } |
| | | |
| | | </Tabs> |
| | | |
| | | </div> |
| | | <div className='VisitWorkBench-bottom'> |
| | | 333333 |
| | | 自行排查 |
| | | <div style={{ display: 'flex', justifyContent: 'space-evenly' }}> |
| | | <div className='bottomTab1'> |
| | | <div className='VisitWorkBench-bottom-title' onClick={() => navigate(`/mediate/visit`)} style={{ color: '#206BCD' }}>大厅来访</div> |
| | | <img src={visitInto} alt='' className='VisitWorkBench-bottom-img' /> |
| | | </div> |
| | | <div className='bottomTab2'> |
| | | <div className='VisitWorkBench-bottom-title' style={{ color: '#D46B08' }}>自行排查</div> |
| | | <img src={checkInto} alt='' className='VisitWorkBench-bottom-img' /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | ) |
| | |
| | | } |
| | | |
| | | .VisitWorkBench{ |
| | | margin: 16px; |
| | | |
| | | &-top{ |
| | | background: #ffffff; |
| | | padding: 12px 16px 16px 16px; |
| | | |
| | | &-list{ |
| | | display: flex; |
| | | gap: 24px; |
| | | margin-top: 16px; |
| | | |
| | | &-tabsItem{ |
| | | display: flex; |
| | | padding: 12px 16px; |
| | | flex: 1; |
| | | justify-content: space-between; |
| | | |
| | | &-title { |
| | | font-size: 18px; |
| | | margin-right: 4px; |
| | | } |
| | | |
| | | &-imgView { |
| | | width: 48px; |
| | | height: 48px; |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | } |
| | | |
| | | &-middle{ |
| | | background: #ffffff; |
| | | padding: 12px 16px 16px 16px; |
| | | margin-top: 12px; |
| | | |
| | | } |
| | | |
| | | &-bottom{} |
| | | &-bottom { |
| | | background-color: #fff; |
| | | padding: 12px 16px 16px 16px; |
| | | margin-top: 12px; |
| | | |
| | | &-title{ |
| | | width: 140px; |
| | | font-family: DingTalk; |
| | | font-size: 22px; |
| | | } |
| | | |
| | | &-img { |
| | | width: 72px; |
| | | height: 72px; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | } |
| | | |
| | | .bottomTab1{ |
| | | // display: 'flex', background: linear-gradient(to right, #6a1b9a, #e040fb) |
| | | display: flex; |
| | | background: linear-gradient(to right, #E8F7FF, #9FD4FD); |
| | | padding: 12px 16px 16px 16px; |
| | | } |
| | | |
| | | .bottomTab2{ |
| | | display: flex; |
| | | background: linear-gradient(to right, #FFF7E6, #FFD591); |
| | | padding: 12px 16px 16px 16px; |
| | | |
| | | } |
| | |
| | | import * as $$ from '@/utils/utility'; |
| | | import ArcoUpload from '@/components/ArcoUpload'; |
| | | import NewFileCheck from './NewFileCheck'; |
| | | import { Row, Col, Button } from 'antd'; |
| | | import { Row, Col, Button, Typography, Space } from 'antd'; |
| | | import { Form, Modal } from '@arco-design/web-react'; |
| | | import { |
| | | applyMaterials, |
| | |
| | | } from '@/assets/images'; |
| | | import { CheckOutlined, } from '@ant-design/icons'; |
| | | import TableView from '@/components/TableView'; |
| | | import downloadFile from "@/utils/download" |
| | | |
| | | const { Link, Text } = Typography; |
| | | const appUrl = $$.appUrl; |
| | | |
| | | function delFile(id) { |
| | | return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'delete', service: 'sys', data: { id } }); |
| | | } |
| | | |
| | | function listIdTypeInfoApi(data) { |
| | | return $$.ax.request({ url: `fileInfo/listIdTypeInfo`, type: 'post', service: 'sys', data }); |
| | | } |
| | | |
| | | function deleteFileByIdApi(data) { |
| | | return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'delete', service: 'sys', data }); |
| | | return $$.ax.request({ url: `fileInfo/deleteFileByIds`, type: 'delete', service: 'sys', data }); |
| | | } |
| | | |
| | | //表格数据 |
| | |
| | | size: 0, |
| | | fileNames: "-", |
| | | updateTime: '', |
| | | id: 1, |
| | | }, |
| | | { |
| | | ownerType: "22_00018-102", |
| | |
| | | size: 0, |
| | | fileNames: "-", |
| | | updateTime: '', |
| | | id: 2, |
| | | }, |
| | | ] |
| | | |
| | | /** |
| | | * mainId*,//就是caseId,事件id |
| | | * fileInfoList*, //文件列表 |
| | | * isReview,//是否查看,查看的话就不能删除上传,只能查看下载 |
| | | */ |
| | | |
| | | export default function FileTable(props) { |
| | | const formRef = useRef(); |
| | | const [sourceType, setSourceType] = useState(); |
| | | const [filesCheck, setFilesCheck] = useState(false); |
| | | const [upload, setUpLoad] = useState(false); |
| | | const [uploadVisible, setUpLoadVisible] = useState(false); |
| | | const [tableData, setTableData] = useState(staticTableData); |
| | | const [fileMap, setFileMap] = useState({}); |
| | | const [fileInfoList, setFileInfoList] = useState([]); |
| | | |
| | | // 列配置 |
| | | const fakeColumns = [ |
| | |
| | | title: '操作', |
| | | dataIndex: 'perClassName', |
| | | key: 'perClassName', |
| | | width: 200, |
| | | width: props.isReview ? 60 : 125, |
| | | fixed: 'right', |
| | | render: (text, record) => ( |
| | | <div style={{ display: 'flex', color: '#1A6FB8', gap: '16px' }}> |
| | | <div onClick={() => setFilesCheck(true)}>查看</div> |
| | | <div>删除</div> |
| | | <div>下载</div> |
| | | <div onClick={() => { |
| | | <Space size="middle"> |
| | | <Link onClick={() => { |
| | | setSourceType(record.ownerType) |
| | | setUpLoad(true) |
| | | }}>上传</div> |
| | | </div> |
| | | setFilesCheck(true) |
| | | }}> |
| | | 查看 |
| | | </Link> |
| | | {!props.isReview && <Link onClick={() => { |
| | | if (record.fileInfoList && record.fileInfoList.length != 0) { |
| | | let ids = record.fileInfoList?.map(item => item.id).join(',') |
| | | handleDelete(ids) |
| | | } else { |
| | | $$.info({ type: 'warning', content: '还没上传关于该材料的文件!' }); |
| | | } |
| | | }}> |
| | | 删除 |
| | | </Link>} |
| | | <Link onClick={() => { |
| | | if (record.fileInfoList && record.fileInfoList.length != 0) { |
| | | let ids = record.fileInfoList?.map(item => item.id).join(',') |
| | | handleDownlod(ids) |
| | | } else { |
| | | $$.info({ type: 'warning', content: '还没上传关于该材料的文件!' }); |
| | | } |
| | | }}> |
| | | 下载 |
| | | </Link> |
| | | {!props.isReview && <Link onClick={() => { |
| | | setSourceType(record.ownerType) |
| | | setUpLoadVisible(true) |
| | | setFileInfoList(record.fileInfoList) |
| | | setTimeout(() => { |
| | | formRef.current.setFieldValue('file', record.fileInfoList) |
| | | }, 0) |
| | | }}> |
| | | 上传 |
| | | </Link>} |
| | | </Space> |
| | | ) |
| | | }, |
| | | // 更多列配置... |
| | |
| | | ] |
| | | |
| | | useEffect(() => { |
| | | console.log(props.fileInfoList); |
| | | if (props.fileInfoList && props.fileInfoList.length != 0) { |
| | | //证明材料 |
| | | const applyFile = props.fileInfoList.find(item => item.ownerType == "22_00018-101") |
| | | //证据材料 |
| | | const evidenceFile = props.fileInfoList.find(item => item.ownerType == "22_00018-102") |
| | | setFileMap({ |
| | | '22_00018-101': applyFile?.fileList || [], |
| | | '22_00018-102': evidenceFile?.fileList || [] |
| | | }) |
| | | const newList = tableData.map(item => { |
| | | if (item.ownerType == '22_00018-101' && applyFile) { |
| | | return { |
| | | ...item, |
| | | size: applyFile.fileList.length, |
| | | fileNames: applyFile.fileList?.map(item => item.trueName).join(','), |
| | | updateTime: $$.timeFormat(applyFile.fileList[applyFile.fileList.length - 1].updateTime), |
| | | fileInfoList: applyFile.fileList.map(item => { |
| | | return { |
| | | ...item, |
| | | uid: item.id, |
| | | name: item.trueName |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | if (item.ownerType == '22_00018-102' && evidenceFile) { |
| | | return { |
| | | ...item, |
| | | size: evidenceFile.fileList.length, |
| | | fileNames: evidenceFile.fileList?.map(item => item.trueName).join(','), |
| | | updateTime: $$.timeFormat(evidenceFile.fileList[evidenceFile.fileList.length - 1].updateTime), |
| | | fileInfoList: evidenceFile.fileList.map(item => { |
| | | return { |
| | | ...item, |
| | | uid: item.id, |
| | | name: item.trueName |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | return item |
| | | }) |
| | | setTableData(newList) |
| | | } |
| | | },[props.fileInfoList]) |
| | | |
| | | //上传弹窗判断用哪种种图标 |
| | | const personIconType = (v) => { |
| | | switch (v) { |
| | | case '22_00018-101': |
| | |
| | | } |
| | | } |
| | | |
| | | //上传弹窗完成后的事件 |
| | | const handleUpload = () => { |
| | | const newList = tableData.map(item => { |
| | | if (item.ownerType == sourceType) { |
| | | const data = fileMap[sourceType] |
| | | console.log(data); |
| | | return { |
| | | ...item, |
| | | size: data.length, |
| | | fileNames: data.map(item => item.name).join(','), |
| | | updateTime: $$.timeFormat(data[data.length - 1].response.data[0].updateTime) |
| | | fileNames: data.map(item => item.trueName).join(','), |
| | | updateTime: $$.timeFormat(data[data.length - 1].updateTime), |
| | | fileInfoList: data.map(item => { |
| | | return { |
| | | ...item, |
| | | name: item.trueName, |
| | | uid: item.id, |
| | | } |
| | | }), |
| | | } |
| | | } else { |
| | | return item |
| | | } |
| | | }) |
| | | setTableData(newList) |
| | | setUpLoad(false); |
| | | setUpLoadVisible(false); |
| | | }; |
| | | |
| | | //根据sourceType生成组件 |
| | | const formType = (type) => { |
| | | if (type === '22_00018-101') { |
| | | //申请材料 |
| | |
| | | }} |
| | | field='file' |
| | | label='' |
| | | // editData={props.editData} |
| | | editData={{ |
| | | file: fileInfoList |
| | | }} |
| | | handleDelFile={handleDelFile} |
| | | onFileListChange={(v) => { |
| | | let newList = v?.map(item => { |
| | | if (item.response) { |
| | | return item.response.data[0] |
| | | } else { |
| | | return item |
| | | } |
| | | }) |
| | | setFileMap({ |
| | | '22_00018-101': v |
| | | ...fileMap, |
| | | '22_00018-101': newList |
| | | }) |
| | | }} |
| | | /> |
| | |
| | | params={{ |
| | | action: `${appUrl.fileUrl}/${appUrl.sys}/api/web/fileInfo/upload?mainId=${props.mainId}&&ownerId=${props.mainId}&ownerType=22_00018-102`, |
| | | }} |
| | | field='file1' |
| | | field='file' |
| | | label='' |
| | | // editData={props.editData} |
| | | editData={{ |
| | | file: fileInfoList |
| | | }} |
| | | handleDelFile={handleDelFile} |
| | | onFileListChange={(v) => { |
| | | let newList = v?.map(item => { |
| | | if (item.response) { |
| | | return item.response.data[0] |
| | | } else { |
| | | return item |
| | | } |
| | | }) |
| | | setFileMap({ |
| | | '22_00018-102': v |
| | | ...fileMap, |
| | | '22_00018-102': newList |
| | | }) |
| | | }} |
| | | |
| | | /> |
| | | {fileMap[sourceType]?.length > 0 && <div style={{ position: 'absolute', top: '198px', left: '16px', color: '#86909C' }}>证据材料累计上传:<span style={{ color: '#1A6FB8' }}>{fileMap[sourceType]?.length}</span></div>} |
| | | </Col> |
| | | </> |
| | | ) |
| | | } |
| | | } |
| | | |
| | | //删除 |
| | | const handleDelete = (ids) => { |
| | | Modal.confirm({ |
| | | title: '删除确认', |
| | | content: '确认全部删除该材料?', |
| | | onOk: async () => { |
| | | const res = await deleteFileByIdApi({ ids }) |
| | | if (res.type) { |
| | | $$.infoSuccess({ content: '删除成功!' }); |
| | | } |
| | | }, |
| | | }); |
| | | } |
| | | |
| | | //下载 |
| | | const handleDownlod = async (ids) => { |
| | | await downloadFile(`${appUrl.fileUrl}/${appUrl.sys}/api/web/fileInfo/down/batch`, { ids }) |
| | | } |
| | | |
| | | return ( |
| | |
| | | rowKey="ownerType" |
| | | bordered={true} |
| | | style={{ marginBottom: '65px' }} |
| | | scroll={{ x: 1300 }} |
| | | /> |
| | | <Modal |
| | | style={{ width: '512px' }} |
| | | visible={upload} |
| | | onCancel={() => setUpLoad(false)} |
| | | visible={uploadVisible} |
| | | onCancel={() => setUpLoadVisible(false)} |
| | | footer={null} |
| | | title='上传材料' |
| | | centered |
| | | mountOnEnter={false} |
| | | unmountOnExit={true} |
| | | maskClosable={false} |
| | | focusLock={false} |
| | | > |
| | | <div style={{ paddingTop: '8px' }}> |
| | | <Row gutter={[30, 24]}> |
| | |
| | | maskClosable={false} |
| | | > |
| | | <div style={{ marginTop: '-16px' }}> |
| | | <NewFileCheck /> |
| | | <NewFileCheck menuList={tableData} sourceType={sourceType} /> |
| | | </div> |
| | | </Modal> |
| | | </Fragment> |
| | |
| | | import React, { useState, useEffect, useRef } from 'react'; |
| | | import React, { useState, useEffect, useRef, Fragment } from 'react'; |
| | | import { Row, Col, Space } from 'antd'; |
| | | import { Select, DatePicker, Form, Button } from '@arco-design/web-react'; |
| | | import { Select, DatePicker, Form, Button, Menu } from '@arco-design/web-react'; |
| | | import * as $$ from '@/utils/utility'; |
| | | |
| | | const FormItem = Form.Item; |
| | | const MenuItem = Menu.Item; |
| | | const SubMenu = Menu.SubMenu; |
| | | const appUrl = $$.appUrl; |
| | | const formItemLayout = { |
| | | labelCol: { |
| | | span: 8, |
| | | }, |
| | | wrapperCol: { |
| | | span: 16, |
| | | }, |
| | | }; |
| | | |
| | | |
| | | const NewFileCheck = (props) => { |
| | | const formRef = useRef() |
| | | const formRef = useRef(); |
| | | const [fileUrl, setFileUrl] = useState('') |
| | | const [itemData, setItemData] = useState(null) |
| | | |
| | | const peopleTypeMap = { |
| | | 1: '工作人员', |
| | | 2: '当事人' |
| | | } |
| | | |
| | | useEffect(() => { |
| | | console.log(props.menuList, props.sourceType); |
| | | }, []) |
| | | |
| | | //点击菜单 |
| | | const clickItem = (data) => { |
| | | console.log(data); |
| | | setItemData(data) |
| | | setFileUrl(`${appUrl.fileUrl}/${appUrl.sys}${data.showUrl}`) |
| | | } |
| | | |
| | | return ( |
| | | <nav className="filesCheck-nav" style={{ borderRight: '1px solid transparent' }}> |
| | |
| | | layout='horizontal' |
| | | style={{ marginTop: '24px', marginBottom: '20px' }} |
| | | scrollToFirstError={true} |
| | | initialValues={{ |
| | | }}//默认值 |
| | | {...formItemLayout} |
| | | > |
| | | <Row gutter={24} style={{ marginRight: '0px' }}> |
| | | <Col span={7}> |
| | |
| | | <Col span={3}> |
| | | <Space> |
| | | <Button size="middle " type='primary'>查询</Button> |
| | | <Button size="middle ">查询</Button> |
| | | <Button size="middle ">重置</Button> |
| | | </Space> |
| | | </Col> |
| | | </Row> |
| | | |
| | | </Form> |
| | | <div style={{ display: 'flex' }}> |
| | | <div style={{ width: '200px' }}> |
| | | <div style={{ display: 'flex', height: '550px' }}> |
| | | <div style={{ width: '256px' }}> |
| | | <Menu |
| | | style={{ width: '100%', height: '100%' }} |
| | | > |
| | | {props.menuList?.map(item => { |
| | | return <SubMenu |
| | | key={item.id} |
| | | title={item.ownerTypeName + `(${item.fileInfoList && item.fileInfoList.length || 0})`} |
| | | > |
| | | {item.fileInfoList?.map(res => { |
| | | return <MenuItem key={res.id} onClick={() => { clickItem(res) }}>{res.trueName}</MenuItem> |
| | | })} |
| | | </SubMenu> |
| | | })} |
| | | </Menu> |
| | | </div> |
| | | <div style={{ flex: 1 }}> |
| | | { |
| | | itemData ? <Fragment> |
| | | <div style={{ background: '#e8f3ff', color: '#1A6FB8', padding: '5px 10px', marginBottom: '16px' }}> |
| | | <span>材料名称:{itemData.trueName}</span> | |
| | | <span>上传时间:{itemData.updateTime}</span> | |
| | | <span>上传人:{itemData.uploaderName} {itemData.uploaderType && <span>({peopleTypeMap[itemData.uploaderType]})</span>}</span> |
| | | </div> |
| | | <div style={{ width: '100%', height: '470px' }}> |
| | | { |
| | | itemData.suffix === 'pdf' ? |
| | | <embed src={fileUrl} type="application/pdf" width="100%" height="100%"></embed> |
| | | : |
| | | <img src={fileUrl} alt="" style={{ width: '100%', height: '100%' }} /> |
| | | } |
| | | |
| | | </div> |
| | | </Fragment> : <Fragment> |
| | | <div style={{ padding: '100px 0' }}>{$$.MyEmpty()}</div> |
| | | </Fragment> |
| | | } |
| | | </div> |
| | | </div> |
| | | </nav> |
| | | ); |
| | |
| | | import NewPage from '@/components/NewPage'; |
| | | import { Row, Col, Space } from 'antd'; |
| | | import { Steps, Tabs, Typography, Rate, Button } from '@arco-design/web-react'; |
| | | import { apply } from '@/assets/images'; |
| | | import { apply,floating } from '@/assets/images'; |
| | | import { result } from '@/assets/images/icon'; |
| | | import * as $$ from '@/utils/utility'; |
| | | import { ApplyDialog, AgentDialog, Respondent } from '../visit/component/previewTable'; |
| | | import TableView from '../../../components/TableView'; |
| | | import { register, fold, down, empty, link } from '@/assets/images'; |
| | | import ProgressStep from '@/components/ProgressStep/VisitStep'; |
| | | import { ApplyDialog, AgentDialog, Respondent, Company } from '../visit/component/previewTable'; |
| | | import HandleRecord from './HandleRecord'; |
| | | import { useParams } from 'react-router-dom'; |
| | | import ApplyInfo from './ApplyInfo' |
| | | |
| | | |
| | | const Step = Steps.Step; |
| | | const TabPane = Tabs.TabPane; |
| | |
| | | return $$.ax.request({ url: `caseEvaluate/getByCaseId?caseId=${caseId}`, type: 'get', service: 'mediate' }); |
| | | } |
| | | |
| | | function getCaseInfoApi(id) { |
| | | return $$.ax.request({ url: 'caseInfo/getCaseInfo?id=' + id, type: 'get', service: 'mediate' }); |
| | | } |
| | | |
| | | function listFeedbackApi(id) { |
| | | return $$.ax.request({ url: `caseFeedback/listFeedback?id=` + id, type: 'get', service: 'mediate' }); |
| | | } |
| | | |
| | | function getListCaseFlow(data) { |
| | | return $$.ax.request({ url: `caseTask/listCaseFlow`, type: 'get', service: 'mediate', data }); |
| | | } |
| | | |
| | | |
| | | const FileMessage = (props) => { |
| | | |
| | | const routeData = useParams(); |
| | | const [tabsActive, setTabsActive] = useState('1'); |
| | | const [current, setCurrent] = useState(7); |
| | | const [grade, setGrade] = useState(0); |
| | | const [caseInfo, setCaseInfo] = useState({}) |
| | | const [TransactResult, setTransactResult] = useState({}) |
| | | const [filesCheck, setFilesCheck] = useState(false); |
| | | const [infoData, setInfoData] = useState({}); |
| | | const [tabsList, setTabList] = useState([ |
| | | { |
| | | img: result, |
| | |
| | | isNeedStep: true |
| | | }, |
| | | { |
| | | img: floating, |
| | | label: '流转督办', |
| | | key: '2', |
| | | }, |
| | | { |
| | | img: apply, |
| | | label: '申请记录', |
| | | key: '2', |
| | | isNeedStep: true,//加上这个就有进度条 |
| | | key: '3', |
| | | }, |
| | | ]) |
| | | const [selectedTab, setSelectedTab] = useState('1'); // 默认选中第一个 tab |
| | | const [list, setList] = useState([]) |
| | | const [progressData, setProgressData] = useState({}) |
| | | |
| | | |
| | | const tabs = [ |
| | |
| | | console.log(res, 'resrs') |
| | | } |
| | | |
| | | const applyDialog = [ |
| | | { |
| | | trueName: '李四', |
| | | perClassName: '高级', |
| | | phone: '13700137000', |
| | | sex: '女', |
| | | certiTypeName: '护照', |
| | | certiNo: 'G12345678', |
| | | nationName: '满', |
| | | addr: '上海市浦东新区某公寓2号楼2单元202室', |
| | | placeAddr: '上海市黄浦区某路3号', |
| | | extreme: '否', |
| | | workUnit: '上海某金融公司', |
| | | person: '/path/to/anotherPerson.jpg', // 这应该是图片的实际路径 |
| | | link: '/path/to/anotherLink.png', // 这应该是链接图标的实际路径 |
| | | const getCaseInfo = async () => { |
| | | const res = await getCaseInfoApi('24083010062110001') |
| | | if (res.type) { |
| | | setCaseInfo(res.data) |
| | | } |
| | | // 可以根据需要添加更多的对象来模拟更多条目的数据 |
| | | ]; |
| | | } |
| | | |
| | | const agentDialog = [ |
| | | { |
| | | trueName: '王五', |
| | | perClassName: '自然人', |
| | | phone: '13600136000', |
| | | sex: '男', |
| | | certiTypeName: '身份证', |
| | | certiNo: '110101199501012345', |
| | | nationName: '汉', |
| | | addr: '广州市天河区某大厦A座501室', |
| | | placeAddr: '广州市越秀区某街4号', |
| | | extreme: '否', |
| | | workUnit: '广州某贸易公司', |
| | | agentRelateName: '配偶', |
| | | agentTypeName: '法定代理人', |
| | | perTypeName: '成年人', |
| | | person: '/path/to/person.jpg', // 应该是图片的实际路径 |
| | | link: '/path/to/link.png', // 应该是链接图标的实际路径 |
| | | }, |
| | | ]; |
| | | const listFeedback = async (id) => { |
| | | const res = await listFeedbackApi(id) |
| | | if (res.type) { |
| | | let data = res.data.caseFeedbackList |
| | | setList(data) |
| | | } |
| | | } |
| | | |
| | | const respondent = [ |
| | | { |
| | | orgaType: '广东好又多贸易有限公司', |
| | | perClassName: '企业法人', |
| | | phone: '020-12345678', |
| | | address: '广州市天河区珠江新城花城大道66号', |
| | | companyType: '有限责任公司', |
| | | legalPerson: '江照月', |
| | | creditCode: '914401011234567890', |
| | | president: '广州市天河区珠江新城花城大道66号A座20层', |
| | | link: '/path/to/link.png', // 应该是链接图标的实际路径 |
| | | }, |
| | | ]; |
| | | const getData = async () => { |
| | | const res = await getListCaseFlow({ |
| | | caseId: routeData.caseId |
| | | }) |
| | | if (res.type) { |
| | | setProgressData(res.data) |
| | | } |
| | | } |
| | | |
| | | const fakeColumns = [ |
| | | { |
| | |
| | | useEffect(() => { |
| | | getByCaseId(); |
| | | getTransactResult(); |
| | | getCaseInfo(); |
| | | listFeedback('24083010062110001'); |
| | | getData() |
| | | }, []) |
| | | |
| | | |
| | | const applyData = caseInfo?.personList?.filter(item => item.perTypeName === "申请方当事人" && item.perClassName === "自然人"); |
| | | const agentData = caseInfo?.personList?.filter(item => item.perTypeName === "申请方代理人"); |
| | | const company = caseInfo?.personList?.filter(item => item.perTypeName === "申请方当事人" && item.perClassName === "非法人组织"); |
| | | const respondentData = caseInfo?.personList?.filter(item => item.perTypeName === "申请方当事人" && item.perClassName === "法人"); |
| | | |
| | | const applyData1 = caseInfo?.personList?.filter(item => item.perTypeName === "被申请方当事人" && item.perClassName === "自然人"); |
| | | const agentData1 = caseInfo?.personList?.filter(item => item.perTypeName === "被申请方代理人"); |
| | | const company1 = caseInfo?.personList?.filter(item => item.perTypeName === "被申请方当事人" && item.perClassName === "非法人组织"); |
| | | const respondentData1 = caseInfo?.personList?.filter(item => item.perTypeName === "被申请方当事人" && item.perClassName === "法人"); |
| | | |
| | | |
| | | |
| | |
| | | <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h4>当事人信息</h4> |
| | | </Space> |
| | | </Col> |
| | | |
| | | <div style={{ marginBottom: '8px' }}>申请方</div> |
| | | <div className="line-container" style={{ marginBottom: '20px' }}> |
| | | <div className="line left-line"></div> |
| | | <div className="line middle-line"></div> |
| | | <div className="line right-line"></div> |
| | | </div> |
| | | <ApplyDialog applyDialog={applyDialog} /> |
| | | <AgentDialog agentDialog={agentDialog} /> |
| | | {/* ApplyDialog 只有在 applyData 存在且不为空时才渲染 */} |
| | | {applyData && applyData.length > 0 ? ( |
| | | <ApplyDialog applyDialog={applyData} /> |
| | | ) : null} |
| | | |
| | | {/* AgentDialog 只有在 agentData 存在且不为空时才渲染 */} |
| | | {agentData && agentData.length > 0 ? ( |
| | | <AgentDialog agentDialog={agentData} /> |
| | | ) : null} |
| | | |
| | | {/* Respondent 只有在 respondentData 存在且不为空时才渲染 */} |
| | | {respondentData && respondentData.length > 0 ? ( |
| | | <Respondent respondent={respondentData} /> |
| | | ) : null} |
| | | |
| | | {company && company.length > 0 ? ( |
| | | <Company company={company} /> |
| | | ) : null} |
| | | |
| | | <div style={{ marginBottom: '8px' }}>被申请方</div> |
| | | <div className="line-container" style={{ marginBottom: '20px' }}> |
| | | <div className="line left-line"></div> |
| | | <div className="line middle-line"></div> |
| | | <div className="line right-line"></div> |
| | | </div> |
| | | <Respondent respondent={respondent} /> |
| | | {applyData1 && applyData1.length > 0 ? ( |
| | | <ApplyDialog applyDialog={applyData1} /> |
| | | ) : null} |
| | | |
| | | {agentData1 && agentData1.length > 0 ? ( |
| | | <AgentDialog agentDialog={agentData1} /> |
| | | ) : null} |
| | | |
| | | {respondentData1 && respondentData1.length > 0 ? ( |
| | | <Respondent respondent={respondentData1} /> |
| | | ) : null} |
| | | |
| | | {company1 && company1.length > 0 ? ( |
| | | <Company company={company1} /> |
| | | ) : null} |
| | | <Col span={24} style={{ display: 'flex', alignItems: 'center', marginBottom: '4px' }}> |
| | | <Space size='small'> |
| | | <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>纠纷基本情况</h5> |
| | |
| | | <Row gutter={[16, 16]}> |
| | | <Col span={8}> |
| | | <div><div className="title-text">事项状态</div></div> |
| | | <div style={{ color: '#1A6FB8' }}>{infoData?.statusName || '-'}</div> |
| | | <div style={{ color: '#1A6FB8' }}>{caseInfo?.statusName || '-'}</div> |
| | | </Col> |
| | | <Col span={16}> |
| | | <div><div className="title-text">事项编号</div></div> |
| | | <div>{infoData?.caseRef || '-'}</div> |
| | | <div>{caseInfo?.caseRef || '-'}</div> |
| | | </Col> |
| | | {/*事项等级分为三级,颜色需要做判断*/} |
| | | <Col span={8}> |
| | | <div className="title"><div className="title-text">事项等级</div></div> |
| | | <div style={{ display: 'flex' }}><div style={{ backgroundColor: '#00B42A', marginRight: '4px', borderRadius: '4px' }}><div style={{ color: '#FFFFFF', padding: '0px 6px' }}>{infoData.caseLevel || '-'}</div></div>级</div> |
| | | <div style={{ display: 'flex' }}><div style={{ backgroundColor: '#00B42A', marginRight: '4px', borderRadius: '4px' }}><div style={{ color: '#FFFFFF', padding: '0px 6px' }}>{caseInfo?.caseLevel || '-'}</div></div>级</div> |
| | | </Col> |
| | | <Col span={8}> |
| | | <div><div className="title-text">来访时间</div></div> |
| | | <div>{infoData.visitTime || '-'}</div> |
| | | <div>{caseInfo?.visitTime || '-'}</div> |
| | | </Col> |
| | | <Col span={8}> |
| | | <div ><div className="title-text">来访人数(人)</div></div> |
| | | <div>{infoData.visitPeopleNum || '-'}</div> |
| | | <div>{caseInfo?.visitPeopleNum || '-'}</div> |
| | | </Col> |
| | | <Col span={8}> |
| | | <div ><div className="title-text">纠纷类型</div></div> |
| | | <div>{infoData.caseType || '-'}</div> |
| | | <div>{caseInfo?.caseType || '-'}</div> |
| | | </Col> |
| | | <Col span={8}> |
| | | <div ><div className="title-text">纠纷发生时间</div></div> |
| | | <div>{infoData.occurTime || '-'}</div> |
| | | <div>{caseInfo?.occurTime || '-'}</div> |
| | | </Col> |
| | | <Col span={8}> |
| | | <div ><div className="title-text">纠纷发生地点</div></div> |
| | | <div>{infoData.addr || '-'}</div> |
| | | <div>{caseInfo?.addr || '-'}</div> |
| | | </Col> |
| | | <Col span={8}> |
| | | <div ><div className="title-text">问题属地</div></div> |
| | | <div>{infoData.questionName || '-'}</div> |
| | | <div>{caseInfo?.questionName || '-'}</div> |
| | | </Col> |
| | | <Col span={8}> |
| | | <div ><div className="title-text">涉及人数(人)</div></div> |
| | | <div>{infoData.peopleNum || '-'}</div> |
| | | <div>{caseInfo?.peopleNum || '-'}</div> |
| | | </Col> |
| | | <Col span={8}> |
| | | <div ><div className="title-text">涉及金额(元)</div></div> |
| | | <div>{$$.thousands(infoData.amount) || '-'}</div> |
| | | <div>{$$.thousands(caseInfo?.amount) || '-'}</div> |
| | | </Col> |
| | | <Col span={8}> |
| | | <div ><div className="title-text">事项来源</div></div> |
| | | <div>{infoData.canalName || '-'}</div> |
| | | <div>{caseInfo?.canalName || '-'}</div> |
| | | </Col> |
| | | <Col span={16}> |
| | | <div ><div className="title-text">来访形式</div></div> |
| | | <div>{infoData.visitWayName || '-'}</div> |
| | | <div>{caseInfo?.visitWayName || '-'}</div> |
| | | </Col> |
| | | <Col span={24}> |
| | | <div className="title"><div className="title-text">事项概况</div></div> |
| | | <div>{infoData.caseDes || '-'}</div> |
| | | <div>{caseInfo?.caseDes || '-'}</div> |
| | | </Col> |
| | | <Col span={24}> |
| | | <div className="title"><div className="title-text">事项申请</div></div> |
| | | <div>{infoData.caseClaim || '-'}</div> |
| | | <div>{caseInfo?.caseClaim || '-'}</div> |
| | | </Col> |
| | | <Col span={16}> |
| | | <div className="title"><div className="title-text">是否重大矛盾纠纷</div></div> |
| | | <div>{infoData.majorStatus === '0' ? '否' : '是'}</div> |
| | | <div>{caseInfo?.majorStatus === '0' ? '否' : '是'}</div> |
| | | </Col> |
| | | </Row> |
| | | <Col span={24} style={{ display: 'flex', alignItems: 'center', marginBottom: '16px', marginTop: '20px' }}> |
| | |
| | | <div className='gap'></div> |
| | | <Col span={24} style={{ marginTop: '12px' }}> |
| | | <div style={{ color: 'rgb(134, 144, 156)' }}>办理记录</div> |
| | | <div> |
| | | <HandleRecord isReview={false} data={list} /> |
| | | |
| | | {/* <div> |
| | | {records.map(record => ( |
| | | <div key={record.id} className='container-bottom-left-record'> |
| | | <div className='container-bottom-left-record-top'> |
| | |
| | | </div> |
| | | </div> |
| | | ))} |
| | | </div> |
| | | </div> */} |
| | | </Col> |
| | | <div className='gap'></div> |
| | | <div style={{ marginLeft: '-16px' }}> |
| | |
| | | <div className="title"> |
| | | <div className="title-text">登记机构</div> |
| | | </div> |
| | | <div>天河区棠下街道综治中心</div> |
| | | <div>{caseInfo?.inputUnitName || '-'}</div> |
| | | </Col> |
| | | <Col span={8}> |
| | | <div className="title"> |
| | | <div className="title-text">登记人</div> |
| | | </div> |
| | | <div> |
| | | 李晓明 |
| | | {caseInfo.inputUserName} |
| | | <img src={register} alt='' style={{ width: '14px', height: '14px', marginLeft: '8px', marginTop: '4px' }} /> |
| | | </div> |
| | | </Col> |
| | |
| | | <div className="title"> |
| | | <div className="title-text">登记时间</div> |
| | | </div> |
| | | <div>2024-7-8 10:00</div> |
| | | <div>{caseInfo?.visitTime || '-'}</div> |
| | | </Col> |
| | | </Row> |
| | | </div> |
| | |
| | | } |
| | | { |
| | | tabsActive === '2' && |
| | | <></> |
| | | <ProgressStep progressData={progressData} /> |
| | | } |
| | | {tabsActive === '3' && |
| | | <ApplyInfo /> |
| | | } |
| | | </TabPane> |
| | | })} |
| | |
| | | import React, { useState, useEffect } from 'react'; |
| | | import { Row, Col, Space, Button, Switch } from 'antd'; |
| | | import PersonCard from '@/components/personCard'; |
| | | import TableView from '@/components/TableView'; |
| | | import * as $$ from '@/utils/utility'; |
| | | import { Typography, Steps } from '@arco-design/web-react'; |
| | | import { question, register, Matter, transfer } from '@/assets/images' |
| | | import { Typography } from '@arco-design/web-react'; |
| | | import { question, register } from '@/assets/images'; |
| | | import FileTable from "./FileTable"; |
| | | |
| | | function getCaseInfoApi(id) { |
| | | return $$.ax.request({ url: 'caseInfo/getCaseInfo?id=' + id, type: 'get', service: 'mediate' }); |
| | | } |
| | | |
| | | function listIdTypeInfoApi(data) { |
| | | return $$.ax.request({ url: `fileInfo/listIdTypeInfo`, type: 'post', service: 'sys', data }); |
| | | } |
| | | |
| | | |
| | | export default function MatterDetail(props) { |
| | | const [fakeData, setFakeData] = useState([]);//当事人信息数据 |
| | | const [upload, setUpLoad] = useState(false); |
| | | const [filesCheck, setFilesCheck] = useState(false); |
| | | const [infoData, setInfoData] = useState({}); |
| | | |
| | | const fakeColumns = [ |
| | | { |
| | | title: '序号', |
| | | dataIndex: 'caseNo', |
| | | key: 'caseNo', |
| | | width: 100, |
| | | render: (text, record, index) => <span>{index + 1}</span>, |
| | | }, |
| | | { |
| | | title: '材料类型', |
| | | dataIndex: 'ownerTypeName', |
| | | key: 'ownerTypeName', |
| | | width: 60, |
| | | |
| | | }, |
| | | { |
| | | title: '材料数量', |
| | | dataIndex: 'size', |
| | | key: 'size', |
| | | width: 180, |
| | | render: (text) => <span>{text}份</span>, |
| | | |
| | | }, |
| | | { |
| | | title: '材料名称', |
| | | dataIndex: 'fileNames', |
| | | key: 'fileNames', |
| | | width: 180, |
| | | |
| | | }, |
| | | { |
| | | title: '最新上传时间', |
| | | dataIndex: 'fileNames', |
| | | key: 'fileNames', |
| | | width: 180, |
| | | |
| | | }, |
| | | { |
| | | title: '操作', |
| | | dataIndex: 'perClassName', |
| | | key: 'perClassName', |
| | | width: 200, |
| | | render: (text) => ( |
| | | <div style={{ display: 'flex', color: '#1A6FB8', gap: '16px' }}> |
| | | <div onClick={() => setFilesCheck(true)}>查看</div> |
| | | <div>删除</div> |
| | | <div>下载</div> |
| | | <div onClick={() => setUpLoad(true)}>上传</div> |
| | | </div> |
| | | ) |
| | | }, |
| | | // 更多列配置... |
| | | ]; |
| | | |
| | | |
| | | 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 listIdTypeInfo = async () => { |
| | | const res = await listIdTypeInfoApi({ |
| | | mainId: props.id, //事项ID |
| | | ownerIdList: [props.id], //具体所属编号 |
| | | typeList: [] |
| | | }) |
| | | if (res.type) { |
| | | let data = res.data?.[0]?.fileList |
| | | if (res.data.length > 0) { |
| | | setFakeData1(data) |
| | | } |
| | | } |
| | | } |
| | | |
| | | useEffect(() => { |
| | | console.log(props); |
| | | getCaseInfo(props.id) |
| | | listIdTypeInfo() |
| | | }, [props.id]) |
| | | getCaseInfo(props.caseId) |
| | | }, [props.caseId]) |
| | | |
| | | //获取id |
| | | const getCaseInfo = async (id) => { |
| | | const res = await getCaseInfoApi('24083010062110001') |
| | | |
| | | const res = await getCaseInfoApi(id) |
| | | if (res.type) { |
| | | let data = res.data |
| | | const partyList = data.personList.concat(data.agentList) |
| | |
| | | <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>事件材料</h5> |
| | | </Space> |
| | | </Col> |
| | | |
| | | <TableView |
| | | columns={fakeColumns} |
| | | dataSource={fakeData1} |
| | | size="small" |
| | | rowKey="id" |
| | | bordered={true} |
| | | style={{ marginBottom: '20px' }} |
| | | /> |
| | | <FileTable mainId={props.caseId} fileInfoList={infoData.fileInfoList} isReview={true}/> |
| | | <Col span={24} className='title'> |
| | | <Space size='small'> |
| | | <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>登记信息</h5> |
| | |
| | | <> |
| | | { |
| | | applyDialog?.map((item, index) => ( |
| | | <table border="1" align="center" cellpadding="6" className="table"> |
| | | <table border="1" align="center" cellpadding="6" className="table" key={item.id}> |
| | | <tr> |
| | | <th bgcolor="#F7F8FA" className="table-title" width="120">姓名</th> |
| | | <td width='380'><div style={{ display: 'flex' }}><div>{item.trueName || '-'}</div><div className="title-personRemark">自然人</div></div></td> |
| | |
| | | return ( |
| | | <> |
| | | {agentDialog?.map((item, index) => ( |
| | | <table border="1" align="center" cellpadding="6" className="table" style={{ marginTop: '20px', marginBottom: '20px' }}> |
| | | <table border="1" align="center" cellpadding="6" className="table" style={{ marginTop: '20px', marginBottom: '20px' }} key={item.id}> |
| | | <tr> |
| | | <th bgcolor="#F7F8FA" className="table-title" width="120">姓名</th> |
| | | <td width='380'><div style={{ display: 'flex' }}><div>{item.trueName || '-'}</div><div className="title-personRemark">代理人</div></div></td> |
| | |
| | | return ( |
| | | <> |
| | | {respondent?.map((item, index) => ( |
| | | <table border="1" align="center" cellpadding="6" className="table" style={{ marginTop: '20px', marginBottom: '20px' }}> |
| | | <table border="1" align="center" cellpadding="6" className="table" style={{ marginTop: '20px', marginBottom: '20px' }} key={item.id}> |
| | | <tr> |
| | | <th bgcolor="#F7F8FA" className="table-title" width="120">企业名称</th> |
| | | <td width='380'><div style={{ display: 'flex' }}><div>{item.trueName}</div><div className="title-personRemark">{item.perClassName}</div></div></td> |
| | |
| | | return ( |
| | | <> |
| | | {company?.map((item, index) => ( |
| | | <table border="1" align="center" cellpadding="6" className="table" style={{ marginTop: '20px', marginBottom: '20px' }}> |
| | | <table border="1" align="center" cellpadding="6" className="table" style={{ marginTop: '20px', marginBottom: '20px' }} key={item.id}> |
| | | <tr> |
| | | <th bgcolor="#F7F8FA" className="table-title" width="120">机构名称</th> |
| | | <td width='380'><div style={{ display: 'flex' }}><div>{item.trueName}</div><div className="title-personRemark">{item.perClassName}</div></div></td> |
| | |
| | | <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h4>事件材料</h4> |
| | | </Space> |
| | | </Col> |
| | | <FileTable mainId={props.mainId} fileInfoList={props.fileInfoList}/> |
| | | <FileTable mainId={props.mainId} fileInfoList={props.fileInfoList} isReview={false}/> |
| | | |
| | | <DocumentScanner |
| | | visible={scanFile} |
| | |
| | | |
| | | // === 测试环境 === |
| | | // debug: 'https://gz.hugeinfo.com.cn/', |
| | | debug: 'http://n3uvrw.natappfree.cc/', |
| | | debug: 'http://8pxgs3.natappfree.cc/', |
| | | img: 'http://120.79.193.119:9103/wx414ae04ac3f10b4e/images/', |
| | | assets: 'http://120.79.193.119:9103/wx414ae04ac3f10b4e/js/', |
| | | txt: 'http://120.79.193.119:9103/wx414ae04ac3f10b4e/txt/', |
| | | |
| | | |
| | | // === 正式环境 === |
| | | // web: 'https://zfw-dyh.by.gov.cn/', |
| | | // img: 'https://zfw-dyh.by.gov.cn/wechat/images/', |
| | | // assets: 'https://zfw-dyh.by.gov.cn/wechat/js/', |
| | | // txt: 'https://zfw-dyh.by.gov.cn/wechat/txt/', |
| | | web: 'https://zfw-dyh.by.gov.cn/', |
| | | img: 'https://zfw-dyh.by.gov.cn/gz/wechat/images/', |
| | | assets: 'https://zfw-dyh.by.gov.cn/gz/wechat/js/', |
| | | txt: 'https://zfw-dyh.by.gov.cn/gz/wechat/txt/', |
| | | |
| | | // 文件查看url 后面接附件编号 |
| | | fileShowUrl: 'dyh-sys/api/v1/fileInfo/show/', |
| | | fileShowUrl: 'gzdyh-sys/api/v1/fileInfo/show/', |
| | | // 文件下载url 后面接附件编号 |
| | | fileDownUrl: 'dyh-sys/api/v1/fileInfo/down/', |
| | | fileDownUrl: 'gzdyh-sys/api/v1/fileInfo/down/', |
| | | // 不同服务接口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 |
| | | // 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', //dyh-utils |
| | | |
| | | // 正式环境 |
| | | mediate: 'gzdyh-mediate', // gzdyh-mediate |
| | | cust: 'gzdyh-cust', // gzdyh-cust |
| | | oper: 'gzdyh-oper', // gzdyh-oper |
| | | sys: 'gzdyh-sys', // gzdyh-sys |
| | | disp: 'gzdyh-disp', //gzdyh-disp |
| | | utils: 'gzdyh-utils', //gzdyh-utils |
| | | }; |
| | | |
| | | module.exports = { |
| | |
| | | "pages/addAddress/index", |
| | | "pages/speechToText/index", |
| | | "pages/addPerson/index", |
| | | "pages/DetailPerson/index", |
| | | "pages/AIAide/index", |
| | | "pages/AIAideDetail/index", |
| | | "pages/myRegisterList/index", |
| | | "pages/myRegisterFlow/index", |
| | | "pages/myRegisterDetail/index", |
| | | "pages/autograph/index", |
| | | "pages/course/index", |
| | | "pages/orderConfirm/index", |
| | |
| | | values: selectOption[indexArr[0]].children[indexArr[1]].children || [], |
| | | defaultIndex: indexArr[2] |
| | | }, |
| | | { |
| | | values: selectOption[indexArr[0]].children[indexArr[1]].children[indexArr[2]].children || [], |
| | | defaultIndex: indexArr[3] |
| | | }, |
| | | ]; |
| | | selectData.forEach((x) => { |
| | | x.values.forEach((y) => { |
| | |
| | | async _getUserInfo() { |
| | | console.log('个人信息') |
| | | console.log(app.globalData.access_token, 'app.globalData.access_token1111111') |
| | | // const res = await getUserInfoApi(); |
| | | // $$.hideLoading(); |
| | | // if (res.type) { |
| | | // this.triggerEvent('getUserInfo', res.data); |
| | | // } |
| | | const res = await getUserInfoApi(); |
| | | $$.hideLoading(); |
| | | if (res.type) { |
| | | if(res.data.trueName !== null) |
| | | this.triggerEvent('getUserInfo', res.data); |
| | | } |
| | | if (app.globalData.access_token && res.data.trueName === null) { |
| | | let actoken = app.globalData.access_token; |
| | | wx.request({ |
| | | url: 'https://xcx.pinganbaiyun.cn/p_060_cs_intf/api_001/sv_002_get_paby_login_info', //仅为示例,并非真实的接口地址 |
| | | data: { |
| | | "access_token": '测试token', |
| | | "app_id": "测试", |
| | | "secret": "测试" |
| | | }, |
| | | method: 'post', |
| | | success: (res1) => { |
| | | $$.hideLoading(); |
| | | this.triggerEvent('getUserInfo', { |
| | | ...res1.data[0], |
| | | trueName: res1.data[0].XM, |
| | | idcard: res1.data[0].ZJHM, |
| | | mobile: res1.data[0].LXDH |
| | | }); |
| | | } |
| | | }) |
| | | } |
| | | |
| | | |
| | | |
| | | }, |
| | | // 请求下拉框资源 |
| | | async _getSelectOptionData() { |
| | |
| | | data-type="location" |
| | | is-link="{{ !isCheck }}" |
| | | label="居住地" |
| | | placeholder="省/市/区(县)/街道" |
| | | placeholder="市/区(县)/街道" |
| | | readonly |
| | | value="{{ submitData.prov ? wxs.showLocation(submitData) : '' }}" |
| | | /> |
| | |
| | | <van-icon name="{{ imgUrl }}steps-arrow.png" size="14" /> |
| | | </block> |
| | | <block wx:else> |
| | | <van-icon name="{{ imgUrl }}steps-arrow-active.png" size="14" /> |
| | | <van-icon custom-style="font-weight:600" name="arrow" size="14" /> |
| | | </block> |
| | | </view> |
| | | </view> |
New file |
| | |
| | | // pages/AIAide/index.js |
| | | const $$ = require('../../utils/util'); |
| | | const app = getApp(); |
| | | |
| | | function getawApi(submitData) { |
| | | return $$.request({ |
| | | url: 'case-law/get-law', |
| | | type: 'post', |
| | | ai: true, |
| | | submitData, |
| | | service: 'mediate', |
| | | }); |
| | | } |
| | | // 获取案例 |
| | | function getCaseApi(submitData) { |
| | | return $$.request({ |
| | | url: 'case-law/get-case', |
| | | type: 'post', |
| | | ai: true, |
| | | submitData, |
| | | service: 'mediate', |
| | | }); |
| | | } |
| | | |
| | | Page({ |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | | data: { |
| | | imgUrl: $$.url.img, |
| | | AIData: [], //法条 |
| | | caseData: [], //案例 |
| | | }, |
| | | |
| | | async getaw(data) { |
| | | let newData = { |
| | | caseDes: data.caseDes, |
| | | caseClaim: data.caseClaim, |
| | | caseId: data.caseId, |
| | | } |
| | | $$.showLoading(); |
| | | const res = await getawApi(newData); |
| | | $$.hideLoading(); |
| | | if (res.type) { |
| | | let nowData = res.data || [] |
| | | this.setData({ |
| | | AIData: nowData.map(i => ({ |
| | | ...i, |
| | | show: false |
| | | })) |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | // 案例 |
| | | async getCase(data) { |
| | | let newData = { |
| | | caseDes: data.caseDes, |
| | | caseClaim: data.caseClaim, |
| | | caseId: data.caseId, |
| | | } |
| | | $$.showLoading(); |
| | | const res = await getCaseApi(newData); |
| | | $$.hideLoading(); |
| | | if (res.type) { |
| | | this.setData({ |
| | | caseData: res.data || [] |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | // 打开折叠法条 |
| | | lawClick(e) { |
| | | let item = e.currentTarget.dataset.item; |
| | | let index = e.currentTarget.dataset.index; |
| | | this.setData({ |
| | | AIData: this.data.AIData.map((i, idx) => ({ |
| | | ...i, |
| | | show: idx === index ? i.show ? false : true : false, |
| | | })) |
| | | }) |
| | | }, |
| | | |
| | | // 跳转案例详情 |
| | | caseClick(e) { |
| | | let url = e.currentTarget.dataset.url; |
| | | let caseId = e.currentTarget.dataset.caseid; |
| | | let caseType = e.currentTarget.dataset.casetype; |
| | | |
| | | wx.navigateTo({ |
| | | url: url + '?caseId=' + caseId + '&type=' + caseType, |
| | | }); |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | console.log('options', options); |
| | | let { |
| | | caseDes, |
| | | caseClaim, |
| | | caseId, |
| | | } = options; |
| | | this.getaw({ |
| | | caseDes, |
| | | caseClaim, |
| | | caseId, |
| | | }) |
| | | this.getCase({ |
| | | caseDes, |
| | | caseClaim, |
| | | caseId, |
| | | }) |
| | | }, |
| | | }) |
New file |
| | |
| | | { |
| | | "navigationBarTitleText": "解纷助手", |
| | | "usingComponents": {} |
| | | } |
New file |
| | |
| | | <!--pages/AIAide/index.wxml--> |
| | | |
| | | <wxs module="wxs" src="../../utils/wxs/util.wxs" /> |
| | | |
| | | <view class="card"> |
| | | <view class="card_main"> |
| | | <block wx:if="{{caseData.length>0}}"> |
| | | <view class="caseList_head"> |
| | | <van-icon size="22" name="{{imgUrl}}AIAide_1.png" />为您推荐与申请相似的典型案例({{caseData.length}}) |
| | | </view> |
| | | <view class="caseList" bindtap="caseClick" data-caseId="{{item.caseId}}" data-caseType="{{item.caseType}}" data-url="../../pages/AIAideDetail/index" wx:for="{{caseData}}" wx:key="index"> |
| | | <view class="caseList_flex"> |
| | | <text class="ellipsis">{{item.caseName}}</text> |
| | | <view class="cell-arrow"> |
| | | <van-icon color="#1A6FB8" size="14" name="arrow" /> |
| | | </view> |
| | | </view> |
| | | <view class="caseList_title">相似度:{{'-'}}% | 发生地:广东省 广州市</view> |
| | | </view> |
| | | </block> |
| | | <block wx:if="{{AIData.length>0}}"> |
| | | <view class="line"></view> |
| | | <view class="caseList_head"> |
| | | <van-icon size="22" name="{{imgUrl}}AIAide_2.png" />为您推荐与申请相关的专业法条({{AIData.length}}) |
| | | </view> |
| | | <view class="caseList" wx:for="{{AIData}}" wx:key="index"> |
| | | <view bindtap="lawClick" data-item="{{item}}" data-index="{{index}}" class="caseList_flex"> |
| | | <text class="ellipsis">《{{item.lawTitle}}》{{item.lawIndex}}</text> |
| | | <view wx:if="{{item.show}}" class="cell-arrow"> |
| | | <van-icon color="#1A6FB8" size="14" name="arrow-down" /> |
| | | </view> |
| | | <view wx:else class="cell-arrow"> |
| | | <van-icon color="#1A6FB8" size="14" name="arrow-up" /> |
| | | </view> |
| | | </view> |
| | | <view wx:if="{{item.show}}" class="show-line"> |
| | | |
| | | </view> |
| | | <view wx:if="{{item.show}}" class="show-Law"> |
| | | {{item.lawDesc}} |
| | | </view> |
| | | </view> |
| | | <view class="assess"> |
| | | <van-icon size="18" name="{{imgUrl}}AIAide_3.png" /> |
| | | <van-icon size="18" name="{{imgUrl}}AIAide_4.png" /> |
| | | </view> |
| | | </block> |
| | | <view wx:if="{{caseData.length}}" class="flex_end">以上内容均由人工智能模型生成,其生成内容的准确性和完整性无法保证,不代表我们的态度或观点</view> |
| | | </view> |
| | | </view> |
New file |
| | |
| | | /* pages/AIAide/index.wxss */ |
| | | |
| | | .card { |
| | | padding: 24rpx; |
| | | height: 100%; |
| | | background-color: #fff; |
| | | position: relative; |
| | | } |
| | | |
| | | .card_main { |
| | | background-color: #F6F7FB; |
| | | border-radius: 8px; |
| | | } |
| | | |
| | | .flex_end { |
| | | /* position: fixed; |
| | | bottom: 40rpx; */ |
| | | color: rgba(23, 26, 29, 0.24); |
| | | font-size: 28rpx; |
| | | /* padding: 0 52rpx; */ |
| | | text-align: center; |
| | | padding: 24rpx 0; |
| | | } |
| | | |
| | | .caseList { |
| | | border-radius: 4px; |
| | | background-color: #fff; |
| | | padding: 24rpx; |
| | | margin: 0 24rpx 16rpx 24rpx; |
| | | } |
| | | |
| | | .caseList_flex { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-bottom: 8rpx; |
| | | } |
| | | |
| | | .cell-arrow { |
| | | width: 16px; |
| | | height: 16px; |
| | | background: #f6f7fb; |
| | | border-radius: 50%; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | padding: 6rpx; |
| | | } |
| | | |
| | | .caseList_title { |
| | | color: rgba(23, 26, 29, 0.60); |
| | | font-size: 24rpx; |
| | | line-height: 40rpx; |
| | | } |
| | | |
| | | .caseList_head { |
| | | display: flex; |
| | | gap: 8rpx; |
| | | padding: 24rpx 24rpx; |
| | | margin-top: 24rpx; |
| | | } |
| | | |
| | | .line { |
| | | border: 1px dashed #e5e6eb; |
| | | margin: 32rpx 24rpx 0; |
| | | } |
| | | |
| | | .assess { |
| | | display: flex; |
| | | gap: 32rpx; |
| | | justify-content: flex-end; |
| | | padding: 12rpx 24rpx 32rpx; |
| | | } |
| | | |
| | | .ellipsis { |
| | | overflow: hidden; |
| | | /* 确保超出容器的文本会被裁剪 */ |
| | | white-space: nowrap; |
| | | /* 保证文本在一行内显示 */ |
| | | text-overflow: ellipsis; |
| | | /* 使用省略号表示文本超出 */ |
| | | } |
| | | |
| | | .show-line { |
| | | margin: 24rpx 0; |
| | | border-top: 1px solid #F0F0F0; |
| | | } |
| | | |
| | | .show-Law { |
| | | color: var(--main-color); |
| | | } |
New file |
| | |
| | | // pages/AIAideDetail/index.js |
| | | const $$ = require('../../utils/util'); |
| | | const app = getApp(); |
| | | |
| | | function getCaseDetail(submitData) { |
| | | return $$.request({ |
| | | url: 'case-law/get-case-detail', |
| | | type: 'get', |
| | | ai: true, |
| | | submitData, |
| | | service: 'mediate', |
| | | }); |
| | | } |
| | | |
| | | Page({ |
| | | |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | | data: { |
| | | data: {} |
| | | }, |
| | | |
| | | async getaw(data) { |
| | | $$.showLoading(); |
| | | const res = await getCaseDetail(data); |
| | | $$.hideLoading(); |
| | | if (res.type) { |
| | | this.setData({ |
| | | data: res.data || {} |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | let nowData = { |
| | | ...options |
| | | } |
| | | this.getaw(nowData) |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面初次渲染完成 |
| | | */ |
| | | onReady() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面显示 |
| | | */ |
| | | onShow() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面隐藏 |
| | | */ |
| | | onHide() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面卸载 |
| | | */ |
| | | onUnload() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 页面相关事件处理函数--监听用户下拉动作 |
| | | */ |
| | | onPullDownRefresh() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 页面上拉触底事件的处理函数 |
| | | */ |
| | | onReachBottom() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 用户点击右上角分享 |
| | | */ |
| | | onShareAppMessage() { |
| | | |
| | | } |
| | | }) |
New file |
| | |
| | | { |
| | | "navigationBarTitleText": "典型案例", |
| | | "usingComponents": {} |
| | | } |
New file |
| | |
| | | <!--pages/AIAideDetail/index.wxml--> |
| | | <view class="title">{{data.caseTitle||'-'}}</view> |
| | | <view class="line"></view> |
| | | <view class="card"> |
| | | <view class="subtitle">【案件描述】</view> |
| | | <view class="text"> |
| | | {{data.caseDesc||'-'}} |
| | | </view> |
| | | <view class="subtitle">【和解协议】</view> |
| | | <view class="text"> |
| | | {{data.agreeContent||'-'}} |
| | | </view> |
| | | <view class="subtitle">【立案依据】</view> |
| | | <view class="text"> |
| | | {{data.legalBasis||'-'}} |
| | | </view> |
| | | </view> |
New file |
| | |
| | | /* pages/AIAideDetail/index.wxss */ |
| | | .card { |
| | | padding: 24rpx; |
| | | } |
| | | |
| | | .title { |
| | | text-align: center; |
| | | padding: 24rpx; |
| | | font-size: 34rpx; |
| | | line-height: 50rpx; |
| | | font-weight: 600; |
| | | } |
| | | |
| | | .line { |
| | | border: 1px dashed #e5e6eb; |
| | | margin: 0 24rpx 24rpx 24rpx; |
| | | } |
| | | |
| | | .subtitle { |
| | | color: var(--main-color); |
| | | } |
| | | |
| | | .text { |
| | | padding-bottom: 24rpx; |
| | | } |
New file |
| | |
| | | // pages/DetailPerson/index.js |
| | | const $$ = require('../../utils/util'); |
| | | |
| | | // 详情接口 |
| | | function getByIdApi(param) { |
| | | return $$.request({ |
| | | url: 'casePerson/getById', |
| | | type: 'get', |
| | | submitData: param || {}, |
| | | service: 'mediate' |
| | | }) |
| | | } |
| | | |
| | | function getByIdAgentApi(param) { |
| | | return $$.request({ |
| | | url: 'caseAgent/getById', |
| | | type: 'get', |
| | | submitData: param || {}, |
| | | service: 'mediate' |
| | | }) |
| | | } |
| | | Page({ |
| | | |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | | data: { |
| | | data: {} |
| | | }, |
| | | |
| | | |
| | | //获取申请人详情 |
| | | async getById(id) { |
| | | $$.showLoading(); |
| | | const res = await getByIdApi({ |
| | | id |
| | | }); |
| | | $$.hideLoading(); |
| | | if (res.type) { |
| | | let data = res.data || {}; |
| | | this.setData({ |
| | | data |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | |
| | | //获取被申请人详情 |
| | | async getagenById(id) { |
| | | $$.showLoading(); |
| | | const res = await getByIdAgentApi({ |
| | | id |
| | | }); |
| | | $$.hideLoading(); |
| | | if (res.type) { |
| | | let data = res.data || {}; |
| | | this.setData({ |
| | | data |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | let id = options.id; |
| | | let perType = options.perType; |
| | | // 15_020008-1申请方 24_00006-1 申请方代理人 15_020008-2被申请方 24_00006-2 被申请方代理人 |
| | | if (perType === '15_020008-1' || perType === '15_020008-2') { |
| | | this.getById(id) |
| | | } |
| | | if (perType === '24_00006-1' || perType === '24_00006-2') { |
| | | this.getagenById(id) |
| | | } |
| | | }, |
| | | |
| | | |
| | | }) |
New file |
| | |
| | | { |
| | | "navigationBarTitleText": "当事人信息", |
| | | "usingComponents": {} |
| | | } |
New file |
| | |
| | | <!--pages/DetailPerson/index.wxml--> |
| | | <view class="card"> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">人员类型</view> |
| | | <view>{{ data.perTypeName || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">姓名</view> |
| | | <view>{{ data.trueName || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">联系方式</view> |
| | | <view>{{ data.mobile || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">证件类型</view> |
| | | <view>{{ data.certiTypeName || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">证件号码</view> |
| | | <view>{{ data.certiNo || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">联系地址</view> |
| | | <view>{{ data.addr || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">户籍地址</view> |
| | | <view>{{ data.placeAddr || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">工作单位</view> |
| | | <view>{{ data.workUnit || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">民族</view> |
| | | <view>{{ data.nationName || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">性别</view> |
| | | <view>{{ data.sexName || '-' }}</view> |
| | | </view> |
| | | </view> |
New file |
| | |
| | | /* pages/DetailPerson/index.wxss */ |
| | | |
| | | .card { |
| | | background-color: #fff; |
| | | padding: 24rpx; |
| | | } |
| | | |
| | | .cell3 { |
| | | margin-bottom: 16rpx; |
| | | } |
| | | |
| | | .cell-title-placeholder { |
| | | font-size: 28rpx; |
| | | line-height: 44rpx; |
| | | color: rgba(0, 0, 0, 0.5); |
| | | } |
| | |
| | | |
| | | .cell-item-select {} |
| | | |
| | | .addPerson-main { |
| | | display: flex; |
| | | flex-direction: column; |
| | | } |
| | | |
| | | .cell-idCard { |
| | | color: var(--main-color); |
| | | display: flex; |
| | |
| | | } |
| | | }, |
| | | }); |
| | | let agreement = wx.getStorageSync('agreement'); |
| | | |
| | | // 获取弹窗信息提醒 |
| | | if (app.globalData.token) { |
| | | if (!agreement) { |
| | | this.getAgreement(); |
| | | return; |
| | | } |
| | | |
| | | if (!$$.userTest('realName', 'bottom')) { |
| | | this.setData({ |
| | | popupMsg: [{ |
| | |
| | | <view class="main_title">服务申请</view> |
| | | <view class="flex"> |
| | | <view bindtap="handleNavigateTo" data-url="../../pages/register/index" data-type="register" class="flex_1 flex_blue"> |
| | | <view> |
| | | <view class="main_subTitle">反映诉求</view> |
| | | <view>轻松来访</view> |
| | | <!-- <view>轻松来访</view> --> |
| | | </view> |
| | | <image class="home-image" src="{{imgUrl}}home_3.png" mode="" /> |
| | | </view> |
| | | <view bindtap="handleNavigateTo" data-url="../../pages/myRegisterList/index" data-type="register" class="flex_1 flex_orange"> |
| | | <view class="main_subTitle">我的申请</view> |
| | | <view>申请进度查询</view> |
| | | <view> |
| | | <view class="main_subTitle">进度查询</view> |
| | | <!-- <view>申请进度查询</view> --> |
| | | </view> |
| | | <image class="home-image" src="{{imgUrl}}home_4.png" mode="" /> |
| | | </view> |
| | | </view> |
| | | <view class="flex marginTop_12"> |
| | | <!-- <view class="flex marginTop_12"> |
| | | <view class="flex_1 flex_green"> |
| | | <view class="main_subTitle">事项咨询</view> |
| | | <view>解决您身边的问题</view> |
| | | </view> |
| | | </view> |
| | | </view> --> |
| | | </view> |
| | | <!-- 化解资源 --> |
| | | <view> |
| | |
| | | <view> |
| | | <view class="flex_dt"> |
| | | <view class="main_title">咨询动态</view> |
| | | <view bindtap="handleGetMore" data-type="newMsg" wx:if="{{ newMessageMore }}" class=" flex_dt_more">查看更多 |
| | | <image class="flex_dt_more_img" src="./../../img/right.png" /> |
| | | <view bindtap="handleGetMore" data-type="newMsg" wx:if="{{ newMessageMore }}" class=" flex_dt_more"> |
| | | <text>查看更多</text> |
| | | <van-icon name="arrow" size="16" /> |
| | | </view> |
| | | </view> |
| | | <view class="dt_card" bindtap="goSeeMessage" wx:for="{{ newMessage }}" style="margin-top:{{index===0?0:'8px'}}" wx:key="index"> |
| | |
| | | <time-format format="YYYY-MM-DD" value="{{ item.pushTime }}" /> {{item.playNum}}人阅读 |
| | | </view> |
| | | </view> |
| | | <view class="dt_card_r"></view> |
| | | <view class="dt_card_r"> |
| | | <image src="{{item.showUrl}}" mode="" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | |
| | | } |
| | | |
| | | .home-image { |
| | | width: 112rpx; |
| | | height: 100rpx; |
| | | position: absolute; |
| | | right: 10rpx; |
| | | bottom: 0; |
| | | } |
| | | |
| | | .flex_1 { |
| | | flex: 1; |
| | | color: #fff; |
| | | padding: 12px; |
| | | border-radius: 4px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | position: relative; |
| | | align-items: center; |
| | | } |
| | | |
| | | .flex_2 { |
| | |
| | | |
| | | .dt_card_r { |
| | | flex: 1; |
| | | background: #ef6c24; |
| | | width: 184rpx; |
| | | height: 136rpx; |
| | | } |
| | | |
| | | .dt_card_r image { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | |
| | | .dt_card_title { |
| | |
| | | } |
| | | |
| | | .flex_blue { |
| | | height: 80rpx; |
| | | background: linear-gradient(90deg, #5fa6d4, #3a8ac6 50%, #1a6fb8 100%); |
| | | } |
| | | |
| | | .flex_orange { |
| | | height: 80rpx; |
| | | background: linear-gradient(90deg, #ffa940, #fa8c16 50%, #ef6c24 100%); |
| | | } |
| | | |
New file |
| | |
| | | // pages/myRegisterDetail/index.js |
| | | const $$ = require('../../utils/util'); |
| | | |
| | | // 详情接口 |
| | | function getByIdApi(param) { |
| | | return $$.request({ |
| | | url: 'caseInfo/getCaseInfo', |
| | | type: 'get', |
| | | submitData: param || {}, |
| | | service: 'mediate' |
| | | }) |
| | | } |
| | | |
| | | // 附件查询接口 |
| | | function getfilesApi(param) { |
| | | return $$.request({ |
| | | url: 'fileInfo/listByMainId', |
| | | type: 'get', |
| | | submitData: param || {}, |
| | | service: 'sys' |
| | | }) |
| | | } |
| | | |
| | | |
| | | Page({ |
| | | |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | | data: { |
| | | imgUrl: $$.url.img, |
| | | submitData: {}, |
| | | oneList: [], |
| | | fileList: [] |
| | | }, |
| | | |
| | | // 获取附件信息 |
| | | async getFilesId(id) { |
| | | $$.showLoading(); |
| | | const res = await getfilesApi({ |
| | | mainId: id |
| | | }); |
| | | $$.hideLoading(); |
| | | if (res.type) { |
| | | let data = res.data || {}; |
| | | this.setData({ |
| | | fileList: data |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | detailPerson(e) { |
| | | let item = e.currentTarget.dataset.item; |
| | | console.log('item', item); |
| | | wx.navigateTo({ |
| | | url: '../../pages/DetailPerson/index?id=' + item.id + '&perType=' + item.perType, |
| | | }); |
| | | }, |
| | | |
| | | // 获取纠纷案件详情 |
| | | async getById(data) { |
| | | $$.showLoading(); |
| | | const res = await getByIdApi({ |
| | | id: data.id |
| | | }); |
| | | $$.hideLoading(); |
| | | if (res.type) { |
| | | let data = res.data || {}; |
| | | this.setData({ |
| | | submitData: data, |
| | | oneList: [...data.personList, ...data.agentList] |
| | | }); |
| | | this.getFilesId(data.id) |
| | | |
| | | } |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | this.getById(options); |
| | | }, |
| | | |
| | | |
| | | }) |
New file |
| | |
| | | { |
| | | "navigationBarTitleText": "事项详情", |
| | | "usingComponents": {} |
| | | } |
New file |
| | |
| | | <!--pages/myRegisterDetail/index.wxml--> |
| | | <view class="three-tag"> |
| | | <van-tabs bind:click="threeTagChange" active="{{threeAvtice}}"> |
| | | <!-- 人员信息 --> |
| | | <van-tab title="人员信息" name="1"> |
| | | <view style="padding:24rpx"> |
| | | <view wx:for="{{oneList}}" data-item="{{ item }}" data-index="{{ index }}" wx:key="index"> |
| | | <view class='one-list' bindtap="detailPerson" data-item="{{ item }}" wx:if="{{item.perType==='15_020008-1'||item.perType==='24_00006-1'}}"> |
| | | <view class="one-list-l green">申请方</view> |
| | | <view class="one-list-r"> |
| | | <view class="one-list-r-t"> |
| | | <view class="one-list-text">{{item.trueName}}</view> |
| | | <view class="one-list-phone">{{item.mobile}}</view> |
| | | <view wx:if="{{item.perType==='24_00006-1'}}" class="one-list-tag">代理人</view> |
| | | </view> |
| | | <view class="one-list-r-b">{{item.perClassName}} | {{item.certiNo}} </view> |
| | | </view> |
| | | </view> |
| | | <view class='one-list' bindtap="detailPerson" data-item="{{ item }}" wx:else> |
| | | <view class="one-list-l orange"><text>被申\n请方</text></view> |
| | | <view class="one-list-r"> |
| | | <view class="one-list-r-t"> |
| | | <view class="one-list-text">{{item.trueName}}</view> |
| | | <view class="one-list-phone">{{item.mobile}}</view> |
| | | <view wx:if="{{item.perType==='24_00006-2'}}" class="one-list-tag-orange">代理人</view> |
| | | </view> |
| | | <view class="one-list-r-b">{{item.perClassName}} |{{item.certiNo}}</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </van-tab> |
| | | <van-tab title="纠纷信息" name="2"> |
| | | <view class="three-tag2"> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">纠纷类型</view> |
| | | <view>{{ submitData.caseTypeName || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">纠纷发生时间</view> |
| | | <view>{{ submitData.occurTime || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">纠纷发生地点</view> |
| | | <view>{{ submitData.addr || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">涉及人数(人)</view> |
| | | <view>{{ submitData.peopleNum || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">涉及金额(元)</view> |
| | | <view>{{ submitData.amount || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">事项概况</view> |
| | | <view>{{ submitData.caseDes || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">事项申请</view> |
| | | <view>{{ submitData.caseClaim || '-' }}</view> |
| | | </view> |
| | | <!-- todo 人工智能提醒 --> |
| | | </view> |
| | | |
| | | </van-tab> |
| | | <van-tab title="事件材料" name="3"> |
| | | <view style="height: 16rpx;"> |
| | | |
| | | </view> |
| | | <view style="padding: 24rpx 32rpx 0; background-color: #fff;" wx:for="{{fileList}}" wx:key="index" data-item="{{item}}" data-index="{{index}}"> |
| | | <view class="fileList_border"> |
| | | <image class="fileList_img" src="{{imgUrl}}image_1.png" mode="" /> |
| | | <view class="flex_1"> |
| | | <view style="margin-bottom: 10rpx;">{{item.name}}</view> |
| | | <view style="display: flex;gap:16rpx"><text class="fileList_title">{{item.size}}{{item.unit}}</text><text data-item="{{item}}" data-index="{{index}}" bindtap="handlePreviewImage" class="public-color">预览</text></view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </van-tab> |
| | | </van-tabs> |
| | | </view> |
New file |
| | |
| | | /* pages/myRegisterDetail/index.wxss */ |
| | | @import '../../styles/public_components.wxss'; |
| | | |
| | | .one-list { |
| | | background: #fff; |
| | | padding: 24rpx; |
| | | display: flex; |
| | | position: relative; |
| | | gap: 8px; |
| | | margin-bottom: 12px; |
| | | border-radius: 8px; |
| | | } |
| | | |
| | | .one-list-l { |
| | | height: 96rpx; |
| | | width: 96rpx; |
| | | border-radius: 4px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | color: #fff; |
| | | font-size: 28rpx; |
| | | text-align: center; |
| | | } |
| | | |
| | | .one-list-r-t { |
| | | display: flex; |
| | | gap: 8px; |
| | | font-size: 28rpx; |
| | | line-height: 44rpx; |
| | | } |
| | | |
| | | .one-list-phone { |
| | | color: rgba(23, 26, 29, 0.60); |
| | | } |
| | | |
| | | .one-list-tag { |
| | | font-size: 24rpx; |
| | | line-height: 40rpx; |
| | | border-radius: 2px; |
| | | background: #e6fffb; |
| | | color: #13C2C2; |
| | | padding: 0 8rpx; |
| | | } |
| | | |
| | | .one-list-tag-orange { |
| | | font-size: 24rpx; |
| | | line-height: 40rpx; |
| | | border-radius: 2px; |
| | | background: #FFF2E6; |
| | | color: #EF6C24; |
| | | padding: 0 8rpx; |
| | | } |
| | | |
| | | .one-list-r-b { |
| | | color: rgba(23, 26, 29, 0.60); |
| | | font-size: 24rpx; |
| | | line-height: 40rpx; |
| | | margin-top: 8rpx; |
| | | } |
| | | |
| | | .three-tag {} |
| | | |
| | | .three-tag .van-tabs__wrap { |
| | | height: 96rpx !important; |
| | | } |
| | | |
| | | .three-tag .van-tabs__nav { |
| | | height: 100%; |
| | | } |
| | | |
| | | .three-tag .van-tabs__scroll--line { |
| | | height: 100%; |
| | | } |
| | | |
| | | .three-tag .van-tab { |
| | | height: 100%; |
| | | line-height: 96rpx !important; |
| | | } |
| | | |
| | | .three-tag2 { |
| | | background-color: #fff; |
| | | margin-top: 16rpx; |
| | | padding: 24rpx 32rpx; |
| | | } |
| | | |
| | | .green { |
| | | background-color: #13C2C2; |
| | | } |
| | | |
| | | .orange { |
| | | background-color: #EF6C24; |
| | | } |
| | | |
| | | .fileList { |
| | | background-color: #fff; |
| | | padding: 24rpx 32rpx; |
| | | display: flex; |
| | | gap: 32rpx; |
| | | align-items: center; |
| | | } |
| | | |
| | | .fileList_border { |
| | | padding-bottom: 24rpx; |
| | | display: flex; |
| | | gap: 32rpx; |
| | | align-items: center; |
| | | border-bottom: 1px solid rgba(126, 134, 142, 0.16); |
| | | } |
| | | |
| | | .fileList_img { |
| | | width: 84rpx; |
| | | height: 96rpx; |
| | | } |
| | | |
| | | .fileList_title { |
| | | color: rgba(23, 26, 29, 0.40); |
| | | font-size: 28rpx; |
| | | } |
| | | |
| | | .fileList_img_del { |
| | | width: 32rpx; |
| | | height: 32rpx; |
| | | } |
| | | |
| | | .flex_1 { |
| | | flex: 1; |
| | | } |
| | |
| | | label: '不予受理', |
| | | value: '4' |
| | | }], |
| | | dataList: [{ |
| | | title: '', |
| | | show: true |
| | | }, { |
| | | title: '', |
| | | show: false |
| | | }] |
| | | dataList: [] |
| | | }, |
| | | |
| | | // 查看 |
| | |
| | | searchSelect(e) { |
| | | let idx = e.currentTarget.dataset.index; |
| | | let item = e.currentTarget.dataset.item; |
| | | console.log('item', item); |
| | | let searchData = { |
| | | ...this.data.search, |
| | | processStatus: item.value |
| | |
| | | ...item, |
| | | hover: index === idx ? true : false |
| | | })), |
| | | searchValue: item.label |
| | | searchValue: item.label, |
| | | showModal: false |
| | | }) |
| | | }, |
| | | |
| | | // 切换tab |
| | | threeTagChange(e) { |
| | | value = e.detail; |
| | | this.setData({ |
| | | search: { |
| | | let value = e.detail; |
| | | console.log(value, ); |
| | | let data = { |
| | | ...this.data.search, |
| | | personType: value, |
| | | personType: value.name, |
| | | } |
| | | this.setData({ |
| | | search: data |
| | | }); |
| | | this.pageQuery(data) |
| | | }, |
| | | |
| | | // 折叠列表 |
| | |
| | | }); |
| | | } |
| | | if (res.type) { |
| | | let list = [] |
| | | if (params.page === 1) { |
| | | this.data.data = res.data.content || []; |
| | | list = res.data.content || []; |
| | | } else { |
| | | this.data.data = this.data.data.concat(res.data.content || []); |
| | | list = this.data.data.concat(res.data.content || []); |
| | | } |
| | | this.setData({ |
| | | search: params, |
| | | data: this.data.data, |
| | | dataList: list.map((i, index) => ({ |
| | | ...i, |
| | | plaintiffNames: i.plaintiffList.length > 0 ? i.plaintiffList.map(i => i.trueName).join('、') : '-', |
| | | defendantNames: i.defendantList.length > 0 ? i.defendantList.map(i => i.trueName).join('、') : '-', |
| | | show: index === 0 ? true : false |
| | | })), |
| | | total: res.data.totalElements || 0 |
| | | }); |
| | | if (type === 'onPullDownRefresh') { |
| | |
| | | { |
| | | "navigationBarTitleText": "进度查询", |
| | | "usingComponents": {} |
| | | "usingComponents": { |
| | | "time-format": "../../components/time-format/index" |
| | | } |
| | | } |
| | |
| | | </view> |
| | | <!-- 筛选 --> |
| | | <view bindtap="searchChange" class="search"> |
| | | <view class="search-title">全部</view> |
| | | <view class="search-title">{{searchValue}}</view> |
| | | <van-icon size='9' name="{{imgUrl}}down.png" /> |
| | | </view> |
| | | |
| | |
| | | <view style="{{!item.show&&'border-bottom:none'}}" class="list-top"> |
| | | <view>2024年7月12日反映诉求</view> |
| | | <view class="list-top-r"> |
| | | <view class="list-top-r-tag">待受理</view> |
| | | <view class="list-top-r-tag">{{item.processStatusName||'-'}}</view> |
| | | <van-icon wx:if="{{item.show}}" size='16' bindtap="changeShow" data-index="{{ index }}" name="{{imgUrl}}myRegisterList_1.png" /> |
| | | <van-icon wx:else size='16' bindtap="changeShow" data-index="{{ index }}" name="{{imgUrl}}myRegisterList_4.png" /> |
| | | </view> |
| | |
| | | <view class="list-content" wx:if="{{item.show}}"> |
| | | <view class="list-content-flex"> |
| | | <view class="list-content-title">申请时间</view> |
| | | <view class="list-content-value">2024-7-12 12:00</view> |
| | | <view class="list-content-value"> |
| | | <time-format format="YYYY-MM-DD" value="{{item.createTime}}" /> |
| | | </view> |
| | | </view> |
| | | <view class="list-content-flex margin-top"> |
| | | <view class="list-content-title">申请方</view> |
| | | <view class="list-content-value">李晓明</view> |
| | | <view class="list-content-value">{{item.plaintiffNames}}</view> |
| | | </view> |
| | | <view class="list-content-flex margin-top"> |
| | | <view class="list-content-title">被申请方</view> |
| | | <view class="list-content-value">广东好又多贸易有限公司、张菲菲</view> |
| | | <view class="list-content-value">{{item.defendantNames}}</view> |
| | | </view> |
| | | <view class="list-border"></view> |
| | | <view class="list-detail"> |
| | | <view class="list-detail" bindtap="GoPage" data-url="{{'../../pages/myRegisterDetail/index?id='+item.id}}"> |
| | | <view class="list-detail-l"> |
| | | <van-icon size='16' name="{{imgUrl}}myRegisterList_1.png" /> |
| | | <view class="list-detail-title">事项详情</view> |
| | | </view> |
| | | <view class="list-detail-r">查看</view> |
| | | </view> |
| | | <view class="list-detail"> |
| | | <view class="list-detail" bindtap="GoPage" data-url="{{'../../pages/AIAide/index?caseDes='+item.caseDes+'&caseClaim='+item.caseClaim+'&caseId='+item.id}}"> |
| | | <view class="list-detail-l"> |
| | | <van-icon size='16' name="{{imgUrl}}myRegisterList_2.png" /> |
| | | <view class="list-detail-title">解纷助手</view> |
| | | </view> |
| | | <view class="list-detail-r">查看</view> |
| | | </view> |
| | | <view bindtap="GoPage" data-url="../../pages/myRegisterFlow/index" class="list-detail"> |
| | | <view wx:if="{{item.processStatus !==1}}" bindtap="GoPage" data-url="../../pages/myRegisterFlow/index" class="list-detail"> |
| | | <view class="list-detail-l"> |
| | | <van-icon size='16' name="{{imgUrl}}myRegisterList_3.png" /> |
| | | <view class="list-detail-title">办理流程</view> |
| | |
| | | gap: 8rpx; |
| | | } |
| | | |
| | | |
| | | |
| | | .list-detail-title { |
| | | font-size: 28rpx; |
| | | } |
| | |
| | | |
| | | // 实名认证 |
| | | function realNameAuthenticationApi(submitData) { |
| | | return $$.request({ url: 'paUser/realAuth', type: 'post', submitData, service: 'cust' }); |
| | | return $$.request({ |
| | | url: 'paUser/realAuth', |
| | | type: 'post', |
| | | submitData, |
| | | service: 'cust' |
| | | }); |
| | | } |
| | | |
| | | Page({ |
| | |
| | | |
| | | // 展示弹出层 |
| | | handleShowPopup(e) { |
| | | this.setData({ popup: e.detail }); |
| | | this.setData({ |
| | | popup: e.detail |
| | | }); |
| | | }, |
| | | |
| | | // 关闭弹出层 |
| | | handleClosePopup() { |
| | | this.data.popup.visible = false; |
| | | this.setData({ popup: this.data.popup }); |
| | | this.setData({ |
| | | popup: this.data.popup |
| | | }); |
| | | }, |
| | | |
| | | // 下拉框确认选择 |
| | | handleConfirmPicker({ detail }) { |
| | | handleConfirmPicker({ |
| | | detail |
| | | }) { |
| | | let type = this.data.popup.type; |
| | | let value = detail.detail.value; |
| | | let arr = []; |
| | |
| | | this.data.submitData[x] = value[t === 0 ? 'value' : 'label']; |
| | | }); |
| | | } |
| | | this.setData({ popup: this.data.popup, submitData: this.data.submitData }); |
| | | this.setData({ |
| | | popup: this.data.popup, |
| | | submitData: this.data.submitData |
| | | }); |
| | | }, |
| | | |
| | | // form的change |
| | | handleChange(e) { |
| | | const { key, value } = e.detail; |
| | | const { |
| | | key, |
| | | value |
| | | } = e.detail; |
| | | this.data.submitData[key] = value; |
| | | this.setData({ submitData: this.data.submitData }); |
| | | this.setData({ |
| | | submitData: this.data.submitData |
| | | }); |
| | | }, |
| | | |
| | | // 修改picker的列时触发 |
| | | handleChangeColumns(e) { |
| | | if (this.data.popup.type === 'location') { |
| | | let selectData = $$.changeLocation(e, this.selectComponent('#personal-data-dom').location, this.data.popup.selectData); |
| | | this.setData({ popup: { ...this.data.popup, selectData } }); |
| | | this.setData({ |
| | | popup: { |
| | | ...this.data.popup, |
| | | selectData |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | |
| | |
| | | msg = '请勾选确认信息'; |
| | | } |
| | | if (msg) { |
| | | $$.showToast({ title: msg }); |
| | | $$.showToast({ |
| | | title: msg |
| | | }); |
| | | return false; |
| | | } |
| | | let that = this; |
| | |
| | | that.realNameAuthentication(); |
| | | }, |
| | | fail() { |
| | | $$.showToast({ title: '抱歉!识别失败,请稍后重试' }); |
| | | $$.showToast({ |
| | | title: '抱歉!识别失败,请稍后重试' |
| | | }); |
| | | }, |
| | | }); |
| | | }, |
| | | fail(res) { |
| | | $$.showToast({ title: '抱歉!请求失败,稍后重试' }); |
| | | $$.showToast({ |
| | | title: '抱歉!请求失败,稍后重试' |
| | | }); |
| | | }, |
| | | }); |
| | | }, |
| | |
| | | wx.getStorage({ |
| | | key: 'userInfo', |
| | | success(res2) { |
| | | res2.data.realStatus = '1'; |
| | | wx.setStorage({ key: 'userInfo', data: res2.data }); |
| | | console.log('res2', res2); |
| | | let nowData = { |
| | | ...res2.data, |
| | | realStatus: 1, |
| | | } |
| | | wx.setStorage({ |
| | | key: 'userInfo', |
| | | data: nowData |
| | | }); |
| | | }, |
| | | }); |
| | | $$.showToast({ icon: 'success', title: '实名认证成功' }); |
| | | $$.showToast({ |
| | | icon: 'success', |
| | | title: '实名认证成功' |
| | | }); |
| | | wx.removeStorage({ |
| | | key: 'access_token' |
| | | }); |
| | |
| | | this.data.submitData[x] = data[x]; |
| | | } |
| | | }); |
| | | this.setData({ submitData: this.data.submitData }); |
| | | this.setData({ |
| | | submitData: this.data.submitData |
| | | }); |
| | | }, |
| | | |
| | | // 获取手机号码 |
| | | async handleGetPhoneNumber(e) { |
| | | let phone = await this.selectComponent('#common-page').handleGetPhoneNumber(e.detail); |
| | | this.data.submitData.mobile = phone; |
| | | this.setData({ submitData: this.data.submitData }); |
| | | this.setData({ |
| | | submitData: this.data.submitData |
| | | }); |
| | | }, |
| | | |
| | | /** |
| | |
| | | }); |
| | | } |
| | | |
| | | // 附件上传的id |
| | | function getByIdApi(param) { |
| | | return $$.request({ |
| | | url: 'caseUtils/getNewTimeCaseId', |
| | | type: 'get', |
| | | submitData: param || {}, |
| | | service: 'utils' |
| | | }); |
| | | } |
| | | |
| | | // 删除附件 |
| | | function delfileApi(id) { |
| | | return $$.request({ |
| | | url: 'fileInfo/deleteFileById?id=' + id, |
| | | type: 'get', |
| | | service: 'sys', |
| | | }); |
| | | } |
| | | |
| | | function getawApi(submitData) { |
| | | return $$.request({ |
| | | url: 'case-law/get-clain-rise-case', |
| | | type: 'post', |
| | | ai: true, |
| | | submitData, |
| | | service: 'mediate', |
| | | }); |
| | | } |
| | | |
| | | |
| | | function caseRegisterSaveApi(submitData) { |
| | | return $$.request({ |
| | | url: 'caseInfo/caseRegister', |
| | |
| | | select: {}, // 下拉框数据 |
| | | goToMaterialSave: false, // 避免跳转到材料上传页面重复保存草稿 |
| | | agreementMsg: '', // 服务协议 |
| | | ownerId: '', //附件上传id |
| | | data: { |
| | | stepText: 5, //用户须知倒计时5秒 |
| | | timer: null, // 用于存储定时器的引用 |
| | |
| | | amount: '', |
| | | caseDes: '', |
| | | caseClaim: '', |
| | | plaintiffList: [], |
| | | defendantList: [], |
| | | }, // 表单数据 |
| | | fileList: [], //表单附件 |
| | | addPersonData: {}, //添加的当事人 |
| | | materialNum: 0, // 纠纷材料总数量 |
| | | userInfoVisible: false, // 是否采用个人信息更新申请人信息 |
| | |
| | | this.setData({ |
| | | popupVisible: false |
| | | }); |
| | | if (this.data.oneList?.length === 0) { |
| | | this.setData({ |
| | | addMePlaintiff: true |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | // 下一步 or 上一步 |
| | | handleNext(e) { |
| | | let type = e.currentTarget.dataset.type; |
| | | if (type === 'next' && this.data.stepsActive === 0) { |
| | | if (this.data.oneList?.length <= 0) { |
| | | $$.showToast({ |
| | | title: '请至少添加一名当事人', |
| | | duration: 500 |
| | | }); |
| | | } else { |
| | | this.setData({ |
| | | stepsActive: 1 |
| | | }); |
| | | this.getById(); |
| | | } |
| | | return; |
| | | } |
| | | if (type === 'back' && this.data.stepsActive === 1) { |
| | |
| | | return; |
| | | } |
| | | if (type === 'next' && this.data.stepsActive === 1) { |
| | | let newData = this.data.submitData; |
| | | |
| | | console.log('this.data.submitData', this.data.submitData); |
| | | if (!newData.caseType) { |
| | | $$.showToast({ |
| | | title: '请选择纠纷类型', |
| | | duration: 500 |
| | | }); |
| | | return; |
| | | } |
| | | if (!newData.occurTime) { |
| | | $$.showToast({ |
| | | title: '请选择纠纷发生时间', |
| | | duration: 500 |
| | | }); |
| | | return; |
| | | } |
| | | if (!newData.addr) { |
| | | $$.showToast({ |
| | | title: '请选择纠纷发生地', |
| | | duration: 500 |
| | | }); |
| | | return; |
| | | } |
| | | if (!newData.caseDes) { |
| | | $$.showToast({ |
| | | title: '请填写事项概况', |
| | | duration: 500 |
| | | }); |
| | | return; |
| | | } |
| | | if (!newData.caseClaim) { |
| | | $$.showToast({ |
| | | title: '请填写事项申请', |
| | | duration: 500 |
| | | }); |
| | | return; |
| | | } |
| | | if (!this.data.fileList?.length <= 0) { |
| | | // 附件上传提示 |
| | | this.setData({ |
| | | showFileTip: true |
| | | }) |
| | | return; |
| | | } |
| | | // 提交AI接口 |
| | | this.getaw(newData); |
| | | this.setData({ |
| | | stepsActive: 2 |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | if (type === 'back' && this.data.stepsActive === 2) { |
| | | this.setData({ |
| | | stepsActive: 1 |
| | |
| | | this.caseRegisterSave({ |
| | | ...data, |
| | | personList, |
| | | agentList |
| | | agentList, |
| | | id: this.data.ownerId, |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | async getaw(data) { |
| | | let newData = { |
| | | caseDes: data.caseDes, |
| | | caseClaim: data.caseClaim, |
| | | caseId: this.data.ownerId, |
| | | } |
| | | const res = await getawApi(newData); |
| | | if (res.type) { |
| | | console.log('res.data', res.data); |
| | | this.setData({ |
| | | AIData: res.data || {} |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | async getById() { |
| | | $$.showLoading(); |
| | | const res = await getByIdApi(); |
| | | $$.hideLoading(); |
| | | if (res.type) { |
| | | this.setData({ |
| | | ownerId: res.data || '' |
| | | }) |
| | | } |
| | | }, |
| | | |
| | |
| | | const res = await caseRegisterSaveApi(params); |
| | | $$.hideLoading(); |
| | | if (res.type) { |
| | | Toast('提交成功'); |
| | | // Toast('提交成功'); |
| | | this.setData({ |
| | | saveStatus: true |
| | | }) |
| | | } |
| | | }, |
| | | |
| | |
| | | let url = e.currentTarget.dataset.url; |
| | | wx.navigateTo({ |
| | | url: url, |
| | | }); |
| | | }, |
| | | |
| | | // 图片识别 |
| | | ocrClick(e) { |
| | | let key = e.currentTarget.dataset.key; |
| | | let keyNum = e.currentTarget.dataset.keyNum; |
| | | let that = this; |
| | | wx.chooseMedia({ |
| | | count: 1, |
| | | mediaType: ['image'], |
| | | success(res2) { |
| | | const tempFiles = res2.tempFiles[0]; |
| | | $$.showLoading(); |
| | | wx.uploadFile({ |
| | | url: `${$$.baseUrl}${$$.url.sys}/api/wechat/fileInfo/recognitionText`, |
| | | filePath: tempFiles.tempFilePath, |
| | | name: 'file', |
| | | header: { |
| | | Authorization: app.globalData.token |
| | | }, |
| | | complete(res3) { |
| | | $$.hideLoading(); |
| | | if (res3.errMsg === 'uploadFile:ok') { |
| | | let { |
| | | code, |
| | | data |
| | | } = JSON.parse(res3.data); |
| | | if (code == -1) { |
| | | $$.errorModal({ |
| | | content: '识别失败' |
| | | }); |
| | | return; |
| | | } |
| | | let wordsResult = data?.ocrResult?.wordsResult.join(''); |
| | | let wordsResultNum = data?.ocrResult?.wordsResultNum; |
| | | console.log('wordsResult', wordsResult); |
| | | that.setData({ |
| | | submitData: { |
| | | ...that.data.submitData, |
| | | [key]: wordsResult |
| | | }, |
| | | [keyNum]: wordsResultNum |
| | | }); |
| | | } |
| | | }, |
| | | }); |
| | | }, |
| | | }); |
| | | }, |
| | | |
| | |
| | | }) |
| | | }, |
| | | |
| | | // 获取省市区等地理资源 |
| | | async getLocationData() { |
| | | $$.showLoading(); |
| | | const res = await $$.commonRequest({ |
| | | url: `${$$.url.assets}locationSelect.json`, |
| | | type: 'get' |
| | | }); |
| | | // 上传文件图片 |
| | | async handleUploadFile(e) { |
| | | let id = e.currentTarget.dataset.id; |
| | | let type = e.currentTarget.dataset.type; |
| | | let that = this; |
| | | this.filesArr = []; |
| | | wx.chooseMedia({ |
| | | mediaType: ['image'], |
| | | success(res2) { |
| | | const tempFiles = res2.tempFiles; |
| | | // 多个文件逐一上传 |
| | | tempFiles.forEach((x, t) => { |
| | | $$.showLoading('上传中...'); |
| | | wx.uploadFile({ |
| | | url: `${$$.baseUrl}${$$.url.sys}/api/wechat/fileInfo/upload?mainId=${id}&ownerId=${id}&ownerType=${type}`, |
| | | filePath: x.tempFilePath, |
| | | name: 'file', |
| | | header: { |
| | | Authorization: app.globalData.token |
| | | }, |
| | | complete(res) { |
| | | $$.hideLoading(); |
| | | if (res) { |
| | | let location = []; |
| | | $$.province.forEach((x) => { |
| | | location.push(res[x][0]); |
| | | if (res.errMsg === 'uploadFile:ok') { |
| | | const getData = JSON.parse(res.data) |
| | | const file = { |
| | | ...getData.data[0], |
| | | wxurl: x.tempFilePath |
| | | }; |
| | | that.setData({ |
| | | fileList: that.data.fileList.concat(file) |
| | | }) |
| | | $$.showToast({ |
| | | icon: 'success', |
| | | title: '上传成功', |
| | | duration: 500 |
| | | }); |
| | | this.location = location; |
| | | } else { |
| | | $$.showToast({ |
| | | title: '上传失败', |
| | | duration: 500 |
| | | }); |
| | | } |
| | | |
| | | }, |
| | | }); |
| | | }); |
| | | }, |
| | | }); |
| | | }, |
| | | |
| | | // 预览图片 |
| | | handlePreviewImage(e) { |
| | | let item = e.currentTarget.dataset.item; |
| | | console.log('item', item); |
| | | let index = e.currentTarget.dataset.index; |
| | | wx.previewImage({ |
| | | current: item.wxurl, |
| | | urls: [item.wxurl] // 需要预览的图片http链接列表 |
| | | }); |
| | | }, |
| | | |
| | | // 删除图片 |
| | | async handleDelImage(e) { |
| | | let item = e.currentTarget.dataset.item; |
| | | let index = e.currentTarget.dataset.index; |
| | | let id = e.currentTarget.dataset.id; |
| | | let type = e.currentTarget.dataset.type; |
| | | $$.showModal({ |
| | | title: '删除材料确认', |
| | | content: '确定删除材料' + item.name + '吗?', |
| | | cancelText: '我再想想', |
| | | confirmText: '确定删除', |
| | | success: async (res) => { |
| | | if (res.confirm) { |
| | | $$.showLoading(); |
| | | const res = await delfileApi(id); |
| | | if (res.type) { |
| | | $$.showToast({ |
| | | icon: 'success', |
| | | title: '删除成功', |
| | | duration: 500 |
| | | }); |
| | | let list = this.data.fileList.filter((i, idx) => idx !== index); |
| | | console.log('list', list); |
| | | this.setData({ |
| | | fileList: list |
| | | }) |
| | | } |
| | | } |
| | | }, |
| | | }); |
| | | |
| | | }, |
| | | |
| | | // 请求下拉框资源 |
| | |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad: function () { |
| | | this.getLocationData(); |
| | | let agreement = wx.getStorageSync('agreement'); |
| | | if (!agreement) { |
| | | this.getAgreement(); |
| | |
| | | </block> |
| | | |
| | | <!-- 描述纠纷 --> |
| | | <block wx:elif="{{stepsActive === 1}}"> |
| | | <view class="page-flex" wx:elif="{{stepsActive === 1}}"> |
| | | <view class="popupMsg-form"> |
| | | <view bindtap="caseTypeGoPage" data-url="../../pages/caseType/index" class="cell cell-item" data-title="纠纷类型" data-key="certiType" data-type="cardType"> |
| | | <view class="cell-title"><text><text class="cell-required">*</text> 纠纷类型</text></view> |
| | |
| | | <view class="cell-item"> |
| | | <view class="cell-title1">涉及人数(人)</view> |
| | | <view class="cell-select"> |
| | | <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-key="peopleNum" input-align="right" placeholder="请填写" value="{{ submitData.peopleNum || '' }}" /> |
| | | <van-field type='number' bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-key="peopleNum" input-align="right" placeholder="请填写" value="{{ submitData.peopleNum || '' }}" /> |
| | | </view> |
| | | </view> |
| | | <view class="cell-item"> |
| | | <view class="cell-title1">涉及金额(元)</view> |
| | | <view class="cell-select"> |
| | | <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-key="amount" input-align="right" placeholder="请填写" value="{{ submitData.amount || '' }}" /> |
| | | <van-field type='number' bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-key="amount" input-align="right" placeholder="请填写" value="{{ submitData.amount || '' }}" /> |
| | | </view> |
| | | </view> |
| | | <view style="height: 16rpx;"></view> |
| | |
| | | <view class="textarea-foot"> |
| | | <view class="textarea-limit">{{caseDesNum||0}}/2000字</view> |
| | | <view class="textarea-ability"> |
| | | <view class="textarea-img"> |
| | | <view bindtap="ocrClick" data-keyNum="caseDesNum" data-key="caseDes" class=" textarea-img"> |
| | | <image src="{{imgUrl}}imgOcr.png" mode="" />识别图片 |
| | | </view> |
| | | <view style="padding: 0 8rpx;">|</view> |
| | |
| | | <view class="textarea-foot"> |
| | | <view class="textarea-limit">{{caseClaimNum||0}}/500字</view> |
| | | <view class="textarea-ability"> |
| | | <view class="textarea-img"> |
| | | <view bindtap="ocrClick" data-keyNum="caseClaimNum" data-key="caseClaim" class="textarea-img"> |
| | | <image src="{{imgUrl}}imgOcr.png" mode="" />识别图片 |
| | | </view> |
| | | <view style="padding: 0 8rpx;">|</view> |
| | |
| | | </block> |
| | | <view style="height: 16rpx;"></view> |
| | | <block> |
| | | <view style="padding-left: 32rpx;" class="cell-item"> |
| | | <view style="padding-left: 32rpx;" bindtap="handleUploadFile" data-id="{{ownerId}}" data-type="22_00014-1" class="cell-item"> |
| | | <view class="upload-title"> |
| | | 事件材料 |
| | | <image src="{{imgUrl}}upload-add.png" mode="" /> |
| | |
| | | 说明:建议上传人员身份证及纠纷涉及的证件材料,代理人请上传身份证及授权委托书 |
| | | </view> |
| | | </view> |
| | | <view class="fileList" wx:for="{{fileList}}" wx:key="index" data-item="{{item}}" data-index="{{index}}"> |
| | | <image class="fileList_img" src="{{imgUrl}}image_1.png" mode="" /> |
| | | <view class="flex_1"> |
| | | <view style="margin-bottom: 10rpx;">{{item.name}}</view> |
| | | <view style="display: flex;gap:16rpx"><text class="fileList_title">{{item.size}}{{item.unit}}</text><text data-item="{{item}}" data-index="{{index}}" bindtap="handlePreviewImage" class="public-color">预览</text></view> |
| | | </view> |
| | | <image data-id="{{item.id}}" data-type="22_00014-1" data-item="{{item}}" data-index="{{index}}" bindtap="handleDelImage" class="fileList_img_del" src="{{imgUrl}}image_del.png" mode="" /> |
| | | </view> |
| | | </block> |
| | | </view> |
| | | <view class="submitButton" catch:tap=""> |
| | | <view style="flex: 1;"> |
| | | <view class="two-button"> |
| | |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | |
| | | <!-- 提交申请 --> |
| | | <block wx:elif="{{stepsActive === 2}}"> |
| | | <view class="page-flex" wx:elif="{{stepsActive === 2}}"> |
| | | <view class="popupMsg-form"> |
| | | <view class="three-tag"> |
| | | <van-tabs bind:click="threeTagChange" active="{{threeAvtice}}"> |
| | |
| | | <view class="cell-title-placeholder">事项申请</view> |
| | | <view>{{ submitData.caseClaim || '-' }}</view> |
| | | </view> |
| | | <!-- todo 人工智能提醒 --> |
| | | <!-- 人工智能提醒 --> |
| | | <!-- <view class="Ai_tip"> --> |
| | | <view class="Ai_tip" wx:if="{{AIData.isClaimRisk===1}}"> |
| | | <view class="Ai_tip_title">{{AIData.analysisProcess||''}}</view> |
| | | <view class="Ai_tip_line"></view> |
| | | <view class="Ai_tip_text">内容依据人工智能技术和相关法律数据提供,仅供参考</view> |
| | | </view> |
| | | </view> |
| | | |
| | | </van-tab> |
| | | <van-tab title="事件材料" name="3">内容 3</van-tab> |
| | | <van-tab title="事件材料" name="3"> |
| | | <view style="height: 16rpx;"> |
| | | |
| | | </view> |
| | | <view style="padding: 24rpx 32rpx 0; background-color: #fff;" wx:for="{{fileList}}" wx:key="index" data-item="{{item}}" data-index="{{index}}"> |
| | | <view class="fileList_border"> |
| | | <image class="fileList_img" src="{{imgUrl}}image_1.png" mode="" /> |
| | | <view class="flex_1"> |
| | | <view style="margin-bottom: 10rpx;">{{item.name}}</view> |
| | | <view style="display: flex;gap:16rpx"><text class="fileList_title">{{item.size}}{{item.unit}}</text><text data-item="{{item}}" data-index="{{index}}" bindtap="handlePreviewImage" class="public-color">预览</text></view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </van-tab> |
| | | </van-tabs> |
| | | </view> |
| | | |
| | | </view> |
| | | <view class="submitButton" catch:tap=""> |
| | | <view style="flex: 1;"> |
| | | <view class="two-button"> |
| | |
| | | </view> |
| | | </view> |
| | | </block> |
| | | </block> |
| | | |
| | | <!-- 已提交 --> |
| | | <block wx:else> |
| | | <view class="success"> |
| | | <van-icon color="#07c160" name="checked" size="106rpx" /> |
| | | <view class="success-title">申请已经提交</view> |
| | | <view class="success-subTitle">可通过小程序首页<navigator class="success-link" style="display: inline;" url="/pages/myMediate/index">我的调解</navigator>功能跟进调解进度</view> |
| | | <view class="success-NewButton"> |
| | | <view class="success-RedButton"> |
| | | <navigator url="/pages/myMediate/index" style="color: #fff;font-size: 14px;">我的调解</navigator> |
| | | </view> |
| | | </view> |
| | | <view> |
| | | <van-icon name="{{imgUrl}}success.png" size="200rpx" /> |
| | | <view class="success-title">申请已提交</view> |
| | | <view class="success-subTitle">您已成功提交申请,请保持联系方式畅通。您可以通过“穗好办”微信公众号了解处理进度</view> |
| | | <view style="margin-top: 40rpx;"> |
| | | <navigator class="success-link" style="display: inline;" url="/pages/homePage/index">返回首页</navigator> |
| | | </view> |
| | | <!-- <view class="success-button"> |
| | |
| | | height: 15px; |
| | | } |
| | | |
| | | .fileList { |
| | | background-color: #fff; |
| | | padding: 24rpx 32rpx; |
| | | display: flex; |
| | | gap: 32rpx; |
| | | align-items: center; |
| | | } |
| | | |
| | | .fileList_border { |
| | | padding-bottom: 24rpx; |
| | | display: flex; |
| | | gap: 32rpx; |
| | | align-items: center; |
| | | border-bottom: 1px solid rgba(126, 134, 142, 0.16); |
| | | } |
| | | |
| | | .fileList_img { |
| | | width: 84rpx; |
| | | height: 96rpx; |
| | | } |
| | | |
| | | .fileList_title { |
| | | color: rgba(23, 26, 29, 0.40); |
| | | font-size: 28rpx; |
| | | } |
| | | |
| | | .fileList_img_del { |
| | | width: 32rpx; |
| | | height: 32rpx; |
| | | } |
| | | |
| | | .flex_1 { |
| | | flex: 1; |
| | | } |
| | | |
| | | .three-tag { |
| | | margin-top: 16rpx; |
| | | } |
| | |
| | | background-color: #fff; |
| | | align-items: center; |
| | | padding-left: 32rpx; |
| | | } |
| | | |
| | | .Ai_tip { |
| | | background: #FFECE8; |
| | | padding: 8px 12px; |
| | | border-radius: 4px; |
| | | } |
| | | |
| | | .Ai_tip_title { |
| | | color: #F53F3F; |
| | | line-height: 46rpx; |
| | | } |
| | | |
| | | .page-flex { |
| | | display: flex; |
| | | flex-direction: column; |
| | | } |
| | | |
| | | .Ai_tip_line { |
| | | margin: 16rpx 0; |
| | | border-bottom: 1px solid rgba(245, 63, 63, 0.60); |
| | | } |
| | | |
| | | .Ai_tip_text { |
| | | color: rgba(245, 63, 63, 0.60); |
| | | font-size: 24rpx; |
| | | line-height: 40rpx; |
| | | } |
| | | |
| | | .textarea-limit { |
| | |
| | | } |
| | | |
| | | .success-title { |
| | | font-size: 34rpx; |
| | | line-height: 50rpx; |
| | | font-weight: 600; |
| | | font-size: 32rpx; |
| | | line-height: 48rpx; |
| | | padding: 32rpx 0; |
| | | } |
| | | |
| | | .success-subTitle { |
| | | width: 383rpx; |
| | | width: 498rpx; |
| | | color: var(--second-text-color); |
| | | margin: auto; |
| | | } |
| | |
| | | } |
| | | |
| | | .success-link { |
| | | color: #D1021C; |
| | | color: #fff; |
| | | width: 116px; |
| | | height: 36px; |
| | | background: #1a6fb8; |
| | | border-radius: 6px; |
| | | padding: 6px 26px; |
| | | margin-top: 32px; |
| | | } |
| | | |
| | | .success-NewButton { |
| | |
| | | const url = api.url; |
| | | |
| | | // 是否是开发环境 |
| | | const isDebug = true; |
| | | const isDebug = false; |
| | | |
| | | const baseUrl = isDebug ? api.url.debug : api.url.web; |
| | | |
| | |
| | | submitData, |
| | | service, |
| | | v1, |
| | | ai, |
| | | noToken |
| | | }) => { |
| | | const app = getApp(); |
| | |
| | | |
| | | let baseUrl = isDebug ? api.url.debug : api.url.web; |
| | | |
| | | let visitUrl = `${baseUrl}${api.url[service] || ''}/api/${v1 ? 'v1' : 'wechat'}/${url}`; |
| | | let visitUrl = `${baseUrl}${api.url[service] || ''}/api/${v1 ? 'v1' :ai ? 'ai' : 'wechat'}/${url}`; |
| | | |
| | | return new Promise((resolve, reject) => { |
| | | wx.request({ |
| | |
| | | success && success(res); |
| | | }, |
| | | }); |
| | | }; |
| | | |
| | | const ellipsis = ({ |
| | | value, |
| | | len |
| | | }) => { |
| | | if (!value) return ''; |
| | | |
| | | if (value.length > len) { |
| | | return value.slice(0, len) + '...'; |
| | | } |
| | | return value; |
| | | }; |
| | | |
| | | //api错误modal框消息提示 |
| | |
| | | const getLocationIndex = (data, currentData) => { |
| | | let selectOption = JSON.parse(JSON.stringify(data)); |
| | | let submitData = currentData; |
| | | let arr = [0, 0, 0, 0]; |
| | | if (submitData.prov) { |
| | | forEach: for (let i = 0; i < selectOption.length; i++) { |
| | | if (selectOption[i].value === submitData.prov) { |
| | | arr[0] = i; |
| | | break forEach; |
| | | } |
| | | } |
| | | } |
| | | let arr = [0, 0, 0]; |
| | | if (submitData.city) { |
| | | forEach: for (let i = 0; i < selectOption[arr[0]].children.length; i++) { |
| | | if (selectOption[arr[0]].children[i].value === submitData.city) { |
| | |
| | | } |
| | | } |
| | | } |
| | | if (submitData.road) { |
| | | forEach: for (let i = 0; i < selectOption[arr[0]].children[arr[1]].children[arr[2]].children.length; i++) { |
| | | if (selectOption[arr[0]].children[arr[1]].children[arr[2]].children[i].value === submitData.road) { |
| | | arr[3] = i; |
| | | break forEach; |
| | | } |
| | | } |
| | | } |
| | | // if (submitData.road) { |
| | | // forEach: for (let i = 0; i < selectOption[arr[0]].children[arr[1]].children[arr[2]].children.length; i++) { |
| | | // if (selectOption[arr[0]].children[arr[1]].children[arr[2]].children[i].value === submitData.road) { |
| | | // arr[3] = i; |
| | | // break forEach; |
| | | // } |
| | | // } |
| | | // } |
| | | return arr; |
| | | }; |
| | | |
| | |
| | | showToast, |
| | | errorModal, |
| | | showModal, |
| | | ellipsis, |
| | | showLoading, |
| | | hideLoading, |
| | | timeFormat, |