askbot-dragon 1.7.22-beta → 1.7.23-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.
Files changed (33) hide show
  1. package/package.json +2 -1
  2. package/public/index.html +8 -10
  3. package/src/assets/js/AliyunlssUtil.js +50 -26
  4. package/src/assets/js/hammer.js +13 -2
  5. package/src/assets/less/converSationContainer/common.less +7 -0
  6. package/src/components/ActionAlertIframe.vue +24 -1
  7. package/src/components/AiGuide.vue +121 -154
  8. package/src/components/AnswerDocknowledge.vue +108 -100
  9. package/src/components/ConversationContainer.vue +13 -220
  10. package/src/components/MyEditor.vue +2 -1
  11. package/src/components/actionSatisfaction.vue +3 -3
  12. package/src/components/answerRadio.vue +3 -3
  13. package/src/components/askVideo.vue +23 -0
  14. package/src/components/associationIntention.vue +11 -7
  15. package/src/components/formTemplate.vue +54 -50
  16. package/src/components/intelligentSummary.vue +8 -4
  17. package/src/components/message/TextMessage.vue +15 -11
  18. package/src/components/message/swiper/ticketSwiper.vue +1 -1
  19. package/src/components/newPdfPosition.vue +878 -0
  20. package/src/components/pdfPosition.vue +217 -37
  21. package/src/components/popup.vue +2 -2
  22. package/src/components/previewDoc.vue +6 -2
  23. package/src/components/previewPdf.vue +159 -134
  24. package/src/components/senderMessagePlatform.vue +4 -4
  25. package/src/components/utils/ckeditor.js +1 -1
  26. package/src/components/welcomeKnowledgeFile.vue +6 -2
  27. package/src/components/welcomeLlmCard.vue +5 -1
  28. package/src/components/welcomeSuggest.vue +1 -1
  29. package/src/locales/cn.json +72 -0
  30. package/src/locales/en.json +73 -0
  31. package/src/locales/jp.json +73 -0
  32. package/src/main.js +18 -0
  33. package/src/components/QwFeedback.vue +0 -302
@@ -17,7 +17,7 @@
17
17
  )
18
18
  "
19
19
  >
20
- 满意
20
+ {{$t('actionSatisfaction.satisfaction')}}
21
21
  </div>
22
22
  <div
23
23
  class="statisfaction-item"
@@ -32,7 +32,7 @@
32
32
  )
33
33
  "
34
34
  >
35
- 不满意
35
+ {{$t('actionSatisfaction.notSatisfied')}}
36
36
  </div>
37
37
  </div>
38
38
 
@@ -42,7 +42,7 @@
42
42
  <script>
