| | |
| | | import { CloseOutlined } from '@ant-design/icons'; |
| | | import './index.less'; |
| | | import * as $$ from '../../utils/utility'; |
| | | import { Modal } from '@arco-design/web-react'; |
| | | import { Modal, Spin } from '@arco-design/web-react'; |
| | | |
| | | const { Search } = Input; |
| | | |
| | | const txtMap = { |
| | | dept: '部门', |
| | | person: '人', |
| | | unit: '组织' |
| | | } |
| | | |
| | | // 获取人员,组织,部门数据 |
| | | function getDataApi(type, searchData) { |
| | |
| | | * onOk, // 点击确定的回调 |
| | | */ |
| | | const SelectObjModal = ({ visible = false, checkKeys = [], type = 'dept', isCheckbox = false, searchData = {}, onClose, onOk, }) => { |
| | | const nameStr = type === 'person' ? '人员' : type === 'unit' ? '组织' : '部门'; |
| | | const nameStr = txtMap[type]; |
| | | // 默认调解员查询'22_00024-4' |
| | | const searchRole = type === 'person' ? { roleCode: '22_00024-4' } : {}; |
| | | const [data, setData] = useState([]); |
| | |
| | | const [searchValue, setSearchValue] = useState(''); |
| | | const [autoExpandParent, setAutoExpandParent] = useState(true); |
| | | const [dataList, setDataList] = useState([]); |
| | | const [loading, setLoading] = useState(false); |
| | | |
| | | useEffect(() => { |
| | | if (!visible) return; |
| | | // 获取数据 |
| | | async function getData() { |
| | | // global.setSpinning(true); |
| | | setLoading(true) |
| | | const res = await getDataApi(type, { ...searchRole, ...searchData }); |
| | | // global.setSpinning(false); |
| | | setLoading(false) |
| | | if (res.type) { |
| | | setData(res.data || []); |
| | | } |
| | |
| | | <Search placeholder={`查询${nameStr}名称`} onChange={(e) => handleSearch(e.target.value, dataList)} /> |
| | | </div> |
| | | <div className="selectObjModal-left-main"> |
| | | {data.length > 0 ? ( |
| | | <Tree |
| | | checkable |
| | | checkStrictly |
| | | defaultExpandAll |
| | | onExpand={(newExpandedKeys) => { |
| | | setExpandedKeys(newExpandedKeys); |
| | | setAutoExpandParent(false); |
| | | }} |
| | | expandedKeys={expandedKeys} |
| | | autoExpandParent={autoExpandParent} |
| | | selectable={false} |
| | | onCheck={(checkedKeys, e) => handleCheck(checkedKeys, e)} |
| | | checkedKeys={checkedKeys.keys} |
| | | treeData={treeData} |
| | | fieldNames={{ title: 'label', key: 'value' }} |
| | | height={400} |
| | | /> |
| | | ) : ( |
| | | $$.MyEmpty() |
| | | )} |
| | | <Spin loading={loading} style={{ width: '100%', height: '100%' }}> |
| | | {data.length > 0 ? ( |
| | | <Tree |
| | | checkable |
| | | checkStrictly |
| | | defaultExpandAll |
| | | onExpand={(newExpandedKeys) => { |
| | | setExpandedKeys(newExpandedKeys); |
| | | setAutoExpandParent(false); |
| | | }} |
| | | expandedKeys={expandedKeys} |
| | | autoExpandParent={autoExpandParent} |
| | | selectable={false} |
| | | onCheck={(checkedKeys, e) => handleCheck(checkedKeys, e)} |
| | | checkedKeys={checkedKeys.keys} |
| | | treeData={treeData} |
| | | fieldNames={{ title: 'label', key: 'value' }} |
| | | height={400} |
| | | /> |
| | | ) : ( |
| | | $$.MyEmpty() |
| | | )} |
| | | </Spin> |
| | | </div> |
| | | </div> |
| | | <div className="selectObjModal-right"> |
| | |
| | | </div> |
| | | </div> |
| | | <div className="selectObjModal-footer"> |
| | | <div>已选中:{checkedKeys.keys.length}人</div> |
| | | <div>已选中:{checkedKeys.keys.length}{txtMap[type]}</div> |
| | | <Space size="middle"> |
| | | <Button onClick={onClose}>取消</Button> |
| | | <Button type="primary" onClick={() => onOk && onOk(checkedKeys)}> |
| | |
| | | import ArcoUpload from '@/components/ArcoUpload'; |
| | | import { Scrollbars } from "react-custom-scrollbars"; |
| | | import * as $$ from '@/utils/utility'; |
| | | import { useNavigate } from 'react-router-dom'; |
| | | |
| | | const RadioGroup = Radio.Group; |
| | | const FormItem = Form.Item; |
| | |
| | | } |
| | | |
| | | export default function BackModel(props) { |
| | | const navigate = useNavigate(); |
| | | const formRef = useRef(); |
| | | const [id, setId] = useState(); |
| | | const options = [ |
| | |
| | | if (res.type) { |
| | | $$.infoSuccess({ content: '提交申请成功!' }); |
| | | props.onCancel() |
| | | navigate('/mediate/visit/visitWorkBench') |
| | | } |
| | | } |
| | | |
| | |
| | | import { Scrollbars } from "react-custom-scrollbars"; |
| | | import { escalation } from '@/assets/images/icon'; |
| | | import * as $$ from '@/utils/utility'; |
| | | import { useNavigate } from 'react-router-dom'; |
| | | |
| | | const FormItem = Form.Item; |
| | | const TextArea = Input.TextArea; |
| | |
| | | } |
| | | |
| | | export default function BackModel(props) { |
| | | const navigate = useNavigate(); |
| | | const formRef = useRef(); |
| | | const [id, setId] = useState(); |
| | | const [unitData, setUnitData] = useState({}); |
| | |
| | | if (res.type) { |
| | | $$.infoSuccess({ content: '提交申请成功!' }); |
| | | props.onCancel() |
| | | navigate('/mediate/visit/visitWorkBench') |
| | | } |
| | | } |
| | | |
| | |
| | | import { Scrollbars } from "react-custom-scrollbars"; |
| | | import * as $$ from '@/utils/utility'; |
| | | import { getOffset, getSize } from '@/utils/utility'; |
| | | import { useNavigate } from 'react-router-dom'; |
| | | |
| | | const RadioGroup = Radio.Group; |
| | | const FormItem = Form.Item; |
| | |
| | | } |
| | | |
| | | export default function Examine(props) { |
| | | const navigate = useNavigate(); |
| | | const formRef = useRef(); |
| | | const scrollRef = useRef(null); |
| | | const [infoData, setInfoData] = useState({}); |
| | |
| | | const res = await submit(props.type, data) |
| | | if (res.type) { |
| | | $$.infoSuccess({ content: '提交成功!' }); |
| | | navigate('/mediate/visit/visitWorkBench') |
| | | } |
| | | } |
| | | |
| | |
| | | const [caseResultId, setCaseResultId] = useState(''); |
| | | const [managerName, setManagerName] = useState('') |
| | | const [progressData, setProgressData] = useState({}); |
| | | const [staticButtonList, setStaticButtonList] = useState([]) |
| | | const [staticButtonList, setStaticButtonList] = useState([]); |
| | | const [scannerVisible, setScannerVisible] = useState(false); |
| | | |
| | | const myButton = [ |
| | | { |
| | |
| | | { |
| | | label: '结案申请', |
| | | type: 'outline', |
| | | click: () => uniteHandle(), |
| | | click: () => handleCaseResultApply(), |
| | | key: 'jasq', |
| | | }, |
| | | { |
| | |
| | | type: 'outline', |
| | | click: () => Supervising(), |
| | | key: 'db', |
| | | status: 'danger' |
| | | }, |
| | | ] |
| | | |
| | | const tabs1 = [ |
| | | { index: '1', label: '公共模板:提醒尽快启动调解程序督办模板' }, |
| | | { index: '2', label: '个人模板:推动事件尽快办结督办模板' } |
| | | ] |
| | | |
| | | const options = [ |
| | | { value: '1', label: '一' }, { value: '2', label: '二' }, { value: '3', label: '三' } |
| | | ]; |
| | | const content = selectedTab1 === '1' |
| | | ? `鉴于本事项的重要性及紧迫性,现要求你尽快启动调解程序,并确保案件能够得到及时有效的处理。请您务必于本周内完成以下事项:XX、XX、XX。请确保在事项办理的过程中,遵循公平、公正的原则,并积极促进双方达成共识` |
| | | : '1'; |
| | | |
| | | useEffect(() => { |
| | | listFeedback(caseId); |
| | | getData(caseId) |
| | | getFeedbackInfo(); |
| | | }, []) |
| | | |
| | | useEffect(() => { |
| | | if (authorData) { |
| | | const { buttonList } = authorData; |
| | | setStaticButtonList(myButton.filter(item => { |
| | | const flag = buttonList.some(result => { |
| | | if (result.id === item.key) { |
| | | return true |
| | | } |
| | | }) |
| | | return flag |
| | | })) |
| | | } |
| | | }, [authorData]) |
| | | |
| | | const handleCheckedKeys = (userId) => { |
| | | choosePrincipal(userId) |
| | | } |
| | | |
| | | const [scannerVisible, setScannerVisible] = useState(false); |
| | | |
| | | const handleConfirm = () => { |
| | | // 处理确认逻辑 |
| | |
| | | setScannerVisible(false); |
| | | }; |
| | | |
| | | |
| | | |
| | | const choosePrincipal = async (id) => { |
| | | const res = await choosePrincipalApi(caseId, id) |
| | | if (res.type) { |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | //删除文件 |
| | | const handleDelFile = async (id) => { |
| | | const res = await delFile(id) |
| | |
| | | $$.infoSuccess({ content: '删除成功!' }); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | //新增、编辑办理理由 |
| | | const saveFeedback = async (submitData) => { |
| | |
| | | setUniteHandleView(!uniteHandleView) |
| | | } |
| | | |
| | | |
| | | |
| | | const handleTabChange1 = (newTabIndex) => { |
| | | setSelectedTab1(newTabIndex); |
| | | }; |
| | | |
| | | const content = selectedTab1 === '1' |
| | | ? `鉴于本事项的重要性及紧迫性,现要求你尽快启动调解程序,并确保案件能够得到及时有效的处理。请您务必于本周内完成以下事项:XX、XX、XX。请确保在事项办理的过程中,遵循公平、公正的原则,并积极促进双方达成共识` |
| | | : '1'; |
| | | |
| | | const handleSupervising = () => { |
| | | setSupervising(!supervising) |
| | | } |
| | | |
| | | |
| | | const handleCaseResultApply = () => { |
| | | SetCaseResult(!caseResult) |
| | | getNewTimeId('caseResult') |
| | | } |
| | | |
| | | |
| | | useEffect(() => { |
| | | listFeedback(caseId); |
| | | getData(caseId) |
| | | getFeedbackInfo(); |
| | | }, []) |
| | | |
| | | useEffect(() => { |
| | | if (authorData) { |
| | | const { buttonList } = authorData; |
| | | setStaticButtonList(myButton.filter(item => { |
| | | const flag = buttonList.some(result => { |
| | | if (result.id === item.key) { |
| | | return true |
| | | } |
| | | }) |
| | | return flag |
| | | })) |
| | | console.log(buttonList, myButton); |
| | | } |
| | | }, [authorData]) |
| | | |
| | | |
| | | |
| | | return ( |
| | | <> |