askbot-dragon 0.8.20 → 0.8.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/components/formTemplate.vue +160 -24
package/package.json
CHANGED
|
@@ -15,7 +15,13 @@
|
|
|
15
15
|
<span v-if="item.fieldId!=='workorder_description'&&item.fieldId!=='workorder_clientId'">{{item.formField.name}}</span>
|
|
16
16
|
<span v-if="item.fieldId==='workorder_description'">问题描述</span>
|
|
17
17
|
<span v-if="item.fieldId==='workorder_clientId'">报单人</span>
|
|
18
|
-
<span style="color: red;padding-left: 5px" v-if="item.required || isRequiredFn(item.formField)">*</span>
|
|
18
|
+
<span style="color: red;padding-left: 5px;padding-right: 5px" v-if="item.required || isRequiredFn(item.formField)">*</span>
|
|
19
|
+
<el-tooltip class="item" effect="dark" placement="right-start">
|
|
20
|
+
<div slot="content">{{item.formField.remark && item.formField.remark.text}}</div>
|
|
21
|
+
<span v-if="item.formField.remark&&item.formField.remark.enable">
|
|
22
|
+
<i class="el-icon-warning-outline"></i>
|
|
23
|
+
</span>
|
|
24
|
+
</el-tooltip>
|
|
19
25
|
</div>
|
|
20
26
|
<!-- item.value -->
|
|
21
27
|
<el-input v-model="item.value"
|
|
@@ -265,7 +271,15 @@
|
|
|
265
271
|
@blur="typeCheck(item.formField,item)"
|
|
266
272
|
:type="item.formField.extInfo.inputType==='NUMBER'||
|
|
267
273
|
item.formField.extInfo.inputType==='RATE'? 'number':'text'"
|
|
268
|
-
|
|
274
|
+
>
|
|
275
|
+
<template slot="label">
|
|
276
|
+
<span style="padding-right: 5px">{{item.formField.name}}</span>
|
|
277
|
+
<span v-if="item.formField.remark&&item.formField.remark.enable"
|
|
278
|
+
@click="leftIcon(item.formField.remark)">
|
|
279
|
+
<i class="el-icon-warning-outline"></i>
|
|
280
|
+
</span>
|
|
281
|
+
</template>
|
|
282
|
+
</van-field>
|
|
269
283
|
</div>
|
|
270
284
|
<div v-else-if="item.formField.type==='EXPLANATION'||item.formField.type==='EXPLAIN'" class="explan-ation">
|
|
271
285
|
<div class="explanation">
|
|
@@ -289,11 +303,23 @@
|
|
|
289
303
|
:placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请输入'"
|
|
290
304
|
:maxlength="item.formField.extInfo&&item.formField.extInfo.maxNum?item.formField.extInfo.maxNum*1:1000"
|
|
291
305
|
v-if="item.fieldId!=='workorder_description'"
|
|
292
|
-
|
|
306
|
+
>
|
|
307
|
+
<template slot="label">
|
|
308
|
+
<span style="padding-right: 5px">{{item.formField.name}}</span>
|
|
309
|
+
<span v-if="item.formField.remark&&item.formField.remark.enable"
|
|
310
|
+
@click="leftIcon(item.formField.remark)">
|
|
311
|
+
<i class="el-icon-warning-outline"></i>
|
|
312
|
+
</span>
|
|
313
|
+
</template>
|
|
314
|
+
</van-field>
|
|
293
315
|
<div v-if="item.fieldId==='workorder_description'" class="workorder_description">
|
|
294
316
|
<div class="field-name" :class="item.required || isRequiredFn(item.formField)?'required-name':''">
|
|
295
317
|
<span v-if="item.required || isRequiredFn(item.formField)" style="color: red">*</span>
|
|
296
|
-
{{item.formField.name}}
|
|
318
|
+
<span style="padding-right: 5px">{{item.formField.name}}</span>
|
|
319
|
+
<span v-if="item.formField.remark&&item.formField.remark.enable"
|
|
320
|
+
@click="leftIcon(item.formField.remark)">
|
|
321
|
+
<i class="el-icon-warning-outline"></i>
|
|
322
|
+
</span>
|
|
297
323
|
</div>
|
|
298
324
|
<ckeditor
|
|
299
325
|
:editor="ckeditor.editor"
|
|
@@ -315,7 +341,15 @@
|
|
|
315
341
|
@click="dateClick(item.fieldId)"
|
|
316
342
|
:disabled="disableds"
|
|
317
343
|
right-icon="van-icon van-icon-arrow van-cell__right-icon"
|
|
318
|
-
|
|
344
|
+
>
|
|
345
|
+
<template slot="label">
|
|
346
|
+
<span style="padding-right: 5px">{{item.formField.name}}</span>
|
|
347
|
+
<span v-if="item.formField.remark&&item.formField.remark.enable"
|
|
348
|
+
@click="leftIcon(item.formField.remark)">
|
|
349
|
+
<i class="el-icon-warning-outline"></i>
|
|
350
|
+
</span>
|
|
351
|
+
</template>
|
|
352
|
+
</van-field>
|
|
319
353
|
<van-calendar
|
|
320
354
|
v-model="showCalendar"
|
|
321
355
|
@confirm="onConfirmCalendar($event,item)"
|
|
@@ -334,7 +368,15 @@
|
|
|
334
368
|
:disabled="disableds"
|
|
335
369
|
right-icon="van-icon van-icon-arrow van-cell__right-icon"
|
|
336
370
|
|
|
337
|
-
|
|
371
|
+
>
|
|
372
|
+
<template slot="label">
|
|
373
|
+
<span style="padding-right: 5px">{{item.formField.name}}</span>
|
|
374
|
+
<span v-if="item.formField.remark&&item.formField.remark.enable"
|
|
375
|
+
@click="leftIcon(item.formField.remark)">
|
|
376
|
+
<i class="el-icon-warning-outline"></i>
|
|
377
|
+
</span>
|
|
378
|
+
</template>
|
|
379
|
+
</van-field>
|
|
338
380
|
<van-popup v-model="dateTimePicker" position="bottom">
|
|
339
381
|
<van-datetime-picker
|
|
340
382
|
v-model="currentDate"
|
|
@@ -360,7 +402,15 @@
|
|
|
360
402
|
:disabled="disableds"
|
|
361
403
|
right-icon="van-icon van-icon-arrow van-cell__right-icon"
|
|
362
404
|
|
|
363
|
-
|
|
405
|
+
>
|
|
406
|
+
<template slot="label">
|
|
407
|
+
<span style="padding-right: 5px">{{item.formField.name}}</span>
|
|
408
|
+
<span v-if="item.formField.remark&&item.formField.remark.enable"
|
|
409
|
+
@click="leftIcon(item.formField.remark)">
|
|
410
|
+
<i class="el-icon-warning-outline"></i>
|
|
411
|
+
</span>
|
|
412
|
+
</template>
|
|
413
|
+
</van-field>
|
|
364
414
|
<van-popup v-model="timePicker" position="bottom">
|
|
365
415
|
<van-datetime-picker
|
|
366
416
|
v-model="currentTime"
|
|
@@ -386,11 +436,26 @@
|
|
|
386
436
|
:disabled="disableds"
|
|
387
437
|
right-icon="van-icon van-icon-arrow van-cell__right-icon"
|
|
388
438
|
|
|
389
|
-
|
|
439
|
+
>
|
|
440
|
+
<template slot="label">
|
|
441
|
+
<span style="padding-right: 5px">{{item.formField.name}}</span>
|
|
442
|
+
<span v-if="item.formField.remark&&item.formField.remark.enable"
|
|
443
|
+
@click="leftIcon(item.formField.remark)">
|
|
444
|
+
<i class="el-icon-warning-outline"></i>
|
|
445
|
+
</span>
|
|
446
|
+
</template>
|
|
447
|
+
</van-field>
|
|
390
448
|
<van-calendar v-model="datePicker" :show-confirm="false" @confirm="onConfirm($event,item.fieldId,item,'DATE')" @cancel="datePicker = false"/>
|
|
391
449
|
</div>
|
|
392
450
|
<div v-else-if="item.formField.type==='RADIO'" class="form-field-item-other">
|
|
393
451
|
<van-field name="radio" :label="item.formField.name" :required="item.required || isRequiredFn(item.formField)" :disabled="disableds" v-if="item.formField.extInfo.option">
|
|
452
|
+
<template slot="label">
|
|
453
|
+
<span style="padding-right: 5px">{{item.formField.name}}</span>
|
|
454
|
+
<span v-if="item.formField.remark&&item.formField.remark.enable"
|
|
455
|
+
@click="leftIcon(item.formField.remark)">
|
|
456
|
+
<i class="el-icon-warning-outline"></i>
|
|
457
|
+
</span>
|
|
458
|
+
</template>
|
|
394
459
|
<template #input style="display: flex;align-items: center">
|
|
395
460
|
<van-radio-group v-model=item.value direction="horizontal" :disabled="disableds">
|
|
396
461
|
<van-radio v-for="(items,index) in item.formField.extInfo.option" :name=items.value :key="index">{{items.label}}</van-radio>
|
|
@@ -398,6 +463,13 @@
|
|
|
398
463
|
</template>
|
|
399
464
|
</van-field>
|
|
400
465
|
<van-field name="radio" :label="item.formField.name" :required="item.required || isRequiredFn(item.formField)" :disabled="disableds" v-if="item.formField.extInfo.options">
|
|
466
|
+
<template slot="label">
|
|
467
|
+
<span style="padding-right: 5px">{{item.formField.name}}</span>
|
|
468
|
+
<span v-if="item.formField.remark&&item.formField.remark.enable"
|
|
469
|
+
@click="leftIcon(item.formField.remark)">
|
|
470
|
+
<i class="el-icon-warning-outline"></i>
|
|
471
|
+
</span>
|
|
472
|
+
</template>
|
|
401
473
|
<template #input style="display: flex;align-items: center" >
|
|
402
474
|
<van-radio-group v-model=item.value direction="horizontal" :disabled="disableds">
|
|
403
475
|
<van-radio v-for="(items,index) in item.formField.extInfo.options" :name=items.value :key="index">{{items.label}}</van-radio>
|
|
@@ -407,6 +479,13 @@
|
|
|
407
479
|
</div>
|
|
408
480
|
<div v-else-if="item.formField.type==='CHECKBOX'" class="form-field-item-other">
|
|
409
481
|
<van-field name="checkbox" :label=item.formField.name :required="item.required || isRequiredFn(item.formField)" :disabled="disableds" v-if="item.formField.extInfo.option">
|
|
482
|
+
<template slot="label">
|
|
483
|
+
<span style="padding-right: 5px">{{item.formField.name}}</span>
|
|
484
|
+
<span v-if="item.formField.remark&&item.formField.remark.enable"
|
|
485
|
+
@click="leftIcon(item.formField.remark)">
|
|
486
|
+
<i class="el-icon-warning-outline"></i>
|
|
487
|
+
</span>
|
|
488
|
+
</template>
|
|
410
489
|
<template #input style="display: flex;align-items: center" >
|
|
411
490
|
<van-checkbox-group v-model=item.value ref="checkboxGroup" direction="horizontal" :disabled="disableds">
|
|
412
491
|
<van-checkbox
|
|
@@ -420,6 +499,13 @@
|
|
|
420
499
|
</template>
|
|
421
500
|
</van-field>
|
|
422
501
|
<van-field name="checkbox" :label=item.formField.name :required="item.required || isRequiredFn(item.formField)" :disabled="disableds" v-if="item.formField.extInfo.options">
|
|
502
|
+
<template slot="label">
|
|
503
|
+
<span style="padding-right: 5px">{{item.formField.name}}</span>
|
|
504
|
+
<span v-if="item.formField.remark&&item.formField.remark.enable"
|
|
505
|
+
@click="leftIcon(item.formField.remark)">
|
|
506
|
+
<i class="el-icon-warning-outline"></i>
|
|
507
|
+
</span>
|
|
508
|
+
</template>
|
|
423
509
|
<template #input style="display: flex;align-items: center" >
|
|
424
510
|
<van-checkbox-group v-model=item.value ref="checkboxGroup" direction="horizontal" :disabled="disableds">
|
|
425
511
|
<van-checkbox
|
|
@@ -447,7 +533,15 @@
|
|
|
447
533
|
:disabled="disableds"
|
|
448
534
|
@click-right-icon.stop="SelectClear(item.fieldId)"
|
|
449
535
|
:right-icon="selectValues[item.fieldId]? 'close' : 'van-icon van-icon-arrow van-cell__right-icon'"
|
|
450
|
-
|
|
536
|
+
>
|
|
537
|
+
<template slot="label">
|
|
538
|
+
<span style="padding-right: 5px">{{item.formField.name}}</span>
|
|
539
|
+
<span v-if="item.formField.remark&&item.formField.remark.enable"
|
|
540
|
+
@click="leftIcon(item.formField.remark)">
|
|
541
|
+
<i class="el-icon-warning-outline"></i>
|
|
542
|
+
</span>
|
|
543
|
+
</template>
|
|
544
|
+
</van-field>
|
|
451
545
|
<van-popup v-model="showPicker" position="bottom">
|
|
452
546
|
<van-picker
|
|
453
547
|
show-toolbar
|
|
@@ -472,7 +566,15 @@
|
|
|
472
566
|
:disabled="disableds"
|
|
473
567
|
@click-right-icon.stop="SelectClear(item.fieldId)"
|
|
474
568
|
:right-icon="item.value && item.value.length? 'close' : 'van-icon van-icon-arrow van-cell__right-icon'"
|
|
475
|
-
|
|
569
|
+
>
|
|
570
|
+
<template slot="label">
|
|
571
|
+
<span style="padding-right: 5px">{{item.formField.name}}</span>
|
|
572
|
+
<span v-if="item.formField.remark&&item.formField.remark.enable"
|
|
573
|
+
@click="leftIcon(item.formField.remark)">
|
|
574
|
+
<i class="el-icon-warning-outline"></i>
|
|
575
|
+
</span>
|
|
576
|
+
</template>
|
|
577
|
+
</van-field>
|
|
476
578
|
<van-popup v-model="selectPicker" position="bottom" :style="{ height: '300px' }">
|
|
477
579
|
<select-popup
|
|
478
580
|
:options="selectOptions(item.formField)"
|
|
@@ -534,8 +636,15 @@
|
|
|
534
636
|
:required="item.required || isRequiredFn(item.formField)"
|
|
535
637
|
:disabled="disableds"
|
|
536
638
|
right-icon="van-icon van-icon-arrow van-cell__right-icon"
|
|
537
|
-
|
|
538
|
-
|
|
639
|
+
>
|
|
640
|
+
<template slot="label">
|
|
641
|
+
<span style="padding-right: 5px">{{item.formField.name}}</span>
|
|
642
|
+
<span v-if="item.formField.remark&&item.formField.remark.enable"
|
|
643
|
+
@click="leftIcon(item.formField.remark)">
|
|
644
|
+
<i class="el-icon-warning-outline"></i>
|
|
645
|
+
</span>
|
|
646
|
+
</template>
|
|
647
|
+
</van-field>
|
|
539
648
|
<van-popup v-model="showArea" position="bottom" :style="{ height: '400px' }">
|
|
540
649
|
<tree ref="drawerTree"
|
|
541
650
|
:dataOptions="item.formField"
|
|
@@ -546,7 +655,14 @@
|
|
|
546
655
|
</div>
|
|
547
656
|
<div v-else-if="item.formField.type === 'FILE' || item.formField.type === 'IMAGE' || item.formField.type === 'ATTACHMENT' || item.formField.type === 'VIDEO'" class="form-field-item-value">
|
|
548
657
|
<div @click="checkUpload(item.fieldId,item.formField.extInfo)" class="form-field-item-file">
|
|
549
|
-
<div class="fileName"
|
|
658
|
+
<div class="fileName">
|
|
659
|
+
<span style="color: red" v-if="item.required || isRequiredFn(item.formField)">*</span>
|
|
660
|
+
<span style="padding-right: 5px">{{item.formField.name}}</span>
|
|
661
|
+
<span v-if="item.formField.remark&&item.formField.remark.enable"
|
|
662
|
+
@click="leftIcon(item.formField.remark)">
|
|
663
|
+
<i class="el-icon-warning-outline"></i>
|
|
664
|
+
</span>
|
|
665
|
+
</div>
|
|
550
666
|
<van-uploader
|
|
551
667
|
v-model="extInfoFieldValue[item.fieldId]"
|
|
552
668
|
:before-read="(file=>{return beforeRead(file,item.formField.type)})"
|
|
@@ -933,7 +1049,7 @@ export default {
|
|
|
933
1049
|
if (!Array.isArray(file)){
|
|
934
1050
|
if (type === 'IMAGE' || type === 'FILE'){
|
|
935
1051
|
const isLte2M = file.size / 1024 / 1024 <= 8;
|
|
936
|
-
const isSupportedFormat =file.type.indexOf('image')!==-1
|
|
1052
|
+
const isSupportedFormat = file.type.indexOf('image')!==-1
|
|
937
1053
|
if (!isSupportedFormat){
|
|
938
1054
|
this.$message.error("只能上传图片格式");
|
|
939
1055
|
return false
|
|
@@ -974,8 +1090,8 @@ export default {
|
|
|
974
1090
|
if (file.length<=this.limitNum-length){
|
|
975
1091
|
for (let i=0;i<file.length;i++){
|
|
976
1092
|
if (type === 'IMAGE' || type === 'FILE'){
|
|
977
|
-
const isLte2M = file.size / 1024 / 1024 <= 8;
|
|
978
|
-
const isSupportedFormat =file.type.indexOf('image')!==-1
|
|
1093
|
+
const isLte2M = file[i].size / 1024 / 1024 <= 8;
|
|
1094
|
+
const isSupportedFormat =file[i].type.indexOf('image')!==-1
|
|
979
1095
|
if (!isSupportedFormat){
|
|
980
1096
|
this.$message.error("只能上传图片格式");
|
|
981
1097
|
return false
|
|
@@ -987,8 +1103,8 @@ export default {
|
|
|
987
1103
|
return true
|
|
988
1104
|
}
|
|
989
1105
|
else if (type === 'VIDEO'){
|
|
990
|
-
const isLte2M = file.size / 1024 / 1024 <= 100;
|
|
991
|
-
const isSupportedFormat =file.type.indexOf('video')!==-1
|
|
1106
|
+
const isLte2M = file[i].size / 1024 / 1024 <= 100;
|
|
1107
|
+
const isSupportedFormat =file[i].type.indexOf('video')!==-1
|
|
992
1108
|
if (!isSupportedFormat){
|
|
993
1109
|
this.$message.error("只能上传视频格式");
|
|
994
1110
|
return false
|
|
@@ -1000,7 +1116,7 @@ export default {
|
|
|
1000
1116
|
return true
|
|
1001
1117
|
}
|
|
1002
1118
|
else if (type === 'ATTACHMENT'){
|
|
1003
|
-
const isLte2M = file.size / 1024 / 1024 <= 100;
|
|
1119
|
+
const isLte2M = file[i].size / 1024 / 1024 <= 100;
|
|
1004
1120
|
if (!isLte2M) {
|
|
1005
1121
|
this.$message.error("上传附件大小不能超过100MB!");
|
|
1006
1122
|
return false
|
|
@@ -1181,7 +1297,15 @@ export default {
|
|
|
1181
1297
|
}
|
|
1182
1298
|
}
|
|
1183
1299
|
}
|
|
1184
|
-
|
|
1300
|
+
let options = [];
|
|
1301
|
+
if (extInfo){
|
|
1302
|
+
options = extInfo.option?extInfo.option:extInfo.options;
|
|
1303
|
+
options.forEach(opt=>{
|
|
1304
|
+
if (!opt.value){
|
|
1305
|
+
opt.value = opt.label
|
|
1306
|
+
}
|
|
1307
|
+
})
|
|
1308
|
+
}
|
|
1185
1309
|
}
|
|
1186
1310
|
if (type ==='FILE' || type == 'ATTACHMENT' || type == 'IMAGE' || type == 'VIDEO'){
|
|
1187
1311
|
if (this.formList.form.formFieldRelation[i].value){
|
|
@@ -1508,7 +1632,6 @@ export default {
|
|
|
1508
1632
|
}
|
|
1509
1633
|
bool[this.formShow.form.formFieldRelation[i].fieldId] = this.formShow.form.formFieldRelation[i].value && this.formShow.form.formFieldRelation[i].value.includes('\n') && !strVal
|
|
1510
1634
|
}
|
|
1511
|
-
console.debug('formFieldRelation',this.formShow.form.formFieldRelation[i].value,bool[this.formShow.form.formFieldRelation[i]],Array.isArray(this.formShow.form.formFieldRelation[i].value) && !this.formShow.form.formFieldRelation[i].value.length)
|
|
1512
1635
|
if(!this.formShow.form.formFieldRelation[i].value || bool[this.formShow.form.formFieldRelation[i].fieldId] || (Array.isArray(this.formShow.form.formFieldRelation[i].value) && !this.formShow.form.formFieldRelation[i].value.length)) {
|
|
1513
1636
|
this.$message.error('请完善'+ this.formShow.form.formFieldRelation[i].formField.name)
|
|
1514
1637
|
return
|
|
@@ -1518,9 +1641,15 @@ export default {
|
|
|
1518
1641
|
let extInfo = {
|
|
1519
1642
|
extInfoFieldValue:this.extInfoFieldValue
|
|
1520
1643
|
}
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1644
|
+
this.$set(this.formShow,'extInfo',extInfo)
|
|
1645
|
+
let newForm = JSON.parse(JSON.stringify(this.formShow));
|
|
1646
|
+
for (let i=0;i<newForm.form.formFieldRelation.length;i++){
|
|
1647
|
+
if (newForm.form.formFieldRelation[i].fieldId === 'workorder_description'){
|
|
1648
|
+
newForm.form.formFieldRelation[i].value = newForm.form.formFieldRelation[i].value.replace(/<img/g, "<img onclick='previewImage(this)' ")
|
|
1649
|
+
}
|
|
1650
|
+
}
|
|
1651
|
+
console.debug('formShow',this.formShow.form,newForm.form)
|
|
1652
|
+
this.$emit('submitClick',newForm)
|
|
1524
1653
|
this.disableds = true
|
|
1525
1654
|
this.submitValue = '已提交'
|
|
1526
1655
|
},
|
|
@@ -2004,6 +2133,13 @@ export default {
|
|
|
2004
2133
|
this.dataQuery[item.fieldId].pageInfo.pageNo += 1
|
|
2005
2134
|
this.refTemplateVisibleChange(true,item)
|
|
2006
2135
|
},
|
|
2136
|
+
//点击左侧备注图标提示
|
|
2137
|
+
leftIcon(remark){
|
|
2138
|
+
this.$toast({
|
|
2139
|
+
message:remark.text,
|
|
2140
|
+
duration:2000,
|
|
2141
|
+
})
|
|
2142
|
+
},
|
|
2007
2143
|
//校验输入框
|
|
2008
2144
|
typeCheck(field,item){
|
|
2009
2145
|
if (!item.value){
|