Commit 0ac97673380cbb111d4bbd08f642b848af353bf6
1 parent
74f66707
feat: 手动开票功能开发
Showing
5 changed files
with
598 additions
and
460 deletions
.umirc.ts
src/pages/Client/Components/ClientDrawer.tsx
0 → 100644
1 | +import { | |
2 | + postServiceConstClientLevels, | |
3 | + postServiceConstTradeStatus, | |
4 | +} from '@/services'; | |
5 | +import { enumToSelect } from '@/utils'; | |
6 | +import { | |
7 | + DrawerForm, | |
8 | + ProFormDateTimePicker, | |
9 | + ProFormSelect, | |
10 | + ProFormText, | |
11 | +} from '@ant-design/pro-components'; | |
12 | +import { Form, message } from 'antd'; | |
13 | + | |
14 | +export default () => { | |
15 | + const [form] = Form.useForm<{ name: string; company: string }>(); | |
16 | + | |
17 | + return ( | |
18 | + <DrawerForm | |
19 | + title="新建表单" | |
20 | + resize={{ | |
21 | + onResize() { | |
22 | + console.log('resize!'); | |
23 | + }, | |
24 | + maxWidth: window.innerWidth * 0.8, | |
25 | + minWidth: 300, | |
26 | + }} | |
27 | + form={form} | |
28 | + trigger={<a type="primary">新增客户</a>} | |
29 | + autoFocusFirstInput | |
30 | + drawerProps={{ | |
31 | + destroyOnClose: true, | |
32 | + }} | |
33 | + submitTimeout={2000} | |
34 | + onFinish={async (values) => { | |
35 | + console.log(values); | |
36 | + message.success('提交成功'); | |
37 | + // 不返回不会关闭弹框 | |
38 | + return true; | |
39 | + }} | |
40 | + > | |
41 | + <ProFormText name="name" label="客户名称" placeholder="请输入名称" /> | |
42 | + <ProFormText | |
43 | + name="companyName" | |
44 | + label="单位名称" | |
45 | + placeholder="请输入单位名称" | |
46 | + /> | |
47 | + <ProFormText | |
48 | + name="companyAddress" | |
49 | + label="单位地址" | |
50 | + placeholder="请输入单位地址" | |
51 | + /> | |
52 | + <ProFormText | |
53 | + name="phoneNumber" | |
54 | + label="联系电话" | |
55 | + placeholder="请输入联系电话" | |
56 | + /> | |
57 | + <ProFormText | |
58 | + name="source" | |
59 | + label="客户来源" | |
60 | + placeholder="请输入客户来源" | |
61 | + /> | |
62 | + <ProFormText | |
63 | + name="requirements" | |
64 | + label="客户需求" | |
65 | + placeholder="请输入客户需求" | |
66 | + /> | |
67 | + <ProFormText name="referrers" label="推荐人" placeholder="请输入推荐人" /> | |
68 | + <ProFormSelect | |
69 | + name="hasScheme" | |
70 | + label="是否已报方案" | |
71 | + placeholder="请选择是否已报方案" | |
72 | + options={[ | |
73 | + { | |
74 | + label: '是', | |
75 | + value: true, | |
76 | + }, | |
77 | + { | |
78 | + label: '否', | |
79 | + value: false, | |
80 | + }, | |
81 | + ]} | |
82 | + /> | |
83 | + <ProFormDateTimePicker | |
84 | + name="quoteDatetime" | |
85 | + label="报价时间" | |
86 | + placeholder="请输入报价时间" | |
87 | + /> | |
88 | + <ProFormSelect | |
89 | + name="level" | |
90 | + label="客户等级" | |
91 | + placeholder="请输入客户等级" | |
92 | + request={async () => { | |
93 | + const res = await postServiceConstClientLevels(); | |
94 | + return enumToSelect(res.data); | |
95 | + }} | |
96 | + /> | |
97 | + <ProFormSelect | |
98 | + name="tradeStatus" | |
99 | + label="跟进状态" | |
100 | + placeholder="请输入跟进状态" | |
101 | + request={async () => { | |
102 | + const res = await postServiceConstTradeStatus(); | |
103 | + return enumToSelect(res.data); | |
104 | + }} | |
105 | + /> | |
106 | + <ProFormText name="notes" label="备注" placeholder="请输入备注" /> | |
107 | + </DrawerForm> | |
108 | + ); | |
109 | +}; | ... | ... |
src/pages/Client/index.tsx
1 | -import { EllipsisOutlined, PlusOutlined } from '@ant-design/icons'; | |
2 | -import type { ActionType, ProColumns } from '@ant-design/pro-components'; | |
3 | -import { ProTable, TableDropdown } from '@ant-design/pro-components'; | |
4 | -import { request } from '@umijs/max'; | |
5 | -import { Button, Dropdown, Space, Tag } from 'antd'; | |
1 | +import ClientDrawer from '@/pages/Client/Components/ClientDrawer'; | |
2 | +import { postAdminClientQueryClientPage } from '@/services'; | |
3 | +import { EllipsisOutlined } from '@ant-design/icons'; | |
4 | +import type { ActionType } from '@ant-design/pro-components'; | |
5 | +import { ProTable } from '@ant-design/pro-components'; | |
6 | +import { Button, Dropdown } from 'antd'; | |
6 | 7 | import { useRef } from 'react'; |
7 | 8 | |
8 | 9 | export const waitTimePromise = async (time: number = 100) => { |
... | ... | @@ -17,107 +18,69 @@ export const waitTime = async (time: number = 100) => { |
17 | 18 | await waitTimePromise(time); |
18 | 19 | }; |
19 | 20 | |
20 | -type GithubIssueItem = { | |
21 | - url: string; | |
22 | - id: number; | |
23 | - number: number; | |
24 | - title: string; | |
25 | - labels: { | |
26 | - name: string; | |
27 | - color: string; | |
28 | - }[]; | |
29 | - state: string; | |
30 | - comments: number; | |
31 | - created_at: string; | |
32 | - updated_at: string; | |
33 | - closed_at?: string; | |
34 | -}; | |
35 | - | |
36 | -const columns: ProColumns<GithubIssueItem>[] = [ | |
21 | +const columns = [ | |
37 | 22 | { |
38 | 23 | dataIndex: 'index', |
39 | 24 | valueType: 'indexBorder', |
40 | 25 | width: 48, |
41 | 26 | }, |
42 | 27 | { |
43 | - title: '标题', | |
44 | - dataIndex: 'title', | |
45 | - copyable: true, | |
46 | - ellipsis: true, | |
47 | - tooltip: '标题过长会自动收缩', | |
48 | - formItemProps: { | |
49 | - rules: [ | |
50 | - { | |
51 | - required: true, | |
52 | - message: '此项为必填项', | |
53 | - }, | |
54 | - ], | |
55 | - }, | |
28 | + title: '客户名称', | |
29 | + dataIndex: 'name', | |
56 | 30 | }, |
57 | 31 | { |
58 | - disable: true, | |
59 | - title: '状态', | |
60 | - dataIndex: 'state', | |
61 | - filters: true, | |
62 | - onFilter: true, | |
63 | - ellipsis: true, | |
64 | - valueType: 'select', | |
65 | - valueEnum: { | |
66 | - all: { text: '超长'.repeat(50) }, | |
67 | - open: { | |
68 | - text: '未解决', | |
69 | - status: 'Error', | |
70 | - }, | |
71 | - closed: { | |
72 | - text: '已解决', | |
73 | - status: 'Success', | |
74 | - disabled: true, | |
75 | - }, | |
76 | - processing: { | |
77 | - text: '解决中', | |
78 | - status: 'Processing', | |
79 | - }, | |
80 | - }, | |
32 | + title: '单位名称', | |
33 | + dataIndex: 'companyName', | |
81 | 34 | }, |
82 | 35 | { |
83 | - disable: true, | |
84 | - title: '标签', | |
85 | - dataIndex: 'labels', | |
86 | - search: false, | |
87 | - renderFormItem: (_, { defaultRender }) => { | |
88 | - return defaultRender(_); | |
89 | - }, | |
90 | - render: (_, record) => ( | |
91 | - <Space> | |
92 | - {record.labels.map(({ name, color }) => ( | |
93 | - <Tag color={color} key={name}> | |
94 | - {name} | |
95 | - </Tag> | |
96 | - ))} | |
97 | - </Space> | |
98 | - ), | |
36 | + title: '单位地址', | |
37 | + dataIndex: 'companyName', | |
99 | 38 | }, |
100 | 39 | { |
101 | - title: '创建时间', | |
102 | - key: 'showTime', | |
103 | - dataIndex: 'created_at', | |
104 | - valueType: 'date', | |
105 | - sorter: true, | |
106 | - hideInSearch: true, | |
40 | + title: '联系电话', | |
41 | + dataIndex: 'phoneNumber', | |
42 | + }, | |
43 | + { | |
44 | + title: '客户来源', | |
45 | + dataIndex: 'sourceText', | |
46 | + }, | |
47 | + { | |
48 | + title: '推荐人', | |
49 | + dataIndex: 'referrers', | |
50 | + }, | |
51 | + { | |
52 | + title: '客户需求', | |
53 | + dataIndex: 'requirements', | |
54 | + }, | |
55 | + { | |
56 | + title: '是否已报方案', | |
57 | + dataIndex: 'hasSchemeText', | |
58 | + }, | |
59 | + { | |
60 | + title: '报价时间', | |
61 | + key: 'since', | |
62 | + dataIndex: 'quoteDatetime', | |
63 | + valueType: 'dateTime', | |
64 | + }, | |
65 | + { | |
66 | + title: '跟进状态', | |
67 | + dataIndex: 'tradeStatusText', | |
68 | + }, | |
69 | + { | |
70 | + title: '客户等级', | |
71 | + dataIndex: 'levelText', | |
107 | 72 | }, |
108 | 73 | { |
109 | 74 | title: '创建时间', |
110 | - dataIndex: 'created_at', | |
111 | - valueType: 'dateRange', | |
112 | - hideInTable: true, | |
113 | - search: { | |
114 | - transform: (value) => { | |
115 | - return { | |
116 | - startTime: value[0], | |
117 | - endTime: value[1], | |
118 | - }; | |
119 | - }, | |
120 | - }, | |
75 | + key: 'since', | |
76 | + dataIndex: 'createTime', | |
77 | + valueType: 'dateTime', | |
78 | + }, | |
79 | + { | |
80 | + title: '最新跟进时间', | |
81 | + key: 'since', | |
82 | + dataIndex: 'latestCommunicationTime', | |
83 | + valueType: 'dateTime', | |
121 | 84 | }, |
122 | 85 | { |
123 | 86 | title: '操作', |
... | ... | @@ -130,19 +93,11 @@ const columns: ProColumns<GithubIssueItem>[] = [ |
130 | 93 | action?.startEditable?.(record.id); |
131 | 94 | }} |
132 | 95 | > |
133 | - 编辑 | |
96 | + 查询详情 | |
134 | 97 | </a>, |
135 | 98 | <a href={record.url} target="_blank" rel="noopener noreferrer" key="view"> |
136 | - 查看 | |
99 | + 跟进记录 | |
137 | 100 | </a>, |
138 | - <TableDropdown | |
139 | - key="actionGroup" | |
140 | - onSelect={() => action?.reload()} | |
141 | - menus={[ | |
142 | - { key: 'copy', name: '复制' }, | |
143 | - { key: 'delete', name: '删除' }, | |
144 | - ]} | |
145 | - />, | |
146 | 101 | ], |
147 | 102 | }, |
148 | 103 | ]; |
... | ... | @@ -150,18 +105,18 @@ const columns: ProColumns<GithubIssueItem>[] = [ |
150 | 105 | export default () => { |
151 | 106 | const actionRef = useRef<ActionType>(); |
152 | 107 | return ( |
153 | - <ProTable<GithubIssueItem> | |
108 | + <ProTable | |
154 | 109 | columns={columns} |
155 | 110 | actionRef={actionRef} |
156 | 111 | cardBordered |
157 | - request={async (params, sort, filter) => { | |
158 | - console.log(sort, filter); | |
159 | - await waitTime(2000); | |
160 | - return request<{ | |
161 | - data: GithubIssueItem[]; | |
162 | - }>('https://proapi.azurewebsites.net/github/issues', { | |
163 | - params, | |
112 | + request={async (params) => { | |
113 | + const res = await postAdminClientQueryClientPage({ | |
114 | + data: { | |
115 | + ...params, | |
116 | + }, | |
164 | 117 | }); |
118 | + const data = res.data.data; | |
119 | + return data; | |
165 | 120 | }} |
166 | 121 | editable={{ |
167 | 122 | type: 'multiple', |
... | ... | @@ -204,16 +159,7 @@ export default () => { |
204 | 159 | dateFormatter="string" |
205 | 160 | headerTitle="高级表格" |
206 | 161 | toolBarRender={() => [ |
207 | - <Button | |
208 | - key="button" | |
209 | - icon={<PlusOutlined />} | |
210 | - onClick={() => { | |
211 | - actionRef.current?.reload(); | |
212 | - }} | |
213 | - type="primary" | |
214 | - > | |
215 | - 新建 | |
216 | - </Button>, | |
162 | + <ClientDrawer key="button" />, | |
217 | 163 | <Dropdown |
218 | 164 | key="menu" |
219 | 165 | menu={{ | ... | ... |
src/services/definition.ts
... | ... | @@ -83,6 +83,101 @@ export interface AdminAuthUserVO { |
83 | 83 | userId?: number; |
84 | 84 | } |
85 | 85 | |
86 | +export interface AdminClientDto { | |
87 | + /** | |
88 | + * @description | |
89 | + * 公司地址 | |
90 | + */ | |
91 | + companyAddress?: string; | |
92 | + companyId?: string; | |
93 | + /** | |
94 | + * @description | |
95 | + * 公司名称 | |
96 | + */ | |
97 | + companyName?: string; | |
98 | + contacts?: string; | |
99 | + createBy?: string; | |
100 | + /** @format date-time */ | |
101 | + createTime?: string; | |
102 | + /** @format int32 */ | |
103 | + enableFlag?: number; | |
104 | + /** | |
105 | + * @description | |
106 | + * 是否已报方案 | |
107 | + * @format int32 | |
108 | + */ | |
109 | + hasScheme?: number; | |
110 | + hasSchemeText?: string; | |
111 | + /** @format date-time */ | |
112 | + latestCommunicationTime?: string; | |
113 | + /** | |
114 | + * @description | |
115 | + * 客户等级 | |
116 | + */ | |
117 | + level?: string; | |
118 | + /** | |
119 | + * @description | |
120 | + * 客户等级 | |
121 | + */ | |
122 | + levelText?: string; | |
123 | + modifyBy?: string; | |
124 | + /** @format date-time */ | |
125 | + modifyTime?: string; | |
126 | + /** | |
127 | + * @description | |
128 | + * 名称 | |
129 | + */ | |
130 | + name?: string; | |
131 | + /** | |
132 | + * @description | |
133 | + * 备注 | |
134 | + */ | |
135 | + notes?: string; | |
136 | + /** | |
137 | + * @description | |
138 | + * 电话号码 | |
139 | + */ | |
140 | + phoneNumber?: string; | |
141 | + /** | |
142 | + * @description | |
143 | + * 报价时间 | |
144 | + * @format date-time | |
145 | + */ | |
146 | + quoteDatetime?: string; | |
147 | + /** | |
148 | + * @description | |
149 | + * 推荐人 | |
150 | + */ | |
151 | + referrers?: string; | |
152 | + /** | |
153 | + * @description | |
154 | + * 需求 | |
155 | + */ | |
156 | + requirements?: string; | |
157 | + /** | |
158 | + * @description | |
159 | + * 来源 | |
160 | + */ | |
161 | + source?: string; | |
162 | + /** | |
163 | + * @description | |
164 | + * 来源 | |
165 | + */ | |
166 | + sourceText?: string; | |
167 | + /** | |
168 | + * @description | |
169 | + * 跟进状态 | |
170 | + */ | |
171 | + tradeStatus?: string; | |
172 | + /** | |
173 | + * @description | |
174 | + * 跟进状态 | |
175 | + */ | |
176 | + tradeStatusText?: string; | |
177 | + /** @format int32 */ | |
178 | + version?: number; | |
179 | +} | |
180 | + | |
86 | 181 | export interface AdminDeptQueryVO { |
87 | 182 | /** @format int32 */ |
88 | 183 | current?: number; |
... | ... | @@ -1810,6 +1905,31 @@ export interface QueryBankStatementDto { |
1810 | 1905 | total?: number; |
1811 | 1906 | } |
1812 | 1907 | |
1908 | +export interface QueryClientDto { | |
1909 | + companyAddressLike?: string; | |
1910 | + companyIds?: Array<number>; | |
1911 | + companyNameLike?: string; | |
1912 | + /** @format date-time */ | |
1913 | + createTimeGe?: string; | |
1914 | + /** @format date-time */ | |
1915 | + createTimeLe?: string; | |
1916 | + /** @format int32 */ | |
1917 | + current?: number; | |
1918 | + /** @format int32 */ | |
1919 | + end?: number; | |
1920 | + hasScheme?: string; | |
1921 | + level?: string; | |
1922 | + namelike?: string; | |
1923 | + /** @format int32 */ | |
1924 | + pageSize?: number; | |
1925 | + phoneNumber?: string; | |
1926 | + /** @format int32 */ | |
1927 | + start?: number; | |
1928 | + /** @format int32 */ | |
1929 | + total?: number; | |
1930 | + tradeStatus?: string; | |
1931 | +} | |
1932 | + | |
1813 | 1933 | export interface QueryCustomerInformationDto { |
1814 | 1934 | /** |
1815 | 1935 | * @description |
... | ... | @@ -2214,325 +2334,6 @@ export interface ResearchGroupMemberRequestsRequest { |
2214 | 2334 | total?: number; |
2215 | 2335 | } |
2216 | 2336 | |
2217 | -export interface ResearchGroupAccountAddRequest { | |
2218 | - /** | |
2219 | - * @description | |
2220 | - * 关联的账号id | |
2221 | - * @format int64 | |
2222 | - */ | |
2223 | - accountId?: number; | |
2224 | - /** | |
2225 | - * @description | |
2226 | - * 关联的账号名称 | |
2227 | - */ | |
2228 | - accountName?: string; | |
2229 | - /** | |
2230 | - * @description | |
2231 | - * 关联的账号手机号 | |
2232 | - */ | |
2233 | - accountPhone?: string; | |
2234 | - /** | |
2235 | - * @description | |
2236 | - * 课题组id | |
2237 | - * @format int64 | |
2238 | - */ | |
2239 | - groupId?: number; | |
2240 | -} | |
2241 | - | |
2242 | -export interface ResearchGroupAccountEditRequest { | |
2243 | - /** | |
2244 | - * @description | |
2245 | - * 关联的账号id | |
2246 | - * @format int64 | |
2247 | - */ | |
2248 | - accountId?: number; | |
2249 | - /** | |
2250 | - * @description | |
2251 | - * 关联的账号名称 | |
2252 | - */ | |
2253 | - accountName?: string; | |
2254 | - /** | |
2255 | - * @description | |
2256 | - * 关联的账号手机号 | |
2257 | - */ | |
2258 | - accountPhone?: string; | |
2259 | - /** | |
2260 | - * @description | |
2261 | - * 课题组id | |
2262 | - * @format int64 | |
2263 | - */ | |
2264 | - groupId?: number; | |
2265 | - /** | |
2266 | - * @description | |
2267 | - * 主键id | |
2268 | - * @format int64 | |
2269 | - */ | |
2270 | - id?: number; | |
2271 | -} | |
2272 | - | |
2273 | -export interface ResearchGroupAddRequest { | |
2274 | - accounts?: Array<ResearchGroupAccountAddRequest>; | |
2275 | - /** | |
2276 | - * @description | |
2277 | - * 课题组名称 | |
2278 | - */ | |
2279 | - group?: string; | |
2280 | - /** | |
2281 | - * @description | |
2282 | - * 课题组负责人 | |
2283 | - */ | |
2284 | - leader?: string; | |
2285 | - members?: Array<ResearchGroupMemberAddRequest>; | |
2286 | -} | |
2287 | - | |
2288 | -export interface ResearchGroupDeleteRequest { | |
2289 | - /** | |
2290 | - * @description | |
2291 | - * 主键id | |
2292 | - */ | |
2293 | - ids?: Array<number>; | |
2294 | -} | |
2295 | - | |
2296 | -export interface ResearchGroupDetailRequest { | |
2297 | - /** | |
2298 | - * @description | |
2299 | - * 主键id | |
2300 | - * @format int64 | |
2301 | - */ | |
2302 | - id?: number; | |
2303 | -} | |
2304 | - | |
2305 | -export interface ResearchGroupEditRequest { | |
2306 | - /** | |
2307 | - * @description | |
2308 | - * 课题组预存账号 | |
2309 | - */ | |
2310 | - accounts?: Array<ResearchGroupAccountEditRequest>; | |
2311 | - /** | |
2312 | - * @description | |
2313 | - * 课题组名称 | |
2314 | - */ | |
2315 | - group?: string; | |
2316 | - /** | |
2317 | - * @description | |
2318 | - * 主键id | |
2319 | - * @format int64 | |
2320 | - */ | |
2321 | - id?: number; | |
2322 | - /** | |
2323 | - * @description | |
2324 | - * 课题组负责人 | |
2325 | - */ | |
2326 | - leader?: string; | |
2327 | - /** | |
2328 | - * @description | |
2329 | - * 课题组成员集合 | |
2330 | - */ | |
2331 | - members?: Array<ResearchGroupMemberEditRequest>; | |
2332 | -} | |
2333 | - | |
2334 | -export interface ResearchGroupListRequest { | |
2335 | - /** | |
2336 | - * @description | |
2337 | - * 预存账号手机号 | |
2338 | - */ | |
2339 | - accountPhone?: string; | |
2340 | - /** @format int32 */ | |
2341 | - current?: number; | |
2342 | - /** @format int32 */ | |
2343 | - end?: number; | |
2344 | - /** | |
2345 | - * @description | |
2346 | - * 课题组名称 | |
2347 | - */ | |
2348 | - groupName?: string; | |
2349 | - /** | |
2350 | - * @description | |
2351 | - * 课题组负责人 | |
2352 | - */ | |
2353 | - leaderName?: string; | |
2354 | - /** | |
2355 | - * @description | |
2356 | - * 课题组成员名称 | |
2357 | - */ | |
2358 | - memberName?: string; | |
2359 | - /** | |
2360 | - * @description | |
2361 | - * 课题组成员手机号 | |
2362 | - */ | |
2363 | - memberPhone?: string; | |
2364 | - /** @format int32 */ | |
2365 | - pageSize?: number; | |
2366 | - /** @format int32 */ | |
2367 | - start?: number; | |
2368 | - /** @format int32 */ | |
2369 | - total?: number; | |
2370 | -} | |
2371 | - | |
2372 | -export interface ResearchGroupMemberAddRequest { | |
2373 | - /** | |
2374 | - * @description | |
2375 | - * 课题组ID | |
2376 | - * @format int64 | |
2377 | - */ | |
2378 | - groupId?: number; | |
2379 | - /** | |
2380 | - * @description | |
2381 | - * 成员名称 | |
2382 | - */ | |
2383 | - memberName?: string; | |
2384 | - /** | |
2385 | - * @description | |
2386 | - * 成员手机号 | |
2387 | - */ | |
2388 | - memberPhone?: string; | |
2389 | -} | |
2390 | - | |
2391 | -export interface ResearchGroupMemberEditRequest { | |
2392 | - /** | |
2393 | - * @description | |
2394 | - * 课题组ID | |
2395 | - * @format int64 | |
2396 | - */ | |
2397 | - groupId?: number; | |
2398 | - /** | |
2399 | - * @description | |
2400 | - * 主键id | |
2401 | - * @format int64 | |
2402 | - */ | |
2403 | - id?: number; | |
2404 | - /** | |
2405 | - * @description | |
2406 | - * 成员名称 | |
2407 | - */ | |
2408 | - memberName?: string; | |
2409 | - /** | |
2410 | - * @description | |
2411 | - * 成员手机号 | |
2412 | - */ | |
2413 | - memberPhone?: string; | |
2414 | -} | |
2415 | - | |
2416 | -export interface ResearchGroupMemberRequestAddRequest { | |
2417 | - /** | |
2418 | - * @description | |
2419 | - * 课题组ID | |
2420 | - * @format int64 | |
2421 | - */ | |
2422 | - groupId?: number; | |
2423 | - /** | |
2424 | - * @description | |
2425 | - * 课题组名称 | |
2426 | - */ | |
2427 | - groupName?: string; | |
2428 | - members?: Array<ResearchGroupMemberAddRequest>; | |
2429 | - /** | |
2430 | - * @description | |
2431 | - * 申请备注 | |
2432 | - */ | |
2433 | - requestNotes?: string; | |
2434 | -} | |
2435 | - | |
2436 | -export interface ResearchGroupMemberRequestDeleteRequest { | |
2437 | - /** | |
2438 | - * @description | |
2439 | - * 主键id | |
2440 | - */ | |
2441 | - ids?: Array<number>; | |
2442 | -} | |
2443 | - | |
2444 | -export interface ResearchGroupMemberRequestDetailRequest { | |
2445 | - /** | |
2446 | - * @description | |
2447 | - * 主键id | |
2448 | - * @format int64 | |
2449 | - */ | |
2450 | - id?: number; | |
2451 | -} | |
2452 | - | |
2453 | -export interface ResearchGroupMemberRequestEditRequest { | |
2454 | - /** | |
2455 | - * @description | |
2456 | - * 课题组ID | |
2457 | - * @format int64 | |
2458 | - */ | |
2459 | - groupId?: number; | |
2460 | - /** | |
2461 | - * @description | |
2462 | - * 课题组名称 | |
2463 | - */ | |
2464 | - groupName?: string; | |
2465 | - /** | |
2466 | - * @description | |
2467 | - * 主键id | |
2468 | - * @format int64 | |
2469 | - */ | |
2470 | - id?: number; | |
2471 | - /** | |
2472 | - * @description | |
2473 | - * 成员名称 | |
2474 | - */ | |
2475 | - memberName?: string; | |
2476 | - /** | |
2477 | - * @description | |
2478 | - * 成员手机号 | |
2479 | - */ | |
2480 | - memberPhone?: string; | |
2481 | - /** | |
2482 | - * @description | |
2483 | - * 申请备注 | |
2484 | - */ | |
2485 | - requestNotes?: string; | |
2486 | -} | |
2487 | - | |
2488 | -export interface ResearchGroupMemberRequestsRequest { | |
2489 | - /** | |
2490 | - * @description | |
2491 | - * 审核备注 | |
2492 | - */ | |
2493 | - auditNotes?: string; | |
2494 | - /** | |
2495 | - * @description | |
2496 | - * 审核状态 | |
2497 | - */ | |
2498 | - auditStatus?: string; | |
2499 | - /** | |
2500 | - * @description | |
2501 | - * 创建人 | |
2502 | - */ | |
2503 | - createByName?: string; | |
2504 | - /** @format int32 */ | |
2505 | - current?: number; | |
2506 | - /** @format int32 */ | |
2507 | - end?: number; | |
2508 | - /** | |
2509 | - * @description | |
2510 | - * 课题组名称 | |
2511 | - */ | |
2512 | - groupName?: string; | |
2513 | - /** | |
2514 | - * @description | |
2515 | - * 成员名称 | |
2516 | - */ | |
2517 | - memberName?: string; | |
2518 | - /** | |
2519 | - * @description | |
2520 | - * 成员手机号 | |
2521 | - */ | |
2522 | - memberPhone?: string; | |
2523 | - /** @format int32 */ | |
2524 | - pageSize?: number; | |
2525 | - /** | |
2526 | - * @description | |
2527 | - * 申请备注 | |
2528 | - */ | |
2529 | - requestNotes?: string; | |
2530 | - /** @format int32 */ | |
2531 | - start?: number; | |
2532 | - /** @format int32 */ | |
2533 | - total?: number; | |
2534 | -} | |
2535 | - | |
2536 | 2337 | export interface ResetPwdVO { |
2537 | 2338 | /** @format int64 */ |
2538 | 2339 | userId?: number; |
... | ... | @@ -3162,6 +2963,10 @@ export interface SalesRechargePrepaymentUpdateRequest { |
3162 | 2963 | salesCode?: string; |
3163 | 2964 | } |
3164 | 2965 | |
2966 | +export type ServerResultSimplePageUtilsAdminClientDto = ServerResult< | |
2967 | + SimplePageUtils<AdminClientDto> | |
2968 | +>; | |
2969 | +export type SimplePageUtilsAdminClientDto = SimplePageUtils<AdminClientDto>; | |
3165 | 2970 | /** |
3166 | 2971 | * @description |
3167 | 2972 | * 开票添加对象 |
... | ... | @@ -3338,3 +3143,14 @@ export interface Dto { |
3338 | 3143 | */ |
3339 | 3144 | subOrderIds?: Array<string>; |
3340 | 3145 | } |
3146 | + | |
3147 | +export interface SimplePageUtils<AdminClientDto = any> { | |
3148 | + /** @format int64 */ | |
3149 | + count?: number; | |
3150 | + data?: Array<AdminClientDto>; | |
3151 | + /** @format int64 */ | |
3152 | + pageSize?: number; | |
3153 | + specialPath?: Array<string>; | |
3154 | + /** @format int64 */ | |
3155 | + total?: number; | |
3156 | +} | ... | ... |
src/services/request.ts
... | ... | @@ -6,6 +6,7 @@ import { request as requester } from 'umi'; |
6 | 6 | import type { |
7 | 7 | AdminAuthRoleVO, |
8 | 8 | AdminAuthUserVO, |
9 | + AdminClientDto, | |
9 | 10 | AdminDeptQueryVO, |
10 | 11 | AdminDeptVO, |
11 | 12 | AdminJobQueryVO, |
... | ... | @@ -56,7 +57,6 @@ import type { |
56 | 57 | MaterialUnitListRes, |
57 | 58 | MeasureUnitListRes, |
58 | 59 | MessageQueryDTO, |
59 | - ModelAndView, | |
60 | 60 | OrderAddVO, |
61 | 61 | OrderAuditLogQueryVO, |
62 | 62 | OrderBaseInfoQueryVO, |
... | ... | @@ -80,6 +80,7 @@ import type { |
80 | 80 | QueryAfterSalesInfoSnapshotDto, |
81 | 81 | QueryAnnexDto, |
82 | 82 | QueryBankStatementDto, |
83 | + QueryClientDto, | |
83 | 84 | QueryCustomerInformationDto, |
84 | 85 | QueryHistoryRecordDto, |
85 | 86 | QueryInvoiceDetailDto, |
... | ... | @@ -106,6 +107,7 @@ import type { |
106 | 107 | SaveReply, |
107 | 108 | ServerResult, |
108 | 109 | ShippingWarehouseChangeDto, |
110 | + SimplePageUtils, | |
109 | 111 | StoreOrderInvoiceRequest, |
110 | 112 | SysLogQueryVO, |
111 | 113 | SystemCustomFieldReq, |
... | ... | @@ -124,6 +126,148 @@ import type { |
124 | 126 | UserNowMoneyCheckRequest, |
125 | 127 | } from './definition'; |
126 | 128 | |
129 | +/** @description request parameter type for postAdminClientAddAdminClient */ | |
130 | +export interface PostAdminClientAddAdminClientOption { | |
131 | + /** | |
132 | + * @description | |
133 | + * dto | |
134 | + */ | |
135 | + body: { | |
136 | + /** | |
137 | + @description | |
138 | + dto */ | |
139 | + dto: AdminClientDto; | |
140 | + }; | |
141 | +} | |
142 | + | |
143 | +/** @description response type for postAdminClientAddAdminClient */ | |
144 | +export interface PostAdminClientAddAdminClientResponse { | |
145 | + /** | |
146 | + * @description | |
147 | + * OK | |
148 | + */ | |
149 | + 200: ServerResult; | |
150 | + /** | |
151 | + * @description | |
152 | + * Created | |
153 | + */ | |
154 | + 201: any; | |
155 | + /** | |
156 | + * @description | |
157 | + * Unauthorized | |
158 | + */ | |
159 | + 401: any; | |
160 | + /** | |
161 | + * @description | |
162 | + * Forbidden | |
163 | + */ | |
164 | + 403: any; | |
165 | + /** | |
166 | + * @description | |
167 | + * Not Found | |
168 | + */ | |
169 | + 404: any; | |
170 | +} | |
171 | + | |
172 | +export type PostAdminClientAddAdminClientResponseSuccess = | |
173 | + PostAdminClientAddAdminClientResponse[200]; | |
174 | +/** | |
175 | + * @description | |
176 | + * 客户管理 | |
177 | + * @tags 客户管理 | |
178 | + * @produces * | |
179 | + * @consumes application/json | |
180 | + */ | |
181 | +export const postAdminClientAddAdminClient = /* #__PURE__ */ (() => { | |
182 | + const method = 'post'; | |
183 | + const url = '/admin/client/addAdminClient'; | |
184 | + function request( | |
185 | + option: PostAdminClientAddAdminClientOption, | |
186 | + ): Promise<PostAdminClientAddAdminClientResponseSuccess> { | |
187 | + return requester(request.url, { | |
188 | + method: request.method, | |
189 | + ...option, | |
190 | + }) as unknown as Promise<PostAdminClientAddAdminClientResponseSuccess>; | |
191 | + } | |
192 | + | |
193 | + /** http method */ | |
194 | + request.method = method; | |
195 | + /** request url */ | |
196 | + request.url = url; | |
197 | + return request; | |
198 | +})(); | |
199 | + | |
200 | +/** @description request parameter type for postAdminClientQueryClientPage */ | |
201 | +export interface PostAdminClientQueryClientPageOption { | |
202 | + /** | |
203 | + * @description | |
204 | + * dto | |
205 | + */ | |
206 | + body: { | |
207 | + /** | |
208 | + @description | |
209 | + dto */ | |
210 | + dto: QueryClientDto; | |
211 | + }; | |
212 | +} | |
213 | + | |
214 | +/** @description response type for postAdminClientQueryClientPage */ | |
215 | +export interface PostAdminClientQueryClientPageResponse { | |
216 | + /** | |
217 | + * @description | |
218 | + * OK | |
219 | + */ | |
220 | + 200: ServerResult<SimplePageUtils<AdminClientDto>>; | |
221 | + /** | |
222 | + * @description | |
223 | + * Created | |
224 | + */ | |
225 | + 201: any; | |
226 | + /** | |
227 | + * @description | |
228 | + * Unauthorized | |
229 | + */ | |
230 | + 401: any; | |
231 | + /** | |
232 | + * @description | |
233 | + * Forbidden | |
234 | + */ | |
235 | + 403: any; | |
236 | + /** | |
237 | + * @description | |
238 | + * Not Found | |
239 | + */ | |
240 | + 404: any; | |
241 | +} | |
242 | + | |
243 | +export type PostAdminClientQueryClientPageResponseSuccess = | |
244 | + PostAdminClientQueryClientPageResponse[200]; | |
245 | +/** | |
246 | + * @description | |
247 | + * 客户管理 | |
248 | + * @tags 客户管理 | |
249 | + * @produces * | |
250 | + * @consumes application/json | |
251 | + */ | |
252 | +export const postAdminClientQueryClientPage = /* #__PURE__ */ (() => { | |
253 | + const method = 'post'; | |
254 | + const url = '/admin/client/queryClientPage'; | |
255 | + function request( | |
256 | + option: PostAdminClientQueryClientPageOption, | |
257 | + ): Promise<PostAdminClientQueryClientPageResponseSuccess> { | |
258 | + return requester(request.url, { | |
259 | + method: request.method, | |
260 | + ...option, | |
261 | + }) as unknown as Promise<PostAdminClientQueryClientPageResponseSuccess>; | |
262 | + } | |
263 | + | |
264 | + /** http method */ | |
265 | + request.method = method; | |
266 | + /** request url */ | |
267 | + request.url = url; | |
268 | + return request; | |
269 | +})(); | |
270 | + | |
127 | 271 | /** @description request parameter type for postApiLocalStorageUpload */ |
128 | 272 | export interface PostApiLocalStorageUploadOption { |
129 | 273 | /** |
... | ... | @@ -2319,7 +2463,9 @@ export interface GetErrorResponse { |
2319 | 2463 | * @description |
2320 | 2464 | * OK |
2321 | 2465 | */ |
2322 | - 200: ModelAndView; | |
2466 | + 200: { | |
2467 | + [propertyName: string]: any; | |
2468 | + }; | |
2323 | 2469 | /** |
2324 | 2470 | * @description |
2325 | 2471 | * Unauthorized |
... | ... | @@ -2340,9 +2486,9 @@ export interface GetErrorResponse { |
2340 | 2486 | export type GetErrorResponseSuccess = GetErrorResponse[200]; |
2341 | 2487 | /** |
2342 | 2488 | * @description |
2343 | - * errorHtml | |
2489 | + * error | |
2344 | 2490 | * @tags basic-error-controller |
2345 | - * @produces text/html | |
2491 | + * @produces * | |
2346 | 2492 | */ |
2347 | 2493 | export const getError = /* #__PURE__ */ (() => { |
2348 | 2494 | const method = 'get'; |
... | ... | @@ -2366,7 +2512,9 @@ export interface PutErrorResponse { |
2366 | 2512 | * @description |
2367 | 2513 | * OK |
2368 | 2514 | */ |
2369 | - 200: ModelAndView; | |
2515 | + 200: { | |
2516 | + [propertyName: string]: any; | |
2517 | + }; | |
2370 | 2518 | /** |
2371 | 2519 | * @description |
2372 | 2520 | * Created |
... | ... | @@ -2392,9 +2540,9 @@ export interface PutErrorResponse { |
2392 | 2540 | export type PutErrorResponseSuccess = PutErrorResponse[200]; |
2393 | 2541 | /** |
2394 | 2542 | * @description |
2395 | - * errorHtml | |
2543 | + * error | |
2396 | 2544 | * @tags basic-error-controller |
2397 | - * @produces text/html | |
2545 | + * @produces * | |
2398 | 2546 | * @consumes application/json |
2399 | 2547 | */ |
2400 | 2548 | export const putError = /* #__PURE__ */ (() => { |
... | ... | @@ -2419,7 +2567,9 @@ export interface PostErrorResponse { |
2419 | 2567 | * @description |
2420 | 2568 | * OK |
2421 | 2569 | */ |
2422 | - 200: ModelAndView; | |
2570 | + 200: { | |
2571 | + [propertyName: string]: any; | |
2572 | + }; | |
2423 | 2573 | /** |
2424 | 2574 | * @description |
2425 | 2575 | * Created |
... | ... | @@ -2445,9 +2595,9 @@ export interface PostErrorResponse { |
2445 | 2595 | export type PostErrorResponseSuccess = PostErrorResponse[200]; |
2446 | 2596 | /** |
2447 | 2597 | * @description |
2448 | - * errorHtml | |
2598 | + * error | |
2449 | 2599 | * @tags basic-error-controller |
2450 | - * @produces text/html | |
2600 | + * @produces * | |
2451 | 2601 | * @consumes application/json |
2452 | 2602 | */ |
2453 | 2603 | export const postError = /* #__PURE__ */ (() => { |
... | ... | @@ -2472,7 +2622,9 @@ export interface DeleteErrorResponse { |
2472 | 2622 | * @description |
2473 | 2623 | * OK |
2474 | 2624 | */ |
2475 | - 200: ModelAndView; | |
2625 | + 200: { | |
2626 | + [propertyName: string]: any; | |
2627 | + }; | |
2476 | 2628 | /** |
2477 | 2629 | * @description |
2478 | 2630 | * No Content |
... | ... | @@ -2493,9 +2645,9 @@ export interface DeleteErrorResponse { |
2493 | 2645 | export type DeleteErrorResponseSuccess = DeleteErrorResponse[200]; |
2494 | 2646 | /** |
2495 | 2647 | * @description |
2496 | - * errorHtml | |
2648 | + * error | |
2497 | 2649 | * @tags basic-error-controller |
2498 | - * @produces text/html | |
2650 | + * @produces * | |
2499 | 2651 | */ |
2500 | 2652 | export const deleteError = /* #__PURE__ */ (() => { |
2501 | 2653 | const method = 'delete'; |
... | ... | @@ -2519,7 +2671,9 @@ export interface OptionsErrorResponse { |
2519 | 2671 | * @description |
2520 | 2672 | * OK |
2521 | 2673 | */ |
2522 | - 200: ModelAndView; | |
2674 | + 200: { | |
2675 | + [propertyName: string]: any; | |
2676 | + }; | |
2523 | 2677 | /** |
2524 | 2678 | * @description |
2525 | 2679 | * No Content |
... | ... | @@ -2540,9 +2694,9 @@ export interface OptionsErrorResponse { |
2540 | 2694 | export type OptionsErrorResponseSuccess = OptionsErrorResponse[200]; |
2541 | 2695 | /** |
2542 | 2696 | * @description |
2543 | - * errorHtml | |
2697 | + * error | |
2544 | 2698 | * @tags basic-error-controller |
2545 | - * @produces text/html | |
2699 | + * @produces * | |
2546 | 2700 | * @consumes application/json |
2547 | 2701 | */ |
2548 | 2702 | export const optionsError = /* #__PURE__ */ (() => { |
... | ... | @@ -2567,7 +2721,9 @@ export interface HeadErrorResponse { |
2567 | 2721 | * @description |
2568 | 2722 | * OK |
2569 | 2723 | */ |
2570 | - 200: ModelAndView; | |
2724 | + 200: { | |
2725 | + [propertyName: string]: any; | |
2726 | + }; | |
2571 | 2727 | /** |
2572 | 2728 | * @description |
2573 | 2729 | * No Content |
... | ... | @@ -2588,9 +2744,9 @@ export interface HeadErrorResponse { |
2588 | 2744 | export type HeadErrorResponseSuccess = HeadErrorResponse[200]; |
2589 | 2745 | /** |
2590 | 2746 | * @description |
2591 | - * errorHtml | |
2747 | + * error | |
2592 | 2748 | * @tags basic-error-controller |
2593 | - * @produces text/html | |
2749 | + * @produces * | |
2594 | 2750 | * @consumes application/json |
2595 | 2751 | */ |
2596 | 2752 | export const headError = /* #__PURE__ */ (() => { |
... | ... | @@ -2615,7 +2771,9 @@ export interface PatchErrorResponse { |
2615 | 2771 | * @description |
2616 | 2772 | * OK |
2617 | 2773 | */ |
2618 | - 200: ModelAndView; | |
2774 | + 200: { | |
2775 | + [propertyName: string]: any; | |
2776 | + }; | |
2619 | 2777 | /** |
2620 | 2778 | * @description |
2621 | 2779 | * No Content |
... | ... | @@ -2636,9 +2794,9 @@ export interface PatchErrorResponse { |
2636 | 2794 | export type PatchErrorResponseSuccess = PatchErrorResponse[200]; |
2637 | 2795 | /** |
2638 | 2796 | * @description |
2639 | - * errorHtml | |
2797 | + * error | |
2640 | 2798 | * @tags basic-error-controller |
2641 | - * @produces text/html | |
2799 | + * @produces * | |
2642 | 2800 | * @consumes application/json |
2643 | 2801 | */ |
2644 | 2802 | export const patchError = /* #__PURE__ */ (() => { |
... | ... | @@ -10650,6 +10808,114 @@ export const postServiceBankStatementQueryBankStatement = |
10650 | 10808 | return request; |
10651 | 10809 | })(); |
10652 | 10810 | |
10811 | +/** @description response type for postServiceConstClientLevels */ | |
10812 | +export interface PostServiceConstClientLevelsResponse { | |
10813 | + /** | |
10814 | + * @description | |
10815 | + * OK | |
10816 | + */ | |
10817 | + 200: ServerResult; | |
10818 | + /** | |
10819 | + * @description | |
10820 | + * Created | |
10821 | + */ | |
10822 | + 201: any; | |
10823 | + /** | |
10824 | + * @description | |
10825 | + * Unauthorized | |
10826 | + */ | |
10827 | + 401: any; | |
10828 | + /** | |
10829 | + * @description | |
10830 | + * Forbidden | |
10831 | + */ | |
10832 | + 403: any; | |
10833 | + /** | |
10834 | + * @description | |
10835 | + * Not Found | |
10836 | + */ | |
10837 | + 404: any; | |
10838 | +} | |
10839 | + | |
10840 | +export type PostServiceConstClientLevelsResponseSuccess = | |
10841 | + PostServiceConstClientLevelsResponse[200]; | |
10842 | +/** | |
10843 | + * @description | |
10844 | + * 客户等级 | |
10845 | + * @tags front-const-controller | |
10846 | + * @produces * | |
10847 | + * @consumes application/json | |
10848 | + */ | |
10849 | +export const postServiceConstClientLevels = /* #__PURE__ */ (() => { | |
10850 | + const method = 'post'; | |
10851 | + const url = '/service/const/clientLevels'; | |
10852 | + function request(): Promise<PostServiceConstClientLevelsResponseSuccess> { | |
10853 | + return requester(request.url, { | |
10854 | + method: request.method, | |
10855 | + }) as unknown as Promise<PostServiceConstClientLevelsResponseSuccess>; | |
10856 | + } | |
10857 | + | |
10858 | + /** http method */ | |
10859 | + request.method = method; | |
10860 | + /** request url */ | |
10861 | + request.url = url; | |
10862 | + return request; | |
10863 | +})(); | |
10864 | + | |
10865 | +/** @description response type for postServiceConstTradeStatus */ | |
10866 | +export interface PostServiceConstTradeStatusResponse { | |
10867 | + /** | |
10868 | + * @description | |
10869 | + * OK | |
10870 | + */ | |
10871 | + 200: ServerResult; | |
10872 | + /** | |
10873 | + * @description | |
10874 | + * Created | |
10875 | + */ | |
10876 | + 201: any; | |
10877 | + /** | |
10878 | + * @description | |
10879 | + * Unauthorized | |
10880 | + */ | |
10881 | + 401: any; | |
10882 | + /** | |
10883 | + * @description | |
10884 | + * Forbidden | |
10885 | + */ | |
10886 | + 403: any; | |
10887 | + /** | |
10888 | + * @description | |
10889 | + * Not Found | |
10890 | + */ | |
10891 | + 404: any; | |
10892 | +} | |
10893 | + | |
10894 | +export type PostServiceConstTradeStatusResponseSuccess = | |
10895 | + PostServiceConstTradeStatusResponse[200]; | |
10896 | +/** | |
10897 | + * @description | |
10898 | + * 跟进状态 | |
10899 | + * @tags front-const-controller | |
10900 | + * @produces * | |
10901 | + * @consumes application/json | |
10902 | + */ | |
10903 | +export const postServiceConstTradeStatus = /* #__PURE__ */ (() => { | |
10904 | + const method = 'post'; | |
10905 | + const url = '/service/const/tradeStatus'; | |
10906 | + function request(): Promise<PostServiceConstTradeStatusResponseSuccess> { | |
10907 | + return requester(request.url, { | |
10908 | + method: request.method, | |
10909 | + }) as unknown as Promise<PostServiceConstTradeStatusResponseSuccess>; | |
10910 | + } | |
10911 | + | |
10912 | + /** http method */ | |
10913 | + request.method = method; | |
10914 | + /** request url */ | |
10915 | + request.url = url; | |
10916 | + return request; | |
10917 | +})(); | |
10918 | + | |
10653 | 10919 | /** @description request parameter type for postServiceInvoiceAddInvoice */ |
10654 | 10920 | export interface PostServiceInvoiceAddInvoiceOption { |
10655 | 10921 | /** | ... | ... |