提交 | 用户 | age
|
45b43f
|
1 |
import dayjs from 'dayjs'; |
b38243
|
2 |
import type {Dayjs} from 'dayjs'; |
45b43f
|
3 |
import {treeOptionsListApi} from "@/api/demo/tree"; |
13c0c9
|
4 |
import {ApiSelect, FormSchema} from '@/components/Form'; |
0884a2
|
5 |
import { SearchOutlined,CloseOutlined,PlusCircleOutlined } from '@ant-design/icons-vue'; |
b38243
|
6 |
import {h} from 'vue'; |
S |
7 |
import {PlusOutlined, MinusOutlined} from '@ant-design/icons-vue'; |
0884a2
|
8 |
import { |
S |
9 |
FormItem, |
|
10 |
FormItemRest, |
|
11 |
Input, |
|
12 |
Select, |
|
13 |
RadioGroup, |
|
14 |
RadioButton, |
|
15 |
Avatar, |
|
16 |
Image, |
|
17 |
message |
|
18 |
} from "ant-design-vue"; |
|
19 |
import {BasicModal,useModal,useModalInner} from '@/components/Modal'; |
|
20 |
import PersonnelModal from "@/components/NewSchedule/src/PersonnelModal.vue"; |
13c0c9
|
21 |
import {optionsListApi} from "@/api/demo/select"; |
S |
22 |
import {uploadApi} from "@/api/sys/upload"; |
45b43f
|
23 |
|
0884a2
|
24 |
const [registerPersonnelModal, { openModal: openPersonnelModal,setModalProps }] = useModal(); |
S |
25 |
|
|
26 |
|
|
27 |
|
45b43f
|
28 |
type RangeValue = [Dayjs, Dayjs]; |
0884a2
|
29 |
|
45b43f
|
30 |
|
S |
31 |
export const schemas: FormSchema[] = [ |
|
32 |
{ |
|
33 |
field: 'scheduleContent', |
|
34 |
component: 'InputTextArea', |
|
35 |
componentProps: { |
|
36 |
placeholder: '请输入日程内容', |
|
37 |
}, |
|
38 |
label: '', |
|
39 |
colProps: { |
|
40 |
span: 24, |
|
41 |
}, |
|
42 |
}, |
|
43 |
{ |
13c0c9
|
44 |
field: 'color', |
45b43f
|
45 |
component: 'RadioButtonGroup', |
13c0c9
|
46 |
defaultValue: 1, |
S |
47 |
// componentProps: () => { |
|
48 |
// return { |
|
49 |
// onChange: (val) => { |
|
50 |
// console.log(val); |
|
51 |
// } |
|
52 |
// } |
|
53 |
// }, |
|
54 |
renderColContent({model, field}, {disabled}) { |
|
55 |
let colors = [ |
|
56 |
{ |
|
57 |
"type_id": 1, |
|
58 |
"color": "#ff3333", |
|
59 |
"name": "红" |
|
60 |
}, |
|
61 |
{ |
|
62 |
"type_id": 2, |
|
63 |
"color": "#ff9933", |
|
64 |
"name": "橙" |
|
65 |
}, |
|
66 |
{ |
|
67 |
"type_id": 3, |
|
68 |
"color": "#f5f109", |
|
69 |
"name": "黄" |
|
70 |
}, |
|
71 |
{ |
|
72 |
"type_id": 4, |
|
73 |
"color": "#6ee86a", |
|
74 |
"name": "绿" |
|
75 |
}, |
|
76 |
{ |
|
77 |
"type_id": 5, |
|
78 |
"color": "#00ccee", |
|
79 |
"name": "蓝" |
|
80 |
}, |
|
81 |
{ |
|
82 |
"type_id": 6, |
|
83 |
"color": "#cc9933", |
|
84 |
"name": "褐" |
|
85 |
}, |
|
86 |
{ |
|
87 |
"type_id": 7, |
|
88 |
"color": "#9999ff", |
|
89 |
"name": "紫" |
|
90 |
}] |
|
91 |
const onChange = (val) => { |
0884a2
|
92 |
// console.log(val); |
13c0c9
|
93 |
Logger.log('model',model); |
S |
94 |
} |
|
95 |
return ( |
|
96 |
<FormItem |
|
97 |
name="color" |
|
98 |
label="" |
|
99 |
> |
0884a2
|
100 |
<RadioGroup v-model:value={model[field]} button-style="solid" size="small" name="color"> |
13c0c9
|
101 |
{ |
S |
102 |
colors.map((item) => { |
|
103 |
return <RadioButton class="mr-5px" value={item.type_id} onChange={onChange} |
|
104 |
style={{backgroundColor: item.color,borderColor:item.color}}> |
cb1651
|
105 |
<span class={'c-white' + (model[field] === item.type_id ?'':' select-none op0')}>✓</span> |
13c0c9
|
106 |
</RadioButton>; |
S |
107 |
}) |
|
108 |
} |
|
109 |
</RadioGroup> |
|
110 |
</FormItem> |
|
111 |
); |
45b43f
|
112 |
}, |
S |
113 |
label: '', |
|
114 |
colProps: { |
|
115 |
span: 24, |
|
116 |
}, |
|
117 |
}, |
|
118 |
{ |
|
119 |
field: 'isAllDayEvent', |
|
120 |
component: 'Checkbox', |
|
121 |
// suffix:'全天事件', |
|
122 |
subLabel: '', |
|
123 |
colProps: { |
|
124 |
span: 6, |
|
125 |
}, |
|
126 |
renderComponentContent: '全天事件', |
b38243
|
127 |
componentProps: ({formActionType}) => { |
45b43f
|
128 |
return { |
S |
129 |
onChange: (e: any) => { |
|
130 |
const checked = e?.target?.checked || false; |
|
131 |
Logger.log('是否全天事件:', checked); |
|
132 |
formActionType.updateSchema([ |
|
133 |
{ |
|
134 |
field: '[startDate, endDate]', |
|
135 |
componentProps: { |
b38243
|
136 |
format: 'YYYY-MM-DD' + (!checked ? ' HH:mm:ss' : ''), |
S |
137 |
showTime: (!checked ? {format: 'HH:mm:ss'} : false), |
45b43f
|
138 |
} |
S |
139 |
}, |
|
140 |
]); |
|
141 |
}, |
|
142 |
}; |
|
143 |
}, |
|
144 |
}, |
|
145 |
{ |
|
146 |
field: '[startDate, endDate]', |
|
147 |
label: '起止时间', |
|
148 |
component: 'RangePicker', |
b38243
|
149 |
componentProps: { |
S |
150 |
style: {width: '100%'}, |
45b43f
|
151 |
format: 'YYYY-MM-DD HH:mm:ss', |
S |
152 |
placeholder: ['开始日期、时间', '结束日期、时间'], |
b38243
|
153 |
showTime: {format: 'HH:mm:ss'}, |
45b43f
|
154 |
}, |
S |
155 |
// componentProps: ({ schema, formModel}) => { |
|
156 |
// console.log('RangePicker form:', schema); |
|
157 |
// console.log('RangePicker formModel:', formModel); |
|
158 |
// return { |
|
159 |
// format: 'YYYY-MM-DD', |
|
160 |
// placeholder: ['开始日期', '结束日期'], |
|
161 |
// showTime: { format: 'HH:mm:ss' }, |
|
162 |
// }; |
|
163 |
// }, |
|
164 |
colProps: {span: 24}, |
|
165 |
}, |
|
166 |
{ |
|
167 |
component: 'Select', |
|
168 |
label: '设置为周期性日期', |
|
169 |
field: 'recurringDates', |
|
170 |
colProps: {span: 13}, |
|
171 |
componentProps: { |
|
172 |
options: [ |
|
173 |
{ |
|
174 |
label: '不设置', |
|
175 |
value: '1', |
|
176 |
}, |
|
177 |
{ |
|
178 |
label: '每天', |
|
179 |
value: '2', |
|
180 |
}, |
|
181 |
{ |
|
182 |
label: '每周', |
|
183 |
value: '3', |
|
184 |
}, |
|
185 |
{ |
|
186 |
label: '每月', |
|
187 |
value: '4', |
|
188 |
}, |
|
189 |
{ |
|
190 |
label: '自定义', |
|
191 |
value: '5', |
|
192 |
}, |
|
193 |
], |
|
194 |
}, |
|
195 |
defaultValue: '1' |
|
196 |
}, |
|
197 |
{ |
|
198 |
field: 'recurringDatesUntil', |
|
199 |
component: 'DatePicker', |
|
200 |
label: '直到', |
|
201 |
colProps: { |
|
202 |
span: 10, |
|
203 |
offset: 1, |
|
204 |
}, |
|
205 |
componentProps: { |
|
206 |
style: {width: '100%'}, |
|
207 |
disabledDate: (currentDate) => { |
|
208 |
// Logger.log('currentDate',currentDate) |
|
209 |
// 禁用今天之前的天数 |
|
210 |
return currentDate && currentDate < dayjs().subtract(1, 'day'); |
|
211 |
} |
|
212 |
}, |
|
213 |
dynamicRules: ({values}) => { |
|
214 |
return [ |
|
215 |
{ |
|
216 |
// required: true, |
|
217 |
validator: (_, value) => { |
|
218 |
if (['2', '3', '4'].includes(values.recurringDates)) { |
|
219 |
if (!value) { |
|
220 |
return Promise.reject('不能为空'); |
|
221 |
} |
|
222 |
} |
|
223 |
|
|
224 |
return Promise.resolve(); |
|
225 |
}, |
|
226 |
}, |
|
227 |
]; |
|
228 |
}, |
|
229 |
ifShow: ({values}) => { |
|
230 |
// Logger.log('vvv',values) |
|
231 |
return ['2', '3', '4'].includes(values.recurringDates); |
|
232 |
}, |
|
233 |
}, |
|
234 |
{ |
|
235 |
field: 'recurringDatesRepeatCycle', |
|
236 |
component: 'InputNumber', |
|
237 |
label: '重复周期', |
|
238 |
colProps: { |
|
239 |
span: 12, |
|
240 |
}, |
|
241 |
componentProps: { |
|
242 |
style: {width: '100%'}, |
|
243 |
min: 1 |
|
244 |
}, |
|
245 |
defaultValue: 1, |
|
246 |
dynamicRules: ({values}) => { |
|
247 |
return [ |
|
248 |
{ |
|
249 |
// required: true, |
|
250 |
validator: (_, value) => { |
|
251 |
if (values.recurringDates === '5') { |
|
252 |
if (!value) { |
|
253 |
return Promise.reject('重复周期不能为空'); |
|
254 |
} |
|
255 |
} |
|
256 |
|
|
257 |
return Promise.resolve(); |
|
258 |
}, |
|
259 |
}, |
|
260 |
]; |
|
261 |
}, |
|
262 |
ifShow: ({values}) => { |
|
263 |
// Logger.log('vvv',values) |
|
264 |
return values.recurringDates === '5'; |
|
265 |
}, |
|
266 |
}, |
|
267 |
{ |
|
268 |
field: 'recurringDatesRepeatCycleUnit', |
|
269 |
component: 'Select', |
|
270 |
label: '提示:每1日重复一次日程', |
|
271 |
colProps: { |
b38243
|
272 |
span: 10, |
S |
273 |
offset: 1, |
45b43f
|
274 |
}, |
b38243
|
275 |
componentProps: ({formActionType}) => { |
45b43f
|
276 |
return { |
S |
277 |
options: [ |
|
278 |
{ |
|
279 |
label: '日', |
|
280 |
value: '1', |
|
281 |
}, |
|
282 |
{ |
|
283 |
label: '周', |
|
284 |
value: '2', |
|
285 |
}, |
|
286 |
{ |
|
287 |
label: '月', |
|
288 |
value: '3', |
|
289 |
}, |
|
290 |
], |
b38243
|
291 |
onChange: (e: any, v) => { |
S |
292 |
Logger.log(e, v); |
45b43f
|
293 |
formActionType.updateSchema([ |
S |
294 |
{ |
|
295 |
field: 'recurringDatesRepeatCycleUnit', |
|
296 |
label: '提示:每' + v.label + '重复一次日程', |
|
297 |
}, |
|
298 |
]); |
|
299 |
}, |
|
300 |
}; |
|
301 |
}, |
|
302 |
// componentProps: { |
|
303 |
// |
|
304 |
// }, |
|
305 |
defaultValue: '1', |
|
306 |
dynamicRules: ({values}) => { |
|
307 |
return [ |
|
308 |
{ |
|
309 |
// required: true, |
|
310 |
validator: (_, value) => { |
|
311 |
if (values.recurringDates === '5') { |
|
312 |
if (!value) { |
|
313 |
return Promise.reject('重复周期不能为空'); |
|
314 |
} |
|
315 |
} |
|
316 |
|
|
317 |
return Promise.resolve(); |
|
318 |
}, |
|
319 |
}, |
|
320 |
]; |
|
321 |
}, |
|
322 |
ifShow: ({values}) => { |
|
323 |
// Logger.log('vvv',values) |
|
324 |
return values.recurringDates === '5'; |
|
325 |
}, |
|
326 |
}, |
|
327 |
{ |
|
328 |
field: 'endDateTime', |
|
329 |
component: 'DatePicker', |
|
330 |
label: '结束时间', |
|
331 |
colProps: { |
|
332 |
span: 24, |
|
333 |
}, |
|
334 |
componentProps: { |
b38243
|
335 |
showTime: true, |
45b43f
|
336 |
style: {width: '100%'}, |
b38243
|
337 |
disabledDate: (currentDate) => { |
S |
338 |
// 禁用今天之前的天数 |
|
339 |
return currentDate && currentDate < dayjs().subtract(1, 'day'); |
|
340 |
} |
45b43f
|
341 |
}, |
S |
342 |
dynamicRules: ({values}) => { |
|
343 |
return [ |
|
344 |
{ |
|
345 |
// required: true, |
|
346 |
validator: (_, value) => { |
|
347 |
if (values.recurringDates === '5') { |
|
348 |
if (!value) { |
|
349 |
return Promise.reject('重复周期不能为空'); |
|
350 |
} |
|
351 |
} |
|
352 |
|
|
353 |
return Promise.resolve(); |
|
354 |
}, |
|
355 |
}, |
|
356 |
]; |
|
357 |
}, |
|
358 |
ifShow: ({values}) => { |
|
359 |
// Logger.log('vvv',values) |
|
360 |
return values.recurringDates === '5'; |
|
361 |
}, |
|
362 |
}, |
|
363 |
{ |
b38243
|
364 |
field: 'Divider', |
S |
365 |
component: 'Divider', |
|
366 |
// componentProps: { |
|
367 |
// style: {lineHeight: '0'}, |
|
368 |
// }, |
|
369 |
// label: 'renderColContent渲染', |
|
370 |
/**!!!renderColContent 没有FormItem 包裹, 若想要 Form 提交需要带上数据须 <FormItem name={}></FormItem> 包裹: 示例如下*/ |
|
371 |
renderColContent({model, field}, {disabled}) { |
|
372 |
return ( |
|
373 |
<br /> |
|
374 |
); |
|
375 |
}, |
|
376 |
colProps: { |
|
377 |
span: 24, |
|
378 |
style: { |
|
379 |
lineHeight: '0', |
|
380 |
}, |
|
381 |
}, |
|
382 |
// show: ({values}) => { |
|
383 |
// // Logger.log('vvv',values) |
|
384 |
// return false; |
|
385 |
// }, |
|
386 |
}, |
|
387 |
{ |
45b43f
|
388 |
field: 'remindTime', |
S |
389 |
component: 'Select', |
|
390 |
label: '提醒时间', |
|
391 |
colProps: { |
b38243
|
392 |
span: 20, |
45b43f
|
393 |
}, |
b38243
|
394 |
componentProps: ({formActionType}) => { |
S |
395 |
return { |
|
396 |
options: [ |
|
397 |
{ |
|
398 |
label: '不提醒', |
|
399 |
value: '1', |
|
400 |
}, |
|
401 |
{ |
|
402 |
label: '当天开始(上午9:00)', |
|
403 |
value: '2', |
|
404 |
}, |
|
405 |
{ |
|
406 |
label: '1天前(上午9:00)', |
|
407 |
value: '3', |
|
408 |
}, |
|
409 |
{ |
|
410 |
label: '2天前(上午9:00)', |
|
411 |
value: '4', |
|
412 |
}, |
|
413 |
{ |
|
414 |
label: '1周前(上午9:00)', |
|
415 |
value: '5', |
|
416 |
}, |
|
417 |
{ |
|
418 |
label: '自定义', |
|
419 |
value: '6', |
|
420 |
}, |
|
421 |
], |
|
422 |
onChange: (e: any, v) => { |
13c0c9
|
423 |
// Logger.log(e); |
S |
424 |
Logger.log(e,v); |
b38243
|
425 |
let span = 20; |
S |
426 |
if(e==6) { span = 8 } |
|
427 |
formActionType.updateSchema([ |
|
428 |
{ |
|
429 |
field: 'remindTime', |
|
430 |
colProps: { |
|
431 |
span:span, |
|
432 |
}, |
|
433 |
}, |
|
434 |
]); |
45b43f
|
435 |
}, |
b38243
|
436 |
}; |
45b43f
|
437 |
}, |
S |
438 |
defaultValue: '1' |
|
439 |
}, |
|
440 |
{ |
|
441 |
field: 'remindTime2', |
|
442 |
component: 'DatePicker', |
|
443 |
label: ' ', |
|
444 |
colProps: { |
b38243
|
445 |
span: 11, |
S |
446 |
offset: 1, |
45b43f
|
447 |
}, |
S |
448 |
componentProps: { |
b38243
|
449 |
style: {width: '100%'}, |
45b43f
|
450 |
// disabledDate:(currentDate)=>{ |
S |
451 |
// // Logger.log('currentDate',currentDate) |
|
452 |
// // 禁用今天之前的天数 |
|
453 |
// return currentDate && currentDate < dayjs().subtract(1, 'day'); |
|
454 |
// } |
|
455 |
}, |
|
456 |
dynamicRules: ({values}) => { |
|
457 |
return [ |
|
458 |
{ |
|
459 |
// required: true, |
|
460 |
validator: (_, value) => { |
|
461 |
if (values.remindTime === '6') { |
|
462 |
if (!value) { |
|
463 |
return Promise.reject('不能为空'); |
|
464 |
} |
|
465 |
} |
|
466 |
|
|
467 |
return Promise.resolve(); |
|
468 |
}, |
|
469 |
}, |
|
470 |
]; |
|
471 |
}, |
|
472 |
show: ({values}) => { |
|
473 |
// Logger.log('vvv',values) |
|
474 |
return values.remindTime === '6'; |
|
475 |
}, |
|
476 |
}, |
|
477 |
{ |
13c0c9
|
478 |
field: 'btnGroup_0', |
b38243
|
479 |
label: ' ', |
S |
480 |
// component: 'Input', |
|
481 |
slot: 'btnGroup', |
|
482 |
// label: 'renderColContent渲染', |
|
483 |
/**!!!renderColContent 没有FormItem 包裹, 若想要 Form 提交需要带上数据须 <FormItem name={}></FormItem> 包裹: 示例如下*/ |
|
484 |
// render({model, field}, {disabled}) { |
|
485 |
// return ( |
|
486 |
// <div class="flex flex-justify-between"> |
|
487 |
// <a-button size="small" style={{background: '#9C9C9C', color: '#FFFFFF'}} shape="circle" |
|
488 |
// icon={h(MinusOutlined)}/> |
|
489 |
// <a-button size="small" style={{background: '#9C9C9C', color: '#FFFFFF'}} shape="circle" |
|
490 |
// icon={h(PlusOutlined)}/> |
|
491 |
// </div> |
|
492 |
// ); |
|
493 |
// }, |
|
494 |
colProps: { |
|
495 |
span: 3, |
|
496 |
offset: 1, |
|
497 |
}, |
|
498 |
}, |
|
499 |
{ |
13c0c9
|
500 |
field: 'relatedObjects', |
S |
501 |
fields: ['relatedObjectsSearch'], |
|
502 |
component: 'Input', |
|
503 |
defaultValue: '0', |
|
504 |
// label: 'renderColContent渲染', |
|
505 |
/**!!!renderColContent 没有FormItem 包裹, 若想要 Form 提交需要带上数据须 <FormItem name={}></FormItem> 包裹: 示例如下*/ |
|
506 |
renderColContent({model, field}, {disabled}) { |
|
507 |
return ( |
|
508 |
<FormItem |
|
509 |
name="relatedObjects" |
|
510 |
label="关联对象" |
|
511 |
// rules={[{ trigger: 'blur',required: true, }]} |
|
512 |
// rules={custom_typeKey2typeValueRules(model)} |
|
513 |
> |
|
514 |
<Input.Group compact> |
|
515 |
<Select |
|
516 |
disabled={disabled} |
|
517 |
style="width: 120px" |
0884a2
|
518 |
v-model:value={model[field]} |
13c0c9
|
519 |
> |
S |
520 |
<Select.Option value="0">客户</Select.Option> |
|
521 |
<Select.Option value="1">商机</Select.Option> |
|
522 |
<Select.Option value="2">线索</Select.Option> |
|
523 |
<Select.Option value="3">销售订单</Select.Option> |
|
524 |
<Select.Option value="4">报价单</Select.Option> |
|
525 |
</Select> |
|
526 |
<FormItemRest> |
|
527 |
<ApiSelect |
|
528 |
style="width: calc(100% - 120px); margin-left: -1px;border-inline-end-width: 0px;" |
|
529 |
v-model:api={optionsListApi} |
|
530 |
showSearch |
|
531 |
v-model:value={model['relatedObjectsSearch']} |
|
532 |
placeholder="请输入关键词" |
|
533 |
optionFilterProp="label" |
|
534 |
resultField="list" |
|
535 |
labelField="name" |
|
536 |
valueField="id" |
|
537 |
mode="multiple" |
|
538 |
disabled={disabled} |
|
539 |
suffixIcon={<SearchOutlined />} |
|
540 |
// rules={[{ trigger: 'blur',required: true, }]} |
|
541 |
> |
|
542 |
|
|
543 |
{/*<SearchOutlined v-slot='suffixIcon' />*/} |
|
544 |
{/*<template v-slot={suffixIcon}><SearchOutlined /></template>*/} |
|
545 |
</ApiSelect> |
|
546 |
</FormItemRest> |
|
547 |
</Input.Group> |
|
548 |
</FormItem> |
|
549 |
); |
45b43f
|
550 |
}, |
S |
551 |
colProps: { |
13c0c9
|
552 |
span: 24, |
S |
553 |
}, |
|
554 |
dynamicDisabled: ({values}) => { |
|
555 |
return !!values.field_disabled; |
45b43f
|
556 |
}, |
S |
557 |
}, |
13c0c9
|
558 |
{ |
S |
559 |
field: 'participants', |
|
560 |
component: 'Input', |
0884a2
|
561 |
defaultValue: [], |
13c0c9
|
562 |
// componentProps: { |
S |
563 |
// style: {lineHeight: '0'}, |
|
564 |
// }, |
|
565 |
// label: 'renderColContent渲染', |
|
566 |
/**!!!renderColContent 没有FormItem 包裹, 若想要 Form 提交需要带上数据须 <FormItem name={}></FormItem> 包裹: 示例如下*/ |
|
567 |
renderColContent({model, field}, {disabled}) { |
0884a2
|
568 |
let participants = model[field]; |
S |
569 |
|
13c0c9
|
570 |
return ( |
S |
571 |
<FormItem |
|
572 |
name="participants" |
|
573 |
label="参与人员" |
|
574 |
// rules={[{ trigger: 'blur',required: true, }]} |
|
575 |
> |
|
576 |
<ul class="flex"> |
0884a2
|
577 |
{participants.map((item,index) => { |
13c0c9
|
578 |
return ( |
S |
579 |
<li class="flex flex-col flex-items-center mr-10px "> |
|
580 |
{/*<Image class="rd-50%" src={item.src} width={60}*/} |
|
581 |
{/* preview={{maskClassName:'rd-50%',getContainer:'.splitpanes__pane'}}*/} |
|
582 |
{/*/>*/} |
0884a2
|
583 |
<div class="relative"> |
S |
584 |
<Avatar src={item.avatar} size={64}> |
13c0c9
|
585 |
</Avatar> |
0884a2
|
586 |
<div class="ant-avatar-mask"> |
S |
587 |
<CloseOutlined onClick={()=>{ |
|
588 |
participants.splice(index,1); |
|
589 |
// model['participants'] = participants; |
|
590 |
Logger.log(model[field]); |
|
591 |
}} /> |
|
592 |
</div> |
13c0c9
|
593 |
</div> |
S |
594 |
|
0884a2
|
595 |
<span class="mt-10px">{item.title}</span> |
13c0c9
|
596 |
</li> |
S |
597 |
); |
|
598 |
})} |
0884a2
|
599 |
<li class="flex flex-col flex-items-center"> |
S |
600 |
<PlusCircleOutlined onClick={ |
|
601 |
()=>{ |
|
602 |
setModalProps({ |
|
603 |
zIndex: 1001, |
|
604 |
}); |
|
605 |
openPersonnelModal(true, { |
|
606 |
data: participants, |
|
607 |
}); |
|
608 |
} |
|
609 |
} class="cursor-pointer" style={{fontSize: '64px', color: '#B4B3B3'}} /> |
|
610 |
</li> |
13c0c9
|
611 |
</ul> |
0884a2
|
612 |
<PersonnelModal onRegister={registerPersonnelModal} onSubmitOk={(v)=> { |
S |
613 |
console.log('vvv', v); |
|
614 |
model[field] = v |
|
615 |
}} /> |
13c0c9
|
616 |
</FormItem> |
S |
617 |
); |
|
618 |
}, |
|
619 |
colProps: { |
|
620 |
span: 24, |
|
621 |
}, |
|
622 |
}, |
|
623 |
{ |
|
624 |
field: 'Divider_remark', |
|
625 |
component: 'Divider', |
|
626 |
label: '备注', |
|
627 |
colProps: { |
|
628 |
span: 24, |
|
629 |
// style: { |
|
630 |
// lineHeight: '0', |
|
631 |
// }, |
|
632 |
}, |
|
633 |
}, |
|
634 |
{ |
|
635 |
field: 'remark', |
|
636 |
component: 'InputTextArea', |
|
637 |
componentProps: { |
|
638 |
placeholder: '请输入备注', |
|
639 |
}, |
|
640 |
label: '', |
|
641 |
colProps: { |
|
642 |
span: 24, |
|
643 |
}, |
|
644 |
}, |
|
645 |
{ |
|
646 |
field: 'remark_image', |
|
647 |
component: 'ImageUpload', |
|
648 |
label: '备注图片', |
|
649 |
subLabel: '(单张图片最大3M,最多上传5张图片)', |
|
650 |
// required: true, |
|
651 |
defaultValue: [ |
|
652 |
'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png', |
|
653 |
], |
|
654 |
componentProps: { |
|
655 |
api: uploadApi, |
|
656 |
accept: ['png', 'jpeg', 'jpg'], |
|
657 |
helpText: '单张图片最大3M,最多上传5张图片', |
|
658 |
maxSize: 3, //单个文件最大体积,单位 M |
|
659 |
maxNumber: 5, |
|
660 |
}, |
|
661 |
// rules: [ |
|
662 |
// { |
|
663 |
// required: true, |
|
664 |
// trigger: 'change', |
|
665 |
// validator(_, value) { |
|
666 |
// if (isArray(value) && value.length > 0) { |
|
667 |
// return Promise.resolve(); |
|
668 |
// } else { |
|
669 |
// return Promise.reject('请选择上传图片'); |
|
670 |
// } |
|
671 |
// }, |
|
672 |
// }, |
|
673 |
// ], |
|
674 |
}, |
|
675 |
{ |
|
676 |
field: 'remark_file', |
|
677 |
component: 'Upload', |
|
678 |
label: '备注附件', |
|
679 |
colProps: { |
|
680 |
span: 24, |
|
681 |
}, |
|
682 |
rules: [{ message: '请选择上传文件' }], |
|
683 |
componentProps: { |
|
684 |
api: uploadApi, |
|
685 |
}, |
|
686 |
}, |
|
687 |
// { |
|
688 |
// field: 'field33', |
|
689 |
// component: 'ApiTreeSelect', |
|
690 |
// label: '远程下拉树', |
|
691 |
// helpMessage: ['ApiTreeSelect组件', '使用接口提供的数据生成选项'], |
|
692 |
// required: true, |
|
693 |
// componentProps: { |
|
694 |
// api: treeOptionsListApi, |
|
695 |
// treeCheckable: true, |
|
696 |
// resultField: 'list', |
|
697 |
// onChange: (e, v) => { |
|
698 |
// console.log('ApiTreeSelect====>:', e, v); |
|
699 |
// }, |
|
700 |
// }, |
|
701 |
// colProps: { |
|
702 |
// span: 14, |
|
703 |
// }, |
|
704 |
// }, |
45b43f
|
705 |
]; |