43
43
  export default {
44
44
  name: "actionSatisfaction",
45
- props:['msg'],
45
+ props:['msg',"language"],
46
46
  data(){
47
47
  return{
48
48
  isCheckSatis:false,
@@ -4,7 +4,7 @@
4
4
  v-if="msg.content.description && !msg.content.isKnowledgeSummary"></p>
5
5
  <div class="bottom-link" v-if="msg.content.description && !msg.content.isKnowledgeSummary"></div>
6
6
  <div :class="['options-list', msg.content.isKnowledgeSummary ? 'isKnowledgeSummary' : '']">
7
- <div v-if="msg.content.isKnowledgeSummary" class="tips">AI为您推荐了以下内容</div>
7
+ <div v-if="msg.content.isKnowledgeSummary" class="tips">{{$t('answerRadio.tip')}}</div>
8
8
  <div v-for="(option, index) in showOptions" class="options-item"
9
9
  :class="index !== msg.content.options.length - 1 ? 'recommend-item' : 'last-item'" :key="msg.nodeId + '_' + index"
10
10
  @click="radioClick(msg, option, index)">
@@ -13,7 +13,7 @@
13
13
  </div>
14
14
  </div>
15
15
  <div v-if="showPage" class="switch-page">
16
- <span @click="changeActivePage" class="switch-page-btn">换一批</span>
16
+ <span @click="changeActivePage" class="switch-page-btn">{{$t('answerRadio.loadMore')}}</span>
17
17
  <!-- <span @click="showMore" class="switch-page-btn">查看更多</span> -->
18
18
  </div>
19
19
  </div>
@@ -32,7 +32,7 @@ export default {
32
32
  showOptions: [],
33
33
  }
34
34
  },
35
- props: ['msg'],
35
+ props: ['msg','language'],
36
36
  mounted() {
37
37
  console.log(this.msg, 'msg');
38
38
  // 关键词推荐 前端分页
@@ -22,6 +22,9 @@
22
22
  :id="msg.id+'key'">
23
23
  <source :src="videoSrc"/>
24
24
  </video>
25
+ <div v-show="!nodownload" class="dragon-video-download">
26
+ <a :href="msg.content.url" download><span class="el-icon-download"></span></a>
27
+ </div>
25
28
  <div id="output"></div>
26
29
  </div>
27
30
  </template>
@@ -123,6 +126,8 @@
123
126
  video::-webkit-media-controls-mute-button { display: none !important;}
124
127
  #dragon-video{
125
128
  position: relative;
129
+ width: calc(100vw - 109px);
130
+ max-width: 260px;
126
131
  #outputVideo{
127
132
  position: absolute;
128
133
  top: 0px;
@@ -134,6 +139,24 @@ video::-webkit-media-controls-mute-button { display: none !important;}
134
139
  }
135
140
 
136
141
  }
142
+ .dragon-video-download{
143
+ position: absolute;
144
+ width: 40px;
145
+ height: 26px;
146
+ background-color: rgba(54, 106, 255, 0.5);
147
+ border-radius: 13px;
148
+ text-align: center;
149
+ bottom: 2px;
150
+ right: 6px;
151
+ a {
152
+ span {
153
+ height: 26px;
154
+ line-height: 26px;
155
+ display: block;
156
+ color: white;
157
+ }
158
+ }
159
+ }
137
160
  }
138
161
 
139
162
  </style>
@@ -68,10 +68,10 @@
68
68
  <span class="model-switch-handle-name">{{msg.footerStyleValue}}</span>
69
69
  </div>
70
70
  <van-popup v-model="previewShowPopup" position="bottom" v-if="previewShowPopup" :style="{ height: '90%', background:'#FFFFFF'}">
71
- <previewDoc ref="previewDoc" :url="previewHref" @close="close" v-if="previewShowPopup"></previewDoc>
71
+ <previewDoc ref="previewDoc" :url="previewHref" :language="language" @close="close" v-if="previewShowPopup"></previewDoc>
72
72
  </van-popup>
73
73
  <el-drawer
74
- title="我是标题"
74
+ :title="$t('common.drawerTitle')"
75
75
  :append-to-body="true"
76
76
  :model="false"
77
77
  :visible.sync="drawer"
@@ -79,7 +79,7 @@
79
79
  size="65%"
80
80
  v-if="drawer"
81
81
  >
82
- <previewDoc ref="previewDoc" :url="previewHref" @close="close" v-if="drawer"></previewDoc>
82
+ <previewDoc ref="previewDoc" :url="previewHref" :language="language" @close="close" v-if="drawer"></previewDoc>
83
83
  </el-drawer>
84
84
  </div>
85
85
  </template>
