|
@@ -0,0 +1,126 @@
|
|
1
|
+
|
|
2
|
+import React, { useEffect, useRef, useState } from 'react'
|
|
3
|
+import { Button, Spin, Radio, Form, Input, Row, Col, notification } from 'antd'
|
|
4
|
+import { fetch, apis } from '@/utils/request';
|
|
5
|
+import Wangedit from '@/components/Wangedit/Wangedit';
|
|
6
|
+import { formItemLayout } from '../utils'
|
|
7
|
+
|
|
8
|
+const FormItem = Form.Item
|
|
9
|
+const updateBorker = fetch(apis.borker.updateBuildingBorker)
|
|
10
|
+const getAgreementList = fetch(apis.borker.getBkAgreementList)
|
|
11
|
+const saveAgreement = fetch(apis.borker.saveBkAgreement)
|
|
12
|
+const updateAgreement = fetch(apis.borker.updateBkAgreement)
|
|
13
|
+
|
|
14
|
+const editorMenus = [
|
|
15
|
+ 'head', // 标题
|
|
16
|
+ 'bold', // 粗体
|
|
17
|
+ 'italic', // 斜体
|
|
18
|
+ 'underline', // 下划线
|
|
19
|
+ 'strikeThrough', // 删除线
|
|
20
|
+ 'indent', // 缩进
|
|
21
|
+ 'lineHeight', // 行高
|
|
22
|
+ 'foreColor', // 文字颜色
|
|
23
|
+ 'list', // 列表
|
|
24
|
+ 'justify', // 对齐方式
|
|
25
|
+ 'quote', // 引用
|
|
26
|
+ 'undo', // 撤销
|
|
27
|
+];
|
|
28
|
+
|
|
29
|
+const Borker = React.forwardRef((props, ref) => {
|
|
30
|
+ const { form, buildingInfo = {} } = props
|
|
31
|
+ const buildingId = buildingInfo.buildingId
|
|
32
|
+
|
|
33
|
+ const [loading, setLoading] = useState(false)
|
|
34
|
+ const [isBorker, setIsBorker] = useState('false')
|
|
35
|
+ const [bkAgreement, setBkAgreement] = useState()
|
|
36
|
+
|
|
37
|
+ const canEdit = isBorker === 'true'
|
|
38
|
+
|
|
39
|
+ const handleBorkerChange = (e) => {
|
|
40
|
+ const { value } = e.target
|
|
41
|
+ setLoading(true)
|
|
42
|
+ updateBorker({ urlData: { id: buildingId }, params: { on: value } }).then(() => {
|
|
43
|
+ setLoading(false)
|
|
44
|
+ setIsBorker(value)
|
|
45
|
+ }).catch(() => {
|
|
46
|
+ setLoading(false)
|
|
47
|
+ })
|
|
48
|
+ }
|
|
49
|
+
|
|
50
|
+ const handelSubmit = () => {
|
|
51
|
+ form.validateFieldsAndScroll((err, values) => {
|
|
52
|
+ if (err) return;
|
|
53
|
+
|
|
54
|
+ const data = {
|
|
55
|
+ ...values || {},
|
|
56
|
+ buildingId,
|
|
57
|
+ buildingName: buildingInfo.name,
|
|
58
|
+ cityId: buildingInfo.cityId,
|
|
59
|
+ }
|
|
60
|
+
|
|
61
|
+ setLoading(true)
|
|
62
|
+ const p = data.ruleId ? updateAgreement({ urlData: { id: data.ruleId }, data }) : saveAgreement({ data })
|
|
63
|
+ p.then(res => {
|
|
64
|
+ setLoading(false)
|
|
65
|
+ // setBkAgreement(res)
|
|
66
|
+ form.setFieldsValue(res || {});
|
|
67
|
+ notification.success({ message: "操作成功" })
|
|
68
|
+ }).catch((err) => {
|
|
69
|
+ setLoading(false)
|
|
70
|
+ })
|
|
71
|
+ })
|
|
72
|
+ }
|
|
73
|
+
|
|
74
|
+ useEffect(() => {
|
|
75
|
+ if (buildingId) {
|
|
76
|
+ setLoading(true)
|
|
77
|
+ getAgreementList({ params: { buildingId } }).then(res => {
|
|
78
|
+ setLoading(false)
|
|
79
|
+ const { records = [] } = res
|
|
80
|
+ // setBkAgreement(records[0])
|
|
81
|
+ form.setFieldsValue(records[0] || {});
|
|
82
|
+ }).catch(() => {
|
|
83
|
+ setLoading(false)
|
|
84
|
+ })
|
|
85
|
+ }
|
|
86
|
+ }, [buildingId])
|
|
87
|
+
|
|
88
|
+ return (
|
|
89
|
+ <Spin spinning={loading}>
|
|
90
|
+ <div style={{ padding: '1.2em', paddingTop: 0 }}>
|
|
91
|
+ <Row type="flex" align="middle">
|
|
92
|
+ <Col span={2}>
|
|
93
|
+ <div style={{ textAlign: 'right', marginRight: '1em' }}>全民经纪人</div>
|
|
94
|
+ </Col>
|
|
95
|
+ <Col span={12}>
|
|
96
|
+ <Radio.Group value={isBorker} onChange={handleBorkerChange} buttonStyle="solid">
|
|
97
|
+ <Radio.Button value="true">开启</Radio.Button>
|
|
98
|
+ <Radio.Button value="false">关闭</Radio.Button>
|
|
99
|
+ </Radio.Group>
|
|
100
|
+ </Col>
|
|
101
|
+ </Row>
|
|
102
|
+ </div>
|
|
103
|
+ <div style={{ maxWidth: canEdit ? '100%' : '0', maxHeight: canEdit ? '100%' : '0', overflow: 'hidden' }}>
|
|
104
|
+ <Form {...formItemLayout} onSubmit={handelSubmit} >
|
|
105
|
+ <FormItem label="有效期">
|
|
106
|
+ {form.getFieldDecorator('expirationDays', {
|
|
107
|
+ rules: [{ required: true, message: '请填写有效期' }],
|
|
108
|
+ })(<Input suffix="天" />)}
|
|
109
|
+ </FormItem>
|
|
110
|
+ <FormItem label="佣金规则">
|
|
111
|
+ {form.getFieldDecorator('content', {
|
|
112
|
+ rules: [{ required: true, message: '请填写佣金规则' }],
|
|
113
|
+ })(<Wangedit menus={editorMenus} />)}
|
|
114
|
+ </FormItem>
|
|
115
|
+ <FormItem colon={false} label=" ">
|
|
116
|
+ <Button type="primary" loading={loading} onClick={handelSubmit}>
|
|
117
|
+ 提交
|
|
118
|
+ </Button>
|
|
119
|
+ </FormItem>
|
|
120
|
+ </Form>
|
|
121
|
+ </div>
|
|
122
|
+ </Spin>
|
|
123
|
+ )
|
|
124
|
+})
|
|
125
|
+
|
|
126
|
+export default Form.create()(Borker)
|