askbot-dragon 1.7.25-beta → 1.7.28-beta
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 +14 -14
- package/public/index.html +10 -8
- package/src/assets/js/AliyunlssUtil.js +50 -51
- package/src/assets/js/hammer.js +2 -13
- package/src/assets/less/converSationContainer/common.less +0 -7
- package/src/components/ActionAlertIframe.vue +1 -24
- package/src/components/AiGuide.vue +154 -121
- package/src/components/AnswerDocknowledge.vue +8 -8
- package/src/components/ConversationContainer.vue +211 -15
- package/src/components/MyEditor.vue +2 -12
- package/src/components/actionSatisfaction.vue +3 -3
- package/src/components/answerRadio.vue +3 -3
- package/src/components/askVideo.vue +2 -25
- package/src/components/associationIntention.vue +7 -11
- package/src/components/formTemplate.vue +54 -68
- package/src/components/intelligentSummary.vue +15 -17
- package/src/components/markDownText.vue +50 -14
- package/src/components/message/TextMessage.vue +11 -15
- package/src/components/message/swiper/ticketSwiper.vue +1 -1
- package/src/components/pdfPosition.vue +99 -271
- package/src/components/popup.vue +2 -2
- package/src/components/previewDoc.vue +2 -6
- package/src/components/previewPdf.vue +136 -166
- package/src/components/senderMessagePlatform.vue +4 -4
- package/src/components/utils/AliyunIssUtil.js +33 -12
- package/src/components/utils/ckeditor.js +59 -48
- package/src/components/welcomeKnowledgeFile.vue +2 -6
- package/src/components/welcomeLlmCard.vue +1 -5
- package/src/components/welcomeSuggest.vue +1 -1
- package/src/locales/cn.json +24 -70
- package/src/locales/en.json +24 -71
- package/src/main.js +16 -18
- package/src/components/newPdfPosition.vue +0 -878
- package/src/locales/jp.json +0 -73
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
class="field-item-name">
|
|
14
14
|
<span
|
|
15
15
|
v-if="item.fieldId !== 'workorder_description' && item.fieldId !== 'workorder_clientId'">{{ item.formField.name }}</span>
|
|
16
|
-
<span v-if="item.fieldId === 'workorder_description'">{{ isBaiLi ?
|
|
17
|
-
<span v-if="item.fieldId === 'workorder_clientId'"
|
|
16
|
+
<span v-if="item.fieldId === 'workorder_description'">{{ isBaiLi ? '反馈描述' : '问题描述' }}</span>
|
|
17
|
+
<span v-if="item.fieldId === 'workorder_clientId'">报单人</span>
|
|
18
18
|
<span style="color: red;padding-left: 5px;padding-right: 5px"
|
|
19
19
|
v-if="item.fieldId !== '0feca81fce97465da537248c066e4db8' && item.fieldId !== '1d8bd21485834773a6d18eae60013000' && (item.required || isRequiredFn(item.formField))">*</span>
|
|
20
20
|
<el-tooltip class="item" effect="dark" placement="right-start">
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
</div>
|
|
60
60
|
</template>
|
|
61
61
|
<el-input type="textarea" :rows="2" v-model="item.value"
|
|
62
|
-
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder :
|
|
62
|
+
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder : '请输入'"
|
|
63
63
|
:maxlength="item.formField.extInfo && item.formField.extInfo.maxNum ? item.formField.extInfo.maxNum * 1 : 1000"
|
|
64
64
|
v-if="item.formField.type === 'TEXTAREA' && item.fieldId !== 'workorder_description'"></el-input>
|
|
65
65
|
<div v-else-if="item.fieldId === 'workorder_description'">
|
|
@@ -79,20 +79,20 @@
|
|
|
79
79
|
<file-list-view :attachmentList="attachmentList" @attachDeleteAttch="attachDeleteAttch"></file-list-view>
|
|
80
80
|
</div>
|
|
81
81
|
<el-date-picker v-model=item.value type="date"
|
|
82
|
-
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder :
|
|
82
|
+
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder : '请选择日期'"
|
|
83
83
|
style="width: 100%" v-else-if="item.formField.type === 'DATE_PICKER'">
|
|
84
84
|
</el-date-picker>
|
|
85
85
|
<el-time-picker v-model=item.value format="HH:mm"
|
|
86
|
-
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder :
|
|
86
|
+
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder : '请选择时间'"
|
|
87
87
|
style="width: 100%"
|
|
88
88
|
v-else-if="item.formField.type === 'TIME_PICKER' && (!item.formField.extInfo.mold || item.formField.extInfo.mold == 'TIME' || getMoldTime(item.formField) == 'TIME')">
|
|
89
89
|
</el-time-picker>
|
|
90
90
|
<el-date-picker v-model=item.value type="date" style="width: 100%"
|
|
91
|
-
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder :
|
|
91
|
+
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder : '请选择日期'"
|
|
92
92
|
v-else-if="item.formField.type === 'TIME_PICKER' && (item.formField.extInfo.mold === 'DATA' || item.formField.extInfo.mold === 'DATE' || getMoldTime(item.formField) == 'DATE')">
|
|
93
93
|
</el-date-picker>
|
|
94
94
|
<el-date-picker v-model=item.value
|
|
95
|
-
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder :
|
|
95
|
+
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder : '请选择日期时间'"
|
|
96
96
|
clearable style="width: 100%" type="datetime"
|
|
97
97
|
v-else-if="item.formField.type === 'TIME_PICKER' && (item.formField.extInfo.mold === 'DATA_TIME' || item.formField.extInfo.mold === 'DATE_TIME' || getMoldTime(item.formField) == 'DATE_TIME')">
|
|
98
98
|
</el-date-picker>
|
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
</div>
|
|
123
123
|
<div v-else-if="item.formField.type === 'SELECT' || item.formField.type === 'OPTION'">
|
|
124
124
|
<el-select v-model=item.value
|
|
125
|
-
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder :
|
|
125
|
+
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder : '请选择'"
|
|
126
126
|
style="width: 100%" filterable
|
|
127
127
|
v-if="item.fieldId === 'workorder_clientId' || item.fieldId === 'workorder_statusId' || item.fieldId === 'workorder_priority'">
|
|
128
128
|
<el-option v-for="(items, index) in selectOptions(item.formField)" :key="index" :label="items.label"
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
</el-option>
|
|
131
131
|
</el-select>
|
|
132
132
|
<el-select v-model=item.value
|
|
133
|
-
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder :
|
|
133
|
+
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder : '请选择'"
|
|
134
134
|
style="width: 100%" filterable v-else @change="changeSelect(item)"
|
|
135
135
|
:multiple="item.formField.extInfo && item.formField.extInfo.selectType == '多选'">
|
|
136
136
|
<el-option v-for="(items, index) in optionsLists(item)" :key="index" :label="items.label"
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
</span>
|
|
160
160
|
</template>
|
|
161
161
|
<span
|
|
162
|
-
v-else>{{ item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder :
|
|
162
|
+
v-else>{{ item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder : '请选择' }}</span>
|
|
163
163
|
</div>
|
|
164
164
|
<!-- <el-cascader
|
|
165
165
|
v-model=item.value
|
|
@@ -210,7 +210,7 @@
|
|
|
210
210
|
</template>
|
|
211
211
|
<div v-else-if="item.formField.type == 'REF_TEMPLATE' || item.formField.type == 'REF'">
|
|
212
212
|
<el-select v-model=item.value
|
|
213
|
-
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder :
|
|
213
|
+
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder : '请选择'"
|
|
214
214
|
style="width: 100%" filterable
|
|
215
215
|
:multiple="item.formField.extInfo && item.formField.extInfo.selectType == '多选'"
|
|
216
216
|
@visible-change="(visible) => { return refTemplateVisibleChange(visible, item) }" collapse-tags
|
|
@@ -234,7 +234,7 @@
|
|
|
234
234
|
<div v-if="item.formField.type === 'INPUT'" class="form-field-item-value">
|
|
235
235
|
<van-field v-model=item.value :label=item.formField.name
|
|
236
236
|
:required="item.required || isRequiredFn(item.formField)" :disabled="disableds"
|
|
237
|
-
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder :
|
|
237
|
+
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder : '请输入'"
|
|
238
238
|
:maxlength="item.formField.extInfo && item.formField.extInfo.maxNum ? item.formField.extInfo.maxNum * 1 : 1000"
|
|
239
239
|
@blur="typeCheck(item.formField, item)" :type="item.formField.extInfo.inputType === 'NUMBER' ||
|
|
240
240
|
item.formField.extInfo.inputType === 'RATE' ? 'number' : 'text'">
|
|
@@ -270,7 +270,7 @@
|
|
|
270
270
|
<div v-else-if="item.formField.type === 'TEXTAREA'" class="form-field-item-value">
|
|
271
271
|
<van-field v-model=item.value :label=item.formField.name
|
|
272
272
|
:required="item.required || isRequiredFn(item.formField)" type="textarea" :disabled="disableds"
|
|
273
|
-
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder :
|
|
273
|
+
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder : '请输入'"
|
|
274
274
|
:maxlength="item.formField.extInfo && item.formField.extInfo.maxNum ? item.formField.extInfo.maxNum * 1 : 1000"
|
|
275
275
|
v-if="item.fieldId !== 'workorder_description'">
|
|
276
276
|
<template slot="label">
|
|
@@ -317,7 +317,7 @@
|
|
|
317
317
|
</div>
|
|
318
318
|
<div v-else-if="item.formField.type === 'DATE_PICKER'" class="form-field-item-value">
|
|
319
319
|
<van-field readonly clickable name="calendar" :value=dateValue[item.fieldId] :label=item.formField.name
|
|
320
|
-
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder :
|
|
320
|
+
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder : '请选择日期'"
|
|
321
321
|
:required="item.required || isRequiredFn(item.formField)" @click="dateClick(item.fieldId)"
|
|
322
322
|
:disabled="disableds" right-icon="van-icon van-icon-arrow van-cell__right-icon">
|
|
323
323
|
<template slot="label">
|
|
@@ -341,7 +341,7 @@
|
|
|
341
341
|
class="form-field-item-value">
|
|
342
342
|
<van-field readonly clickable name="datetimePicker" :required="item.required || isRequiredFn(item.formField)"
|
|
343
343
|
:value=extInfoFieldValue[item.fieldId] :label=item.formField.name
|
|
344
|
-
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder :
|
|
344
|
+
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder : '请选择'"
|
|
345
345
|
@click="timeClick(item.fieldId, item, 'DATE_TIME')" :disabled="disableds"
|
|
346
346
|
right-icon="van-icon van-icon-arrow van-cell__right-icon">
|
|
347
347
|
<template slot="label">
|
|
@@ -368,7 +368,7 @@
|
|
|
368
368
|
class="form-field-item-value">
|
|
369
369
|
<van-field readonly clickable name="datetimePicker" :required="item.required || isRequiredFn(item.formField)"
|
|
370
370
|
:value=extInfoFieldValue[item.fieldId] :label=item.formField.name
|
|
371
|
-
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder :
|
|
371
|
+
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder : '请选择'"
|
|
372
372
|
@click="timeClick(item.fieldId, item, 'TIME')" :disabled="disableds"
|
|
373
373
|
right-icon="van-icon van-icon-arrow van-cell__right-icon">
|
|
374
374
|
<template slot="label">
|
|
@@ -394,7 +394,7 @@
|
|
|
394
394
|
class="form-field-item-value">
|
|
395
395
|
<van-field readonly clickable name="datetimePicker" :required="item.required || isRequiredFn(item.formField)"
|
|
396
396
|
:value=extInfoFieldValue[item.fieldId] :label=item.formField.name
|
|
397
|
-
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder :
|
|
397
|
+
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder : '请选择'"
|
|
398
398
|
@click="timeClick(item.fieldId, item, 'DATE')" :disabled="disableds"
|
|
399
399
|
right-icon="van-icon van-icon-arrow van-cell__right-icon">
|
|
400
400
|
<template slot="label">
|
|
@@ -511,7 +511,7 @@
|
|
|
511
511
|
v-if="item.fieldId === 'workorder_clientId' || item.fieldId === 'workorder_statusId' || item.fieldId === 'workorder_priority'">
|
|
512
512
|
<van-field readonly clickable name="picker" :value=selectValues[item.fieldId]
|
|
513
513
|
:label="item.fieldId === 'workorder_clientId' ? '报单人' : item.formField.name"
|
|
514
|
-
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder :
|
|
514
|
+
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder : '请选择'"
|
|
515
515
|
@click="selectClick(item.fieldId, 'client', item)" :required="item.required || isRequiredFn(item.formField)"
|
|
516
516
|
:disabled="disableds" @click-right-icon.stop="SelectClear(item.fieldId)"
|
|
517
517
|
:right-icon="selectValues[item.fieldId] ? 'close' : 'van-icon van-icon-arrow van-cell__right-icon'">
|
|
@@ -537,7 +537,7 @@
|
|
|
537
537
|
<van-field readonly clickable name="picker"
|
|
538
538
|
:value="showSelectText(item.formField.extInfo ? (item.formField.extInfo.option || item.formField.extInfo.options) : [], item.value)"
|
|
539
539
|
:label=item.formField.name
|
|
540
|
-
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder :
|
|
540
|
+
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder : '请选择'"
|
|
541
541
|
@click="selectClick(item.fieldId, 'select', item)" :required="item.required || isRequiredFn(item.formField)"
|
|
542
542
|
:disabled="disableds" @click-right-icon.stop="SelectClear(item.fieldId)"
|
|
543
543
|
:right-icon="item.value && item.value.length ? 'close' : 'van-icon van-icon-arrow van-cell__right-icon'">
|
|
@@ -586,7 +586,7 @@
|
|
|
586
586
|
<van-field readonly clickable
|
|
587
587
|
:value="Array.isArray(extInfoFieldValue[item.fieldId]) ? extInfoFieldValue[item.fieldId].map(v => v.name).join(',') : (extInfoFieldValue[item.fieldId] && extInfoFieldValue[item.fieldId].name ? extInfoFieldValue[item.fieldId].name : '')"
|
|
588
588
|
:label="item.formField.name" name="picker"
|
|
589
|
-
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder :
|
|
589
|
+
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder : '请选择'"
|
|
590
590
|
@click="selectClick(item.fieldId, 'ref', item)" @click-right-icon.stop="SelectClear(item.fieldId)"
|
|
591
591
|
:required="item.required || isRequiredFn(item.formField)" :disabled="disableds"
|
|
592
592
|
:right-icon="extInfoFieldValue[item.fieldId] && extInfoFieldValue[item.fieldId].length ? 'close' : 'van-icon van-icon-arrow van-cell__right-icon'" />
|
|
@@ -600,7 +600,7 @@
|
|
|
600
600
|
label: 'name'
|
|
601
601
|
}">
|
|
602
602
|
<template slot="popup-footer" v-if="refNextPage[item.fieldId] && refNextPage[item.fieldId].hasNextPage">
|
|
603
|
-
<span @click="lodeMore(item)"
|
|
603
|
+
<span @click="lodeMore(item)">加载更多</span>
|
|
604
604
|
</template>
|
|
605
605
|
</select-popup>
|
|
606
606
|
</van-popup>
|
|
@@ -610,7 +610,7 @@
|
|
|
610
610
|
<van-field readonly clickable name="area"
|
|
611
611
|
:value="extInfoFieldValue[item.fieldId] && Array.isArray(extInfoFieldValue[item.fieldId]) ? extInfoFieldValue[item.fieldId].map(e => e.label).join('/') : ''"
|
|
612
612
|
:label=item.formField.name
|
|
613
|
-
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder :
|
|
613
|
+
:placeholder="item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder : '请选择'"
|
|
614
614
|
@click="openDrawer(item, 'cascader')"
|
|
615
615
|
:required="item.fieldId !== '0feca81fce97465da537248c066e4db8' && item.fieldId !== '1d8bd21485834773a6d18eae60013000' && (item.required || isRequiredFn(item.formField))"
|
|
616
616
|
:disabled="disableds" right-icon="van-icon van-icon-arrow van-cell__right-icon">
|
|
@@ -722,7 +722,7 @@
|
|
|
722
722
|
/* eslint-disable */
|
|
723
723
|
import { forMatTime } from "./utils/format_date";
|
|
724
724
|
let that
|
|
725
|
-
import { multipartUpload, ossFileUrl } from "
|
|
725
|
+
import { multipartUpload, ossFileUrl } from "./utils/AliyunIssUtil";
|
|
726
726
|
import MyEditor from './MyEditor'
|
|
727
727
|
import myPopup from "./myPopup.vue";
|
|
728
728
|
import Tree from '../components/tree'
|
|
@@ -803,14 +803,6 @@ export default {
|
|
|
803
803
|
videoUploadPercent: false,
|
|
804
804
|
fileType: ['PICTURE', 'VIDEO', 'AUDIO'],
|
|
805
805
|
loading: '',
|
|
806
|
-
ossConfig: {
|
|
807
|
-
region: "oss-cn-zhangjiakou",
|
|
808
|
-
//云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用STS方式来进行API访问
|
|
809
|
-
accessKeyId: "LTAI4G3QtdEdwkEbihBngAsK",
|
|
810
|
-
accessKeySecret: "OwgdVfc5PeCkIgqIdug660xmiSPchn",
|
|
811
|
-
// stsToken: '<Your securityToken(STS)>',
|
|
812
|
-
bucket: "guoranopen-zjk",
|
|
813
|
-
},
|
|
814
806
|
hideUploadEdit: false,
|
|
815
807
|
limitNum: 1,
|
|
816
808
|
refShowPicker: false,
|
|
@@ -883,10 +875,6 @@ export default {
|
|
|
883
875
|
default () {
|
|
884
876
|
return ""
|
|
885
877
|
}
|
|
886
|
-
},
|
|
887
|
-
language:{
|
|
888
|
-
type:String,
|
|
889
|
-
default:"cn"
|
|
890
878
|
}
|
|
891
879
|
},
|
|
892
880
|
computed: {
|
|
@@ -1102,7 +1090,7 @@ export default {
|
|
|
1102
1090
|
} else {
|
|
1103
1091
|
this.disableds = false
|
|
1104
1092
|
}
|
|
1105
|
-
this.submitValue = this.submit ?
|
|
1093
|
+
this.submitValue = this.submit ? '已提交' : "提交"
|
|
1106
1094
|
},
|
|
1107
1095
|
beforeMount () {
|
|
1108
1096
|
that.defaultClick()
|
|
@@ -1387,11 +1375,11 @@ export default {
|
|
|
1387
1375
|
const isLte2M = file.size / 1024 / 1024 <= 8;
|
|
1388
1376
|
const isSupportedFormat = file.type.indexOf('image') !== -1
|
|
1389
1377
|
if (!isSupportedFormat) {
|
|
1390
|
-
this.$message.error(
|
|
1378
|
+
this.$message.error("只能上传图片格式");
|
|
1391
1379
|
return false
|
|
1392
1380
|
}
|
|
1393
1381
|
if (!isLte2M && isSupportedFormat) {
|
|
1394
|
-
this.$message.error(
|
|
1382
|
+
this.$message.error("上传图片大小不能超过 8MB!");
|
|
1395
1383
|
return false
|
|
1396
1384
|
}
|
|
1397
1385
|
return true
|
|
@@ -1400,11 +1388,11 @@ export default {
|
|
|
1400
1388
|
const isLte2M = file.size / 1024 / 1024 <= 100;
|
|
1401
1389
|
const isSupportedFormat = file.type.indexOf('video') !== -1
|
|
1402
1390
|
if (!isSupportedFormat) {
|
|
1403
|
-
this.$message.error(
|
|
1391
|
+
this.$message.error("只能上传视频格式");
|
|
1404
1392
|
return false
|
|
1405
1393
|
}
|
|
1406
1394
|
if (!isLte2M && isSupportedFormat) {
|
|
1407
|
-
this.$message.error(
|
|
1395
|
+
this.$message.error("上传视频大小不能超过100MB!");
|
|
1408
1396
|
return false
|
|
1409
1397
|
}
|
|
1410
1398
|
return true
|
|
@@ -1412,7 +1400,7 @@ export default {
|
|
|
1412
1400
|
else if (type === 'ATTACHMENT') {
|
|
1413
1401
|
const isLte2M = file.size / 1024 / 1024 <= 100;
|
|
1414
1402
|
if (!isLte2M) {
|
|
1415
|
-
this.$message.error(
|
|
1403
|
+
this.$message.error("上传附件大小不能超过100MB!");
|
|
1416
1404
|
return false
|
|
1417
1405
|
}
|
|
1418
1406
|
return true
|
|
@@ -1429,11 +1417,11 @@ export default {
|
|
|
1429
1417
|
const isLte2M = file[i].size / 1024 / 1024 <= 8;
|
|
1430
1418
|
const isSupportedFormat = file[i].type.indexOf('image') !== -1
|
|
1431
1419
|
if (!isSupportedFormat) {
|
|
1432
|
-
this.$message.error(
|
|
1420
|
+
this.$message.error("只能上传图片格式");
|
|
1433
1421
|
return false
|
|
1434
1422
|
}
|
|
1435
1423
|
if (!isLte2M && isSupportedFormat) {
|
|
1436
|
-
this.$message.error(
|
|
1424
|
+
this.$message.error("上传图片大小不能超过 8MB!");
|
|
1437
1425
|
return false
|
|
1438
1426
|
}
|
|
1439
1427
|
return true
|
|
@@ -1442,11 +1430,11 @@ export default {
|
|
|
1442
1430
|
const isLte2M = file[i].size / 1024 / 1024 <= 100;
|
|
1443
1431
|
const isSupportedFormat = file[i].type.indexOf('video') !== -1
|
|
1444
1432
|
if (!isSupportedFormat) {
|
|
1445
|
-
this.$message.error(
|
|
1433
|
+
this.$message.error("只能上传视频格式");
|
|
1446
1434
|
return false
|
|
1447
1435
|
}
|
|
1448
1436
|
if (!isLte2M && isSupportedFormat) {
|
|
1449
|
-
this.$message.error(
|
|
1437
|
+
this.$message.error("上传视频大小不能超过100MB!");
|
|
1450
1438
|
return false
|
|
1451
1439
|
}
|
|
1452
1440
|
return true
|
|
@@ -1454,7 +1442,7 @@ export default {
|
|
|
1454
1442
|
else if (type === 'ATTACHMENT') {
|
|
1455
1443
|
const isLte2M = file[i].size / 1024 / 1024 <= 100;
|
|
1456
1444
|
if (!isLte2M) {
|
|
1457
|
-
this.$message.error(
|
|
1445
|
+
this.$message.error("上传附件大小不能超过100MB!");
|
|
1458
1446
|
return false
|
|
1459
1447
|
}
|
|
1460
1448
|
return true
|
|
@@ -1466,7 +1454,7 @@ export default {
|
|
|
1466
1454
|
if (this.limitNum) {
|
|
1467
1455
|
num = this.limitNum
|
|
1468
1456
|
}
|
|
1469
|
-
let messageText =
|
|
1457
|
+
let messageText = '仅支持上传' + num + '个'
|
|
1470
1458
|
this.$message.error(messageText);
|
|
1471
1459
|
return false
|
|
1472
1460
|
}
|
|
@@ -1488,7 +1476,7 @@ export default {
|
|
|
1488
1476
|
num = this.limitNum
|
|
1489
1477
|
}
|
|
1490
1478
|
if (file.length > num) {
|
|
1491
|
-
this.$message.warning(
|
|
1479
|
+
this.$message.warning('仅支持上传' + num + '张图片')
|
|
1492
1480
|
return false
|
|
1493
1481
|
}
|
|
1494
1482
|
else {
|
|
@@ -1509,7 +1497,6 @@ export default {
|
|
|
1509
1497
|
url: ''
|
|
1510
1498
|
}
|
|
1511
1499
|
let res = multipartUpload(
|
|
1512
|
-
this.ossConfig,
|
|
1513
1500
|
file,
|
|
1514
1501
|
null,
|
|
1515
1502
|
imageInfo
|
|
@@ -1519,10 +1506,10 @@ export default {
|
|
|
1519
1506
|
// let filePath = res.name;
|
|
1520
1507
|
imageData.urls.push({
|
|
1521
1508
|
name: file.name,
|
|
1522
|
-
url: ossFileUrl(
|
|
1509
|
+
url: ossFileUrl(res.name),
|
|
1523
1510
|
status: 'success'
|
|
1524
1511
|
})
|
|
1525
|
-
imageInfo.url = ossFileUrl(
|
|
1512
|
+
imageInfo.url = ossFileUrl(res.name)
|
|
1526
1513
|
imageInfo.status = 'success'
|
|
1527
1514
|
imageInfo.name = file.name
|
|
1528
1515
|
for (let j = 0; j < this.extInfoFieldValue[this.filedId].length; j++) {
|
|
@@ -1691,7 +1678,7 @@ export default {
|
|
|
1691
1678
|
this.$set(this.extInfoFieldValue, this.formList.form.formFieldRelation[i].fieldId, [])
|
|
1692
1679
|
this.loopCascaderSetDefalut(cascadeOptions, this.formList.form.formFieldRelation[i], extInfo.selectType)
|
|
1693
1680
|
this.loopCascaderSetValue(cascadeOptions, this.formList.form.formFieldRelation[i], extInfo.selectType)
|
|
1694
|
-
|
|
1681
|
+
|
|
1695
1682
|
}
|
|
1696
1683
|
if (type === 'DATE_PICKER') {
|
|
1697
1684
|
if (this.formList.form.formFieldRelation[i].value && this.formList.form.formFieldRelation[i].value !== null && this.formList.form.formFieldRelation[i].value !== '') {
|
|
@@ -1980,27 +1967,27 @@ export default {
|
|
|
1980
1967
|
if (checkDescription.checkAttachment && this.attachmentList.length == 0) {
|
|
1981
1968
|
attachmentFlag = false
|
|
1982
1969
|
}
|
|
1983
|
-
let text = this.isBaiLi ?
|
|
1970
|
+
let text = this.isBaiLi ? '反馈描述' : '问题描述'
|
|
1984
1971
|
if (!textFlag) {
|
|
1985
|
-
errorText = text +
|
|
1972
|
+
errorText = text + '必须要有文字'
|
|
1986
1973
|
}
|
|
1987
1974
|
if (!imageOrAttachment) {
|
|
1988
|
-
errorText = text +
|
|
1975
|
+
errorText = text + '必须要有图片或附件'
|
|
1989
1976
|
}
|
|
1990
1977
|
if (!imageFlag) {
|
|
1991
|
-
errorText = text +
|
|
1978
|
+
errorText = text + '必须要有图片'
|
|
1992
1979
|
}
|
|
1993
1980
|
if (!attachmentFlag) {
|
|
1994
|
-
errorText = text +
|
|
1981
|
+
errorText = text + '必须要有附件'
|
|
1995
1982
|
}
|
|
1996
1983
|
if (!textFlag && (!imageFlag || !attachmentFlag)) {
|
|
1997
|
-
errorText = text +
|
|
1984
|
+
errorText = text + '必须要有文字和' + (!imageFlag ? '图片' : '附件')
|
|
1998
1985
|
}
|
|
1999
1986
|
if (!imageFlag && !attachmentFlag) {
|
|
2000
|
-
errorText = text +
|
|
1987
|
+
errorText = text + '必须要有图片和附件'
|
|
2001
1988
|
}
|
|
2002
1989
|
if (!imageFlag && !attachmentFlag && !textFlag) {
|
|
2003
|
-
errorText = text +
|
|
1990
|
+
errorText = text + '必须要有文字、图片和附件'
|
|
2004
1991
|
}
|
|
2005
1992
|
if (errorText) {
|
|
2006
1993
|
this.$message.error(errorText);
|
|
@@ -2009,7 +1996,7 @@ export default {
|
|
|
2009
1996
|
let d = document.createElement('div')
|
|
2010
1997
|
d.innerHTML = this.workOrderDestail.value
|
|
2011
1998
|
if (checkDescription.required && !d.innerText && !this.workOrderDestail.value.includes('img') && this.attachmentList.length == 0) {
|
|
2012
|
-
let errorText = this.isBaiLi ?
|
|
1999
|
+
let errorText = this.isBaiLi ? '反馈描述是必填的' : '问题描述是必填的'
|
|
2013
2000
|
this.$message.error(errorText);
|
|
2014
2001
|
return false
|
|
2015
2002
|
}
|
|
@@ -2019,7 +2006,7 @@ export default {
|
|
|
2019
2006
|
//提交按钮事件
|
|
2020
2007
|
submitClick () {
|
|
2021
2008
|
if (this.uploadImgQueue || this.attachmentList.some(arrach => { return !arrach.url })) {
|
|
2022
|
-
this.$message.warning(
|
|
2009
|
+
this.$message.warning('文件正在上传,请稍后')
|
|
2023
2010
|
return
|
|
2024
2011
|
}
|
|
2025
2012
|
if (this.workOrderDestail && !this.verificationDescription()) {
|
|
@@ -2098,7 +2085,7 @@ export default {
|
|
|
2098
2085
|
}
|
|
2099
2086
|
if (this.formShow.form.formFieldRelation[i].relationDisplay && this.formShow.form.formFieldRelation[i].display && this.formShow.form.formFieldRelation[i].fieldId !== 'workorder_description') {
|
|
2100
2087
|
if (!this.formShow.form.formFieldRelation[i].value || this.strIsNull(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)) {
|
|
2101
|
-
this.$message.error(
|
|
2088
|
+
this.$message.error('请完善' + this.formShow.form.formFieldRelation[i].formField.name)
|
|
2102
2089
|
return
|
|
2103
2090
|
}
|
|
2104
2091
|
}
|
|
@@ -2129,7 +2116,7 @@ export default {
|
|
|
2129
2116
|
console.error('formShow', newForm)
|
|
2130
2117
|
this.$emit('submitClick', newForm)
|
|
2131
2118
|
this.disableds = true
|
|
2132
|
-
this.submitValue =
|
|
2119
|
+
this.submitValue = '已提交'
|
|
2133
2120
|
},
|
|
2134
2121
|
strIsNull (str) {
|
|
2135
2122
|
if (str == "") return true;
|
|
@@ -2422,7 +2409,6 @@ export default {
|
|
|
2422
2409
|
},
|
|
2423
2410
|
};*/
|
|
2424
2411
|
let res = multipartUpload(
|
|
2425
|
-
this.ossConfig,
|
|
2426
2412
|
file,
|
|
2427
2413
|
null,
|
|
2428
2414
|
imgInfo
|
|
@@ -2435,7 +2421,7 @@ export default {
|
|
|
2435
2421
|
ossFileUrl(this.ossConfig, res.name)
|
|
2436
2422
|
);
|
|
2437
2423
|
console.log('imageData',imageData)*/
|
|
2438
|
-
imgInfo.url = ossFileUrl(
|
|
2424
|
+
imgInfo.url = ossFileUrl(res.name)
|
|
2439
2425
|
imgInfo.status = 'success'
|
|
2440
2426
|
if (data.file) {
|
|
2441
2427
|
imgInfo.name = data.file.name
|
|
@@ -2495,7 +2481,7 @@ export default {
|
|
|
2495
2481
|
console.debug("upload video progress", progress, point);
|
|
2496
2482
|
if (progress === 1) {
|
|
2497
2483
|
// this.loadingIns.close();
|
|
2498
|
-
videoData.content.url = ossFileUrl(
|
|
2484
|
+
videoData.content.url = ossFileUrl(point.name);
|
|
2499
2485
|
// this.chooseVideo({data:url},file);
|
|
2500
2486
|
|
|
2501
2487
|
} else {
|
|
@@ -3508,4 +3494,4 @@ export default {
|
|
|
3508
3494
|
height: 100%;
|
|
3509
3495
|
overflow: hidden;
|
|
3510
3496
|
}
|
|
3511
|
-
</style>
|
|
3497
|
+
</style>
|
|
@@ -3,21 +3,23 @@
|
|
|
3
3
|
<div class="summaryHeader">
|
|
4
4
|
<div class="left">
|
|
5
5
|
<i class="iconfont guoran-tongyichicun-write-29-jiqiren"></i>
|
|
6
|
-
<span>{{$t('
|
|
6
|
+
<span>{{ $t('dragonCommon.smartSummary') }}</span>
|
|
7
7
|
</div>
|
|
8
8
|
<div class="right">
|
|
9
9
|
<div class="regenerationBtn" @click="regeneration">
|
|
10
|
-
<template v-if="!isLoading">
|
|
10
|
+
<template v-if="!isLoading">
|
|
11
|
+
{{ $t('dragonCommon.regenerate') }}
|
|
12
|
+
</template>
|
|
11
13
|
<template v-else>
|
|
12
14
|
<img
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
height="20px"
|
|
16
|
+
width="20px"
|
|
17
|
+
src="../assets/image/loading.gif"
|
|
18
|
+
alt
|
|
19
|
+
srcset
|
|
20
|
+
style="margin-right: 6px"
|
|
19
21
|
/>
|
|
20
|
-
<span>{{$t('
|
|
22
|
+
<span>{{ $t('dragonCommon.generating') }}</span>
|
|
21
23
|
</template>
|
|
22
24
|
</div>
|
|
23
25
|
<i class="iconfont guoran-tongyichicun-shouqi" @click="closeSummary"></i>
|
|
@@ -26,11 +28,11 @@
|
|
|
26
28
|
<div class="summaryContent">
|
|
27
29
|
<span>{{ typedContent }}</span>
|
|
28
30
|
</div>
|
|
29
|
-
<div class="intelligentBottom" v-if="recommendQuestions.length > 0
|
|
31
|
+
<div class="intelligentBottom" v-if="recommendQuestions.length > 0">
|
|
30
32
|
<div class="intelligentQues"
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
33
|
+
v-for="(item, index) in recommendQuestions"
|
|
34
|
+
:key="index"
|
|
35
|
+
@click="recommendQues(item)"
|
|
34
36
|
>
|
|
35
37
|
{{ item }}
|
|
36
38
|
</div>
|
|
@@ -59,10 +61,6 @@ export default {
|
|
|
59
61
|
default() {
|
|
60
62
|
return []
|
|
61
63
|
}
|
|
62
|
-
},
|
|
63
|
-
formKnowledgeManagement:{
|
|
64
|
-
type: Boolean,
|
|
65
|
-
default: false
|
|
66
64
|
}
|
|
67
65
|
},
|
|
68
66
|
methods:{
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div @click="lookImage">
|
|
3
|
-
<vue-markdown
|
|
4
|
-
class="mark_down"
|
|
5
|
-
:source="typedContent"
|
|
6
|
-
:ref="'markdown' + msgId"
|
|
7
|
-
>
|
|
3
|
+
<vue-markdown class="mark_down" :source="typedContent" :ref="'markdown' + msgId">
|
|
8
4
|
</vue-markdown>
|
|
9
5
|
<div v-if="showPreview">
|
|
10
6
|
<img-view :url-list="imgList" @closeViewer="closeViewer"></img-view>
|
|
@@ -57,11 +53,12 @@ export default {
|
|
|
57
53
|
// showCursor: false
|
|
58
54
|
// })
|
|
59
55
|
// }
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
56
|
+
this.typedContent = this.chainValues;
|
|
57
|
+
// if (this.isHistory) {
|
|
58
|
+
// this.typedContent = this.chainValues;
|
|
59
|
+
// } else {
|
|
60
|
+
// this.startTypingEffect();
|
|
61
|
+
// }
|
|
65
62
|
});
|
|
66
63
|
},
|
|
67
64
|
methods: {
|
|
@@ -105,24 +102,63 @@ export default {
|
|
|
105
102
|
|
|
106
103
|
<style scoped lang="less">
|
|
107
104
|
.mark_down {
|
|
108
|
-
line-height:
|
|
105
|
+
line-height: 24px;
|
|
106
|
+
|
|
109
107
|
/deep/p {
|
|
110
108
|
margin-bottom: 14px;
|
|
109
|
+
font-size: 16px;
|
|
111
110
|
}
|
|
111
|
+
|
|
112
112
|
/deep/p:only-child {
|
|
113
113
|
margin: 0 !important;
|
|
114
114
|
}
|
|
115
|
+
|
|
115
116
|
/deep/p:last-child {
|
|
116
117
|
margin-bottom: 0 !important;
|
|
117
118
|
}
|
|
118
|
-
|
|
119
|
-
ul {
|
|
119
|
+
|
|
120
|
+
/deep/ul {
|
|
121
|
+
margin-bottom: 16px ;
|
|
122
|
+
li {
|
|
123
|
+
margin: 7px 0 !important;
|
|
124
|
+
font-size: 16px;
|
|
125
|
+
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/deep/ ol {
|
|
120
130
|
li {
|
|
121
|
-
margin:
|
|
131
|
+
margin: 7px 0 !important;
|
|
132
|
+
font-size: 16px;
|
|
122
133
|
}
|
|
123
134
|
}
|
|
135
|
+
|
|
124
136
|
/deep/img {
|
|
125
137
|
max-width: 400px;
|
|
126
138
|
}
|
|
139
|
+
|
|
140
|
+
/deep/h3,
|
|
141
|
+
/deep/h2,
|
|
142
|
+
/deep/h1,
|
|
143
|
+
/deep/h4,
|
|
144
|
+
/deep/h5,
|
|
145
|
+
/deep/h6 {
|
|
146
|
+
color: #000000;
|
|
147
|
+
font-weight: 500;
|
|
148
|
+
line-height: 26px;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/deep/h3 {
|
|
152
|
+
font-size: 20px;
|
|
153
|
+
}
|
|
154
|
+
/deep/h2 {
|
|
155
|
+
font-size: 22px;
|
|
156
|
+
}
|
|
157
|
+
/deep/h1 {
|
|
158
|
+
font-size: 24px;
|
|
159
|
+
}
|
|
160
|
+
/deep/h3 {
|
|
161
|
+
font-size: 20px;
|
|
162
|
+
}
|
|
127
163
|
}
|
|
128
164
|
</style>
|