@@ -92,7 +92,7 @@
92
92
  export default {
93
93
  name: "associationIntention",
94
94
  components: {Recommend, askVideo, previewDoc},
95
- props: ["msg",'msgType','isOpen','sourceOhm','isOhmPc', 'nodownload', 'hiddenHeaderFooter'],
95
+ props: ["msg",'msgType','isOpen','sourceOhm','isOhmPc', 'nodownload', 'hiddenHeaderFooter','language'],
96
96
  filters: {
97
97
  imageStyle: function (html) {
98
98
  //富文本内图片自适应高度宽度
@@ -115,8 +115,6 @@
115
115
  drawer:false
116
116
  }
117
117
  },
118
- mounted() {
119
- },
120
118
  methods:{
121
119
  // 将匹配结果替换表情图片
122
120
  emotion(res) {
@@ -237,7 +235,7 @@
237
235
  this.$emit("onRadioClick", id, name, apikey,optionApiKey);
238
236
  },
239
237
  onImageClick(url){
240
- this.$emit('onImageClick',url)
238
+ this.$emit('onImageClick', encodeURI(url))
241
239
  },
242
240
  msgContent(content){
243
241
  console.debug('215',content)
@@ -368,6 +366,12 @@
368
366
  display: block;
369
367
  }
370
368
  }
369
+ /deep/ img {
370
+ height: auto;
371
+ width: calc(100vw - 137px);
372
+ border-radius: 25px;
373
+ max-width: 230px;
374
+ }
371
375
  }
372
376
  /deep/.el-drawer__body{
373
377
  height: 100%;
@@ -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 ? '反馈描述' : '问题描述' }}</span>
17
- <span v-if="item.fieldId === 'workorder_clientId'">报单人</span>
16
+ <span v-if="item.fieldId === 'workorder_description'">{{ isBaiLi ? $t('formTemplate.feedbackDes') : $t('formTemplate.orderDes') }}</span>
17
+ <span v-if="item.fieldId === 'workorder_clientId'">{{$t('formTemplate.report')}}</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 : $t('common.inputPlaceholder')"
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 : $t('common.selectDate')"
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 : $t('common.selectTime')"
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 : $t('common.selectDate')"
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 : $t('common.selectDateTime')"
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 : $t('common.selectPlaceholder')"
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 : $t('common.selectPlaceholder')"
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 : '请选择' }}</span>
162
+ v-else>{{ item.formField.extInfo && item.formField.extInfo.placeholder ? item.formField.extInfo.placeholder : $t('common.selectPlaceholder' )}}</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 : $t('common.selectPlaceholder')"
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 : $t('common.inputPlaceholder')"
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 : $t('common.inputPlaceholder')"
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 : $t('common.selectDate')"
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 : $t('common.selectPlaceholder')"
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 : $t('common.selectPlaceholder')"
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 : $t('common.selectPlaceholder')"
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 : $t('common.selectPlaceholder')"
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 : $t('common.selectPlaceholder')"
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 : $t('common.selectPlaceholder')"
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)">加载更多</span>
603
+ <span @click="lodeMore(item)">{{$t('common.loadMore')}}</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 : $t('common.selectPlaceholder')"
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 "./utils/AliyunIssUtil";
725
+ import { multipartUpload, ossFileUrl } from "../assets/js/AliyunlssUtil";
726
726
  import MyEditor from './MyEditor'
727
727
  import myPopup from "./myPopup.vue";
728
728
  import Tree from '../components/tree'
@@ -883,6 +883,10 @@ export default {
883
883
  default () {
884
884
  return ""
885
885
  }
886
+ },
887
+ language:{
888
+ type:String,
889
+ default:"cn"
886
890
  }
887
891
  },
888
892
  computed: {
@@ -1098,7 +1102,7 @@ export default {
1098
1102
  } else {
1099
1103
  this.disableds = false
1100
1104
  }
1101
- this.submitValue = this.submit ? '已提交' : "提交"
1105
+ this.submitValue = this.submit ? this.$t('common.submited') : this.$t('common.submit')
1102
1106
  },
