Merge branch 'master' of http://120.79.193.119:9090/r/gzzfw/frontEnd/gzDyh
| | |
| | | * @Company: hugeInfo |
| | | * @Author: ldh |
| | | * @Date: 2022-02-16 11:25:57 |
| | | * @LastEditTime: 2024-09-13 11:32:06 |
| | | * @LastEditors: dminyi 1301963064@qq.com |
| | | * @LastEditTime: 2024-09-14 10:03:46 |
| | | * @LastEditors: lwh |
| | | * @Version: 1.0.0 |
| | | * @Description: api地址 |
| | | */ |
| | |
| | | |
| | | return ( |
| | | <Form form={form} labelAlign="right" className="tableSearch"> |
| | | <Row gutter={[24, 16]}> |
| | | {itemData.map((x, t) => { |
| | | let placeholder = x.placeholder || setPlaceholder(x.name, x.type); |
| | | let allowClear = x.allowClear || true; |
| | | let dom = null; |
| | | let rules = {}; |
| | | if (x.type === 'Input') { |
| | | dom = <Input placeholder={placeholder} allowClear {...x} />; |
| | | rules = { max: x.max || 32, message: '搜索内容过长' }; |
| | | } |
| | | if (x.type === 'Select') { |
| | | dom = ( |
| | | <Select allowClear placeholder={placeholder} {...x}> |
| | | {x.selectdata?.map((y) => ( |
| | | <Option key={y.value}>{y.label}</Option> |
| | | ))} |
| | | </Select> |
| | | ); |
| | | } |
| | | if (x.type === 'RangePicker') { |
| | | rules = { type: 'array' }; |
| | | dom = ( |
| | | <RangePicker |
| | | style={{ width: '100%' }} |
| | | ranges={{ |
| | | '今日': [$$.myMoment(), $$.myMoment()], |
| | | '本月': [$$.myMoment().startOf('month'), $$.myMoment().endOf('month')], |
| | | }} |
| | | allowClear |
| | | {...x} |
| | | /> |
| | | ); |
| | | } |
| | | if (x.type === 'TreeSelect') { |
| | | dom = ( |
| | | <TreeSelect |
| | | showSearch |
| | | placeholder={placeholder} |
| | | dropdownStyle={{ maxHeight: 500, overflow: 'auto' }} |
| | | treeData={x.treedata} |
| | | treeDefaultExpandAll |
| | | allowClear |
| | | filterTreeNode={(inputValue, treeNode) => (treeNode.label.indexOf(inputValue) !== -1 ? true : false)} |
| | | {...x} |
| | | /> |
| | | ); |
| | | } |
| | | return ( |
| | | <> |
| | | <Col span={8} style={display && { display: searchMore ? 'block' : t < lineNum ? 'block' : 'none' }} key={t + 1}> |
| | | <Form.Item name={x.name} rules={[rules]} label={<div style={{ width: `${fontSize * labelLength}px` }}>{x.label}</div>}> |
| | | {dom} |
| | | </Form.Item> |
| | | </Col> |
| | | <Col span={8}></Col> |
| | | <Col span={8}></Col> |
| | | </> |
| | | |
| | | {itemData.map((x, t) => { |
| | | let placeholder = x.placeholder || setPlaceholder(x.name, x.type); |
| | | let allowClear = x.allowClear || true; |
| | | let dom = null; |
| | | let rules = {}; |
| | | if (x.type === 'Input') { |
| | | dom = <Input placeholder={placeholder} allowClear {...x} />; |
| | | rules = { max: x.max || 32, message: '搜索内容过长' }; |
| | | } |
| | | if (x.type === 'Select') { |
| | | dom = ( |
| | | <Select allowClear placeholder={placeholder} {...x}> |
| | | {x.selectdata?.map((y) => ( |
| | | <Option key={y.value}>{y.label}</Option> |
| | | ))} |
| | | </Select> |
| | | ); |
| | | })} |
| | | </Row> |
| | | } |
| | | if (x.type === 'RangePicker') { |
| | | rules = { type: 'array' }; |
| | | dom = ( |
| | | <RangePicker |
| | | style={{ width: '100%' }} |
| | | ranges={{ |
| | | '今日': [$$.myMoment(), $$.myMoment()], |
| | | '本月': [$$.myMoment().startOf('month'), $$.myMoment().endOf('month')], |
| | | }} |
| | | allowClear |
| | | {...x} |
| | | /> |
| | | ); |
| | | } |
| | | if (x.type === 'TreeSelect') { |
| | | dom = ( |
| | | <TreeSelect |
| | | showSearch |
| | | placeholder={placeholder} |
| | | dropdownStyle={{ maxHeight: 500, overflow: 'auto' }} |
| | | treeData={x.treedata} |
| | | treeDefaultExpandAll |
| | | allowClear |
| | | filterTreeNode={(inputValue, treeNode) => (treeNode.label.indexOf(inputValue) !== -1 ? true : false)} |
| | | {...x} |
| | | /> |
| | | ); |
| | | } |
| | | return ( |
| | | <Row className='tableSearch-searchMore-row' gutter={[24, 16]} style={display && { display: searchMore ? 'block' : t < lineNum ? 'block' : 'none' }}> |
| | | <Col span={x.span || 8} key={t + 1}> |
| | | <Form.Item name={x.name} rules={[rules]} label={<div style={{ width: `${fontSize * labelLength}px` }}>{x.label}</div>}> |
| | | {dom} |
| | | </Form.Item> |
| | | </Col> |
| | | </Row> |
| | | // <div> |
| | | // <Col span={8} style={display && { display: searchMore ? 'block' : t < lineNum ? 'block' : 'none' }} key={t + 1}> |
| | | // <Form.Item name={x.name} rules={[rules]} label={<div style={{ width: `${fontSize * labelLength}px` }}>{x.label}</div>}> |
| | | // {dom} |
| | | // </Form.Item> |
| | | // </Col> |
| | | // <Col span={8}></Col> |
| | | // <Col span={8}></Col> |
| | | // </div> |
| | | ); |
| | | })} |
| | | <Row style={{ marginTop: '16px' }}> |
| | | <Col span={24} style={{ textAlign: 'right' }}> |
| | | <Col span={24} style={{ textAlign: 'left' }}> |
| | | <Button className="public-buttonMargin" onClick={handleReset}> |
| | | 重置 |
| | | </Button> |
| | |
| | | </Button> |
| | | {display && ( |
| | | <span className="tableSearch-searchMore" onClick={() => setSearchMore(!searchMore)}> |
| | | {!searchMore ? '展开' : '折叠'} |
| | | {!searchMore ? '展开更多' : '收起更多'} |
| | | <DownOutlined className={`tableSearch-searchMore-icon ${searchMore && 'tableSearch-searchMore-iconRotate'}`} /> |
| | | </span> |
| | | )} |
| | |
| | | &-iconRotate { |
| | | transform: rotate(180deg); |
| | | } |
| | | &-row { |
| | | margin-bottom: 16px; |
| | | } |
| | | } |
| | |
| | | @warning-color: #FA8C16; // 警告色 |
| | | @warning-bg-color: #fdf6e0; // 警告色背景 |
| | | @error-color: #F53F3F; // 错误色 |
| | | @font-size-base: 16px; // 主字号 |
| | | @font-size-base: 14px; // 主字号 |
| | | @line-height-base: 1.5715; |
| | | @heading-color: rgba(0, 0, 0, 0.85); // 标题色 |
| | | @text-color: rgba(0, 0, 0, 0.85); // 主文本色 |
| | |
| | | import TableView from '../../components/TableView'; |
| | | import NewTableSearch from '../../components/NewTableSearch'; |
| | | import MyTabs from '../../components/MyTabs'; |
| | | |
| | | import './index.less' |
| | | const { Link } = Typography; |
| | | |
| | | // 获取数据 |
| | | function getMyMediationDataApi(submitData) { |
| | | return $$.ax.request({ url: 'caseTask/pageMyMediate', type: 'get', data: submitData, service: 'mediate' }); |
| | | function getCaseInfoDataApi(submitData) { |
| | | return $$.ax.request({ url: 'caseInfo/pageQueryAll', type: 'get', data: submitData, service: 'mediate' }); |
| | | } |
| | | |
| | | function getCacheLatjCaseGuideApi(submitData) { |
| | |
| | | let navigate = useNavigate(); |
| | | |
| | | // 搜索 |
| | | const [search, setSearch] = useState({ page: 1, size: 10, pageType: '1', joinRole: '1' }); |
| | | const [search, setSearch] = useState({ page: 1, size: 10, }); |
| | | |
| | | // 数据 |
| | | const [data, setData] = useState({ tableData: [] }); |
| | | |
| | | // 表头 |
| | | const columns = () => { |
| | | const columnOne = |
| | | search.pageType === '3' |
| | | ? [ |
| | | { |
| | | title: '调解结果', |
| | | dataIndex: 'mediResultName', |
| | | record: (text, record) => |
| | | !text ? '-' : <div className={`public-tag public-tag-${record.mediResult === '22_00025-1' ? 'tagGreen' : 'tagRed'}`}>{text}</div>, |
| | | }, |
| | | ] |
| | | : []; |
| | | const columnTwo = |
| | | search.pageType === '3' |
| | | ? [{ title: '调解结束时间', dataIndex: 'mediEndTime' }] |
| | | : [ |
| | | // TODO:暂时取消,后续可根据需求改动 |
| | | // { |
| | | // title: '处理时限', |
| | | // dataIndex: 'expireTime', |
| | | // render: (text, record) => { |
| | | // let obj = $$.getHours(text); |
| | | // return record.status === '1' ? ( |
| | | // <span className={obj.isNegativeNum ? 'tableView-dangerTime' : ''}>{!!text ? `${obj.hours}小时` : '-'}</span> |
| | | // ) : ( |
| | | // '-' |
| | | // ); |
| | | // }, |
| | | // }, |
| | | ]; |
| | | const columnThree = search.joinRole === '2' ? [{ title: '调解员', dataIndex: 'mediator' }] : []; |
| | | const columnsData = [ |
| | | { |
| | | title: '调解案号', |
| | | dataIndex: 'caseNo', |
| | | render: (text, record) => ( |
| | | <Space size={0}> |
| | | {record.taskType === '2' && <div className="myMediation-tuiTag">退</div>} |
| | | {record.serieStatus === '2' ? ( |
| | | <Space size={4}> |
| | | <FolderFilled className="public-folder" /> |
| | | <span>系列案</span> |
| | | </Space> |
| | | ) : ( |
| | | <Tooltip placement="topLeft" title={text}> |
| | | {text} |
| | | </Tooltip> |
| | | )} |
| | | </Space> |
| | | ), |
| | | }, |
| | | { title: '调解进度', dataIndex: 'processName' }, |
| | | ...columnOne, |
| | | { title: '申请人', dataIndex: 'plaintiffs' }, |
| | | { title: '被申请人', dataIndex: 'defendants' }, |
| | | { title: '纠纷发生地', dataIndex: 'addr' }, |
| | | { title: '调解类型', dataIndex: 'mediTypeName' }, |
| | | { title: '纠纷类型', dataIndex: 'caseTypeName' }, |
| | | { title: '申请渠道', dataIndex: 'canalName' }, |
| | | { title: '纠纷受理时间', dataIndex: 'acceptTime' }, |
| | | ...columnTwo, |
| | | ...columnThree, |
| | | { title: '协助调解员', width: 100, dataIndex: 'otherMediator' }, |
| | | { title: '事项状态', width: 80, dataIndex: 'statusName' }, |
| | | { title: '事项来源', width: 80, dataIndex: 'canalName' }, |
| | | { title: '事项等级', width: 80, dataIndex: 'caseLevel' }, |
| | | { title: '纠纷类型', width: 150, dataIndex: 'caseTypeName' }, |
| | | { title: '承办部门', width: 150, dataIndex: 'mediateDeptName' }, |
| | | { title: '配合部门', width: 150, dataIndex: 'assistUnitName' }, |
| | | { title: '化解结果', width: 80, dataIndex: 'mediResult' }, |
| | | { title: '办结时间', width: 80, dataIndex: 'closeTime' }, |
| | | // { title: '申请方', dataIndex: 'plaintiffList' }, |
| | | // { title: '被申请方', dataIndex: 'defendantList' }, |
| | | { title: '登记机构', dataIndex: 'inputUnitName' }, |
| | | { |
| | | title: '操作', |
| | | dataIndex: 'action', |
| | | width: 50, |
| | | render: (_, record) => { |
| | | let type = 'check'; |
| | | if (search.joinRole === '2') { |
| | | type = 'check' |
| | | } else if (search.joinRole === '1') { |
| | | if (search.pageType == '3') { |
| | | type = 'check'; |
| | | } else { |
| | | type = 'handle' |
| | | } |
| | | } |
| | | // if (search.joinRole === '1' && (search.pageType === '1' || search.pageType === '2')) { |
| | | // type = 'handle'; |
| | | // } |
| | | // if (search.joinRole === '2' && (search.pageType === '1' || search.pageType === '2')) { |
| | | // type = 'feedback'; |
| | | // } |
| | | // if (search.joinRole === '2' && search.pageType === '3' && record.feedbackStatus === '1') { |
| | | // type = 'feedback'; |
| | | // } |
| | | return <Link onClick={() => handleJump(type, record)}>{type === 'check' ? '查看' : '调解'}</Link>; |
| | | return <Link onClick={() => handleJump(record)}>详情</Link>; |
| | | }, |
| | | }, |
| | | ]; |
| | |
| | | function handleChangePage(page, pageSize) { |
| | | let paramsObj = Object.assign(search, { page, size: pageSize }); |
| | | setSearch(paramsObj); |
| | | getMyMediationData(paramsObj); |
| | | getCaseInfoData(paramsObj); |
| | | } |
| | | |
| | | // 搜索 or 重置 |
| | |
| | | $$.changeTimeFormat(paramsObj, 'mediStartTime', 'mediStartTimeStart', 'mediStartTimeEnd'); |
| | | } |
| | | if (type === 'reset') { |
| | | paramsObj = { page: 1, size: 10, pageType: '1', joinRole: '1' }; |
| | | paramsObj = { page: 1, size: 10 }; |
| | | form.resetFields(); |
| | | form.setFieldsValue({ joinRole: '1' }); |
| | | } |
| | |
| | | } |
| | | form.setFieldsValue(copyObj); |
| | | } |
| | | getMyMediationData(paramsObj, session?.tableActive); |
| | | getCaseInfoData(paramsObj, session?.tableActive); |
| | | } |
| | | |
| | | // 获取数据 |
| | | async function getMyMediationData(submitData, tableActive) { |
| | | async function getCaseInfoData(submitData, tableActive) { |
| | | global.setSpinning(true); |
| | | const res = await getMyMediationDataApi(submitData); |
| | | const res = await getCaseInfoDataApi(submitData); |
| | | global.setSpinning(false); |
| | | if (res.type) { |
| | | setSearch(submitData); |
| | | setData({ |
| | | total: res.data?.dtoPage?.totalElements, |
| | | tableData: res.data?.dtoPage?.content || [], |
| | | tableActive, |
| | | countDtj: res.data.countDtj, |
| | | countTjz: res.data.countTjz, |
| | | countTjjs: res.data.countTjjs, |
| | | total: res.data?.totalElements, |
| | | tableData: res.data?.content || [], |
| | | }); |
| | | } |
| | | } |
| | |
| | | } |
| | | }, []); |
| | | |
| | | const countDtj = (search.pageType === '1' ? data.total : data.countDtj) || 0; |
| | | |
| | | const countTjz = (search.pageType === '2' ? data.total : data.countTjz) || 0; |
| | | |
| | | const countTjjs = (search.pageType === '3' ? data.total : data.countTjjs) || 0; |
| | | |
| | | return ( |
| | | <Page pageHead={{ title: '综合查询', subtitle: '管理员名下综合查询列表' }}> |
| | | <div className="myMediation"> |
| | | <div className="myMediation-search"> |
| | | <div className='comprehensive-title'>查询条件</div> |
| | | <NewTableSearch |
| | | labelLength={6} |
| | | form={form} |
| | | itemData={[ |
| | | { type: 'RangePicker', name: 'acceptTime', label: '办结时间' }, |
| | | { type: 'RangePicker', name: 'acceptTime', label: '归档时间' }, |
| | | { type: 'Input', name: 'defendants', label: '被申请人' }, |
| | | { type: 'Input', name: 'caseNo', label: '调解案号' }, |
| | | { type: 'Input', name: 'addr', label: '纠纷发生地' }, |
| | | { type: 'RangePicker', name: 'acceptTime', label: '办结时间', span: 8 }, |
| | | { type: 'RangePicker', name: 'acceptTime', label: '归档时间', span: 8 }, |
| | | { |
| | | type: 'Select', |
| | | name: 'joinRole', |
| | | label: '参与角色', |
| | | label: '纠纷类型', |
| | | span: 12, |
| | | selectdata: [ |
| | | { label: '我负责的', value: '1' }, |
| | | { label: '我协助的', value: '2' }, |
| | | ], |
| | | }, |
| | | { type: 'RangePicker', name: 'mediStartTime', label: '调解开始时间' }, |
| | | { type: 'RangePicker', name: 'mediEndTime', label: '调解结束时间' }, |
| | | { type: 'Select', name: 'mediResult', label: '调解结果', selectdata: $$.options.mediResult }, |
| | | { |
| | | type: 'Select', |
| | | name: 'joinRole', |
| | | label: '承办部门', |
| | | selectdata: [ |
| | | { label: '我负责的', value: '1' }, |
| | | { label: '我协助的', value: '2' }, |
| | | ], |
| | | }, |
| | | { |
| | | type: 'Select', |
| | | name: 'joinRole', |
| | | label: '登记机构', |
| | | selectdata: [ |
| | | { label: '我负责的', value: '1' }, |
| | | { label: '我协助的', value: '2' }, |
| | | ], |
| | | }, |
| | | { type: 'Input', name: 'defendants', label: '被申请人' }, |
| | | { type: 'Input', name: 'caseNo', label: '调解案号' }, |
| | | ]} |
| | | handleReset={() => handleSearch('reset')} |
| | | handleSearch={() => handleSearch('search')} |
| | | /> |
| | | </div> |
| | | <div className="pageTabs"> |
| | | <MyTabs |
| | | tabs={[ |
| | | { key: '1', label: `待调解(${$$.showMoreNum(countDtj)})` }, |
| | | { key: '2', label: `调解中(${$$.showMoreNum(countTjz)})` }, |
| | | { key: '3', label: `调解结束(${$$.showMoreNum(countTjjs)})` }, |
| | | ]} |
| | | activeKey={search.pageType} |
| | | onChange={(activeKey) => getMyMediationData({ ...search, page: 1, size: 10, pageType: activeKey })} |
| | | /> |
| | | </div> |
| | | <div className="pageTable"> |
| | | |
| | | <div style={{ marginTop: '8px' }} className="pageTable"> |
| | | <TableView |
| | | showHeader |
| | | title="查询结果" |
| | |
| | | .comprehensive { |
| | | &-title { |
| | | // margin: 0 16px; |
| | | font-size: 16px; |
| | | font-weight: 400; |
| | | color: rgba(0,0,0,0.85); |
| | | margin-bottom: 16px; |
| | | } |
| | | } |
| | |
| | | // 文件下载url 后面接附件编号 |
| | | |
| | | // 不同服务接口type |
| | | fileShowUrl: 'dyh-sys', |
| | | fileDownUrl: 'dyh-sys', |
| | | 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 |
| | | // fileShowUrl: 'dyh-sys', |
| | | // fileDownUrl: 'dyh-sys', |
| | | // 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 |
| | | |
| | | // 正式环境 |
| | | // fileShowUrl: 'gzdyh-sys', |
| | | // fileDownUrl: 'gzdyh-sys', |
| | | // 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 |
| | | fileShowUrl: 'gzdyh-sys', |
| | | fileDownUrl: 'gzdyh-sys', |
| | | 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 = { |
| | |
| | | let url = e.currentTarget.dataset.url; |
| | | let caseId = e.currentTarget.dataset.caseid; |
| | | let caseType = e.currentTarget.dataset.casetype; |
| | | let caseName = e.currentTarget.dataset.casename; |
| | | |
| | | wx.navigateTo({ |
| | | url: url + '?caseId=' + caseId + '&type=' + caseType, |
| | | url: url + '?caseId=' + caseId + '&type=' + caseType + '&caseName=' + caseName, |
| | | }); |
| | | }, |
| | | |
| | |
| | | <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" bindtap="caseClick" data-caseId="{{item.caseId}}" data-caseName="{{item.caseName}}" 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"> |
| | |
| | | <!--pages/AIAideDetail/index.wxml--> |
| | | <view class="title">{{data.caseTitle||'-'}}</view> |
| | | <view class="title">{{lastData.caseName||'-'}}</view> |
| | | <view class="line"></view> |
| | | <view class="card" wx:if="{{lastData.type==='1'}}"> |
| | | <view class="subtitle">【案件描述】</view> |
| | |
| | | this.setData({ |
| | | submitData: { |
| | | ...this.data.submitData, |
| | | [this.data.twoKey]: this.data.submitData.caseDes + this.data.twoValue, |
| | | [this.data.twoKey]: this.data.submitData[this.data.twoKey] + this.data.twoValue, |
| | | }, |
| | | [this.data.twoKey + 'Num']: (this.data.submitData.caseDes + this.data.twoValue).length, |
| | | [this.data.twoKey + 'Num']: (this.data.submitData[this.data.twoKey] + this.data.twoValue).length, |
| | | twoValue: '', |
| | | twoKey: '' |
| | | }) |
| | |
| | | const url = api.url; |
| | | |
| | | // 是否是开发环境 |
| | | const isDebug = true; |
| | | const isDebug = false; |
| | | |
| | | const baseUrl = isDebug ? api.url.debug : api.url.web; |
| | | |