forked from gzzfw/frontEnd/gzDyh

dminyi
2024-08-09 a2a5220469a3e1f8bc216f47c887ca4c941920b0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
/*
 * @Company: hugeInfo
 * @Author: lwh
 * @Date: 2022-03-11 17:01:10
 * @LastEditTime: 2022-04-21 11:51:07
 * @LastEditors: lwh
 * @Version: 1.0.0
 * @Description:客户管理-新增增强包
 */
import React, { useState, useEffect } from 'react';
import { useNavigate, useParams } from 'react-router-dom';
import PageHead from '../../../components/PageHead';
import { Card, Input, message, Button, Form, Select, DatePicker, Spin } from 'antd';
import * as $$ from '../../../utils/utility';
import moment from 'moment';
import './index.less';
const { Option } = Select;
const { RangePicker } = DatePicker;
// 查询列表 版本
function listQueryRsVersion() {
    return $$.ax.request({ url: 'v1/rsVersion/listQuery', type: 'get', data: { status: '1' }, service: 'oper' });
}
 
// 保存修改版本和增强包
function saveSeCustomVer(data) {
    return $$.ax.request({ url: 'v1/seCustom/saveSeCustomVer', type: 'POST', data, service: 'oper' });
}
 
// 详情
function getByIdSeCustom(id) {
    return $$.ax.request({ url: 'v1/seCustom/getById', type: 'get', data: { id }, service: 'oper' });
}
 
const AddVersion = () => {
    const [form] = Form.useForm();
    const [versionList, setVersionList] = useState([]);
    const [formData, setFormData] = useState({});
    const [loading, setLoading] = useState(false);
    const navigate = useNavigate();
    const params = useParams();
    //初始化组件回显
    useEffect(() => {
        getOrganization();
    }, []);
 
    const getOrganization = async () => {
        const requestObj = await getByIdSeCustom(params.id);
        setFormData(requestObj.data);
        const list = await listQueryRsVersion();
        let data = list.data.find((i) => i.id == params.verId);
        console.log('data', data);
        form.setFieldsValue({
            ...data,
            verId: data.id,
            verName: data.key,
            versionPrice: data.price,
            planPrice: data.price,
            time: [moment(new Date()), moment(moment(new Date()).valueOf() + 86400000 * data.dead)],
            openTime: moment([moment(new Date()), moment(moment(new Date()).valueOf() + 86400000 * data.dead)][0]).valueOf(),
            expireTime: moment([moment(new Date()), moment(moment(new Date()).valueOf() + 86400000 * data.dead)][1]).valueOf(),
        });
        setVersionList(list.data);
    };
 
    const reset = () => {
        form.resetFields();
    };
 
    const back = () => {
        navigate(-1);
    };
 
    const save = async () => {
        setLoading(true);
        const row = await form.validateFields();
        const tableData = form.getFieldValue();
        const res = await saveSeCustomVer({ ...formData, seCustom: '', ...formData.seCustom, ...tableData, id: params.id });
        setLoading(false);
        if (res.type) {
            message.success('提交成功!');
            navigate(-1);
        }
    };
 
    // 版本选择
    const selectOnChange = (name, e, data) => {
        const tableData = form.getFieldValue();
        const version = versionList.find((i) => i.id == e);
        //
        form.setFieldsValue({
            ...tableData,
            [name + 'Id']: data.value,
            [name + 'Name']: data.key,
            versionPrice: version.price,
            planPrice: version.price,
            time: [moment(new Date()), moment(moment(new Date()).valueOf() + 86400000 * version.dead)],
            openTime: moment([moment(new Date()), moment(moment(new Date()).valueOf() + 86400000 * version.dead)][0]).valueOf(),
            expireTime: moment([moment(new Date()), moment(moment(new Date()).valueOf() + 86400000 * version.dead)][1]).valueOf(),
        });
    };
 
    const rangePickerChange = (name, date, dateString) => {
        const tableData = form.getFieldValue();
        form.setFieldsValue({
            ...tableData,
            openTime: moment(date[0]).valueOf(),
            expireTime: moment(date[1]).valueOf(),
        });
    };
 
    return (
        <>
            <PageHead
                breadcrumbData={[{ title: '客户管理', url: '/operation/customer' }, { title: '订购版本' }]}
                title={params.title ? params.title : '订购版本'}
            />
            <Spin spinning={loading}>
                <Card style={{ margin: '24px', display: 'flex', justifyContent: 'center' }}>
                    <Form form={form} labelCol={{ style: { width: '100%', textAlign: 'left' } }} layout="vertical" component={false}>
                        <Form.Item label="版本" name="verId" rules={[{ required: true, message: `请选择版本` }]}>
                            <Select onChange={(e, data) => selectOnChange('ver', e, data)} placeholder="请选择版本" style={{ width: '320px' }} allowClear>
                                {versionList.map((item, index) => (
                                    <Option key={item.name} value={item.id}>
                                        {item.name}
                                    </Option>
                                ))}
                            </Select>
                        </Form.Item>
 
                        <Form.Item label="价格" name="planPrice" rules={[{ required: false, message: `请输入价格` }]}>
                            <Input type={'number'} prefix={'¥'} suffix={'元'} placeholder={`请输入价格`} style={{ width: '320px' }} />
                        </Form.Item>
 
                        <Form.Item label="版本开通(结束)时间" name="time" rules={[{ required: true, message: `请选择版本开通(结束)时间` }]}>
                            <RangePicker
                                onChange={(date, dateString) => {
                                    rangePickerChange('time', date, dateString);
                                }}
                                format="YYYY-MM-DD"
                                disabledDate={(current) => current < moment().startOf('day')}
                                style={{ width: '320px' }}
                            />
                        </Form.Item>
                    </Form>
                    <div className="add-version-foot-buttton">
                        <Button onClick={save} type="primary">
                            提交
                        </Button>
                        <Button onClick={reset}>重置</Button>
                        <Button onClick={back}>返回</Button>
                    </div>
                </Card>
            </Spin>
        </>
    );
};
 
export default AddVersion;