xingyongchun
2 years ago
21 changed files with 36 additions and 4076 deletions
@ -1,583 +0,0 @@ |
|||||
import React, { useReducer, useEffect } from "react"; |
|
||||
import PropTypes from "prop-types"; |
|
||||
import { push } from "react-router-redux"; |
|
||||
import { reducerCreater } from "../../../utils"; |
|
||||
import BraftEditor from "braft-editor"; |
|
||||
import { connect } from "react-redux"; |
|
||||
import moment from "moment"; |
|
||||
import { |
|
||||
Input, |
|
||||
Button, |
|
||||
Form, |
|
||||
Icon, |
|
||||
Tabs, |
|
||||
Upload, |
|
||||
message, |
|
||||
Radio, |
|
||||
Spin, |
|
||||
Space, |
|
||||
Modal, |
|
||||
Select, |
|
||||
} from "antd"; |
|
||||
import { |
|
||||
LoadingOutlined, |
|
||||
UploadOutlined, |
|
||||
PictureOutlined, |
|
||||
} from "@ant-design/icons"; |
|
||||
import { addArticle, editArticle } from "../actions/article"; |
|
||||
const { TabPane } = Tabs; |
|
||||
const { TextArea } = Input; |
|
||||
const { Option } = Select; |
|
||||
|
|
||||
let viewing = false; |
|
||||
const sizeBase = 5.72; |
|
||||
const isFirstLoad = true; |
|
||||
let braftTimer = null; |
|
||||
const initialState = { |
|
||||
counter: 0, |
|
||||
disabled: false, |
|
||||
articlePictureMessage: [], |
|
||||
uploading: false, |
|
||||
tabKey: 1, |
|
||||
loading: false, |
|
||||
imageUrl: "", |
|
||||
submitType: "", |
|
||||
imgSavePath: "", |
|
||||
articalUploading: false, |
|
||||
isVisible: false, |
|
||||
content: "", |
|
||||
title: "", |
|
||||
inputTxtLength: 0, |
|
||||
overview: { |
|
||||
createTime: "", |
|
||||
company: "", |
|
||||
category: "", |
|
||||
authCategory: "", |
|
||||
}, |
|
||||
fileList: [], |
|
||||
}; |
|
||||
const txtLength = { |
|
||||
1: 5000, |
|
||||
2: 1500, |
|
||||
}; |
|
||||
const ArticleModify = (props) => { |
|
||||
const { width, height } = props; |
|
||||
const [form] = Form.useForm(); |
|
||||
const [state, dispatch] = useReducer(reducer, initialState); |
|
||||
const { |
|
||||
uploading, |
|
||||
articlePictureMessage, |
|
||||
disabled, |
|
||||
loading, |
|
||||
imageUrl, |
|
||||
tabKey, |
|
||||
inputTxtLength, |
|
||||
fileList, |
|
||||
} = state; |
|
||||
|
|
||||
function reducer(state, action) { |
|
||||
return reducerCreater(initialState, state, action); |
|
||||
} |
|
||||
|
|
||||
useEffect(() => { |
|
||||
const { |
|
||||
match: { params }, |
|
||||
} = props; |
|
||||
const { state, type } = params; |
|
||||
if (type) |
|
||||
if (type == "message") dispatch({ type: "tabKey", payload: "2" }); |
|
||||
else dispatch({ type: "tabKey", payload: "1" }); |
|
||||
}, [true]); |
|
||||
|
|
||||
useEffect(() => { |
|
||||
const { |
|
||||
match: { params }, |
|
||||
} = props; |
|
||||
const strData = localStorage.getItem("modifyData"); |
|
||||
if (strData) { |
|
||||
const modifyData = JSON.parse(strData); |
|
||||
const { state, type } = params; |
|
||||
if (state == "post") { |
|
||||
form.setFieldsValue({ |
|
||||
authCategory: "公开", |
|
||||
}); |
|
||||
} |
|
||||
if (state == "put") |
|
||||
if (modifyData) { |
|
||||
console.log("modifyData: "); |
|
||||
console.log(modifyData); |
|
||||
if (type == "message") { |
|
||||
form.setFieldsValue({ |
|
||||
content: BraftEditor.createEditorState(modifyData.content), |
|
||||
authCategory: modifyData.authCategory, |
|
||||
}); |
|
||||
} else { |
|
||||
form.setFieldsValue({ |
|
||||
content: BraftEditor.createEditorState(modifyData.content), |
|
||||
type: `${modifyData.type}`, |
|
||||
title: modifyData.title, |
|
||||
image: modifyData.image, |
|
||||
}); |
|
||||
const path = modifyData.image; |
|
||||
if (typeof path == 'string' && path.trim() != '') { |
|
||||
const filename = path.substr(path.lastIndexOf("/") + 1); |
|
||||
dispatch({ |
|
||||
type: 'fileList', payload: [{ |
|
||||
uid: '-1', |
|
||||
name: filename, |
|
||||
status: 'done', |
|
||||
url: modifyData.image, |
|
||||
},] |
|
||||
}) |
|
||||
dispatch({ type: "imageUrl", payload: modifyData.image }); |
|
||||
dispatch({ type: "imgSavePath", payload: modifyData.image }); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
return () => { |
|
||||
localStorage.removeItem("modifyData"); |
|
||||
}; |
|
||||
}, [localStorage.getItem("modifyData")]); |
|
||||
|
|
||||
// 定义输入转换函数
|
|
||||
function unitImportFn(unit, type, source) { |
|
||||
// type为单位类型,例如font-size等
|
|
||||
// source为输入来源,可能值为create或paste
|
|
||||
// 此函数的返回结果,需要过滤掉单位,只返回数值
|
|
||||
if (unit.indexOf("em")) { |
|
||||
return parseFloat(unit, 10) * sizeBase; |
|
||||
} else { |
|
||||
return parseFloat(unit, 10); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
// 定义输出转换函数
|
|
||||
function unitExportFn(unit, type, target) { |
|
||||
if (type === "line-height") { |
|
||||
// 输出行高时不添加单位
|
|
||||
return unit; |
|
||||
} |
|
||||
|
|
||||
// target的值可能是html或者editor,对应输出到html和在编辑器中显示这两个场景
|
|
||||
if (target === "html" && !viewing) { |
|
||||
// 只在将内容输出为html时才进行转换
|
|
||||
return unit / sizeBase + "rem"; |
|
||||
} else { |
|
||||
// 在编辑器中显示时,按px单位展示
|
|
||||
return unit + "px"; |
|
||||
} |
|
||||
} |
|
||||
const myValidateFn = (file) => { |
|
||||
return file.size < 1024 * 1024; |
|
||||
}; |
|
||||
|
|
||||
let media = { |
|
||||
accepts: { |
|
||||
image: "image/png,image/jpeg,image/gif,image/webp,image/apng,image/svg", |
|
||||
video: false, |
|
||||
audio: false, |
|
||||
}, |
|
||||
validateFn: myValidateFn, |
|
||||
}; |
|
||||
|
|
||||
function getBase64(img, callback) { |
|
||||
const reader = new FileReader(); |
|
||||
reader.addEventListener("load", () => callback(reader.result)); |
|
||||
reader.readAsDataURL(img); |
|
||||
} |
|
||||
|
|
||||
function beforeUpload(file) { |
|
||||
// const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
|
|
||||
// if (!isJpgOrPng) {
|
|
||||
// message.error('请确认文件格式为 JPG/PNG');
|
|
||||
// }
|
|
||||
const isLt10M = file.size / 1024 / 1024 < 10; |
|
||||
if (!isLt10M) { |
|
||||
message.error("文件大小必须小于 10MB!"); |
|
||||
} |
|
||||
// return isJpgOrPng && isLt2M;
|
|
||||
return isLt10M || Upload.LIST_IGNORE; |
|
||||
} |
|
||||
|
|
||||
function handleChange(info) { |
|
||||
let fileList = []; |
|
||||
if (info.fileList.length && info.fileList.length > 1) { |
|
||||
fileList = info.fileList.slice(-1); |
|
||||
} else fileList = info.fileList; |
|
||||
dispatch({ type: "fileList", payload: fileList }); |
|
||||
|
|
||||
if (info.file.status === "uploading") { |
|
||||
dispatch({ type: "uploading", payload: true }); |
|
||||
return; |
|
||||
} |
|
||||
|
|
||||
if (info.file.status === "done") { |
|
||||
const savePath = info.file.response.uploaded; |
|
||||
dispatch({ |
|
||||
type: "imageUrl", |
|
||||
payload: savePath, |
|
||||
}); |
|
||||
dispatch({ type: "uploading", payload: false }); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
const uploadButton = ( |
|
||||
<div> |
|
||||
{/* {uploading ? <LoadingOutlined /> : <PlusOutlined />} */} |
|
||||
<Button icon={uploading ? <LoadingOutlined /> : <UploadOutlined />}>文件上传</Button> |
|
||||
</div> |
|
||||
); |
|
||||
|
|
||||
const onFinish = (values) => { |
|
||||
const { |
|
||||
match: { params }, |
|
||||
modifyData, |
|
||||
} = props; |
|
||||
dispatch({ type: "articalUploading", payload: true }); |
|
||||
console.log(values.content.toHTML()); |
|
||||
console.log("Received values of form: ", values); |
|
||||
let status = 0; // 草稿
|
|
||||
if (state.submitType == "submit") status = 1; // 发布
|
|
||||
// if (params.state == 'put' && modifyData.status == 3) {
|
|
||||
// status = 7
|
|
||||
// }
|
|
||||
// const desc = ((document.getElementsByClassName("public-DraftEditor-content") || [])[0] || {}).innerText || ''
|
|
||||
let rslt = { |
|
||||
type: values.type, |
|
||||
createTime: moment(), |
|
||||
creator: props.user.userId, |
|
||||
status, |
|
||||
title: values.title ? values.title : "", |
|
||||
content: values.content.toHTML(), |
|
||||
image: imageUrl, |
|
||||
read: 0, |
|
||||
}; |
|
||||
console.log(rslt); |
|
||||
if (params.state == "post") { |
|
||||
props.dispatch(addArticle(rslt)).then((res) => { |
|
||||
const { type } = res; |
|
||||
if (type == "ADD_ARTICLE_SUCCESS") { |
|
||||
if (state.submitType == "save") { |
|
||||
message.success("保存草稿箱成功"); |
|
||||
} else message.success("提交成功"); |
|
||||
|
|
||||
dispatch({ type: "articalUploading", payload: false }); |
|
||||
dispatch({ type: "imageUrl", payload: "" }); |
|
||||
dispatch({ type: 'fileList', payload: [] }) |
|
||||
props.dispatch(push(`/article`)) |
|
||||
form.resetFields(); |
|
||||
// setTimeout(() => {
|
|
||||
// props.dispatch(push(`/article/modify`))
|
|
||||
// }, 500);
|
|
||||
} else if (type == "ADD_ARTICLE_ERROR") { |
|
||||
if (state.submitType == "save") message.success("保存草稿箱失败"); |
|
||||
else message.error("提交失败"); |
|
||||
dispatch({ type: "articalUploading", payload: false }); |
|
||||
} |
|
||||
}); |
|
||||
} else { |
|
||||
const strData = localStorage.getItem("modifyData"); |
|
||||
const modifyData = JSON.parse(strData); |
|
||||
rslt.id = modifyData.id; |
|
||||
props.dispatch(editArticle(rslt)).then(res => { |
|
||||
const { type } = res; |
|
||||
if (type == "EDIT_ARTICLE_SUCCESS") { |
|
||||
if (state.submitType == "save") { |
|
||||
message.success("保存草稿箱成功"); |
|
||||
} else message.success("发布成功"); |
|
||||
dispatch({ type: "articalUploading", payload: false }); |
|
||||
dispatch({ type: "imageUrl", payload: "" }); |
|
||||
dispatch({ type: 'fileList', payload: [] }) |
|
||||
props.dispatch(push(`/article`)) |
|
||||
|
|
||||
form.resetFields(); |
|
||||
} else if (type == "EDIT_ARTICLE_ERROR") { |
|
||||
if (state.submitType == "save") message.success("保存草稿箱失败"); |
|
||||
else message.error("发布失败"); |
|
||||
dispatch({ type: "articalUploading", payload: false }); |
|
||||
} |
|
||||
}); |
|
||||
} |
|
||||
}; |
|
||||
const onFinishFailed = () => { |
|
||||
console.log("test"); |
|
||||
}; |
|
||||
|
|
||||
const onBraftChanged = (editorState) => { |
|
||||
if (braftTimer) clearTimeout(braftTimer); |
|
||||
braftTimer = setTimeout(() => { |
|
||||
let inputTxtLength = 0; |
|
||||
const txtAreaContainer = document.getElementsByClassName( |
|
||||
"public-DraftEditor-content" |
|
||||
)[0]; |
|
||||
if (txtAreaContainer) { |
|
||||
inputTxtLength = txtAreaContainer.innerText.split("\n").join("").length; |
|
||||
dispatch({ type: "inputTxtLength", payload: inputTxtLength }); |
|
||||
} |
|
||||
}, 1000 * 0.5); |
|
||||
}; |
|
||||
|
|
||||
function renderArticalContent() { |
|
||||
return ( |
|
||||
<div> |
|
||||
<Form |
|
||||
name="basic" |
|
||||
labelCol={{ span: 2 }} |
|
||||
wrapperCol={{ span: 8 }} |
|
||||
labelAlign="left" |
|
||||
form={form} |
|
||||
onFinish={onFinish} |
|
||||
onFinishFailed={onFinishFailed} |
|
||||
autoComplete="off" |
|
||||
> |
|
||||
<Form.Item |
|
||||
label="资讯类型" |
|
||||
name="type" |
|
||||
initialValue="0" |
|
||||
rules={[{ required: true, message: "请选择资讯类型" }]} |
|
||||
> |
|
||||
<Select defaultValue="0" rows={1}> |
|
||||
<Option value="0">活动风采</Option> |
|
||||
<Option value="1">党建资讯</Option> |
|
||||
<Option value="2">工会资讯</Option> |
|
||||
</Select> |
|
||||
</Form.Item> |
|
||||
<Form.Item |
|
||||
label="文章标题" |
|
||||
name="title" |
|
||||
rules={[ |
|
||||
{ required: true, message: "请输入文章标题" }, |
|
||||
// { max: 72, message: "最多72个字符" },
|
|
||||
]} |
|
||||
> |
|
||||
<TextArea disabled={disabled} rows={1}></TextArea> |
|
||||
</Form.Item> |
|
||||
<Form.Item |
|
||||
name="content" |
|
||||
rules={[ |
|
||||
{ required: true, message: "请输入文章内容" }, |
|
||||
// {
|
|
||||
// validator: () => {
|
|
||||
// if (inputTxtLength > txtLength[tabKey])
|
|
||||
// return Promise.reject(`最多输入${txtLength[tabKey]}个字符`);
|
|
||||
// // else if (inputTxtLength == 0)
|
|
||||
// // return Promise.reject(`请输入文章内容`)
|
|
||||
// else return Promise.resolve();
|
|
||||
// },
|
|
||||
// },
|
|
||||
]} |
|
||||
wrapperCol={{ span: 24 }} |
|
||||
> |
|
||||
<BraftEditor |
|
||||
readOnly={disabled} |
|
||||
placeholder="请输入正文内容" |
|
||||
controls={controls} |
|
||||
fontFamilies={fontFamilies} |
|
||||
// stripPastedStyles={true}
|
|
||||
lineHeights={[1, 1.25, 1.5, 1.75, 2, 2.5, 2.8, 3, 4]} |
|
||||
media={media} |
|
||||
onChange={onBraftChanged} |
|
||||
converts={{ |
|
||||
unitImportFn: unitImportFn, |
|
||||
unitExportFn: unitExportFn, |
|
||||
}} |
|
||||
/> |
|
||||
</Form.Item> |
|
||||
{/* <span style={{ position: "relative", float: "right" }}> |
|
||||
{state.inputTxtLength}/{txtLength[tabKey]} |
|
||||
</span> */} |
|
||||
<br /> |
|
||||
<Form.Item |
|
||||
label="添加附件" |
|
||||
name="image" |
|
||||
rules={[{ required: false, message: "请添加文章附件" }]} |
|
||||
> |
|
||||
<Upload |
|
||||
name="avatar" |
|
||||
// listType="picture-card"
|
|
||||
className="avatar-uploader" |
|
||||
showUploadList={true} |
|
||||
action="/_upload/attachments/project" |
|
||||
beforeUpload={beforeUpload} |
|
||||
onChange={handleChange} |
|
||||
onRemove={(file) => { |
|
||||
dispatch({ type: "imageUrl", payload: null }); |
|
||||
dispatch({ type: "imgSavePath", payload: null }); |
|
||||
return true; |
|
||||
}} |
|
||||
fileList={fileList} |
|
||||
> |
|
||||
{fileList.length == 0 ? uploadButton : ''} |
|
||||
</Upload> |
|
||||
</Form.Item> |
|
||||
<Form.Item noStyle={true}> |
|
||||
<div |
|
||||
style={{ |
|
||||
padding: "12px 0", |
|
||||
width: "100%", |
|
||||
textAlign: "right", |
|
||||
}} |
|
||||
> |
|
||||
{ |
|
||||
<span> |
|
||||
{/* {tabKey == 1 ? <Button |
|
||||
disabled={uploading} |
|
||||
style={{ marginRight: 16, width: 88 }} |
|
||||
onClick={(r) => { |
|
||||
onViewClick() |
|
||||
} |
|
||||
} |
|
||||
>预览</Button> : ''} */} |
|
||||
<Button |
|
||||
disabled={uploading} |
|
||||
style={{ marginRight: 16, width: 88 }} |
|
||||
onClick={() => { |
|
||||
props.dispatch(push(`/article`)); |
|
||||
}} |
|
||||
> |
|
||||
返回 |
|
||||
</Button> |
|
||||
<Button |
|
||||
htmlType="submit" |
|
||||
disabled={uploading} |
|
||||
style={{ marginRight: 16, width: 88 }} |
|
||||
onClick={() => |
|
||||
dispatch({ type: "submitType", payload: "submit" }) |
|
||||
} |
|
||||
> |
|
||||
发布 |
|
||||
</Button> |
|
||||
<Button |
|
||||
htmlType="submit" |
|
||||
disabled={uploading} |
|
||||
style={{ marginRight: 16, width: 88 }} |
|
||||
onClick={() => |
|
||||
dispatch({ type: "submitType", payload: "save" }) |
|
||||
} |
|
||||
> |
|
||||
保存草稿 |
|
||||
</Button> |
|
||||
</span> |
|
||||
} |
|
||||
</div> |
|
||||
</Form.Item> |
|
||||
</Form> |
|
||||
</div> |
|
||||
); |
|
||||
} |
|
||||
|
|
||||
const onViewClick = () => { |
|
||||
const { getFieldsValue } = form; |
|
||||
let values = getFieldsValue(); |
|
||||
let title = values.title ? values.title : ""; |
|
||||
let content = values.content ? values.content.toHTML() : ""; |
|
||||
dispatch({ type: "isVisible", payload: true }); |
|
||||
dispatch({ type: "content", payload: content }); |
|
||||
dispatch({ type: "overview", payload: values }); |
|
||||
setTimeout(() => { |
|
||||
if (window.document.getElementById("submitmodalContent")) { |
|
||||
window.document.getElementById("submitmodalContent").innerHTML = |
|
||||
content; |
|
||||
if (content.indexOf("<img") > -1) { |
|
||||
var img_obj = document.getElementsByTagName("img"); |
|
||||
img_obj[img_obj.length - 1].style.width = "100%"; |
|
||||
} |
|
||||
} |
|
||||
}, 300); |
|
||||
}; |
|
||||
|
|
||||
return ( |
|
||||
<div> |
|
||||
{/* <div style={styles.rollBack} onClick={() => { props.dispatch(push(`/article/modify`)) }}> |
|
||||
<a><RollbackOutlined />返回</a> |
|
||||
</div> */} |
|
||||
<Spin size="large" spinning={state.articalUploading}> |
|
||||
{renderArticalContent()} |
|
||||
</Spin> |
|
||||
</div> |
|
||||
); |
|
||||
}; |
|
||||
|
|
||||
const styles = { |
|
||||
rollBack: { position: "absolute", right: 30, top: 18, fontSize: 18 }, |
|
||||
}; |
|
||||
|
|
||||
ArticleModify.propTypes = {}; |
|
||||
|
|
||||
function mapStateToProps(state) { |
|
||||
const { auth, modifyData } = state; |
|
||||
return { |
|
||||
user: auth.user, |
|
||||
modifyData: modifyData.data, |
|
||||
}; |
|
||||
} |
|
||||
|
|
||||
export default connect(mapStateToProps)(ArticleModify); |
|
||||
|
|
||||
const controls = [ |
|
||||
"undo", |
|
||||
"redo", |
|
||||
"font-size", |
|
||||
"font-family", |
|
||||
"bold", |
|
||||
"italic", |
|
||||
"underline", |
|
||||
"text-color", |
|
||||
"text-indent", |
|
||||
{ |
|
||||
key: "media", |
|
||||
text: <PictureOutlined theme="outlined" />, |
|
||||
title: "插入图片", |
|
||||
}, |
|
||||
"letter-spacing", |
|
||||
"line-height", |
|
||||
"list-ol", |
|
||||
"list-ul", |
|
||||
"remove-styles", |
|
||||
"text-align", |
|
||||
"clear", |
|
||||
]; |
|
||||
|
|
||||
const fontFamilies = [ |
|
||||
{ |
|
||||
name: "Araial", |
|
||||
family: "Arial, Helvetica, sans-serif", |
|
||||
}, |
|
||||
{ |
|
||||
name: "Georgia", |
|
||||
family: "Georgia, serif", |
|
||||
}, |
|
||||
{ |
|
||||
name: "Impact", |
|
||||
family: "Impact, serif", |
|
||||
}, |
|
||||
{ |
|
||||
name: "Monospace", |
|
||||
family: '"Courier New", Courier, monospace', |
|
||||
}, |
|
||||
{ |
|
||||
name: "仿宋", |
|
||||
family: "仿宋", |
|
||||
}, |
|
||||
{ |
|
||||
name: "宋体", |
|
||||
family: 'tahoma, arial, "Hiragino Sans GB", 宋体, sans-serif', |
|
||||
}, |
|
||||
{ |
|
||||
name: "黑体", |
|
||||
family: "黑体", |
|
||||
}, |
|
||||
{ |
|
||||
name: "楷体", |
|
||||
family: "楷体", |
|
||||
}, |
|
||||
{ |
|
||||
name: "等线", |
|
||||
family: "等线", |
|
||||
}, |
|
||||
{ |
|
||||
name: "微软雅黑", |
|
||||
family: "微软雅黑", |
|
||||
}, |
|
||||
]; |
|
@ -1,6 +0,0 @@ |
|||||
'use strict'; |
|
||||
import { editLaborParty } from './party' |
|
||||
|
|
||||
export default { |
|
||||
editLaborParty |
|
||||
} |
|
@ -1,61 +0,0 @@ |
|||||
'use strict'; |
|
||||
import { ApiTable } from '$utils' |
|
||||
import { Request } from '@peace/utils' |
|
||||
import { basicAction } from '@peace/utils' |
|
||||
|
|
||||
|
|
||||
export function editLaborParty(obj) { |
|
||||
return dispatch => basicAction({ |
|
||||
type: 'put', |
|
||||
dispatch: dispatch, |
|
||||
data: obj, |
|
||||
actionType: 'EDIT_PARTY', |
|
||||
url: `${ApiTable.getpartyMember}`, |
|
||||
msg: { error: '编辑党员工会人数失败' }, |
|
||||
reducer: { name: 'editLaborParty' } |
|
||||
}); |
|
||||
} |
|
||||
export function getCommittee(query) { |
|
||||
return dispatch => basicAction({ |
|
||||
type: 'get', |
|
||||
dispatch: dispatch, |
|
||||
query, |
|
||||
actionType: 'GET_COMMITTEE', |
|
||||
url: `${ApiTable.getCommittee}`, |
|
||||
msg: { error: '获取支委会人员信息失败' }, |
|
||||
// reducer: { name: 'editLaborParty' }
|
|
||||
}); |
|
||||
} |
|
||||
export function postCommittee(query) { |
|
||||
return dispatch => basicAction({ |
|
||||
type: 'post', |
|
||||
dispatch: dispatch, |
|
||||
data:query, |
|
||||
actionType: 'POST_COMMITTEE', |
|
||||
url: `${ApiTable.postCommittee}`, |
|
||||
msg: { error: '新增支委会人员信息失败' }, |
|
||||
// reducer: { name: 'editLaborParty' }
|
|
||||
}); |
|
||||
} |
|
||||
export function putCommittee(query,putid) { |
|
||||
return dispatch => basicAction({ |
|
||||
type: 'put', |
|
||||
dispatch: dispatch, |
|
||||
data:query, |
|
||||
actionType: 'PUT_COMMITTEE', |
|
||||
url: ApiTable.putCommittee.replace(':id',putid), |
|
||||
msg: { error: '修改支委会人员信息失败' }, |
|
||||
// reducer: { name: 'editLaborParty' }
|
|
||||
}); |
|
||||
} |
|
||||
export function delCommittee(query,putid) { |
|
||||
return dispatch => basicAction({ |
|
||||
type: 'del', |
|
||||
dispatch: dispatch, |
|
||||
data:query, |
|
||||
actionType: 'DEL_COMMITTEE', |
|
||||
url: ApiTable.putCommittee.replace(':id',putid), |
|
||||
msg: { error: '删除支委会人员信息失败' }, |
|
||||
// reducer: { name: 'editLaborParty' }
|
|
||||
}); |
|
||||
} |
|
@ -1,892 +0,0 @@ |
|||||
import React, { useEffect, useState } from "react"; |
|
||||
import { connect } from "react-redux"; |
|
||||
import { Form, Spin, message, Row, Col } from "antd"; |
|
||||
import { |
|
||||
ModalForm, |
|
||||
ProForm, |
|
||||
ProFormText, |
|
||||
ProFormSelect, |
|
||||
ProFormDatePicker, |
|
||||
ProFormTextArea, |
|
||||
} from "@ant-design/pro-form"; |
|
||||
import { getCommittee, putCommittee } from "../actions/party"; |
|
||||
|
|
||||
import _ from "lodash"; |
|
||||
import Uploads from "../../../components/Upload/fujian.js"; |
|
||||
import "./index.less"; |
|
||||
import { Scroller } from "$components"; |
|
||||
|
|
||||
const ProjectModal = (props) => { |
|
||||
const { |
|
||||
visible, |
|
||||
onVisibleChange, |
|
||||
typecard, |
|
||||
rewkeys, |
|
||||
recortd, |
|
||||
dispatch, |
|
||||
flageMold, |
|
||||
setFlageMold, |
|
||||
setFlageRef, |
|
||||
} = props; |
|
||||
const [newlys, setNewlys] = useState(); //必填数据
|
|
||||
const [newlysay, setNewlysay] = useState(); //处理hou
|
|
||||
const [records, setRecords] = useState(); //处理
|
|
||||
const [recordsay, setRecordsay] = useState(); //必填数据
|
|
||||
const [uploadVisible, setUploadVisible] = useState(false); |
|
||||
const [files, setFiles] = useState(); |
|
||||
// const [lin, setlin] = useState([]);
|
|
||||
// useEffect(() => {
|
|
||||
// if (recortd?.photograph?.length > 0) {
|
|
||||
// setlin(JSON.parse(recortd?.photograph));
|
|
||||
// }
|
|
||||
// }, [recortd]);
|
|
||||
// useEffect(() => {
|
|
||||
// return () => {
|
|
||||
// setlin(null);
|
|
||||
// };
|
|
||||
// });
|
|
||||
const onFileUploaded = (fileList) => { |
|
||||
// setlin(fileList.length === 0 ? [] : localStorage.getItem("modifyData") ? JSON.parse(localStorage.getItem("modifyData"))?.files !== null ? JSON.parse(JSON.parse(localStorage.getItem("modifyData"))?.files) : [] : [])
|
|
||||
// console.log(fileList.length === 0 ? [] : localStorage.getItem("modifyData") ? JSON.parse(localStorage.getItem("modifyData"))?.files !== null ? JSON.parse(JSON.parse(localStorage.getItem("modifyData"))?.files) : [] : [])
|
|
||||
setFiles(fileList); |
|
||||
}; |
|
||||
return ( |
|
||||
<Spin spinning={false}> |
|
||||
<ModalForm |
|
||||
width={"76rem"} |
|
||||
style={{ height: "40rem" }} |
|
||||
title="离任" |
|
||||
visible={visible} |
|
||||
onVisibleChange={onVisibleChange} |
|
||||
modalProps={{ |
|
||||
destroyOnClose: true, |
|
||||
}} |
|
||||
submitter={typecard == "outexamine" ? false : true} |
|
||||
onFinish={(values) => { |
|
||||
console.log(values); |
|
||||
console.log(recortd); |
|
||||
if (typecard == "Outgoing") { |
|
||||
// setDelet(values);
|
|
||||
const putid = recortd?.id; |
|
||||
let photograp = null; |
|
||||
if ( |
|
||||
JSON.stringify(recortd?.photograph) !== |
|
||||
JSON.stringify(values.photograph) |
|
||||
) { |
|
||||
photograp = values?.photograph; |
|
||||
} else { |
|
||||
photograp = recortd?.photograph; |
|
||||
} |
|
||||
const query = { |
|
||||
...values, |
|
||||
mold: false, |
|
||||
photograph: photograp, |
|
||||
}; |
|
||||
dispatch(putCommittee(query, putid)).then((res) => { |
|
||||
setFlageMold(!flageMold); |
|
||||
if (res.success) { |
|
||||
message.success("离任成功"); |
|
||||
} else { |
|
||||
message.error("离任失败"); |
|
||||
} |
|
||||
}); |
|
||||
return true; |
|
||||
} |
|
||||
if (typecard == "Outgoingss") { |
|
||||
// setDelet(values);
|
|
||||
const putid = recortd?.id; |
|
||||
let photograp = null; |
|
||||
if ( |
|
||||
JSON.stringify(recortd?.photograph) !== |
|
||||
JSON.stringify(values.photograph) |
|
||||
) { |
|
||||
photograp = values?.photograph; |
|
||||
} else { |
|
||||
photograp = recortd?.photograph; |
|
||||
} |
|
||||
|
|
||||
const query = { |
|
||||
...values, |
|
||||
forOrganization: "中共江西飞尚科技有限公司支部委员会", |
|
||||
photograph: photograp, |
|
||||
}; |
|
||||
dispatch(putCommittee(query, putid)).then((res) => { |
|
||||
// tableActionRef.current.reload();
|
|
||||
setFlageMold(!flageMold); |
|
||||
if (res.success) { |
|
||||
message.success("修改成功"); |
|
||||
} else { |
|
||||
message.error("修改失败"); |
|
||||
} |
|
||||
}); |
|
||||
return true; |
|
||||
} |
|
||||
}} |
|
||||
initialValues={recortd} |
|
||||
> |
|
||||
<Scroller containerId={"article-container-query"} height={"100%"}> |
|
||||
{typecard === "Outgoing" ? ( |
|
||||
<ProForm.Group> |
|
||||
<Row style={{ width: "75rem" }}> |
|
||||
<Col span={7}> |
|
||||
<ProFormText |
|
||||
name="name" |
|
||||
width="md" |
|
||||
label="姓名" |
|
||||
placeholder="请输入姓名" |
|
||||
// value={recortd?.laborUnion}
|
|
||||
rules={[{ required: true, message: "必填", max: 50 }]} |
|
||||
// initialValue={recortd?.laborUnion}
|
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col style={{ width: "20.5rem", marginLeft: 5 }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "小学", |
|
||||
label: "小学", |
|
||||
}, |
|
||||
{ |
|
||||
value: "高中", |
|
||||
label: "高中", |
|
||||
}, |
|
||||
{ |
|
||||
value: "中技", |
|
||||
label: "中技", |
|
||||
}, |
|
||||
{ |
|
||||
value: "中专", |
|
||||
label: "中专", |
|
||||
}, |
|
||||
{ |
|
||||
value: "大专", |
|
||||
label: "大专", |
|
||||
}, |
|
||||
{ |
|
||||
value: "本科", |
|
||||
label: "本科", |
|
||||
}, |
|
||||
{ |
|
||||
value: "研究生", |
|
||||
label: "研究生", |
|
||||
}, |
|
||||
{ |
|
||||
value: "博士", |
|
||||
label: "博士", |
|
||||
}, |
|
||||
{ |
|
||||
value: "博士后", |
|
||||
label: "博士后", |
|
||||
}, |
|
||||
]} |
|
||||
name="education" |
|
||||
label="学历" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col span={8} style={{ marginLeft: 26 }}> |
|
||||
<ProForm.Item label="上传照片" name="photograph"> |
|
||||
<Uploads |
|
||||
fileTypes={["png", "jpg", "jpeg"]} |
|
||||
maxFilesNum={1} |
|
||||
maxFileSize={10} |
|
||||
onChange={onFileUploaded} |
|
||||
clearFileList={uploadVisible} |
|
||||
// value={lin}
|
|
||||
listType={"picture-card"} |
|
||||
/> |
|
||||
</ProForm.Item> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }} justify="space-around"> |
|
||||
<Col span={24}> |
|
||||
<ProFormText |
|
||||
name="phone" |
|
||||
width="md" |
|
||||
label="联系电话" |
|
||||
placeholder="请输入电话" |
|
||||
rules={[ |
|
||||
{ required: true, message: "必填" }, |
|
||||
{ |
|
||||
pattern: |
|
||||
/^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/, |
|
||||
message: "请输入正确的手机号", |
|
||||
}, |
|
||||
]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "男", |
|
||||
label: "男", |
|
||||
}, |
|
||||
{ |
|
||||
value: "女", |
|
||||
label: "女", |
|
||||
}, |
|
||||
]} |
|
||||
name="sexuality" |
|
||||
label="性别" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }} justify="space-around"> |
|
||||
<Col span={24}> |
|
||||
<ProFormText |
|
||||
name="forOrganization" |
|
||||
width="md" |
|
||||
disabled |
|
||||
label="任职组织" |
|
||||
placeholder="请输入任职组织" |
|
||||
value="中共江西飞尚科技有限公司支部委员会" |
|
||||
// rules={[{ required: true, message: "必填" }]}
|
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "党支部书记", |
|
||||
label: "党支部书记", |
|
||||
}, |
|
||||
{ |
|
||||
value: "党支部副书记", |
|
||||
label: "党支部副书记", |
|
||||
}, |
|
||||
{ |
|
||||
value: "党支部委员", |
|
||||
label: "党支部委员", |
|
||||
}, |
|
||||
]} |
|
||||
name="partyPosts" |
|
||||
label="党内职务" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "选举", |
|
||||
label: "选举", |
|
||||
}, |
|
||||
{ |
|
||||
value: "任命", |
|
||||
label: "任命", |
|
||||
}, |
|
||||
]} |
|
||||
name="howPositions" |
|
||||
label="任职方式" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<div className="model-increase"> |
|
||||
<Row style={{ width: "75rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormDatePicker |
|
||||
name="employmentTime" |
|
||||
label="任职时间" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
<Col span={6} style={{ marginLeft: 26 }}> |
|
||||
<ProFormText |
|
||||
name="tenure" |
|
||||
width="md" |
|
||||
label="任期" |
|
||||
placeholder="请输入任期" |
|
||||
// value={recordsay?.[0]?.value}
|
|
||||
rules={[{ required: true, message: "必填", max: 50 },{ |
|
||||
pattern: |
|
||||
/(^-?[1-9]([0-9]*)$|^-?[0-9]$)/, |
|
||||
message: "请输入正确的任期", |
|
||||
},]} |
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col span={8} style={{ marginLeft: 26 }}> |
|
||||
<ProFormDatePicker |
|
||||
name="expirationTime" |
|
||||
label="届满时间" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
</div> |
|
||||
<div className="remark-field"> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col> |
|
||||
<ProFormTextArea |
|
||||
label="职责" |
|
||||
name="responsibility" |
|
||||
rules={[{ max: 500 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col> |
|
||||
<ProFormTextArea |
|
||||
label="备注" |
|
||||
name="remark" |
|
||||
rules={[{ max: 500 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
</div> |
|
||||
<div className="outgoing-date"> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col> |
|
||||
<ProFormDatePicker |
|
||||
name="leaveTime" |
|
||||
label="离任时间" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col> |
|
||||
<ProFormTextArea |
|
||||
label="离任原因" |
|
||||
name="leavingReason" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
</div> |
|
||||
</ProForm.Group> |
|
||||
) : ( |
|
||||
"" |
|
||||
)} |
|
||||
{typecard === "Outgoingss" ? ( |
|
||||
<ProForm.Group> |
|
||||
<Row style={{ width: "75rem" }}> |
|
||||
<Col span={7}> |
|
||||
<ProFormText |
|
||||
name="name" |
|
||||
width="md" |
|
||||
label="姓名" |
|
||||
placeholder="请输入姓名" |
|
||||
// value={recortd?.laborUnion}
|
|
||||
rules={[{ required: true, message: "必填", max: 50 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
<Col style={{ width: "20.5rem", marginLeft: 5 }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "小学", |
|
||||
label: "小学", |
|
||||
}, |
|
||||
{ |
|
||||
value: "高中", |
|
||||
label: "高中", |
|
||||
}, |
|
||||
{ |
|
||||
value: "中技", |
|
||||
label: "中技", |
|
||||
}, |
|
||||
{ |
|
||||
value: "中专", |
|
||||
label: "中专", |
|
||||
}, |
|
||||
{ |
|
||||
value: "大专", |
|
||||
label: "大专", |
|
||||
}, |
|
||||
{ |
|
||||
value: "本科", |
|
||||
label: "本科", |
|
||||
}, |
|
||||
{ |
|
||||
value: "研究生", |
|
||||
label: "研究生", |
|
||||
}, |
|
||||
{ |
|
||||
value: "博士", |
|
||||
label: "博士", |
|
||||
}, |
|
||||
{ |
|
||||
value: "博士后", |
|
||||
label: "博士后", |
|
||||
}, |
|
||||
]} |
|
||||
name="education" |
|
||||
label="学历" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col span={8} style={{ marginLeft: 26 }}> |
|
||||
<ProForm.Item label="上传照片" name="photograph"> |
|
||||
<Uploads |
|
||||
fileTypes={["png", "jpg", "jpeg"]} |
|
||||
maxFilesNum={1} |
|
||||
maxFileSize={10} |
|
||||
onChange={onFileUploaded} |
|
||||
clearFileList={uploadVisible} |
|
||||
// value={lin}
|
|
||||
listType={"picture-card"} |
|
||||
/> |
|
||||
</ProForm.Item> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }} justify="space-around"> |
|
||||
<Col span={24}> |
|
||||
<ProFormText |
|
||||
name="phone" |
|
||||
width="md" |
|
||||
label="联系电话" |
|
||||
placeholder="请输入电话" |
|
||||
rules={[ |
|
||||
{ required: true, message: "必填" }, |
|
||||
{ |
|
||||
pattern: |
|
||||
/^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/, |
|
||||
message: "请输入正确的手机号", |
|
||||
}, |
|
||||
]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "男", |
|
||||
label: "男", |
|
||||
}, |
|
||||
{ |
|
||||
value: "女", |
|
||||
label: "女", |
|
||||
}, |
|
||||
]} |
|
||||
name="sexuality" |
|
||||
label="性别" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }} justify="space-around"> |
|
||||
<Col span={24}> |
|
||||
<ProFormText |
|
||||
name="for_organization" |
|
||||
width="md" |
|
||||
disabled |
|
||||
label="任职组织" |
|
||||
placeholder="请输入任职组织" |
|
||||
value="中共江西飞尚科技有限公司支部委员会" |
|
||||
// rules={[{ required: true, message: "必填" }]}
|
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "党支部书记", |
|
||||
label: "党支部书记", |
|
||||
}, |
|
||||
{ |
|
||||
value: "党支部副书记", |
|
||||
label: "党支部副书记", |
|
||||
}, |
|
||||
{ |
|
||||
value: "党支部委员", |
|
||||
label: "党支部委员", |
|
||||
}, |
|
||||
]} |
|
||||
name="partyPosts" |
|
||||
label="党内职务" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "选举", |
|
||||
label: "选举", |
|
||||
}, |
|
||||
{ |
|
||||
value: "任命", |
|
||||
label: "任命", |
|
||||
}, |
|
||||
]} |
|
||||
name="howPositions" |
|
||||
label="任职方式" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<div className="model-increase"> |
|
||||
<Row style={{ width: "75rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormDatePicker |
|
||||
name="employmentTime" |
|
||||
label="任职时间" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
<Col span={6} style={{ marginLeft: 26 }}> |
|
||||
<ProFormText |
|
||||
name="tenure" |
|
||||
width="md" |
|
||||
label="任期" |
|
||||
placeholder="请输入任期" |
|
||||
// value={recordsay?.[0]?.value}
|
|
||||
rules={[{ required: true, message: "必填", max: 50 },{ |
|
||||
pattern: |
|
||||
/(^-?[1-9]([0-9]*)$|^-?[0-9]$)/, |
|
||||
message: "请输入正确的任期", |
|
||||
},]} |
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col span={8} style={{ marginLeft: 26 }}> |
|
||||
<ProFormDatePicker |
|
||||
name="expirationTime" |
|
||||
label="届满时间" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
</div> |
|
||||
<div className="remark-field"> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col> |
|
||||
<ProFormTextArea |
|
||||
label="职责" |
|
||||
name="responsibility" |
|
||||
rules={[{ max: 500 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col> |
|
||||
<ProFormTextArea |
|
||||
label="备注" |
|
||||
name="remark" |
|
||||
rules={[{ max: 500 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
</div> |
|
||||
<div className="outgoing-date"> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col> |
|
||||
<ProFormDatePicker |
|
||||
name="leaveTime" |
|
||||
label="离任时间" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col> |
|
||||
<ProFormTextArea |
|
||||
label="离任原因" |
|
||||
name="leavingReason" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
</div> |
|
||||
</ProForm.Group> |
|
||||
) : ( |
|
||||
"" |
|
||||
)} |
|
||||
{typecard == "outexamine" ? ( |
|
||||
<ProForm.Group> |
|
||||
<Row style={{ width: "75rem" }}> |
|
||||
<Col span={7}> |
|
||||
<ProFormText |
|
||||
name="name" |
|
||||
width="md" |
|
||||
disabled |
|
||||
label="姓名" |
|
||||
placeholder="请输入姓名" |
|
||||
value={recortd?.name} |
|
||||
rules={[{ required: true, message: "必填", max: 50 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col style={{ width: "20.5rem", marginLeft: 5 }}> |
|
||||
<ProFormSelect |
|
||||
disabled |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "小学", |
|
||||
label: "小学", |
|
||||
}, |
|
||||
{ |
|
||||
value: "高中", |
|
||||
label: "高中", |
|
||||
}, |
|
||||
{ |
|
||||
value: "中技", |
|
||||
label: "中技", |
|
||||
}, |
|
||||
{ |
|
||||
value: "中专", |
|
||||
label: "中专", |
|
||||
}, |
|
||||
{ |
|
||||
value: "大专", |
|
||||
label: "大专", |
|
||||
}, |
|
||||
{ |
|
||||
value: "本科", |
|
||||
label: "本科", |
|
||||
}, |
|
||||
{ |
|
||||
value: "研究生", |
|
||||
label: "研究生", |
|
||||
}, |
|
||||
{ |
|
||||
value: "博士", |
|
||||
label: "博士", |
|
||||
}, |
|
||||
{ |
|
||||
value: "博士后", |
|
||||
label: "博士后", |
|
||||
}, |
|
||||
]} |
|
||||
name="education" |
|
||||
label="学历" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col span={8} style={{ marginLeft: 26 }}> |
|
||||
<ProForm.Item label="上传照片" name="photograph"> |
|
||||
<Uploads |
|
||||
fileTypes={["png", "jpg", "jpeg"]} |
|
||||
maxFilesNum={1} |
|
||||
maxFileSize={10} |
|
||||
onChange={onFileUploaded} |
|
||||
clearFileList={uploadVisible} |
|
||||
// value={lin}
|
|
||||
listType={"picture-card"} |
|
||||
/> |
|
||||
</ProForm.Item> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }} justify="space-around"> |
|
||||
<Col span={24}> |
|
||||
<ProFormText |
|
||||
name="phone" |
|
||||
disabled |
|
||||
width="md" |
|
||||
label="联系电话" |
|
||||
placeholder="请输入电话" |
|
||||
rules={[ |
|
||||
{ required: true, message: "必填" }, |
|
||||
{ |
|
||||
pattern: |
|
||||
/^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/, |
|
||||
message: "请输入正确的手机号", |
|
||||
}, |
|
||||
]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "男", |
|
||||
label: "男", |
|
||||
}, |
|
||||
{ |
|
||||
value: "女", |
|
||||
label: "女", |
|
||||
}, |
|
||||
]} |
|
||||
name="sexuality" |
|
||||
disabled |
|
||||
label="性别" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }} justify="space-around"> |
|
||||
<Col span={24}> |
|
||||
<ProFormText |
|
||||
name="forOrganization" |
|
||||
width="md" |
|
||||
disabled |
|
||||
label="任职组织" |
|
||||
placeholder="请输入任职组织" |
|
||||
value="中共江西飞尚科技有限公司支部委员会" |
|
||||
// rules={[{ required: true, message: "必填" }]}
|
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
disabled |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "党支部书记", |
|
||||
label: "党支部书记", |
|
||||
}, |
|
||||
{ |
|
||||
value: "党支部副书记", |
|
||||
label: "党支部副书记", |
|
||||
}, |
|
||||
{ |
|
||||
value: "党支部委员", |
|
||||
label: "党支部委员", |
|
||||
}, |
|
||||
]} |
|
||||
name="partyPosts" |
|
||||
label="党内职务" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
disabled |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "选举", |
|
||||
label: "选举", |
|
||||
}, |
|
||||
{ |
|
||||
value: "任命", |
|
||||
label: "任命", |
|
||||
}, |
|
||||
]} |
|
||||
name="howPositions" |
|
||||
label="任职方式" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<div className="model-increase"> |
|
||||
<Row style={{ width: "75rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormDatePicker |
|
||||
disabled |
|
||||
name="employmentTime" |
|
||||
label="任职时间" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
<Col span={6} style={{ marginLeft: 26 }}> |
|
||||
<ProFormText |
|
||||
name="tenure" |
|
||||
width="md" |
|
||||
disabled |
|
||||
label="任期" |
|
||||
placeholder="请输入任期" |
|
||||
// value={recordsay?.[0]?.value}
|
|
||||
rules={[{ required: true, message: "必填", max: 50 },{ |
|
||||
pattern: |
|
||||
/(^-?[1-9]([0-9]*)$|^-?[0-9]$)/, |
|
||||
message: "请输入正确的任期", |
|
||||
},]} |
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col span={8} style={{ marginLeft: 26 }}> |
|
||||
<ProFormDatePicker |
|
||||
disabled |
|
||||
name="expirationTime" |
|
||||
label="届满时间" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
</div> |
|
||||
<div className="remark-field"> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col> |
|
||||
<ProFormTextArea |
|
||||
disabled |
|
||||
label="职责" |
|
||||
name="responsibility" |
|
||||
rules={[{ max: 500 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col> |
|
||||
<ProFormTextArea |
|
||||
disabled |
|
||||
label="备注" |
|
||||
name="remark" |
|
||||
rules={[{ max: 500 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
</div> |
|
||||
<div className="outgoing-date"> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col> |
|
||||
<ProFormDatePicker |
|
||||
disabled |
|
||||
name="leaveTime" |
|
||||
label="离任时间" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col> |
|
||||
<ProFormTextArea |
|
||||
disabled |
|
||||
label="离任原因" |
|
||||
name="leavingReason" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
</div> |
|
||||
</ProForm.Group> |
|
||||
) : ( |
|
||||
"" |
|
||||
)} |
|
||||
</Scroller> |
|
||||
</ModalForm> |
|
||||
</Spin> |
|
||||
); |
|
||||
}; |
|
||||
function mapStateToProps(state) { |
|
||||
const { depMessage } = state; |
|
||||
const pakData = (dep) => { |
|
||||
return dep.map((d) => { |
|
||||
return { |
|
||||
title: d.name, |
|
||||
value: d.id, |
|
||||
children: pakData(d.subordinate), |
|
||||
}; |
|
||||
}); |
|
||||
}; |
|
||||
// let depData = pakData(depMessage.data || [])
|
|
||||
return { |
|
||||
// loading: depMessage.isRequesting,
|
|
||||
// depData,
|
|
||||
}; |
|
||||
} |
|
||||
export default connect(mapStateToProps)(ProjectModal); |
|
@ -1,82 +0,0 @@ |
|||||
// import React from 'react'
|
|
||||
// import PropTypes from 'prop-types'
|
|
||||
// import { Modal, Form, InputNumber, Button } from 'antd'
|
|
||||
// import { useEffect } from 'react'
|
|
||||
|
|
||||
// const EditParty = props => {
|
|
||||
// const { visible, handleOk, handleCancel, editData } = props
|
|
||||
// const [form] = Form.useForm();
|
|
||||
|
|
||||
// useEffect(() => {
|
|
||||
// if (editData && visible) {
|
|
||||
// form.setFieldsValue({
|
|
||||
// party: editData.partyNumber,
|
|
||||
// labor: editData.laborUnion
|
|
||||
// })
|
|
||||
// }
|
|
||||
// }, [editData, visible])
|
|
||||
|
|
||||
// return (
|
|
||||
// <Modal
|
|
||||
// visible={visible}
|
|
||||
// // onOk={handleOk}
|
|
||||
// onCancel={handleCancel}
|
|
||||
// footer={null}
|
|
||||
// title="党员、工会人数编辑"
|
|
||||
// >
|
|
||||
// <Form
|
|
||||
// name="basic"
|
|
||||
// labelCol={{ span: 8 }}
|
|
||||
// wrapperCol={{ span: 16 }}
|
|
||||
// labelAlign="left"
|
|
||||
// form={form}
|
|
||||
// onFinish={handleOk}
|
|
||||
// // onFinishFailed={onFinishFailed}
|
|
||||
// autoComplete="off"
|
|
||||
// >
|
|
||||
// <Form.Item
|
|
||||
// label="党员人数"
|
|
||||
// name="party"
|
|
||||
// rules={[{ required: true, message: '请输入党员人数' }]}
|
|
||||
// >
|
|
||||
// <InputNumber rows={1} min={0} width={180}></InputNumber>
|
|
||||
// </Form.Item>
|
|
||||
// <Form.Item
|
|
||||
// label="工会人数"
|
|
||||
// name="labor"
|
|
||||
// rules={[{ required: true, message: '请输入工会人数' }]}
|
|
||||
// >
|
|
||||
// <InputNumber rows={1} min={0} width={180}></InputNumber>
|
|
||||
// </Form.Item>
|
|
||||
// <Form.Item noStyle={true}>
|
|
||||
// <div style={{
|
|
||||
// padding: '12px 0',
|
|
||||
// width: '100%',
|
|
||||
// textAlign: 'right',
|
|
||||
// }}>
|
|
||||
// <Button
|
|
||||
// style={{ marginRight: 16, width: 88 }}
|
|
||||
// onClick={handleCancel}
|
|
||||
// >取消</Button>
|
|
||||
// <Button
|
|
||||
// htmlType="submit"
|
|
||||
// type="primary"
|
|
||||
// style={{ marginRight: 16, width: 88 }}
|
|
||||
// // onClick={() => handleOk(form)}
|
|
||||
// >确定</Button>
|
|
||||
// </div>
|
|
||||
// </Form.Item>
|
|
||||
|
|
||||
// </Form>
|
|
||||
// </Modal>
|
|
||||
// )
|
|
||||
// }
|
|
||||
|
|
||||
// EditParty.propTypes = {
|
|
||||
// visible: PropTypes.bool,
|
|
||||
// handleCancel: PropTypes.func,
|
|
||||
// handleOk: PropTypes.func,
|
|
||||
// editData: PropTypes.object
|
|
||||
// }
|
|
||||
|
|
||||
// export default EditParty
|
|
@ -1,42 +0,0 @@ |
|||||
.model-increase{ |
|
||||
.ant-picker-input{ |
|
||||
width: 19rem !important; |
|
||||
} |
|
||||
.ant-input{ |
|
||||
width: 19rem !important; |
|
||||
} |
|
||||
} |
|
||||
.remark-field{ |
|
||||
.ant-col{ |
|
||||
width: 63rem !important; |
|
||||
} |
|
||||
} |
|
||||
.ant-row{ |
|
||||
margin-left: 26px !important; |
|
||||
} |
|
||||
.outgoing-date{ |
|
||||
.ant-picker-input{ |
|
||||
width: 17rem; |
|
||||
} |
|
||||
.ant-form-item-control-input{ |
|
||||
width: 61.5rem; |
|
||||
} |
|
||||
} |
|
||||
.display-ok{ |
|
||||
.ant-space-item{ |
|
||||
display: none !important; |
|
||||
} |
|
||||
} |
|
||||
.model-cancel{ |
|
||||
.ant-modal-footer{ |
|
||||
display: none !important; |
|
||||
} |
|
||||
} |
|
||||
.model-increase-two{ |
|
||||
.ant-picker-input{ |
|
||||
width: 17.5rem !important; |
|
||||
} |
|
||||
.ant-select-show-arrow{ |
|
||||
width: 308px !important; |
|
||||
} |
|
||||
} |
|
@ -1,799 +0,0 @@ |
|||||
import React, { useEffect, useState } from "react"; |
|
||||
import { connect } from "react-redux"; |
|
||||
import { Select, Spin, message, Row, Col, Radio } from "antd"; |
|
||||
import { |
|
||||
ModalForm, |
|
||||
ProForm, |
|
||||
ProFormText, |
|
||||
ProFormSelect, |
|
||||
ProFormDatePicker, |
|
||||
ProFormTextArea, |
|
||||
} from "@ant-design/pro-form"; |
|
||||
import { postCommittee, putCommittee } from "../actions/party"; |
|
||||
import _ from "lodash"; |
|
||||
import Uploads from "../../../components/Upload/fujian.js"; |
|
||||
import "./index.less"; |
|
||||
import { Scroller } from "$components"; |
|
||||
const { Option } = Select; |
|
||||
const ProjectModal = (props) => { |
|
||||
const { |
|
||||
visible, |
|
||||
onVisibleChange, |
|
||||
typecard, |
|
||||
tableActionRef, |
|
||||
recortd, |
|
||||
dispatch, |
|
||||
flageMold, |
|
||||
setFlageMold, |
|
||||
category, |
|
||||
} = props; |
|
||||
const [newlys, setNewlys] = useState(); //必填数据
|
|
||||
const [newlysay, setNewlysay] = useState(); //处理hou
|
|
||||
const [records, setRecords] = useState(); //处理
|
|
||||
const [recordsay, setRecordsay] = useState(); //必填数据
|
|
||||
const [files, setFiles] = useState(); |
|
||||
const [uploadVisible, setUploadVisible] = useState(false); |
|
||||
// const [lin, setlin] = useState([]);
|
|
||||
// useEffect(() => {
|
|
||||
// if (recortd?.photograph?.length > 0) {
|
|
||||
// setlin(JSON.parse(recortd?.photograph));
|
|
||||
// }
|
|
||||
// }, [recortd]);
|
|
||||
// useEffect(() => {
|
|
||||
// return () => {
|
|
||||
// setlin([])
|
|
||||
// }
|
|
||||
// })
|
|
||||
const onFileUploaded = (fileList) => { |
|
||||
console.log(fileList); |
|
||||
// setlin(fileList.length === 0 ? [] : localStorage.getItem("modifyData") ? JSON.parse(localStorage.getItem("modifyData"))?.files !== null ? JSON.parse(JSON.parse(localStorage.getItem("modifyData"))?.files) : [] : [])
|
|
||||
// console.log(fileList.length === 0 ? [] : localStorage.getItem("modifyData") ? JSON.parse(localStorage.getItem("modifyData"))?.files !== null ? JSON.parse(JSON.parse(localStorage.getItem("modifyData"))?.files) : [] : [])
|
|
||||
setFiles(fileList); |
|
||||
}; |
|
||||
const nation = [ "汉族","满族","蒙古族","回族","藏族","维吾尔族","苗族","彝族","壮族","布依族","侗族","瑶族","白族","土家族","哈尼族","哈萨克族","傣族","黎族","傈僳族","佤族","畲族","高山族","拉祜族","水族","东乡族","纳西族","景颇族","柯尔克孜族","土族","达斡尔族","仫佬族","羌族","布朗族","撒拉族","毛南族","仡佬族","锡伯族","阿昌族","普米族","朝鲜族","塔吉克族","怒族","乌孜别克族","俄罗斯族","鄂温克族","德昂族","保安族","裕固族","京族","塔塔尔族","独龙族","鄂伦春族","赫哲族","门巴族","珞巴族", |
|
||||
"基诺族", |
|
||||
"其他民族", |
|
||||
"外国血统", |
|
||||
"外国民族", |
|
||||
]; |
|
||||
return ( |
|
||||
<Spin spinning={false}> |
|
||||
<div> |
|
||||
<ModalForm |
|
||||
width={"76rem"} |
|
||||
style={{ height: "40rem" }} |
|
||||
title={category} |
|
||||
visible={visible} |
|
||||
onVisibleChange={onVisibleChange} |
|
||||
modalProps={{ |
|
||||
destroyOnClose: true, |
|
||||
}} |
|
||||
submitter={typecard == "examine" ? false : true} |
|
||||
onFinish={(values) => { |
|
||||
console.log(values); |
|
||||
if (typecard == "compile") { |
|
||||
// setDelet(values);
|
|
||||
|
|
||||
const query = { |
|
||||
...values, |
|
||||
mold: true, |
|
||||
forOrganization: "中共江西飞尚科技有限公司支部委员会", |
|
||||
photograph: values?.photograph ? values?.photograph : [], |
|
||||
}; |
|
||||
dispatch(postCommittee(query)).then((res) => { |
|
||||
setFlageMold(!flageMold); |
|
||||
if (res.success) { |
|
||||
message.success("新增委员成功"); |
|
||||
} else { |
|
||||
message.error("新增委员失败"); |
|
||||
} |
|
||||
}); |
|
||||
return true; |
|
||||
} |
|
||||
if (typecard == "modification") { |
|
||||
// setDelet(values);
|
|
||||
const putid = recortd?.id; |
|
||||
let photograp = null; |
|
||||
if ( |
|
||||
JSON.stringify(recortd?.photograph) !== |
|
||||
JSON.stringify(values.photograph) |
|
||||
) { |
|
||||
photograp = values?.photograph; |
|
||||
} else { |
|
||||
photograp = recortd?.photograph; |
|
||||
} |
|
||||
const query = { |
|
||||
...values, |
|
||||
mold: true, |
|
||||
photograph: photograp, |
|
||||
}; |
|
||||
dispatch(putCommittee(query, putid)).then((res) => { |
|
||||
// tableActionRef.current.reload();
|
|
||||
setFlageMold(!flageMold); |
|
||||
if (res.success) { |
|
||||
message.success("修改成功"); |
|
||||
} else { |
|
||||
message.error("修改失败"); |
|
||||
} |
|
||||
}); |
|
||||
return true; |
|
||||
} |
|
||||
}} |
|
||||
initialValues={recortd} |
|
||||
> |
|
||||
<Scroller containerId={"article-container-query"} height={"100%"}> |
|
||||
{typecard == "compile" ? ( |
|
||||
<ProForm.Group> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
{" "} |
|
||||
<Col span={24}> |
|
||||
<ProForm.Item label="上传头像" name="photograph"> |
|
||||
<Uploads |
|
||||
fileTypes={["png", "jpg", "jpeg"]} |
|
||||
maxFilesNum={1} |
|
||||
maxFileSize={10} |
|
||||
onChange={onFileUploaded} |
|
||||
clearFileList={uploadVisible} |
|
||||
// value={lin}
|
|
||||
listType={"picture-card"} |
|
||||
/> |
|
||||
</ProForm.Item> |
|
||||
</Col> |
|
||||
<Col span={12}></Col> |
|
||||
</Row> |
|
||||
<Row> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormText |
|
||||
name="name" |
|
||||
width="md" |
|
||||
label="姓名" |
|
||||
placeholder="请输入姓名" |
|
||||
// value={recortd?.laborUnion}
|
|
||||
rules={[{ required: true, message: "必填", max: 50 }]} |
|
||||
// initialValue={recortd?.laborUnion}
|
|
||||
/> |
|
||||
</Col> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormText |
|
||||
name="phone" |
|
||||
width="md" |
|
||||
label="手机号" |
|
||||
placeholder="请输入手机号" |
|
||||
rules={[ |
|
||||
{ required: true, message: "必填" }, |
|
||||
{ |
|
||||
pattern: |
|
||||
/^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/, |
|
||||
message: "请输入正确的手机号", |
|
||||
}, |
|
||||
]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormText |
|
||||
name="name" |
|
||||
width="md" |
|
||||
label="身份证" |
|
||||
placeholder="请输入身份证" |
|
||||
// value={recortd?.laborUnion}
|
|
||||
rules={[{ required: true, message: "必填", max: 50 }]} |
|
||||
// initialValue={recortd?.laborUnion}
|
|
||||
/> |
|
||||
</Col> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "预备党员", |
|
||||
label: "预备党员", |
|
||||
}, |
|
||||
{ |
|
||||
value: "正式党员", |
|
||||
label: "正式党员", |
|
||||
}, |
|
||||
]} |
|
||||
name="education" |
|
||||
label="人员类别" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "男", |
|
||||
label: "男", |
|
||||
}, |
|
||||
{ |
|
||||
value: "女", |
|
||||
label: "女", |
|
||||
}, |
|
||||
]} |
|
||||
name="sexuality" |
|
||||
label="性别" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col style={{ width: "20.5rem", marginLeft: 5 }}> |
|
||||
<ProForm.Item |
|
||||
name="education" |
|
||||
label="民族" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
> |
|
||||
<Select> |
|
||||
{nation.map((item) => { |
|
||||
return <Option value={item}>{item}</Option>; |
|
||||
})} |
|
||||
</Select> |
|
||||
</ProForm.Item> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<div className="model-increase-two"> |
|
||||
<Row> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormDatePicker |
|
||||
name="employmentTime" |
|
||||
label="出生日期" |
|
||||
placeholder="请选择出生日期" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
<Col> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "小学", |
|
||||
label: "小学", |
|
||||
}, |
|
||||
{ |
|
||||
value: "高中", |
|
||||
label: "高中", |
|
||||
}, |
|
||||
{ |
|
||||
value: "中技", |
|
||||
label: "中技", |
|
||||
}, |
|
||||
{ |
|
||||
value: "中专", |
|
||||
label: "中专", |
|
||||
}, |
|
||||
{ |
|
||||
value: "大专", |
|
||||
label: "大专", |
|
||||
}, |
|
||||
{ |
|
||||
value: "本科", |
|
||||
label: "本科", |
|
||||
}, |
|
||||
{ |
|
||||
value: "研究生", |
|
||||
label: "研究生", |
|
||||
}, |
|
||||
{ |
|
||||
value: "博士", |
|
||||
label: "博士", |
|
||||
}, |
|
||||
{ |
|
||||
value: "博士后", |
|
||||
label: "博士后", |
|
||||
}, |
|
||||
]} |
|
||||
name="education" |
|
||||
label="学历" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormDatePicker |
|
||||
name="employmentTime" |
|
||||
label="加入党组织日期" |
|
||||
placeholder="请选择加入党组织日期" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormDatePicker |
|
||||
name="employmentTime" |
|
||||
label="转为正式党员日期" |
|
||||
placeholder="请选择转为正式党员日期" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "党支部书记", |
|
||||
label: "党支部书记", |
|
||||
}, |
|
||||
{ |
|
||||
value: "党支部副书记", |
|
||||
label: "党支部副书记", |
|
||||
}, |
|
||||
{ |
|
||||
value: "党支部委员", |
|
||||
label: "党支部委员", |
|
||||
}, |
|
||||
]} |
|
||||
name="partyPosts" |
|
||||
label="工作岗位" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProForm.Item |
|
||||
name="howPositions" |
|
||||
label="是否为单位领导成员" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
> |
|
||||
<Radio.Group> |
|
||||
<Radio value="true"> 是 </Radio> |
|
||||
<Radio value="false"> 否 </Radio> |
|
||||
</Radio.Group> |
|
||||
</ProForm.Item> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProForm.Item |
|
||||
name="howPositions" |
|
||||
label="是否新社会阶层" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
> |
|
||||
<Radio.Group> |
|
||||
<Radio value="true"> 是 </Radio> |
|
||||
<Radio value="false">否 </Radio> |
|
||||
</Radio.Group> |
|
||||
</ProForm.Item> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
</div> |
|
||||
</ProForm.Group> |
|
||||
) : ( |
|
||||
"" |
|
||||
)} |
|
||||
{typecard == "modification" ? ( |
|
||||
<ProForm.Group> |
|
||||
<Row style={{ width: "75rem" }}> |
|
||||
<Col span={7}> |
|
||||
<ProFormText |
|
||||
name="name" |
|
||||
width="md" |
|
||||
label="姓名" |
|
||||
placeholder="请输入姓名" |
|
||||
// value={recortd?.laborUnion}
|
|
||||
rules={[{ required: true, message: "必填", max: 50 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col style={{ width: "20.5rem", marginLeft: 5 }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "小学", |
|
||||
label: "小学", |
|
||||
}, |
|
||||
{ |
|
||||
value: "高中", |
|
||||
label: "高中", |
|
||||
}, |
|
||||
{ |
|
||||
value: "中技", |
|
||||
label: "中技", |
|
||||
}, |
|
||||
{ |
|
||||
value: "中专", |
|
||||
label: "中专", |
|
||||
}, |
|
||||
{ |
|
||||
value: "大专", |
|
||||
label: "大专", |
|
||||
}, |
|
||||
{ |
|
||||
value: "本科", |
|
||||
label: "本科", |
|
||||
}, |
|
||||
{ |
|
||||
value: "研究生", |
|
||||
label: "研究生", |
|
||||
}, |
|
||||
{ |
|
||||
value: "博士", |
|
||||
label: "博士", |
|
||||
}, |
|
||||
{ |
|
||||
value: "博士后", |
|
||||
label: "博士后", |
|
||||
}, |
|
||||
]} |
|
||||
name="education" |
|
||||
label="学历" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col span={8} style={{ marginLeft: 26 }}> |
|
||||
<ProForm.Item label="上传照片" name="photograph"> |
|
||||
<Uploads |
|
||||
fileTypes={["png", "jpg", "jpeg"]} |
|
||||
maxFilesNum={1} |
|
||||
maxFileSize={10} |
|
||||
onChange={onFileUploaded} |
|
||||
clearFileList={uploadVisible} |
|
||||
// value={lin}
|
|
||||
listType={"picture-card"} |
|
||||
/> |
|
||||
</ProForm.Item> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }} justify="space-around"> |
|
||||
<Col span={24}> |
|
||||
<ProFormText |
|
||||
name="phone" |
|
||||
width="md" |
|
||||
label="联系电话" |
|
||||
placeholder="请输入电话" |
|
||||
rules={[ |
|
||||
{ required: true, message: "必填" }, |
|
||||
{ |
|
||||
pattern: |
|
||||
/^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/, |
|
||||
message: "请输入正确的手机号", |
|
||||
}, |
|
||||
]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }} justify="space-around"> |
|
||||
<Col span={24}> |
|
||||
<ProFormText |
|
||||
name="forOrganization" |
|
||||
width="md" |
|
||||
disabled |
|
||||
label="任职组织" |
|
||||
placeholder="请输入任职组织" |
|
||||
value="中共江西飞尚科技有限公司支部委员会" |
|
||||
// rules={[{ required: true, message: "必填" }]}
|
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "党支部书记", |
|
||||
label: "党支部书记", |
|
||||
}, |
|
||||
{ |
|
||||
value: "党支部副书记", |
|
||||
label: "党支部副书记", |
|
||||
}, |
|
||||
{ |
|
||||
value: "党支部委员", |
|
||||
label: "党支部委员", |
|
||||
}, |
|
||||
]} |
|
||||
name="partyPosts" |
|
||||
label="党内职务" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "选举", |
|
||||
label: "选举", |
|
||||
}, |
|
||||
{ |
|
||||
value: "任命", |
|
||||
label: "任命", |
|
||||
}, |
|
||||
]} |
|
||||
name="howPositions" |
|
||||
label="任职方式" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<div className="model-increase"> |
|
||||
<Row style={{ width: "75rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormDatePicker |
|
||||
name="employmentTime" |
|
||||
label="任职时间" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
<Col span={6} style={{ marginLeft: 26 }}> |
|
||||
<ProFormText |
|
||||
name="tenure" |
|
||||
width="md" |
|
||||
label="任期" |
|
||||
placeholder="请输入任期" |
|
||||
// value={recordsay?.[0]?.value}
|
|
||||
rules={[{ required: true, message: "必填", max: 50 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col span={8} style={{ marginLeft: 26 }}> |
|
||||
<ProFormDatePicker |
|
||||
name="expirationTime" |
|
||||
label="届满时间" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
</div> |
|
||||
<div className="remark-field"> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col> |
|
||||
<ProFormTextArea |
|
||||
label="职责" |
|
||||
name="responsibility" |
|
||||
rules={[{ max: 500 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col> |
|
||||
<ProFormTextArea |
|
||||
label="备注" |
|
||||
name="remark" |
|
||||
rules={[{ max: 500 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
</div> |
|
||||
</ProForm.Group> |
|
||||
) : ( |
|
||||
"" |
|
||||
)} |
|
||||
{typecard == "examine" ? ( |
|
||||
<ProForm.Group> |
|
||||
<Row style={{ width: "75rem" }}> |
|
||||
<Col span={7}> |
|
||||
<ProFormText |
|
||||
name="name" |
|
||||
width="md" |
|
||||
disabled |
|
||||
label="姓名" |
|
||||
placeholder="请输入姓名" |
|
||||
value={recortd?.laborUnion} |
|
||||
rules={[{ required: true, message: "必填", max: 50 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col style={{ width: "20.5rem", marginLeft: 5 }}> |
|
||||
<ProFormSelect |
|
||||
disabled |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "小学", |
|
||||
label: "小学", |
|
||||
}, |
|
||||
{ |
|
||||
value: "高中", |
|
||||
label: "高中", |
|
||||
}, |
|
||||
{ |
|
||||
value: "中技", |
|
||||
label: "中技", |
|
||||
}, |
|
||||
{ |
|
||||
value: "中专", |
|
||||
label: "中专", |
|
||||
}, |
|
||||
{ |
|
||||
value: "大专", |
|
||||
label: "大专", |
|
||||
}, |
|
||||
{ |
|
||||
value: "本科", |
|
||||
label: "本科", |
|
||||
}, |
|
||||
{ |
|
||||
value: "研究生", |
|
||||
label: "研究生", |
|
||||
}, |
|
||||
{ |
|
||||
value: "博士", |
|
||||
label: "博士", |
|
||||
}, |
|
||||
{ |
|
||||
value: "博士后", |
|
||||
label: "博士后", |
|
||||
}, |
|
||||
]} |
|
||||
name="education" |
|
||||
label="学历" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col span={8} style={{ marginLeft: 26 }}> |
|
||||
<ProForm.Item label="上传照片" name="photograph"> |
|
||||
<Uploads |
|
||||
fileTypes={["png", "jpg", "jpeg"]} |
|
||||
maxFilesNum={1} |
|
||||
maxFileSize={10} |
|
||||
onChange={onFileUploaded} |
|
||||
clearFileList={uploadVisible} |
|
||||
// value={lin}
|
|
||||
listType={"picture-card"} |
|
||||
/> |
|
||||
</ProForm.Item> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }} justify="space-around"> |
|
||||
<Col span={24}> |
|
||||
<ProFormText |
|
||||
name="phone" |
|
||||
disabled |
|
||||
width="md" |
|
||||
label="联系电话" |
|
||||
placeholder="请输入电话" |
|
||||
rules={[ |
|
||||
{ required: true, message: "必填" }, |
|
||||
{ |
|
||||
pattern: |
|
||||
/^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/, |
|
||||
message: "请输入正确的手机号", |
|
||||
}, |
|
||||
]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }} justify="space-around"> |
|
||||
<Col span={24}> |
|
||||
<ProFormText |
|
||||
name="forOrganization" |
|
||||
width="md" |
|
||||
disabled |
|
||||
label="任职组织" |
|
||||
placeholder="请输入任职组织" |
|
||||
value="中共江西飞尚科技有限公司支部委员会" |
|
||||
// rules={[{ required: true, message: "必填" }]}
|
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
disabled |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "党支部书记", |
|
||||
label: "党支部书记", |
|
||||
}, |
|
||||
{ |
|
||||
value: "党支部副书记", |
|
||||
label: "党支部副书记", |
|
||||
}, |
|
||||
{ |
|
||||
value: "党支部委员", |
|
||||
label: "党支部委员", |
|
||||
}, |
|
||||
]} |
|
||||
name="partyPosts" |
|
||||
label="党内职务" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
disabled |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "选举", |
|
||||
label: "选举", |
|
||||
}, |
|
||||
{ |
|
||||
value: "任命", |
|
||||
label: "任命", |
|
||||
}, |
|
||||
]} |
|
||||
name="howPositions" |
|
||||
label="任职方式" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<div className="model-increase"> |
|
||||
<Row style={{ width: "75rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormDatePicker |
|
||||
disabled |
|
||||
name="employmentTime" |
|
||||
label="任职时间" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
<Col span={6} style={{ marginLeft: 26 }}> |
|
||||
<ProFormText |
|
||||
name="tenure" |
|
||||
width="md" |
|
||||
disabled |
|
||||
label="任期" |
|
||||
placeholder="请输入任期" |
|
||||
// value={recordsay?.[0]?.value}
|
|
||||
rules={[{ required: true, message: "必填", max: 50 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col span={8} style={{ marginLeft: 26 }}> |
|
||||
<ProFormDatePicker |
|
||||
disabled |
|
||||
name="expirationTime" |
|
||||
label="届满时间" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
</div> |
|
||||
<div className="remark-field"> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col> |
|
||||
<ProFormTextArea |
|
||||
disabled |
|
||||
label="职责" |
|
||||
name="responsibility" |
|
||||
rules={[{ max: 500 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col> |
|
||||
<ProFormTextArea |
|
||||
disabled |
|
||||
label="备注" |
|
||||
name="remark" |
|
||||
rules={[{ max: 500 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
</div> |
|
||||
</ProForm.Group> |
|
||||
) : ( |
|
||||
"" |
|
||||
)} |
|
||||
</Scroller> |
|
||||
</ModalForm> |
|
||||
</div> |
|
||||
</Spin> |
|
||||
); |
|
||||
}; |
|
||||
function mapStateToProps(state) { |
|
||||
const { depMessage } = state; |
|
||||
const pakData = (dep) => { |
|
||||
return dep.map((d) => { |
|
||||
return { |
|
||||
title: d.name, |
|
||||
value: d.id, |
|
||||
children: pakData(d.subordinate), |
|
||||
}; |
|
||||
}); |
|
||||
}; |
|
||||
// let depData = pakData(depMessage.data || [])
|
|
||||
return { |
|
||||
// loading: depMessage.isRequesting,
|
|
||||
// depData,
|
|
||||
}; |
|
||||
} |
|
||||
export default connect(mapStateToProps)(ProjectModal); |
|
@ -1,823 +0,0 @@ |
|||||
import React, { useEffect, useState } from "react"; |
|
||||
import { connect } from "react-redux"; |
|
||||
import { Button, Spin, message, Row, Col } from "antd"; |
|
||||
import { |
|
||||
ModalForm, |
|
||||
ProForm, |
|
||||
ProFormText, |
|
||||
ProFormSelect, |
|
||||
ProFormDatePicker, |
|
||||
ProFormTextArea, |
|
||||
} from "@ant-design/pro-form"; |
|
||||
import { postCommittee, putCommittee } from "../actions/party"; |
|
||||
import _ from "lodash"; |
|
||||
import Uploads from "../../../components/Upload/fujian.js"; |
|
||||
import "./index.less"; |
|
||||
import { Scroller } from "$components"; |
|
||||
|
|
||||
const ProjectModal = (props) => { |
|
||||
const { |
|
||||
visible, |
|
||||
onVisibleChange, |
|
||||
typecard, |
|
||||
tableActionRef, |
|
||||
recortd, |
|
||||
dispatch, |
|
||||
flageMold, |
|
||||
setFlageMold, |
|
||||
category, |
|
||||
} = props; |
|
||||
const [newlys, setNewlys] = useState(); //必填数据
|
|
||||
const [newlysay, setNewlysay] = useState(); //处理hou
|
|
||||
const [records, setRecords] = useState(); //处理
|
|
||||
const [recordsay, setRecordsay] = useState(); //必填数据
|
|
||||
const [files, setFiles] = useState(); |
|
||||
const [uploadVisible, setUploadVisible] = useState(false); |
|
||||
// const [lin, setlin] = useState([]);
|
|
||||
// useEffect(() => {
|
|
||||
// if (recortd?.photograph?.length > 0) {
|
|
||||
// setlin(JSON.parse(recortd?.photograph));
|
|
||||
// }
|
|
||||
// }, [recortd]);
|
|
||||
// useEffect(() => {
|
|
||||
// return () => {
|
|
||||
// setlin([])
|
|
||||
// }
|
|
||||
// })
|
|
||||
const onFileUploaded = (fileList) => { |
|
||||
console.log(fileList); |
|
||||
// setlin(fileList.length === 0 ? [] : localStorage.getItem("modifyData") ? JSON.parse(localStorage.getItem("modifyData"))?.files !== null ? JSON.parse(JSON.parse(localStorage.getItem("modifyData"))?.files) : [] : [])
|
|
||||
// console.log(fileList.length === 0 ? [] : localStorage.getItem("modifyData") ? JSON.parse(localStorage.getItem("modifyData"))?.files !== null ? JSON.parse(JSON.parse(localStorage.getItem("modifyData"))?.files) : [] : [])
|
|
||||
setFiles(fileList); |
|
||||
}; |
|
||||
|
|
||||
return ( |
|
||||
<Spin spinning={false}> |
|
||||
<div><ModalForm |
|
||||
width={"76rem"} |
|
||||
style={{ height: "40rem" }} |
|
||||
title={category} |
|
||||
visible={visible} |
|
||||
onVisibleChange={onVisibleChange} |
|
||||
modalProps={{ |
|
||||
destroyOnClose: true, |
|
||||
}} |
|
||||
submitter={typecard == "examine"?false:true} |
|
||||
onFinish={(values) => { |
|
||||
console.log(values) |
|
||||
if (typecard == "compile") { |
|
||||
// setDelet(values);
|
|
||||
|
|
||||
const query = { |
|
||||
...values, |
|
||||
mold: true, |
|
||||
forOrganization: "中共江西飞尚科技有限公司支部委员会", |
|
||||
photograph: values?.photograph ? values?.photograph : [], |
|
||||
}; |
|
||||
dispatch(postCommittee(query)).then((res) => { |
|
||||
setFlageMold(!flageMold); |
|
||||
if (res.success) { |
|
||||
message.success("新增委员成功"); |
|
||||
} else { |
|
||||
message.error("新增委员失败"); |
|
||||
} |
|
||||
}); |
|
||||
return true; |
|
||||
} |
|
||||
if (typecard == "modification") { |
|
||||
// setDelet(values);
|
|
||||
const putid = recortd?.id; |
|
||||
let photograp = null; |
|
||||
if ( |
|
||||
JSON.stringify(recortd?.photograph) !== |
|
||||
JSON.stringify(values.photograph) |
|
||||
) { |
|
||||
photograp = values?.photograph; |
|
||||
} else { |
|
||||
photograp = recortd?.photograph; |
|
||||
} |
|
||||
const query = { |
|
||||
...values, |
|
||||
mold: true, |
|
||||
photograph: photograp, |
|
||||
}; |
|
||||
dispatch(putCommittee(query, putid)).then((res) => { |
|
||||
// tableActionRef.current.reload();
|
|
||||
setFlageMold(!flageMold); |
|
||||
if (res.success) { |
|
||||
message.success("修改成功"); |
|
||||
} else { |
|
||||
message.error("修改失败"); |
|
||||
} |
|
||||
}); |
|
||||
return true; |
|
||||
} |
|
||||
}} |
|
||||
initialValues={recortd} |
|
||||
> |
|
||||
<Scroller containerId={"article-container-query"} height={"100%"}> |
|
||||
{typecard == "compile" ? ( |
|
||||
<ProForm.Group> |
|
||||
<Row style={{ width: "75rem" }}> |
|
||||
<Col span={7}> |
|
||||
<ProFormText |
|
||||
name="name" |
|
||||
width="md" |
|
||||
label="姓名" |
|
||||
placeholder="请输入姓名" |
|
||||
// value={recortd?.laborUnion}
|
|
||||
rules={[{ required: true, message: "必填", max: 50 }]} |
|
||||
// initialValue={recortd?.laborUnion}
|
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col style={{ width: "20.5rem", marginLeft: 5 }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "小学", |
|
||||
label: "小学", |
|
||||
}, |
|
||||
{ |
|
||||
value: "高中", |
|
||||
label: "高中", |
|
||||
}, |
|
||||
{ |
|
||||
value: "中技", |
|
||||
label: "中技", |
|
||||
}, |
|
||||
{ |
|
||||
value: "中专", |
|
||||
label: "中专", |
|
||||
}, |
|
||||
{ |
|
||||
value: "大专", |
|
||||
label: "大专", |
|
||||
}, |
|
||||
{ |
|
||||
value: "本科", |
|
||||
label: "本科", |
|
||||
}, |
|
||||
{ |
|
||||
value: "研究生", |
|
||||
label: "研究生", |
|
||||
}, |
|
||||
{ |
|
||||
value: "博士", |
|
||||
label: "博士", |
|
||||
}, |
|
||||
{ |
|
||||
value: "博士后", |
|
||||
label: "博士后", |
|
||||
}, |
|
||||
]} |
|
||||
name="education" |
|
||||
label="学历" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col span={8} style={{ marginLeft: 26 }}> |
|
||||
<ProForm.Item label="上传照片" name="photograph"> |
|
||||
<Uploads |
|
||||
fileTypes={["png", "jpg", "jpeg"]} |
|
||||
maxFilesNum={1} |
|
||||
maxFileSize={10} |
|
||||
onChange={onFileUploaded} |
|
||||
clearFileList={uploadVisible} |
|
||||
// value={lin}
|
|
||||
listType={"picture-card"} |
|
||||
/> |
|
||||
</ProForm.Item> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }} justify="space-around"> |
|
||||
<Col span={24}> |
|
||||
<ProFormText |
|
||||
name="phone" |
|
||||
width="md" |
|
||||
label="联系电话" |
|
||||
placeholder="请输入电话" |
|
||||
rules={[ |
|
||||
{ required: true, message: "必填" }, |
|
||||
{ |
|
||||
pattern: |
|
||||
/^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/, |
|
||||
message: "请输入正确的手机号", |
|
||||
}, |
|
||||
]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "男", |
|
||||
label: "男", |
|
||||
}, |
|
||||
{ |
|
||||
value: "女", |
|
||||
label: "女", |
|
||||
}, |
|
||||
]} |
|
||||
name="sexuality" |
|
||||
label="性别" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }} justify="space-around"> |
|
||||
<Col span={24}> |
|
||||
<ProFormText |
|
||||
name="forOrganization" |
|
||||
width="md" |
|
||||
disabled |
|
||||
label="任职组织" |
|
||||
placeholder="请输入组织" |
|
||||
value="中共江西飞尚科技有限公司支部委员会" |
|
||||
// rules={[{ required: true, message: "必填" }]}
|
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "党支部书记", |
|
||||
label: "党支部书记", |
|
||||
}, |
|
||||
{ |
|
||||
value: "党支部副书记", |
|
||||
label: "党支部副书记", |
|
||||
}, |
|
||||
{ |
|
||||
value: "党支部委员", |
|
||||
label: "党支部委员", |
|
||||
}, |
|
||||
]} |
|
||||
name="partyPosts" |
|
||||
label="党内职务" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "选举", |
|
||||
label: "选举", |
|
||||
}, |
|
||||
{ |
|
||||
value: "任命", |
|
||||
label: "任命", |
|
||||
}, |
|
||||
]} |
|
||||
name="howPositions" |
|
||||
label="任职方式" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<div className="model-increase"> |
|
||||
<Row style={{ width: "75rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormDatePicker |
|
||||
name="employmentTime" |
|
||||
label="任职时间" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
<Col span={6} style={{ marginLeft: 26 }}> |
|
||||
<ProFormText |
|
||||
name="tenure" |
|
||||
width="md" |
|
||||
label="任期" |
|
||||
placeholder="请输入任期" |
|
||||
// value={recordsay?.[0]?.value}
|
|
||||
rules={[{ required: true, message: "必填", max: 50 },{ |
|
||||
pattern: |
|
||||
/(^-?[1-9]([0-9]*)$|^-?[0-9]$)/, |
|
||||
message: "请输入正确的任期", |
|
||||
},]} |
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col span={8} style={{ marginLeft: 26 }}> |
|
||||
<ProFormDatePicker |
|
||||
name="expirationTime" |
|
||||
label="届满时间" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
</div> |
|
||||
<div className="remark-field"> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col> |
|
||||
<ProFormTextArea |
|
||||
label="职责" |
|
||||
name="responsibility" |
|
||||
rules={[{ max: 500 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col> |
|
||||
<ProFormTextArea |
|
||||
label="备注" |
|
||||
name="remark" |
|
||||
rules={[{ max: 500 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
</div> |
|
||||
</ProForm.Group> |
|
||||
) : ( |
|
||||
"" |
|
||||
)} |
|
||||
{typecard == "modification" ? ( |
|
||||
<ProForm.Group> |
|
||||
<Row style={{ width: "75rem" }}> |
|
||||
<Col span={7}> |
|
||||
<ProFormText |
|
||||
name="name" |
|
||||
width="md" |
|
||||
label="姓名" |
|
||||
placeholder="请输入姓名" |
|
||||
// value={recortd?.laborUnion}
|
|
||||
rules={[{ required: true, message: "必填", max: 50 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col style={{ width: "20.5rem", marginLeft: 5 }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "小学", |
|
||||
label: "小学", |
|
||||
}, |
|
||||
{ |
|
||||
value: "高中", |
|
||||
label: "高中", |
|
||||
}, |
|
||||
{ |
|
||||
value: "中技", |
|
||||
label: "中技", |
|
||||
}, |
|
||||
{ |
|
||||
value: "中专", |
|
||||
label: "中专", |
|
||||
}, |
|
||||
{ |
|
||||
value: "大专", |
|
||||
label: "大专", |
|
||||
}, |
|
||||
{ |
|
||||
value: "本科", |
|
||||
label: "本科", |
|
||||
}, |
|
||||
{ |
|
||||
value: "研究生", |
|
||||
label: "研究生", |
|
||||
}, |
|
||||
{ |
|
||||
value: "博士", |
|
||||
label: "博士", |
|
||||
}, |
|
||||
{ |
|
||||
value: "博士后", |
|
||||
label: "博士后", |
|
||||
}, |
|
||||
]} |
|
||||
name="education" |
|
||||
label="学历" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col span={8} style={{ marginLeft: 26 }}> |
|
||||
<ProForm.Item label="上传照片" name="photograph"> |
|
||||
<Uploads |
|
||||
fileTypes={["png", "jpg", "jpeg"]} |
|
||||
maxFilesNum={1} |
|
||||
maxFileSize={10} |
|
||||
onChange={onFileUploaded} |
|
||||
clearFileList={uploadVisible} |
|
||||
// value={lin}
|
|
||||
listType={"picture-card"} |
|
||||
/> |
|
||||
</ProForm.Item> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }} justify="space-around"> |
|
||||
<Col span={24}> |
|
||||
<ProFormText |
|
||||
name="phone" |
|
||||
width="md" |
|
||||
label="联系电话" |
|
||||
placeholder="请输入电话" |
|
||||
rules={[ |
|
||||
{ required: true, message: "必填" }, |
|
||||
{ |
|
||||
pattern: |
|
||||
/^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/, |
|
||||
message: "请输入正确的手机号", |
|
||||
}, |
|
||||
]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "男", |
|
||||
label: "男", |
|
||||
}, |
|
||||
{ |
|
||||
value: "女", |
|
||||
label: "女", |
|
||||
}, |
|
||||
]} |
|
||||
name="sexuality" |
|
||||
label="性别" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }} justify="space-around"> |
|
||||
<Col span={24}> |
|
||||
<ProFormText |
|
||||
name="forOrganization" |
|
||||
width="md" |
|
||||
disabled |
|
||||
label="任职组织" |
|
||||
placeholder="请输入任职组织" |
|
||||
value="中共江西飞尚科技有限公司支部委员会" |
|
||||
// rules={[{ required: true, message: "必填" }]}
|
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "党支部书记", |
|
||||
label: "党支部书记", |
|
||||
}, |
|
||||
{ |
|
||||
value: "党支部副书记", |
|
||||
label: "党支部副书记", |
|
||||
}, |
|
||||
{ |
|
||||
value: "党支部委员", |
|
||||
label: "党支部委员", |
|
||||
}, |
|
||||
]} |
|
||||
name="partyPosts" |
|
||||
label="党内职务" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "选举", |
|
||||
label: "选举", |
|
||||
}, |
|
||||
{ |
|
||||
value: "任命", |
|
||||
label: "任命", |
|
||||
}, |
|
||||
]} |
|
||||
name="howPositions" |
|
||||
label="任职方式" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<div className="model-increase"> |
|
||||
<Row style={{ width: "75rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormDatePicker |
|
||||
name="employmentTime" |
|
||||
label="任职时间" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
<Col span={6} style={{ marginLeft: 26 }}> |
|
||||
<ProFormText |
|
||||
name="tenure" |
|
||||
width="md" |
|
||||
label="任期" |
|
||||
placeholder="请输入任期" |
|
||||
// value={recordsay?.[0]?.value}
|
|
||||
rules={[{ required: true, message: "必填", max: 50 },{ |
|
||||
pattern: |
|
||||
/(^-?[1-9]([0-9]*)$|^-?[0-9]$)/, |
|
||||
message: "请输入正确的任期", |
|
||||
},]} |
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col span={8} style={{ marginLeft: 26 }}> |
|
||||
<ProFormDatePicker |
|
||||
name="expirationTime" |
|
||||
label="届满时间" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
</div> |
|
||||
<div className="remark-field"> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col> |
|
||||
<ProFormTextArea |
|
||||
label="职责" |
|
||||
name="responsibility" |
|
||||
rules={[{ max: 500 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col> |
|
||||
<ProFormTextArea |
|
||||
label="备注" |
|
||||
name="remark" |
|
||||
rules={[{ max: 500 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
</div> |
|
||||
</ProForm.Group> |
|
||||
) : ( |
|
||||
"" |
|
||||
)} |
|
||||
{typecard == "examine" ? ( |
|
||||
<ProForm.Group> |
|
||||
<Row style={{ width: "75rem" }}> |
|
||||
<Col span={7}> |
|
||||
<ProFormText |
|
||||
name="name" |
|
||||
width="md" |
|
||||
disabled |
|
||||
label="姓名" |
|
||||
placeholder="请输入姓名" |
|
||||
value={recortd?.laborUnion} |
|
||||
rules={[{ required: true, message: "必填", max: 50 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col style={{ width: "20.5rem", marginLeft: 5 }}> |
|
||||
<ProFormSelect |
|
||||
disabled |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "小学", |
|
||||
label: "小学", |
|
||||
}, |
|
||||
{ |
|
||||
value: "高中", |
|
||||
label: "高中", |
|
||||
}, |
|
||||
{ |
|
||||
value: "中技", |
|
||||
label: "中技", |
|
||||
}, |
|
||||
{ |
|
||||
value: "中专", |
|
||||
label: "中专", |
|
||||
}, |
|
||||
{ |
|
||||
value: "大专", |
|
||||
label: "大专", |
|
||||
}, |
|
||||
{ |
|
||||
value: "本科", |
|
||||
label: "本科", |
|
||||
}, |
|
||||
{ |
|
||||
value: "研究生", |
|
||||
label: "研究生", |
|
||||
}, |
|
||||
{ |
|
||||
value: "博士", |
|
||||
label: "博士", |
|
||||
}, |
|
||||
{ |
|
||||
value: "博士后", |
|
||||
label: "博士后", |
|
||||
}, |
|
||||
]} |
|
||||
name="education" |
|
||||
label="学历" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col span={8} style={{ marginLeft: 26 }}> |
|
||||
<ProForm.Item label="上传照片" name="photograph"> |
|
||||
<Uploads |
|
||||
fileTypes={["png", "jpg", "jpeg"]} |
|
||||
maxFilesNum={1} |
|
||||
maxFileSize={10} |
|
||||
onChange={onFileUploaded} |
|
||||
clearFileList={uploadVisible} |
|
||||
// value={lin}
|
|
||||
listType={"picture-card"} |
|
||||
/> |
|
||||
</ProForm.Item> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }} justify="space-around"> |
|
||||
<Col span={24}> |
|
||||
<ProFormText |
|
||||
name="phone" |
|
||||
disabled |
|
||||
width="md" |
|
||||
label="联系电话" |
|
||||
placeholder="请输入电话" |
|
||||
rules={[ |
|
||||
{ required: true, message: "必填" }, |
|
||||
{ |
|
||||
pattern: |
|
||||
/^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/, |
|
||||
message: "请输入正确的手机号", |
|
||||
}, |
|
||||
]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "男", |
|
||||
label: "男", |
|
||||
}, |
|
||||
{ |
|
||||
value: "女", |
|
||||
label: "女", |
|
||||
}, |
|
||||
]} |
|
||||
name="sexuality" |
|
||||
disabled |
|
||||
label="性别" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }} justify="space-around"> |
|
||||
<Col span={24}> |
|
||||
<ProFormText |
|
||||
name="forOrganization" |
|
||||
width="md" |
|
||||
disabled |
|
||||
label="任职组织" |
|
||||
placeholder="请输入任职组织" |
|
||||
value="中共江西飞尚科技有限公司支部委员会" |
|
||||
// rules={[{ required: true, message: "必填" }]}
|
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
disabled |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "党支部书记", |
|
||||
label: "党支部书记", |
|
||||
}, |
|
||||
{ |
|
||||
value: "党支部副书记", |
|
||||
label: "党支部副书记", |
|
||||
}, |
|
||||
{ |
|
||||
value: "党支部委员", |
|
||||
label: "党支部委员", |
|
||||
}, |
|
||||
]} |
|
||||
name="partyPosts" |
|
||||
label="党内职务" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormSelect |
|
||||
disabled |
|
||||
options={[ |
|
||||
{ |
|
||||
value: "选举", |
|
||||
label: "选举", |
|
||||
}, |
|
||||
{ |
|
||||
value: "任命", |
|
||||
label: "任命", |
|
||||
}, |
|
||||
]} |
|
||||
name="howPositions" |
|
||||
label="任职方式" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<div className="model-increase"> |
|
||||
<Row style={{ width: "75rem" }}> |
|
||||
<Col style={{ width: "20.5rem" }}> |
|
||||
<ProFormDatePicker |
|
||||
disabled |
|
||||
name="employmentTime" |
|
||||
label="任职时间" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
<Col span={6} style={{ marginLeft: 26 }}> |
|
||||
<ProFormText |
|
||||
name="tenure" |
|
||||
width="md" |
|
||||
disabled |
|
||||
label="任期" |
|
||||
placeholder="请输入任期" |
|
||||
// value={recordsay?.[0]?.value}
|
|
||||
rules={[{ required: true, message: "必填", max: 50 },{ |
|
||||
pattern: |
|
||||
/(^-?[1-9]([0-9]*)$|^-?[0-9]$)/, |
|
||||
message: "请输入正确的任期", |
|
||||
},]} |
|
||||
/> |
|
||||
</Col> |
|
||||
|
|
||||
<Col span={8} style={{ marginLeft: 26 }}> |
|
||||
<ProFormDatePicker |
|
||||
disabled |
|
||||
name="expirationTime" |
|
||||
label="届满时间" |
|
||||
rules={[{ required: true, message: "必填" }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
</div> |
|
||||
<div className="remark-field"> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col> |
|
||||
<ProFormTextArea |
|
||||
disabled |
|
||||
label="职责" |
|
||||
name="responsibility" |
|
||||
rules={[{ max: 500 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
<Row style={{ width: "65rem" }}> |
|
||||
<Col> |
|
||||
<ProFormTextArea |
|
||||
disabled |
|
||||
label="备注" |
|
||||
name="remark" |
|
||||
rules={[{ max: 500 }]} |
|
||||
/> |
|
||||
</Col> |
|
||||
</Row> |
|
||||
</div> |
|
||||
</ProForm.Group> |
|
||||
) : ( |
|
||||
"" |
|
||||
)} |
|
||||
</Scroller> |
|
||||
</ModalForm></div> |
|
||||
|
|
||||
</Spin> |
|
||||
); |
|
||||
}; |
|
||||
function mapStateToProps(state) { |
|
||||
const { depMessage } = state; |
|
||||
const pakData = (dep) => { |
|
||||
return dep.map((d) => { |
|
||||
return { |
|
||||
title: d.name, |
|
||||
value: d.id, |
|
||||
children: pakData(d.subordinate), |
|
||||
}; |
|
||||
}); |
|
||||
}; |
|
||||
// let depData = pakData(depMessage.data || [])
|
|
||||
return { |
|
||||
// loading: depMessage.isRequesting,
|
|
||||
// depData,
|
|
||||
}; |
|
||||
} |
|
||||
export default connect(mapStateToProps)(ProjectModal); |
|
@ -1,6 +0,0 @@ |
|||||
'use strict'; |
|
||||
|
|
||||
import organization from './organization'; |
|
||||
import partyMember from './partyMember'; |
|
||||
|
|
||||
export {organization,partyMember}; |
|
@ -1,339 +0,0 @@ |
|||||
import PropTypes from 'prop-types' |
|
||||
import React, { useEffect, useState,useRef } from "react"; |
|
||||
import { connect } from 'react-redux' |
|
||||
import { Table, message,Button } from 'antd' |
|
||||
import ProTable from '@ant-design/pro-table'; |
|
||||
import '../components/index.less' |
|
||||
import { getPartyMember } from '../../homePage/actions/profile' |
|
||||
import { getCommittee,delCommittee,putCommittee } from '../actions/party' |
|
||||
import EditParty from '../components/edit-party'; |
|
||||
import NewlyVisibleModel from '../components/newlyVisibleModel'; |
|
||||
import OutgoingVisibleModel from '../components/OutgoingVisibleModel'; |
|
||||
import moment from "moment"; |
|
||||
import { Scroller } from "$components"; |
|
||||
|
|
||||
var request = false |
|
||||
export const Default = (props) => { |
|
||||
|
|
||||
const { dispatch } = props; |
|
||||
|
|
||||
const [counts, setCounts] = useState(); //数据
|
|
||||
|
|
||||
const [showEdit, setShowEdit] = useState(false); |
|
||||
const [editData, setEditData] = useState(); |
|
||||
const [partyLabor, setPartyLabor] = useState(); |
|
||||
const [newlyVisible, setNewlyVisible] = useState(false);// 新增
|
|
||||
const [outgoingVisible, setOutgoingVisible] = useState(false);// 离任新增
|
|
||||
const [recortd,setRecortd]=useState() |
|
||||
const [outgoingRecortd,setOutgoingRecortd]=useState() |
|
||||
const [category, setCategory] = useState() //类别
|
|
||||
const [typecard, setTypecard] = useState() //xinzeng 编辑
|
|
||||
const [outcategory, setOutCategory] = useState() //类别
|
|
||||
const [outTypecard, setOutTypecard] = useState() //liren 编辑
|
|
||||
const [flageMold, setFlageMold] = useState(true) //上下table联动
|
|
||||
const [nameSou,setNameSou]=useState() //姓名搜索
|
|
||||
const tableActionRef = useRef(); |
|
||||
useEffect(() => { |
|
||||
let query = { |
|
||||
limit: 5, |
|
||||
|
|
||||
}; |
|
||||
dispatch(getCommittee(query)).then(res => { |
|
||||
if (res.success) { |
|
||||
setPartyLabor(res.payload.data); |
|
||||
const dataCoutn = res.payload.data?.filter((item) => { |
|
||||
return item.mold===true |
|
||||
}) |
|
||||
setCounts(dataCoutn); |
|
||||
} |
|
||||
}) |
|
||||
}, [flageMold]) |
|
||||
//删除人员信息
|
|
||||
const deldata = (record,id) => { |
|
||||
let query={...record,mold:true,leaveTime:'',leavingReason:''} |
|
||||
dispatch(putCommittee(query,id)).then((res) => { |
|
||||
console.log(res) |
|
||||
setFlageMold(!flageMold) |
|
||||
if (res.success) { |
|
||||
message.success('删除成功'); |
|
||||
} else { |
|
||||
message.error('删除失败'); |
|
||||
} |
|
||||
}) |
|
||||
} |
|
||||
|
|
||||
//打开增补弹窗
|
|
||||
const openModal = (type, record) => { |
|
||||
setNewlyVisible(true); |
|
||||
|
|
||||
} |
|
||||
//打开离任弹窗
|
|
||||
const leaveModal = ( record,type) => { |
|
||||
setOutgoingVisible(true); |
|
||||
setOutgoingRecortd(record) |
|
||||
setOutTypecard(type) |
|
||||
|
|
||||
} |
|
||||
const columns = [ |
|
||||
// {
|
|
||||
// key: 'num',
|
|
||||
// dataIndex: 'num',
|
|
||||
// title: '序号',
|
|
||||
// search: false,
|
|
||||
// render: () => {
|
|
||||
// return <span>1</span>
|
|
||||
// }
|
|
||||
// },
|
|
||||
{ |
|
||||
title: '姓名', |
|
||||
dataIndex: 'name', |
|
||||
key: 'name', |
|
||||
render: (dom, record) => { |
|
||||
return <div>{record.name}</div> |
|
||||
}, |
|
||||
fieldProps: { |
|
||||
onChange: (value, cs) => { |
|
||||
setNameSou(value.currentTarget.value) |
|
||||
}, |
|
||||
placeholder: '请输入姓名进行搜索', |
|
||||
getPopupContainer: (triggerNode) => triggerNode.parentNode, |
|
||||
} |
|
||||
}, |
|
||||
{ |
|
||||
title: '性别', |
|
||||
dataIndex: 'sexuality', |
|
||||
key: 'sexuality', |
|
||||
search: false, |
|
||||
render: (dom, record) => { |
|
||||
return <div>{record.sexuality}</div> |
|
||||
}, |
|
||||
}, |
|
||||
{ |
|
||||
title: '党内职务', |
|
||||
dataIndex: 'mode', |
|
||||
key: 'mode', |
|
||||
search: false, |
|
||||
render: (dom, record) => { |
|
||||
return <div>{record.partyPosts}</div> |
|
||||
}, |
|
||||
}, |
|
||||
{ |
|
||||
title: '任职方式', |
|
||||
dataIndex: 'mode', |
|
||||
key: 'mode', |
|
||||
search: false, |
|
||||
render: (dom, record) => { |
|
||||
return <div>{record.howPositions}</div> |
|
||||
}, |
|
||||
},{ |
|
||||
title: '任职时间', |
|
||||
dataIndex: 'mode', |
|
||||
key: 'mode', |
|
||||
search: false, |
|
||||
render: (dom, record) => { |
|
||||
return <div>{moment(record.employmentTime).format("YYYY-MM-DD")}</div> |
|
||||
}, |
|
||||
},{ |
|
||||
title: '联系电话', |
|
||||
dataIndex: 'mode', |
|
||||
key: 'mode', |
|
||||
search: false, |
|
||||
render: (dom, record) => { |
|
||||
return <div>{record.phone}</div> |
|
||||
}, |
|
||||
}, |
|
||||
{ |
|
||||
key: 'ation', |
|
||||
title: '操作', |
|
||||
search: false, |
|
||||
width:150, |
|
||||
render: (text, record) => { |
|
||||
return <div><a onClick={() => { |
|
||||
leaveModal(record,'Outgoing') |
|
||||
// setOutTypecard('Outgoing')
|
|
||||
}}>离任</a> |
|
||||
<a style={{marginLeft:10}} onClick={() => {openModal(record) |
|
||||
setTypecard('examine') |
|
||||
setRecortd(record) |
|
||||
setCategory('查看')}}>查看</a> |
|
||||
<a style={{ marginLeft: 10 }} onClick={() => { |
|
||||
openModal(record) |
|
||||
setTypecard('modification') |
|
||||
setRecortd(record) |
|
||||
setCategory('修改委员信息') |
|
||||
}}>修改</a></div> |
|
||||
} |
|
||||
} |
|
||||
, { |
|
||||
key: "direction", |
|
||||
hideInTable: true, |
|
||||
dataIndex: "direction", |
|
||||
order: 6, |
|
||||
renderFormItem: (item, { type, defaultRender, ...rest }) => { |
|
||||
return ( |
|
||||
<div> <Button |
|
||||
type="primary" |
|
||||
style={{ width: "100px" }} |
|
||||
onClick={() => { |
|
||||
openModal() |
|
||||
setTypecard('compile') |
|
||||
setCategory('新增委员信息') |
|
||||
setRecortd() |
|
||||
}} |
|
||||
> |
|
||||
委员增补 |
|
||||
</Button> |
|
||||
</div> |
|
||||
); |
|
||||
}, |
|
||||
}, |
|
||||
] |
|
||||
return ( |
|
||||
<div > |
|
||||
<p style={{ fontSize: 16 ,float:'left',marginBottom:0}}>中共江西飞尚科技有限公司支部委员会</p> |
|
||||
<ProTable |
|
||||
actionRef={tableActionRef} |
|
||||
scroll={{ x: 800 }} |
|
||||
options={false} |
|
||||
style={{ width: "100% ", overflow: "auto", height: 400 }} |
|
||||
rowKey='id' |
|
||||
columns={columns} |
|
||||
dataSource={counts || []} |
|
||||
onReset={() => { |
|
||||
setNameSou('') |
|
||||
}} |
|
||||
request={async (params) => { |
|
||||
|
|
||||
let query = { |
|
||||
page: params.current, |
|
||||
limit: 5, |
|
||||
name:nameSou |
|
||||
}; |
|
||||
const res = await dispatch(getCommittee(query)); |
|
||||
const dataCoutn = res.payload.data?.filter((item) => { |
|
||||
return item.mold===true |
|
||||
}) |
|
||||
setCounts(dataCoutn); |
|
||||
return { |
|
||||
...res, |
|
||||
total: res.payload.data ? res.payload.data : '', |
|
||||
}; |
|
||||
}} |
|
||||
> |
|
||||
</ProTable> |
|
||||
<OutgoingList partyLabor={partyLabor} leaveModal={leaveModal} setOutgoingVisible={setOutgoingVisible} setOutCategory={setOutCategory} deldata={deldata} /> |
|
||||
<NewlyVisibleModel visible={newlyVisible} onVisibleChange={setNewlyVisible} typecard={typecard} recortd={recortd} category={category} setRecortd={setRecortd} setFlageMold={setFlageMold} flageMold={flageMold} /> |
|
||||
<OutgoingVisibleModel visible={outgoingVisible} onVisibleChange={setOutgoingVisible} typecard={outTypecard} recortd={outgoingRecortd} category={outcategory} setFlageMold={setFlageMold} flageMold={flageMold} deldata={deldata} /> |
|
||||
</div> |
|
||||
) |
|
||||
} |
|
||||
const OutgoingList = (props) => { |
|
||||
const { partyLabor, leaveModal,setOutTypecard,deldata } = props |
|
||||
const dataLabor = partyLabor?.filter((item) => { |
|
||||
return item.mold===false |
|
||||
}) |
|
||||
const tableColumns = [ |
|
||||
// {
|
|
||||
// key: 'num',
|
|
||||
// dataIndex: 'num',
|
|
||||
// title: '序号',
|
|
||||
// render: () => {
|
|
||||
// return <span>1</span>
|
|
||||
// }
|
|
||||
// },
|
|
||||
{ |
|
||||
key: 'name', |
|
||||
dataIndex: 'name', |
|
||||
title: '姓名', |
|
||||
search: false, |
|
||||
render: (dom, record) => { |
|
||||
return <div>{record.name}</div> |
|
||||
}, |
|
||||
}, |
|
||||
{ |
|
||||
title: '性别', |
|
||||
dataIndex: 'sexuality', |
|
||||
key: 'sexuality', |
|
||||
search: false, |
|
||||
render: (dom, record) => { |
|
||||
return <div>{record.sexuality}</div> |
|
||||
|
|
||||
}, |
|
||||
}, |
|
||||
{ |
|
||||
key: 'laborUnion', |
|
||||
dataIndex: 'laborUnion', |
|
||||
title: '离任前党内职务', |
|
||||
search: false, |
|
||||
render: (dom, record) => { |
|
||||
return <div>{record.partyPosts}</div> |
|
||||
}, |
|
||||
}, { |
|
||||
key: 'laborUnion', |
|
||||
dataIndex: 'laborUnion', |
|
||||
title: '任职方式', |
|
||||
search: false, |
|
||||
render: (dom, record) => { |
|
||||
return <div>{record.howPositions}</div> |
|
||||
}, |
|
||||
}, { |
|
||||
key: 'laborUnion', |
|
||||
dataIndex: 'laborUnion', |
|
||||
title: '离任时间', |
|
||||
search: false, |
|
||||
render: (dom, record) => { |
|
||||
return <div>{ moment(record.leaveTime).format("YYYY-MM-DD")}</div> |
|
||||
}, |
|
||||
}, { |
|
||||
key: 'laborUnion', |
|
||||
dataIndex: 'laborUnion', |
|
||||
title: '离任原因', |
|
||||
search: false, |
|
||||
render: (dom, record) => { |
|
||||
return <div>{record.leavingReason}</div> |
|
||||
}, |
|
||||
}, |
|
||||
{ |
|
||||
key: 'ation', |
|
||||
title: '操作', |
|
||||
search: false, |
|
||||
width:150, |
|
||||
render: (text, record) => { |
|
||||
return <div><a onClick={() => { |
|
||||
leaveModal(record,'Outgoingss') |
|
||||
|
|
||||
} |
|
||||
}>修改</a> |
|
||||
<a style={{marginLeft:10}} onClick={() => {deldata(record,record.id)}}>删除</a> |
|
||||
<a style={{ marginLeft: 10 }} onClick={() => { |
|
||||
leaveModal(record,'outexamine') |
|
||||
}}>查看</a></div> |
|
||||
} |
|
||||
} |
|
||||
] |
|
||||
return <div><p style={{ fontSize: 16 ,float:'left',marginBottom:0}}>离任领导列表</p> |
|
||||
<ProTable |
|
||||
scroll={{ x: 800 }} |
|
||||
options={false} |
|
||||
style={{ width: "100% ", overflow: "auto", height: 400 }} |
|
||||
rowKey='id' |
|
||||
columns={tableColumns} |
|
||||
dataSource={dataLabor || []} |
|
||||
onReset={() => { |
|
||||
|
|
||||
setName(null) |
|
||||
}} |
|
||||
form={{ |
|
||||
submitter: false |
|
||||
}} |
|
||||
> |
|
||||
</ProTable></div> |
|
||||
} |
|
||||
Default.propTypes = { |
|
||||
second: PropTypes.third |
|
||||
} |
|
||||
|
|
||||
const mapStateToProps = (state) => ({}) |
|
||||
|
|
||||
|
|
||||
export default connect(mapStateToProps)(Default) |
|
@ -1,225 +0,0 @@ |
|||||
import PropTypes from 'prop-types' |
|
||||
import React, { useEffect, useState,useRef } from "react"; |
|
||||
import { connect } from 'react-redux' |
|
||||
import { Table, message,Button } from 'antd' |
|
||||
import ProTable from '@ant-design/pro-table'; |
|
||||
|
|
||||
import { getPartyMember } from '../../homePage/actions/profile' |
|
||||
import { getCommittee,delCommittee,putCommittee } from '../actions/party' |
|
||||
import EditParty from '../components/edit-party'; |
|
||||
import MemberVisibleModel from '../components/memberVisibleModel'; |
|
||||
import OutgoingVisibleModel from '../components/OutgoingVisibleModel'; |
|
||||
import moment from "moment"; |
|
||||
import { Scroller } from "$components"; |
|
||||
|
|
||||
var request = false |
|
||||
export const PartyMember = (props) => { |
|
||||
|
|
||||
const { dispatch } = props; |
|
||||
|
|
||||
const [counts, setCounts] = useState(); //数据
|
|
||||
|
|
||||
const [showEdit, setShowEdit] = useState(false); |
|
||||
const [editData, setEditData] = useState(); |
|
||||
const [partyLabor, setPartyLabor] = useState(); |
|
||||
const [newlyVisibles, setNewlyVisibles] = useState(false);// 新增
|
|
||||
const [outgoingVisible, setOutgoingVisible] = useState(false);// 离任新增
|
|
||||
const [recortd,setRecortd]=useState() |
|
||||
const [outgoingRecortd,setOutgoingRecortd]=useState() |
|
||||
const [category, setCategory] = useState() //类别
|
|
||||
const [typecard, setTypecard] = useState() //xinzeng 编辑
|
|
||||
const [outcategory, setOutCategory] = useState() //类别
|
|
||||
const [outTypecard, setOutTypecard] = useState() //liren 编辑
|
|
||||
const [flageMold, setFlageMold] = useState(true) //上下table联动
|
|
||||
const [nameSou,setNameSou]=useState() //姓名搜索
|
|
||||
const tableActionRef = useRef(); |
|
||||
useEffect(() => { |
|
||||
let query = { |
|
||||
limit: 5, |
|
||||
|
|
||||
}; |
|
||||
dispatch(getCommittee(query)).then(res => { |
|
||||
if (res.success) { |
|
||||
setPartyLabor(res.payload.data); |
|
||||
const dataCoutn = res.payload.data?.filter((item) => { |
|
||||
return item.mold===true |
|
||||
}) |
|
||||
setCounts(dataCoutn); |
|
||||
} |
|
||||
}) |
|
||||
}, [flageMold]) |
|
||||
//删除人员信息
|
|
||||
const deldata = (record,id) => { |
|
||||
let query={...record,mold:true,leaveTime:'',leavingReason:''} |
|
||||
dispatch(putCommittee(query,id)).then((res) => { |
|
||||
console.log(res) |
|
||||
setFlageMold(!flageMold) |
|
||||
if (res.success) { |
|
||||
message.success('删除成功'); |
|
||||
} else { |
|
||||
message.error('删除失败'); |
|
||||
} |
|
||||
}) |
|
||||
} |
|
||||
//打开增补弹窗
|
|
||||
const openModal = (type, record) => { |
|
||||
setNewlyVisibles(true); |
|
||||
} |
|
||||
const columns = [ |
|
||||
// {
|
|
||||
// key: 'num',
|
|
||||
// dataIndex: 'num',
|
|
||||
// title: '序号',
|
|
||||
// search: false,
|
|
||||
// render: () => {
|
|
||||
// return <span>1</span>
|
|
||||
// }
|
|
||||
// },
|
|
||||
{ |
|
||||
title: '姓名', |
|
||||
dataIndex: 'name', |
|
||||
key: 'name', |
|
||||
render: (dom, record) => { |
|
||||
return <div>{record.name}</div> |
|
||||
}, |
|
||||
fieldProps: { |
|
||||
onChange: (value, cs) => { |
|
||||
setNameSou(value.currentTarget.value) |
|
||||
}, |
|
||||
placeholder: '请输入姓名进行搜索', |
|
||||
getPopupContainer: (triggerNode) => triggerNode.parentNode, |
|
||||
} |
|
||||
}, |
|
||||
{ |
|
||||
title: '性别', |
|
||||
dataIndex: 'sexuality', |
|
||||
key: 'sexuality', |
|
||||
search: false, |
|
||||
render: (dom, record) => { |
|
||||
return <div>{record.sexuality}</div> |
|
||||
}, |
|
||||
}, |
|
||||
{ |
|
||||
title: '党内职务', |
|
||||
dataIndex: 'mode', |
|
||||
key: 'mode', |
|
||||
search: false, |
|
||||
render: (dom, record) => { |
|
||||
return <div>{record.partyPosts}</div> |
|
||||
}, |
|
||||
}, |
|
||||
{ |
|
||||
title: '任职方式', |
|
||||
dataIndex: 'mode', |
|
||||
key: 'mode', |
|
||||
search: false, |
|
||||
render: (dom, record) => { |
|
||||
return <div>{record.howPositions}</div> |
|
||||
}, |
|
||||
},{ |
|
||||
title: '任职时间', |
|
||||
dataIndex: 'mode', |
|
||||
key: 'mode', |
|
||||
search: false, |
|
||||
render: (dom, record) => { |
|
||||
return <div>{moment(record.employmentTime).format("YYYY-MM-DD")}</div> |
|
||||
}, |
|
||||
},{ |
|
||||
title: '联系电话', |
|
||||
dataIndex: 'mode', |
|
||||
key: 'mode', |
|
||||
search: false, |
|
||||
render: (dom, record) => { |
|
||||
return <div>{record.phone}</div> |
|
||||
}, |
|
||||
}, |
|
||||
{ |
|
||||
key: 'ation', |
|
||||
title: '操作', |
|
||||
search: false, |
|
||||
width:150, |
|
||||
render: (text, record) => { |
|
||||
return <div><a onClick={() => { |
|
||||
leaveModal(record,'Outgoing') |
|
||||
// setOutTypecard('Outgoing')
|
|
||||
}}>离任</a> |
|
||||
<a style={{marginLeft:10}} onClick={() => {openModal(record) |
|
||||
setTypecard('examine') |
|
||||
setRecortd(record) |
|
||||
setCategory('查看')}}>查看</a> |
|
||||
<a style={{ marginLeft: 10 }} onClick={() => { |
|
||||
openModal(record) |
|
||||
setTypecard('modification') |
|
||||
setRecortd(record) |
|
||||
setCategory('修改委员信息') |
|
||||
}}>修改</a></div> |
|
||||
} |
|
||||
} |
|
||||
, { |
|
||||
key: "direction", |
|
||||
hideInTable: true, |
|
||||
dataIndex: "direction", |
|
||||
order: 6, |
|
||||
renderFormItem: (item, { type, defaultRender, ...rest }, form, record) => { |
|
||||
return ( |
|
||||
<div> <Button |
|
||||
type="primary" |
|
||||
style={{ width: "100px" }} |
|
||||
onClick={() => { |
|
||||
openModal() |
|
||||
setTypecard('compile') |
|
||||
setCategory('新增党员信息') |
|
||||
setRecortd() |
|
||||
}} |
|
||||
> |
|
||||
党员增补 |
|
||||
</Button> |
|
||||
</div> |
|
||||
); |
|
||||
}, |
|
||||
}, |
|
||||
] |
|
||||
const memberList=[{name:'党员数量',number:12},{name:'预备党员',number:1},{name:'女党员',number:2},{name:'少数民族党员',number:1},{name:'大专以上党员',number:12}] |
|
||||
return ( |
|
||||
<div> |
|
||||
<div style={{display:'flex'}}>{memberList.map((item) => { |
|
||||
return <div style={{marginLeft:20}}><p>{item.name}</p><p style={{fontWeight:500,fontSize:18}}>{ item.number}</p></div> |
|
||||
})}</div> |
|
||||
<ProTable |
|
||||
actionRef={tableActionRef} |
|
||||
scroll={{ x: 800 }} |
|
||||
options={false} |
|
||||
style={{ width: "100% ", overflow: "auto"}} |
|
||||
rowKey='id' |
|
||||
columns={columns} |
|
||||
dataSource={counts || []} |
|
||||
onReset={() => { |
|
||||
setNameSou('') |
|
||||
}} |
|
||||
request={async (params) => { |
|
||||
let query = { |
|
||||
page: params.current, |
|
||||
limit: 5, |
|
||||
name:nameSou |
|
||||
}; |
|
||||
const res = await dispatch(getCommittee(query)); |
|
||||
const dataCoutn = res.payload.data?.filter((item) => { |
|
||||
return item.mold===true |
|
||||
}) |
|
||||
setCounts(dataCoutn); |
|
||||
return { |
|
||||
...res, |
|
||||
total: res.payload.data ? res.payload.data : '', |
|
||||
}; |
|
||||
}} |
|
||||
> |
|
||||
</ProTable> |
|
||||
<MemberVisibleModel visible={newlyVisibles} onVisibleChange={setNewlyVisibles} typecard={typecard} recortd={recortd} category={category} setRecortd={setRecortd} setFlageMold={setFlageMold} flageMold={flageMold} /> |
|
||||
</div> |
|
||||
) |
|
||||
} |
|
||||
// PartyMember.propTypes = {
|
|
||||
// second: PropTypes.third
|
|
||||
// }
|
|
||||
const mapStateToProps = (state) => ({}) |
|
||||
export default connect(mapStateToProps)(PartyMember) |
|
@ -1,13 +0,0 @@ |
|||||
import routes from './routes'; |
|
||||
import reducers from './reducers'; |
|
||||
import actions from './actions'; |
|
||||
import {getNavItem} from './nav-item'; |
|
||||
|
|
||||
export default { |
|
||||
key: 'organization', |
|
||||
name: '党组织架构管理', |
|
||||
reducers, |
|
||||
routes, |
|
||||
actions, |
|
||||
getNavItem: getNavItem |
|
||||
}; |
|
@ -1,22 +0,0 @@ |
|||||
'use strict'; |
|
||||
|
|
||||
import React from "react"; |
|
||||
import { Link } from "react-router-dom"; |
|
||||
import { Menu } from "antd"; |
|
||||
import { BarChartOutlined } from "@ant-design/icons"; |
|
||||
const SubMenu = Menu.SubMenu; |
|
||||
|
|
||||
export function getNavItem() { |
|
||||
return ( |
|
||||
<SubMenu key="organization" icon={<BarChartOutlined />} title={'党组织架构管理'}> |
|
||||
<Menu.Item key="userManage" > |
|
||||
<Link to="/organization/user">支委会人员</Link> |
|
||||
</Menu.Item> |
|
||||
{/* <Menu.Item key="partyMember" > |
|
||||
<Link to="/organization/partyMember">党员基本信息</Link> |
|
||||
</Menu.Item> */} |
|
||||
</SubMenu> |
|
||||
); |
|
||||
} |
|
||||
|
|
||||
export default getNavItem; |
|
@ -1,19 +0,0 @@ |
|||||
'use strict'; |
|
||||
|
|
||||
const initModifyData = { |
|
||||
data: null |
|
||||
} |
|
||||
|
|
||||
function modifyData(state = initModifyData, actions) { |
|
||||
const { type, payload } = actions |
|
||||
switch (type) { |
|
||||
case 'MODIFY_ARTICAL_SUCCESS': |
|
||||
return Object.assign({}, state, { data: payload.data }); |
|
||||
default: |
|
||||
return state; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
export default { |
|
||||
modifyData, |
|
||||
} |
|
@ -1,27 +0,0 @@ |
|||||
import { organization } from "./containers"; |
|
||||
import { partyMember } from "./containers"; |
|
||||
export default [ |
|
||||
{ |
|
||||
type: "inner", |
|
||||
route: { |
|
||||
path: '/organization', |
|
||||
key: 'organization', |
|
||||
breadcrumb: '党组织架构管理', |
|
||||
menuSelectKeys: ['organization'], |
|
||||
menuOpenKeys: ['organization'], |
|
||||
childRoutes: [{ |
|
||||
path: '/user', |
|
||||
key: 'userManage', |
|
||||
menuSelectKeys: ['userManage'], |
|
||||
component: organization, |
|
||||
breadcrumb: '支委会人员', |
|
||||
},{ |
|
||||
path: '/partyMember', |
|
||||
key: 'partyMember', |
|
||||
menuSelectKeys: ['partyMember'], |
|
||||
component: partyMember, |
|
||||
breadcrumb: '党员信息', |
|
||||
}] |
|
||||
}, |
|
||||
}, |
|
||||
]; |
|
Loading…
Reference in new issue