From 7bec45c3da050deda516f96b0a89f94b06814ae9 Mon Sep 17 00:00:00 2001
From: liuwh <964324856@qq.com>
Date: Tue, 10 Sep 2024 16:59:11 +0800
Subject: [PATCH] Merge branch 'master' of http://120.79.193.119:9090/r/gzzfw/frontEnd/gzDyh into master
---
gz-customerSystem/src/views/register/eventFlow/component/AssignedModel.jsx | 110 ++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 89 insertions(+), 21 deletions(-)
diff --git a/gz-customerSystem/src/views/register/eventFlow/component/AssignedModel.jsx b/gz-customerSystem/src/views/register/eventFlow/component/AssignedModel.jsx
index caf18e2..870a180 100644
--- a/gz-customerSystem/src/views/register/eventFlow/component/AssignedModel.jsx
+++ b/gz-customerSystem/src/views/register/eventFlow/component/AssignedModel.jsx
@@ -1,37 +1,84 @@
-import React, { useRef, useState } from 'react'
+import React, { useRef, useState, useEffect } from 'react'
import { Row, Col } from 'antd';
import { Form, Input, Button, Select } from '@arco-design/web-react';
import ArcoUpload from '@/components/ArcoUpload';
import { Scrollbars } from "react-custom-scrollbars";
import SelectObjModal from '@/components/SelectObjModal/selectPerson';
+import { useParams } from 'react-router-dom';
+import * as $$ from '@/utils/utility';
const FormItem = Form.Item;
const TextArea = Input.TextArea;
-const Option = Select.Option;
-const options = ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen', 'Chengdu', 'Wuhan'];
+const appUrl = $$.appUrl;
+
+function assign(data) {
+ return $$.ax.request({ url: `caseTask/assign`, type: 'post', service: 'mediate', data });
+}
+
+function delFile(id) {
+ return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'delete', service: 'sys', data: { id } });
+}
export default function BackModel(props) {
+ const routeData = useParams();
const formRef = useRef();
const [isModalVisible, setIsModalVisible] = useState(false);
const [wantUser, setWantUser] = useState({});
+ const [mainDept, setMainDept] = useState('handleUnit');//判断打开弹窗的是承办部门还是配合部门
+ const [selectOptions, setSelectOptions] = useState({});//两个部门选择的options
+
+ useEffect(() => {
+ }, [])
+
const handleSubmit = () => {
formRef.current.validate(undefined, (errors, values) => {
- console.log(errors, values);
+ if (!errors) {
+ handleAssign({
+ caseTaskId: routeData.caseTaskId,
+ assignContent: values.assignContent,
+ handleUnitId: wantUser['handleUnit'][0].value,
+ handleUnitName: wantUser['handleUnit'][0].name,
+ assistUnitList: wantUser['assistUnit'] && wantUser['assistUnit'].map(item => {
+ return {
+ uitId: item.value,
+ uitName: item.name
+ }
+ })
+ })
+ }
})
}
const handleTemplate = (type) => {
if (type === 1) {
- formRef.current.setFieldValue('trueName', '本事项经初步核实,认为属于贵部门职责范围内的矛盾纠纷化解工作。请组织专门人员负责此事,尽快查明事实真相,依法依规进行处理,并在处理过程中充分考虑当事人的合理诉求,确保公平公正,维护当事人的合法权益。同时,请务必保持与当事人的沟通畅通,及时反馈办理进展,以增强矛盾纠纷化解工作的透明度和公信力。')
+ formRef.current.setFieldValue('assignContent', '本事项经初步核实,认为属于贵部门职责范围内的矛盾纠纷化解工作。请组织专门人员负责此事,尽快查明事实真相,依法依规进行处理,并在处理过程中充分考虑当事人的合理诉求,确保公平公正,维护当事人的合法权益。同时,请务必保持与当事人的沟通畅通,及时反馈办理进展,以增强矛盾纠纷化解工作的透明度和公信力。')
} else {
- formRef.current.setFieldValue('trueName', '')
+ formRef.current.setFieldValue('assignContent', '')
}
}
- const handleFocus = (e) => {
- e.stopPropagation()
- setIsModalVisible(true)
+ //交办请求
+ const handleAssign = async (data) => {
+ const res = await assign({ ...data, caseTaskId: props.caseTaskId })
+ if (res.type) {
+ $$.infoSuccess({ content: '交办成功!' });
+ props.onCancel()
+ }
+ }
+
+ //删除文件
+ const handleDelFile = async (id) => {
+ const res = await delFile(id)
+ if (res.type) {
+ $$.infoSuccess({ content: '删除成功!' });
+ }
+ }
+
+ //form数据同步要提交的数据
+ const handleSync = (field, value) => {
+ wantUser[field] = wantUser[field].filter(item => value.indexOf(item.value) != -1)
+ setWantUser(wantUser);
}
return (
@@ -49,13 +96,20 @@
<Col span={24}>
<FormItem
label={(<div style={{ display: 'flex' }}>承办部门<div className="must">必填</div></div>)}
- field='bumen'
+ field='handleUnit'
+ rules={[{ required: true, message: '请选择承办部门' }]}
>
<Select
mode='multiple'
placeholder='请选择承办部门'
allowClear
- onFocus={handleFocus}
+ onFocus={(e) => {
+ e.stopPropagation()
+ setIsModalVisible(true)
+ setMainDept('handleUnit')
+ }}
+ options={selectOptions['handleUnit']}
+ onChange={(v) => { handleSync('handleUnit', v) }}
>
</Select>
</FormItem>
@@ -63,18 +117,20 @@
<Col span={24}>
<FormItem
label={(<div style={{ display: 'flex' }}>配合部门<div style={{ color: '#86909C' }}>(可多选)</div></div>)}
- field='peihe'
+ field='assistUnit'
>
<Select
mode='multiple'
placeholder='请选择配合部门'
allowClear
+ onFocus={(e) => {
+ e.stopPropagation()
+ setIsModalVisible(true)
+ setMainDept('assistUnit')
+ }}
+ options={selectOptions['assistUnit']}
+ onChange={(v) => { handleSync('assistUnit', v) }}
>
- {options.map((option) => (
- <Option key={option} value={option}>
- {option}
- </Option>
- ))}
</Select>
</FormItem>
</Col>
@@ -85,7 +141,7 @@
</div>
<FormItem
label={(<div style={{ display: 'flex' }}>交办意见<div className="must">必填</div></div>)}
- field='trueName'
+ field='assignContent'
rules={[{ required: true, message: '请选择回退理由' }]}
>
<TextArea
@@ -98,10 +154,11 @@
<Col span={24} className="doubleFile">
<ArcoUpload
params={{
- action: ``,
+ action: `${appUrl.fileUrl}/${appUrl.sys}/api/web/fileInfo/upload?mainId=${props.caseId}&ownerId=${props.caseId}&ownerType=22_00018-501`,
}}
field='file'
label='附件材料'
+ handleDelFile={handleDelFile}
/>
</Col>
</Row>
@@ -118,12 +175,23 @@
</div>
<SelectObjModal
visible={isModalVisible}
- checkKeys={wantUser.wantUserId ? [{ label: wantUser.wantUserName, value: wantUser.wantUserId }] : undefined}
+ checkKeys={wantUser[mainDept]}
onOk={(value) => {
+ console.log(value);
setIsModalVisible(false);
- setWantUser({ wantUserId: value.keys[0], wantUserName: value.items[0].name });
+ wantUser[mainDept] = value.items
+ setWantUser(wantUser);
+ selectOptions[mainDept] = value.items.map(item => ({
+ label: item.name,
+ value: item.value
+ }))
+ setSelectOptions(selectOptions)
+ formRef.current.setFieldValue(mainDept, value.items.map(item => item.value))
+
}}
onClose={() => setIsModalVisible(false)}
+ type='dept'
+ isCheckbox={mainDept === 'handleUnit' ? false : true}
/>
</div>
)
--
Gitblit v1.8.0