pyt
2025-03-17 956d1d6e32b3c7a8c40101a42a2855fb5c22bc63
management/src/pages/party/manage/components/addAndEdit.jsx
@@ -3,9 +3,10 @@
import { PageContainer, } from '@ant-design/pro-components';
import { Button, Select, Row, Col, Input, Card, Space, Form, Upload, Spin, message, Cascader, InputNumber } from 'antd';
import { useState, useEffect } from 'react';
import { add, Edit, getDetail } from '../service';
import { add, Edit, getDetail, regionTree, verifyPhone } from '../service';
import { history, useLocation, useSearchParams } from 'umi';
import { customRequest } from '@/utils/utils';
const AddOrEditOrDetail = () => {
  const [form] = Form.useForm();
  const [loading, setLoading] = useState(false);
@@ -15,6 +16,8 @@
  const [adminLevel, setAdminLevel] = useState(1)
  const [fileList, setFileList] = useState([])
  const [community, setCommunity] = useState([])//社区
  const [userInfo, setUserInfo] = useState({})
  const formItemLayout = {
    labelCol: { span: 6 },
@@ -41,36 +44,47 @@
    name: 'file',
    action: 'https://huacheng.psciio.com/api/huacheng-communitybackstage/communitypartybuilding/uploadimage',
    headers: {
      Authorization: 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOjE4OTI0MjE4MjgwODU4Mzc4MjYsInR5cGUiOjEsImV4cCI6MTc0MTY1OTg5MywiY3JlYXRlZCI6MTc0MDM2Mzg5MzE2MH0.o3Gc0g1LAo_kkL3X3QrC6qKwztxsp6psoTcpTreDzQUXGqPzUXw89fNSR5YKz8gzhtSuSKI2d6TJJYPX1IQCgw',
      Authorization: `Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOjE2MTc2LCJ0eXBlIjoxLCJleHAiOjE3NDM0OTM5NzYsImNyZWF0ZWQiOjE3NDIxOTc5NzY5NDB9.Lph5ktdjynkIhOdkfFa6pgPM9rQJ2bcGJdk8i9_GOs-ZRR79PrqWWgwgAXsUwOdYUInEDdP90uBXxvBV8SJhvA`,
    },
  };
  useEffect(() => {
    let adminInfo = JSON.parse(localStorage.getItem('userInfo'))
    setAdminLevel(() => adminInfo.accountLevel)//角色权限1市级2区县3街道4社区5党员
    regionTree({}).then(res => {
      setItems(() => res.data)
    })
    if (searchParams.get('id')) {
      getDetail(searchParams.get('id')).then(res => {
        setUserInfo(() => res.data)
        res.data.community = [res.data.districtsCode, res.data.streetId, res.data.communityId.toString()]
        setCommunity(() => res.data.community)
        if (res.data.avatar) {
          setFileList(() => [{ url: res.data.avatar, uid: '1' }])
        }
        form.setFieldsValue(res.data)
      })
    }
  }, [])
  // 上传前
  const beforeUpload = (file, type) => {
    return new Promise(async (resolve, reject) => {
  const beforeUpload = (file) => {
    return new Promise((resolve, reject) => {
      if (file.name.includes(',')) {
        message.warning('上传图片名字不能包含英文逗号(,)');
        return Upload.LIST_IGNORE;
      }
      console.log('============================================')
      setLoading(false)
      setLoading(true)
      resolve(file);
    });
  };
  const handleChange = ({ file: file, fileList: newFileList }, type) => {
    console.log(file, 'newfilelist', newFileList, 'type', type)
    if (file.status == 'error') {
  const handleChange = ({ file, fileList: newFileList }) => {
    if (file.status == 'error' || (file.status == 'done' && file.response.code != 200)) {
      setLoading(false)
      // setFileList([])
      message.error('上传失败')
      return
    }
    if (file.status == 'done') {
    if (file.status == 'done' && file.response.code == 200) {
      setLoading(false)
      message.success('上传成功')
    }
@@ -82,16 +96,36 @@
      }
      return item.url
    });
    console.log('newFileList', newFileList, 'list', list)
    // if (type == 1) {
    //   setImageUrl1(newFileList)
    // } else if (type == 2) {
    //   setImageUrl(newFileList)
    // }
    setFileList(() => newFileList)
  };
  const submit = () => {
    form.validateFields().then(async (values) => {
      if (fileList.length == 0) {
        message.warning('请上传头像')
        return
      }
      let params = { ...values }
      let adminInfo = JSON.parse(localStorage.getItem('userInfo'))
      params.communityId = params.community.length > 0 ? params.community[params.community.length - 1] : ''
      params.streetId = params.community.length > 1 ? params.community[params.community.length - 2] : adminInfo.streetId
      params.districtsCode = params.community.length == 3 ? params.community[0] : adminInfo.districtsCode
      delete params.community
      params.avatar = fileList[0].url
      if (searchParams.get('id')) {
        params.id = searchParams.get('id')
        let res = await Edit(params)
        if (res.code == 200) {
          message.success('编辑成功')
          history.back()
        }
      } else {
        let res = await add(params)
        if (res.code == 200) {
          message.success('添加成功')
          history.back()
        }
      }
    })
  }
@@ -110,7 +144,14 @@
    return Promise.resolve();
  };
  const checkPhoneUse = (e) => {
    console.log('eeeeeeeeee', e.target.value)
    if (Object.keys(userInfo).length > 0 && userInfo.phone == e.target.value) {
      return Promise.resolve()
    }
    verifyPhone({ phone: e.target.value }).then(res => {
      if (res.code != 200) {
        message.warning('该手机号已注册党员信息')
      }
    })
  }
@@ -130,42 +171,45 @@
                  <Input disabled={searchParams.get('detail')} placeholder='请输入'></Input>
                </Form.Item>
                <Form.Item
                  name="name"
                  name="phone"
                  label='联系电话' rules={[{ required: true, message: '请输入党员联系电话' }, { validator: checkPhone }]}
                >
                  <Input disabled={searchParams.get('detail')} placeholder='请输入' maxLength={11} onBlur={checkPhoneUse} ></Input>
                </Form.Item>
                <Form.Item
                  name="idcard"
                  name="idNumber"
                  label='身份证号' rules={[{ required: true, message: '请输入党员身份证号' }, { validator: checkIdCard }]}
                >
                  <Input disabled={searchParams.get('detail')} placeholder='请输入' maxLength={18}></Input>
                </Form.Item>
                <Form.Item
                  name="name"
                  name="community"
                  label='所在社区'
                  rules={[{ required: true, message: '请选择所在社区' }]}
                >
                  <Cascader
                    disabled={searchParams.get('detail') || adminLevel == 4}
                    options={items}
                    fieldNames={{ value: 'key', label: 'name' }}
                    fieldNames={{ value: 'id', label: 'name' }}
                    placeholder="请选择"
                    displayRender={(label) => label[label.length - 1]}
                    changeOnSelect={true}
                    onChange={(value, label) => {
                      setCommunity(() => label)
                    }}
                  // displayRender={(label) => label[label.length - 1]}
                  // changeOnSelect={true}
                  />
                </Form.Item>
                <Form.Item
                  name="name"
                  name="serviceTarget"
                  label='服务对象'
                //  rules={[ { required: true,message: '请输入服务对象'}]}
                >
                  <Input disabled={searchParams.get('detail')} placeholder='请输入'></Input>
                </Form.Item>
                <Form.Item
                  name="name"
                  name="partyOrganization"
                  label='所在党组织'
                //  rules={[ { required: true,message: '请输入所在党组织'}]}
                >
@@ -173,7 +217,7 @@
                </Form.Item>
                <Form.Item
                  name="image"
                  name="avatar"
                  label="头像上传"
                  // extra={
                  //   <div>
@@ -196,8 +240,9 @@
                    onRemove={() => {
                      setFileList([])
                      form.setFieldsValue({
                        image: ''
                        avatar: null
                      })
                      form.validateFields(['avatar'])
                    }}
                    showUploadList={{
                      showPreviewIcon: false,