1103
1107
  beforeMount () {
1104
1108
  that.defaultClick()
@@ -1383,11 +1387,11 @@ export default {
1383
1387
  const isLte2M = file.size / 1024 / 1024 <= 8;
1384
1388
  const isSupportedFormat = file.type.indexOf('image') !== -1
1385
1389
  if (!isSupportedFormat) {
1386
- this.$message.error("只能上传图片格式");
1390
+ this.$message.error(this.$t('formTemplate.uploadType'));
1387
1391
  return false
1388
1392
  }
1389
1393
  if (!isLte2M && isSupportedFormat) {
1390
- this.$message.error("上传图片大小不能超过 8MB!");
1394
+ this.$message.error(this.$t('formTemplate.uploadImageSize'));
1391
1395
  return false
1392
1396
  }
1393
1397
  return true
@@ -1396,11 +1400,11 @@ export default {
1396
1400
  const isLte2M = file.size / 1024 / 1024 <= 100;
1397
1401
  const isSupportedFormat = file.type.indexOf('video') !== -1
1398
1402
  if (!isSupportedFormat) {
1399
- this.$message.error("只能上传视频格式");
1403
+ this.$message.error(this.$t('formTemplate.uploadVideoType'));
1400
1404
  return false
1401
1405
  }
1402
1406
  if (!isLte2M && isSupportedFormat) {
1403
- this.$message.error("上传视频大小不能超过100MB!");
1407
+ this.$message.error(this.$t('formTemplate.uploadVideoSize'));
1404
1408
  return false
1405
1409
  }
1406
1410
  return true
@@ -1408,7 +1412,7 @@ export default {
1408
1412
  else if (type === 'ATTACHMENT') {
1409
1413
  const isLte2M = file.size / 1024 / 1024 <= 100;
1410
1414
  if (!isLte2M) {
1411
- this.$message.error("上传附件大小不能超过100MB!");
1415
+ this.$message.error(this.$t('formTemplate.uploadFileSize'));
1412
1416
  return false
1413
1417
  }
1414
1418
  return true
@@ -1425,11 +1429,11 @@ export default {
1425
1429
  const isLte2M = file[i].size / 1024 / 1024 <= 8;
1426
1430
  const isSupportedFormat = file[i].type.indexOf('image') !== -1
1427
1431
  if (!isSupportedFormat) {
1428
- this.$message.error("只能上传图片格式");
1432
+ this.$message.error(this.$t('formTemplate.uploadType'));
1429
1433
  return false
1430
1434
  }
1431
1435
  if (!isLte2M && isSupportedFormat) {
1432
- this.$message.error("上传图片大小不能超过 8MB!");
1436
+ this.$message.error(this.$t('formTemplate.uploadImageSize'));
1433
1437
  return false
1434
1438
  }
1435
1439
  return true
@@ -1438,11 +1442,11 @@ export default {
1438
1442
  const isLte2M = file[i].size / 1024 / 1024 <= 100;
1439
1443
  const isSupportedFormat = file[i].type.indexOf('video') !== -1
1440
1444
  if (!isSupportedFormat) {
1441
- this.$message.error("只能上传视频格式");
1445
+ this.$message.error(this.$t('formTemplate.uploadVideoType'));
1442
1446
  return false
1443
1447
  }
1444
1448
  if (!isLte2M && isSupportedFormat) {
1445
- this.$message.error("上传视频大小不能超过100MB!");
1449
+ this.$message.error(this.$t('formTemplate.uploadVideoSize'));
1446
1450
  return false
1447
1451
  }
1448
1452
  return true
@@ -1450,7 +1454,7 @@ export default {
1450
1454
  else if (type === 'ATTACHMENT') {
1451
1455
  const isLte2M = file[i].size / 1024 / 1024 <= 100;
1452
1456
  if (!isLte2M) {
1453
- this.$message.error("上传附件大小不能超过100MB!");
1457
+ this.$message.error(this.$t('formTemplate.uploadFileSize'));
1454
1458
  return false
1455
1459
  }
1456
1460
  return true
@@ -1462,7 +1466,7 @@ export default {
1462
1466
  if (this.limitNum) {
1463
1467
  num = this.limitNum
1464
1468
  }
1465
- let messageText = '仅支持上传' + num + ''
1469
+ let messageText = this.$t('formTemplate.onlyUpload' )+num+ this.$t('formTemplate.number')
1466
1470
  this.$message.error(messageText);
1467
1471
  return false
1468
1472
  }
@@ -1484,7 +1488,7 @@ export default {
1484
1488
  num = this.limitNum
1485
1489
  }
1486
1490
  if (file.length > num) {
1487
- this.$message.warning('仅支持上传' + num + '张图片')
1491
+ this.$message.warning(this.$t('formTemplate.onlyUpload' )+ num + this.$t('formTemplate.number'))
1488
1492
  return false
1489
1493
  }
1490
1494
  else {
@@ -1687,7 +1691,7 @@ export default {
1687
1691
  this.$set(this.extInfoFieldValue, this.formList.form.formFieldRelation[i].fieldId, [])
1688
1692
  this.loopCascaderSetDefalut(cascadeOptions, this.formList.form.formFieldRelation[i], extInfo.selectType)
1689
1693
  this.loopCascaderSetValue(cascadeOptions, this.formList.form.formFieldRelation[i], extInfo.selectType)
1690
-
1694
+
1691
1695
  }
1692
1696
  if (type === 'DATE_PICKER') {
1693
1697
  if (this.formList.form.formFieldRelation[i].value && this.formList.form.formFieldRelation[i].value !== null && this.formList.form.formFieldRelation[i].value !== '') {
@@ -1976,27 +1980,27 @@ export default {
1976
1980
  if (checkDescription.checkAttachment && this.attachmentList.length == 0) {
1977
1981
  attachmentFlag = false
1978
1982
  }
1979
- let text = this.isBaiLi ? '反馈描述' : '问题描述'
1983
+ let text = this.isBaiLi ? this.$t('formTemplate.feedbackDes') : this.$t('formTemplate.orderDes')
1980
1984
  if (!textFlag) {
1981
- errorText = text + '必须要有文字'
1985
+ errorText = text + this.$t('formTemplate.textFlag')
1982
1986
  }
1983
1987
  if (!imageOrAttachment) {
1984
- errorText = text + '必须要有图片或附件'
1988
+ errorText = text + this.$t('formTemplate.imageOrAttachment')
1985
1989
  }
1986
1990
  if (!imageFlag) {
1987
- errorText = text + '必须要有图片'
1991
+ errorText = text + this.$t('formTemplate.imageFlag')
1988
1992
  }
1989
1993
  if (!attachmentFlag) {
1990
- errorText = text + '必须要有附件'
1994
+ errorText = text + this.$t('formTemplate.attachmentFlag')
1991
1995
  }
1992
1996
  if (!textFlag && (!imageFlag || !attachmentFlag)) {
1993
- errorText = text + '必须要有文字和' + (!imageFlag ? '图片' : '附件')
1997
+ errorText = text + this.$t('formTemplate.textFlag') + this.$t('formTemplate.and') + (!imageFlag ? this.$t('formTemplate.image') : this.$t('formTemplate.file'))
1994
1998
  }
1995
1999
  if (!imageFlag && !attachmentFlag) {
1996
- errorText = text + '必须要有图片和附件'
2000
+ errorText = text + this.$t('formTemplate.imageFlag') + this.$t('formTemplate.and') + this.$t('formTemplate.file')
1997
2001
  }
1998
2002
  if (!imageFlag && !attachmentFlag && !textFlag) {
1999
- errorText = text + '必须要有文字、图片和附件'
2003
+ errorText = text + this.$t('formTemplate.textFlag') + ',' + this.$t('formTemplate.image') + this.$t('formTemplate.and') + this.$t('formTemplate.file')
2000
2004
  }
2001
2005
  if (errorText) {
2002
2006
  this.$message.error(errorText);
@@ -2005,7 +2009,7 @@ export default {
2005
2009
  let d = document.createElement('div')
2006
2010
  d.innerHTML = this.workOrderDestail.value
2007
2011
  if (checkDescription.required && !d.innerText && !this.workOrderDestail.value.includes('img') && this.attachmentList.length == 0) {
2008
- let errorText = this.isBaiLi ? '反馈描述是必填的' : '问题描述是必填的'
2012
+ let errorText = this.isBaiLi ? this.$t('formTemplate.feedbackDesRequired') : this.$t('formTemplate.orderDesRequired')
2009
2013
  this.$message.error(errorText);
2010
2014
  return false
2011
2015
  }
@@ -2015,7 +2019,7 @@ export default {
2015
2019
  //提交按钮事件
2016
2020
  submitClick () {
2017
2021
  if (this.uploadImgQueue || this.attachmentList.some(arrach => { return !arrach.url })) {
2018
- this.$message.warning('文件正在上传,请稍后')
2022
+ this.$message.warning(this.$t('formTemplate.uploading'))
2019
2023
  return
2020
2024
  }
2021
2025
  if (this.workOrderDestail && !this.verificationDescription()) {
@@ -2094,7 +2098,7 @@ export default {
2094
2098
  }
2095
2099
  if (this.formShow.form.formFieldRelation[i].relationDisplay && this.formShow.form.formFieldRelation[i].display && this.formShow.form.formFieldRelation[i].fieldId !== 'workorder_description') {
2096
2100
  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)) {
2097
- this.$message.error('请完善' + this.formShow.form.formFieldRelation[i].formField.name)
2101
+ this.$message.error(this.$t('formTemplate.pleaseImprove' )+ this.formShow.form.formFieldRelation[i].formField.name)
2098
2102
  return
2099
2103
  }
2100
2104
  }
@@ -2125,7 +2129,7 @@ export default {
2125
2129
  console.error('formShow', newForm)
2126
2130
  this.$emit('submitClick', newForm)
2127
2131
  this.disableds = true
2128
- this.submitValue = '已提交'
2132
+ this.submitValue = this.$t('common.submited')
2129
2133
  },
2130
2134
  strIsNull (str) {
2131
2135
  if (str == "") return true;
@@ -3504,4 +3508,4 @@ export default {
3504
3508
  height: 100%;
3505
3509
  overflow: hidden;
3506
3510
  }
3507
- </style>
3511
+ </style>
@@ -3,11 +3,11 @@
3
3
  <div class="summaryHeader">
4
4
  <div class="left">
5
5
  <i class="iconfont guoran-tongyichicun-write-29-jiqiren"></i>
6
- <span>智能摘要</span>
6
+ <span>{{$t('previewPdf.intelligentSummary')}}</span>
7
7
  </div>
8
8
  <div class="right">
9
9
  <div class="regenerationBtn" @click="regeneration">
10
- <template v-if="!isLoading">重新生成</template>
10
+ <template v-if="!isLoading">{{$t('previewPdf.regeneration')}}</template>
11
11
  <template v-else>
12
12
  <img
13
13
  height="20px"
@@ -17,7 +17,7 @@
17
17
  srcset
18
18
  style="margin-right: 6px"
19
19
  />
20
- <span>生成中</span>
20
+ <span>{{$t('previewPdf.generating')}}</span>
21
21
  </template>
22
22
  </div>
23
23
  <i class="iconfont guoran-tongyichicun-shouqi" @click="closeSummary"></i>
@@ -26,7 +26,7 @@
26
26
  <div class="summaryContent">
27
27
  <span>{{ typedContent }}</span>
28
28
  </div>
29
- <div class="intelligentBottom" v-if="recommendQuestions.length > 0">
29
+ <div class="intelligentBottom" v-if="recommendQuestions.length > 0 && !formKnowledgeManagement">
30
30
  <div class="intelligentQues"
31
31
  v-for="(item,index) in recommendQuestions"
32
32
  :key="index"
@@ -59,6 +59,10 @@ export default {
59
59
  default() {
60
60
  return []
61
61
  }
62
+ },
63
+ formKnowledgeManagement:{
64
+ type: Boolean,
65
+ default: false
62
66
  }
63
67
  },
64
68
  methods:{