pyt
2025-02-26 403da33c30fc628c1608b96d95efdc12e70c3b06
management/src/pages/work-order/banner/components/addAndEdit.jsx
@@ -3,106 +3,14 @@
import { PageContainer, } from '@ant-design/pro-components';
import { Button, Select, Row, Col, Input, Card, Space, Form, Upload, Spin, message, InputNumber } from 'antd';
import { useState, useEffect } from 'react';
import { addAndEdit, getDetail } from '../service';
import { add,Edit, getDetail } from '../service';
import { history, useLocation } from 'umi';
import { customRequest } from '@/utils/utils';
const AddOrEditOrDetail = () => {
  const [form] = Form.useForm();
  const [fileList, setFileList] = useState([])//banner图片
  const [loading, setLoading] = useState(false);
  const { search } = useLocation();
  const searchParams = new URLSearchParams(search);
  const config = {
    name: 'file',
    action: BASE_URL + '/file/obs/upload',
    headers: {
      authorization: localStorage.getItem('token'),
    },
  };
  const formItemLayout = {
    labelCol: { span: 6 },
    wrapperCol: { span: 20 },
  };
  const uploadButton = (text) => {
    return <div>
      <PlusOutlined />
      <div
        style={{
          marginTop: 8,
        }}
      >
      </div>
    </div>
  };
  useEffect(() => {
    if (searchParams.get('id')) {
      getDetail( searchParams.get('id') ).then(res => {
          if (res.data.picUrl) {
              let obj = [{
                  uid: 1,
                  name: 'banner',
                  url: res.data.picUrl
              }]
              setFileList(obj)
          }
          form.setFieldsValue(res.data)
      })
    }
  }, [])
  // 上传banner前
  const beforeUpload = (file) => {
    return new Promise(async (resolve, reject) => {
      if (file.name.includes(',')) {
        message.warning('上传文件不能包含英文逗号(,)')
        return Upload.LIST_IGNORE
      }
      setLoading(true)
      resolve(file)
    });
  };
  // 上传banner
  const handleChange = ({ file: file, fileList: newFileList }) => {
    if (file.status == 'error') {
      setLoading(false)
      setFileList([])
      message.error('上传失败')
      return
    }
    if (file.status == 'done') {
      setLoading(false)
      message.success('上传成功')
    }
    newFileList.map((item) => {
      if (!item.url && item.status == 'done') {
        item.url = item.response.data;
      }
    });
    setFileList(newFileList);
  };
  // 提交表单
  const submit = () => {
    form.validateFields().then(async (values) => {
      values.picUrl = fileList[0].url
      delete values.image
      if (searchParams.get('id')) {
          values.id = searchParams.get('id')
          let state = await sendRequest(addAndEdit, values)
          if (state) {
              history.back()
          }
          return
      }
      let state = await sendRequest(addAndEdit, values)
      if (state) {
          history.back()
      }
    })
  }
  return (
    <PageContainer title={searchParams.get('detail') ? '查看详情' : searchParams.get('id') ? '编辑banner' : '添加banner'}>
      <Spin spinning={loading}>
@@ -111,7 +19,7 @@
            <Row>
              <Col span={12}>
                <Form.Item
                  name="bannerName"
                  name="name"
                  label='banner名称' rules={[
                    {
                      required: true,