|
@@ -4,27 +4,81 @@
|
|
|
<div class="wrap-item">
|
|
|
<div class="header flex">
|
|
|
<ul class="tab flex">
|
|
|
- <li
|
|
|
- :class="['tab-item',{'act':item.key===sourceForm.type}]"
|
|
|
- v-for="item in tabSources"
|
|
|
- :key="item.key"
|
|
|
- >{{item.label}}</li>
|
|
|
+ <li :class="['tab-item',{'act':sourceForm.type===1}]" @click="tabClick(1)"><!-- 原文 -->{{$t('SemanticsManage.AiSummeryPage.source_tab1')}}</li>
|
|
|
+ <li :class="['tab-item',{'act':sourceForm.type===2}]" @click="tabClick(2)">
|
|
|
+
|
|
|
+ <el-popover
|
|
|
+ placement="bottom"
|
|
|
+ trigger="click"
|
|
|
+ :disabled="sourceForm.type!==2"
|
|
|
+ >
|
|
|
+ <el-cascader-panel
|
|
|
+ v-model="sourceForm.docId"
|
|
|
+ :options="docOptions"
|
|
|
+ :props="{
|
|
|
+ emitPath: false
|
|
|
+ }"
|
|
|
+ @change="selectDocument"
|
|
|
+ />
|
|
|
+ <span slot="reference" :class="{'editsty':sourceForm.type===2}"><!-- 文档库 -->{{$t('SemanticsManage.AiSummeryPage.source_tab2')}}</span>
|
|
|
+ </el-popover>
|
|
|
+ </li>
|
|
|
+ <li :class="['tab-item',{'act':sourceForm.type===3}]" @click="tabClick(3)">
|
|
|
+
|
|
|
+ <div class="upload-row">
|
|
|
+ <el-upload
|
|
|
+ style="display: inline-block; margin-right: 8px"
|
|
|
+ accept=".pptx,.pdf,.docx"
|
|
|
+ action=""
|
|
|
+ :http-request="handleUpload"
|
|
|
+ :before-upload="handleBeforeUpload"
|
|
|
+ :show-file-list="false"
|
|
|
+ :disabled="isUploading">
|
|
|
+ <!-- <img src="~@/assets/img/icons/ai-upload.png" /> -->
|
|
|
+ <!-- 上传文件 -->{{$t('SemanticsManage.AiSummeryPage.source_tab3')}}
|
|
|
+ </el-upload>
|
|
|
+ </div>
|
|
|
+ </li>
|
|
|
</ul>
|
|
|
- <span class="editsty"><!-- 重新选择 -->{{$t('SemanticsManage.AiSummeryPage.rechoose')}}</span>
|
|
|
+ <span class="editsty" @click="clearSelection"><!-- 重新选择 -->{{$t('SemanticsManage.AiSummeryPage.rechoose')}}</span>
|
|
|
</div>
|
|
|
|
|
|
<div class="input-main">
|
|
|
- <div class="title" v-if="sourceForm.type===1">
|
|
|
- <label><!-- 标题 -->{{$t('SemanticsManage.AiSummeryPage.source_title')}}</label>
|
|
|
- <el-input
|
|
|
- type="text"
|
|
|
- v-model="sourceForm.title"
|
|
|
- style="width:200px;"
|
|
|
- placeholder="请输入标题"
|
|
|
- />
|
|
|
- </div>
|
|
|
+ <template v-if="sourceForm.type===1">
|
|
|
+ <div class="title">
|
|
|
+ <label><!-- 标题 -->{{$t('SemanticsManage.AiSummeryPage.source_title')}}</label>
|
|
|
+ <el-input
|
|
|
+ type="text"
|
|
|
+ v-model="sourceForm.title"
|
|
|
+ style="width:200px;"
|
|
|
+ placeholder="请输入标题"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <!-- 原文 -->
|
|
|
+ <Editor ref="sourceContRef"/>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <!-- 文档库 -->
|
|
|
+ <template v-else-if="sourceForm.type===2">
|
|
|
+ <div class="title">
|
|
|
+ <label><!-- 标题 -->{{$t('SemanticsManage.AiSummeryPage.source_title')}}</label>
|
|
|
+ <p>{{docInfo.Title}}</p>
|
|
|
+ </div>
|
|
|
+ <div class="document-html" v-if="docInfo.SectionList">
|
|
|
+ <p v-for="doc in docInfo.SectionList" :key="doc.SaDocSectionId">{{doc.innerText}}</p>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
|
|
|
- <Editor ref="sourceContRef"/>
|
|
|
+ <!-- 上传文件 -->
|
|
|
+ <template v-else-if="sourceForm.type===3">
|
|
|
+ <div class="title">
|
|
|
+ <label><!-- 标题 -->{{$t('SemanticsManage.AiSummeryPage.source_title')}}</label>
|
|
|
+ <p v-if="fileInfo.Id" @click="previewFileHandle(fileInfo.ResourceUrl)">
|
|
|
+ <img :src="iconGetMap(fileInfo.ResourceUrl)" width="16" height="16"/>
|
|
|
+ {{fileInfo.ResourceName}}
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
@@ -37,7 +91,17 @@
|
|
|
placement="bottom"
|
|
|
trigger="click"
|
|
|
>
|
|
|
- <el-cascader-panel :options="ownPromptOpts" :props="promptOptProps"/>
|
|
|
+ <el-cascader-panel
|
|
|
+ ref="myPromptRef"
|
|
|
+ v-model="promptForm.myPrompt"
|
|
|
+ :options="myPromptOptions"
|
|
|
+ :props="{
|
|
|
+ label: 'Title',
|
|
|
+ value: 'AiPromptId',
|
|
|
+ emitPath: false
|
|
|
+ }"
|
|
|
+ @change="selectPrompt($event,'mine')"
|
|
|
+ />
|
|
|
<span slot="reference" class="editsty"><!-- 我的提示词 -->{{$t('SemanticsManage.AiSummeryPage.my_prompt')}}</span>
|
|
|
</el-popover>
|
|
|
|
|
@@ -45,7 +109,15 @@
|
|
|
placement="bottom"
|
|
|
trigger="click"
|
|
|
>
|
|
|
- <el-cascader-panel :options="publicPromptOpts" :props="promptOptProps"/>
|
|
|
+ <el-cascader-panel
|
|
|
+ ref="publicPromptRef"
|
|
|
+ v-model="promptForm.publicPrompt"
|
|
|
+ :options="publicPromptOptions"
|
|
|
+ :props="{
|
|
|
+ emitPath: false
|
|
|
+ }"
|
|
|
+ @change="selectPrompt($event,'public')"
|
|
|
+ />
|
|
|
<span slot="reference" class="editsty"><!-- 公共提示词 -->{{$t('SemanticsManage.AiSummeryPage.public_prompt')}}</span>
|
|
|
</el-popover>
|
|
|
</div>
|
|
@@ -70,10 +142,10 @@
|
|
|
<Editor ref="promptContRef"/>
|
|
|
|
|
|
<div class="bottom flex">
|
|
|
- <el-button type="primary" @click="handleSendMessage">
|
|
|
- <i class="el-icon-s-promotion" style="margin-right:5px;"/><!-- 发送 -->{{$t('SemanticsManage.AiSummeryPage.label_model')}}
|
|
|
+ <el-button type="primary" @click="handleSendMessage" :disabled="isSending">
|
|
|
+ <i class="el-icon-s-promotion" style="margin-right:5px;"/><!-- 发送 -->{{$t('SemanticsManage.AiSummeryPage.send_btn')}}
|
|
|
</el-button>
|
|
|
- <el-button type="primary" @click="handleSendMessage(true)"><!-- 新对话框中发送 -->{{$t('SemanticsManage.AiSummeryPage.new_send_btn')}}</el-button>
|
|
|
+ <el-button type="primary" @click="handleSendMessage(true)" :disabled="isSending"><!-- 新对话框中发送 -->{{$t('SemanticsManage.AiSummeryPage.new_send_btn')}}</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -82,16 +154,16 @@
|
|
|
<div class="create-header flex">
|
|
|
<div>
|
|
|
<span><!-- 纪要名称 -->{{$t('SemanticsManage.AiSummeryPage.summery_name')}}</span>
|
|
|
- <el-input v-model="resultData.title" :placeholder="$t('SemanticsManage.AiSummeryPage.ph_search')" style="width:200px"/>
|
|
|
+ <el-input v-model="resultForm.title" :placeholder="$t('SemanticsManage.AiSummeryPage.ph_search')" style="width:200px"/>
|
|
|
</div>
|
|
|
<div>
|
|
|
<span><!-- 纪要分类 -->{{$t('SemanticsManage.AiSummeryPage.summery_clasify')}}</span>
|
|
|
<el-cascader
|
|
|
- v-model="resultData.classify"
|
|
|
+ v-model="resultForm.classifyId"
|
|
|
:options="classifyOptions"
|
|
|
:props="{
|
|
|
label: 'ClassifyName',
|
|
|
- value: 'ClassifyId',
|
|
|
+ value: 'AiSummaryClassifyId',
|
|
|
children: 'Children',
|
|
|
checkStrictly: true,
|
|
|
emitPath: false,
|
|
@@ -103,7 +175,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="create-cont">
|
|
|
- <div v-html="resultData.content" class="result-text"></div>
|
|
|
+ <div v-html="resultForm.content" class="result-text"></div>
|
|
|
<div class="bottom">
|
|
|
<el-button type="primary" @click="saveSummeryHandle"><!-- 保存 -->{{$t('Dialog.confirm_save_btn')}}</el-button>
|
|
|
<el-button type="primary" plain @click="$router.go(-1)"><!-- 取消 -->{{$t('Dialog.cancel_btn')}}</el-button>
|
|
@@ -113,6 +185,10 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
+import { aiSummeryInterface } from '@/api/modules/semanticsApi';
|
|
|
+import {documentInterface} from '@/api/modules/semanticsApi.js';
|
|
|
+import {aiQAInterence} from '@/api/modules/aiApi.js';
|
|
|
+import { formatFile } from '../utils/index';
|
|
|
import Editor from './components/editor.vue'
|
|
|
export default {
|
|
|
components: { Editor },
|
|
@@ -127,7 +203,6 @@ export default {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
-
|
|
|
modelList:[
|
|
|
{
|
|
|
label:'GPT',
|
|
@@ -138,51 +213,288 @@ export default {
|
|
|
key:'Kimi',
|
|
|
},
|
|
|
],
|
|
|
+
|
|
|
sourceForm: {
|
|
|
- content: '',
|
|
|
+ docId: 0,
|
|
|
title: '',
|
|
|
- type: 1
|
|
|
+ type: 1,
|
|
|
+ fileId: '',
|
|
|
},
|
|
|
+ docOptions:[],
|
|
|
+ docInfo: {},
|
|
|
+ fileInfo: {},//上传文件信息
|
|
|
+ fileTypeRule:new RegExp(/\.pdf|\.pptx|\.docx$/,'i'),
|
|
|
+ isUploading: false,
|
|
|
|
|
|
- ownPromptOpts: [],//我的提示词库
|
|
|
- publicPromptOpts: [],//公共提示词库
|
|
|
- promptOptProps: {
|
|
|
- label: '',
|
|
|
- value: '',
|
|
|
- children: 'Child',
|
|
|
- emitPath: false
|
|
|
- },
|
|
|
+ myPromptOptions: [],//我的提示词库
|
|
|
+ publicPromptOptions: [],//公共提示词库
|
|
|
promptForm: {
|
|
|
+ myPrompt: 0,
|
|
|
+ publicPrompt: 0,
|
|
|
content: '',
|
|
|
model:'Kimi'
|
|
|
},
|
|
|
|
|
|
isSending: false,//发送中
|
|
|
|
|
|
- resultData: {
|
|
|
+ chatTopicId: 0,
|
|
|
+
|
|
|
+ classifyOptions: [],
|
|
|
+ resultForm: {
|
|
|
content: '',
|
|
|
title: '',
|
|
|
- classify: 0
|
|
|
+ classifyId: 0
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
mounted(){
|
|
|
-
|
|
|
+ this.getDocumentOptions();
|
|
|
+ this.getPublicPrompt();
|
|
|
+ this.getMyPrompt();
|
|
|
+ this.getClassify()
|
|
|
},
|
|
|
methods:{
|
|
|
|
|
|
- /* 发送对话 */
|
|
|
- handleSendMessage(openNew=false) {
|
|
|
- if(this.isSending) return
|
|
|
+ /* 获取文档库 */
|
|
|
+ async getDocumentOptions() {
|
|
|
+ const res = await documentInterface.getClassifyList()
|
|
|
+
|
|
|
+ if(res.Ret!==200) return
|
|
|
+ this.docOptions = res.Data&&res.Data.map(_ =>{
|
|
|
+ return {
|
|
|
+ ..._,
|
|
|
+ label: _.ClassifyName,
|
|
|
+ value: _.SaDocClassifyId,
|
|
|
+ children: _.Children&&_.Children.map(sub_item =>({
|
|
|
+ ...sub_item,
|
|
|
+ label: sub_item.Title,
|
|
|
+ value: sub_item.SaDocId,
|
|
|
+ }))
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ // 获取提示词
|
|
|
+ async getPublicPrompt() {
|
|
|
+ const publicRes = await aiSummeryInterface.getPublicPromptClassify()
|
|
|
+ if(publicRes.Ret !== 200) return
|
|
|
+ const publicData = publicRes.Data || []
|
|
|
+ this.publicPromptOptions = publicData.map(_ => {
|
|
|
+ return {
|
|
|
+ ..._,
|
|
|
+ label: _.GroupName,
|
|
|
+ value: _.GroupId,
|
|
|
+ children: _.PromptList.map(childitem =>({
|
|
|
+ ...childitem,
|
|
|
+ label: childitem.Title,
|
|
|
+ value: childitem.AiPromptId
|
|
|
+ })),
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ async getMyPrompt() {
|
|
|
+ const res = await aiSummeryInterface.getMyPromptClassify()
|
|
|
+ if(res.Ret !==200) return
|
|
|
+ this.myPromptOptions = res.Data||[]
|
|
|
+ },
|
|
|
+
|
|
|
+ async getClassify() {
|
|
|
+ const res = await aiSummeryInterface.getSummeryAllClassify();
|
|
|
+ if(res.Ret !== 200) return
|
|
|
+
|
|
|
+ this.classifyOptions = res.Data.AllNodes;
|
|
|
+ },
|
|
|
+
|
|
|
+ selectPrompt(val,type='mine') {
|
|
|
+ let publicPromptArr = this.publicPromptOptions.map(_ => _.PromptList).flat(1)
|
|
|
+
|
|
|
+ let promptItem = type==='public'
|
|
|
+ ? publicPromptArr.find(_ => _.AiPromptId===val)
|
|
|
+ : this.myPromptOptions.find(_ => _.AiPromptId===val)
|
|
|
+
|
|
|
+ if(promptItem) {
|
|
|
+ this.$refs.promptContRef.initData(promptItem.PromptContent)
|
|
|
+ this.promptForm.myPrompt = 0;
|
|
|
+ this.promptForm.publicPrompt = 0;
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ tabClick(type) {
|
|
|
+ if((this.$refs.sourceContRef&&this.$refs.sourceContRef.content)
|
|
|
+ || this.fileInfo.Id
|
|
|
+ || this.docInfo.SaDocId) return this.$message.warning('请先清除内容重新选择')
|
|
|
+ this.sourceForm.type = type;
|
|
|
+ },
|
|
|
+
|
|
|
+ clearSelection() {
|
|
|
+ this.sourceForm.docId = 0;
|
|
|
+ this.sourceForm.title = '';
|
|
|
+ this.sourceForm.fileId = '';
|
|
|
+ this.docInfo = {}
|
|
|
+ this.fileInfo = {}
|
|
|
+ this.chatTopicId = 0;
|
|
|
+ this.$refs.sourceContRef&&this.$refs.sourceContRef.initData('')
|
|
|
+ },
|
|
|
+
|
|
|
+ selectDocument(val) {
|
|
|
+ // console.log(val)
|
|
|
+ this.getDocDetail(val)
|
|
|
+ },
|
|
|
+
|
|
|
+ //获取文档详情
|
|
|
+ getDocDetail(SaDocId){
|
|
|
+
|
|
|
+ documentInterface.getDocumentDetail({
|
|
|
+ DocId:Number(SaDocId)
|
|
|
+ }).then(res=>{
|
|
|
+ if(res.Ret!==200) return
|
|
|
+ this.docInfo = formatFile(res.Data)
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ handleBeforeUpload(e) {
|
|
|
+ if(!this.fileTypeRule.test(e.name)){
|
|
|
+ this.$message.error("上传文件格式只支持PDF、PPTX、DOCX");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if(!(e.size/1024/1024 < 50.1)){
|
|
|
+ this.$message.error("上传文件大小不超过50MB");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ handleUpload(e){
|
|
|
+ let {file} = e;
|
|
|
+ this.isUploading = true;
|
|
|
+ let downloadHint = this.$message({
|
|
|
+ type:"info",
|
|
|
+ message:/* '上传中,请稍后······' */this.$t('ReportManage.CloudPage.upload_msg'),
|
|
|
+ duration:0,
|
|
|
+ iconClass:'el-icon-loading'
|
|
|
+ })
|
|
|
+ let formData = new FormData()
|
|
|
+ formData.append('File',file)
|
|
|
+ formData.append('AiChatTopicId',0)
|
|
|
+ formData.append('Model',this.promptForm.model)
|
|
|
+ aiQAInterence.fileUpload(formData).then(res=>{
|
|
|
+ downloadHint.close()
|
|
|
+ this.isUploading = false;
|
|
|
+
|
|
|
+ if(res.Ret !== 200) return
|
|
|
+ let Data = res.Data || {}
|
|
|
+ this.$message.success(`${Data.ResourceName}上传成功`)
|
|
|
+ this.chatTopicId = Data.AiChatTopicId;
|
|
|
+ this.sourceForm.fileId = Data.OpenaiFileId
|
|
|
+ this.fileInfo = Data;
|
|
|
+ }).catch(()=>{
|
|
|
+ downloadHint.close()
|
|
|
+ this.isUploading = false;
|
|
|
+ })
|
|
|
+ },
|
|
|
|
|
|
+ previewFileHandle(url) {
|
|
|
+ // 预览文件
|
|
|
+ let href;
|
|
|
+ if(url.endsWith('.doc') || url.endsWith('.docx')||url.endsWith('.ppt')||
|
|
|
+ url.endsWith('.pptx') || url.endsWith('.xls')||url.endsWith('.xlsx')){
|
|
|
+ //是否是 ppt、doc、xls
|
|
|
+ href = 'https://view.officeapps.live.com/op/view.aspx?src='+url
|
|
|
+ }else{
|
|
|
+ href=url
|
|
|
+ }
|
|
|
+ window.open(href, "_blank")
|
|
|
+ },
|
|
|
+
|
|
|
+ // 文件icon
|
|
|
+ iconGetMap(url) {
|
|
|
+ let fileUrl=url.toLocaleLowerCase()
|
|
|
+
|
|
|
+ if(fileUrl.endsWith('.pdf')){
|
|
|
+ return require('@/assets/img/cloudDisk/pdf_icon.png')
|
|
|
+ }else if(fileUrl.endsWith('.pptx')){
|
|
|
+ return require('@/assets/img/cloudDisk/ppt_icon.png')
|
|
|
+ }else if(fileUrl.endsWith('.doc') || fileUrl.endsWith('.docx')){
|
|
|
+ return require('@/assets/img/cloudDisk/word_icon.png')
|
|
|
+ }else{
|
|
|
+ return require('@/assets/img/cloudDisk/config_icon.png')
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ /* 发送对话 */
|
|
|
+ async handleSendMessage(openNew=false) {
|
|
|
this.isSending = true;
|
|
|
+
|
|
|
+ let loading = this.$message({
|
|
|
+ type:"info",
|
|
|
+ message:'生成纪要中...',
|
|
|
+ duration:0,
|
|
|
+ iconClass:'el-icon-loading'
|
|
|
+ })
|
|
|
+
|
|
|
+ let OriginContent = this.sourceForm.type===1
|
|
|
+ ? this.$refs.sourceContRef.content
|
|
|
+ : ''
|
|
|
+
|
|
|
+ let params = {
|
|
|
+ AiChatTopicId: openNew ? 0 : this.chatTopicId||0,
|
|
|
+ SaDocId: this.sourceForm.type===2?this.docInfo.SaDocId: 0,
|
|
|
+ OriginContent,
|
|
|
+ OpenaiFileId: this.sourceForm.type===3 ? [this.sourceForm.fileId] : [],
|
|
|
+ Prompt: this.$refs.promptContRef.content,
|
|
|
+ Model: this.promptForm.model
|
|
|
+ }
|
|
|
+
|
|
|
+ const res = await aiSummeryInterface.createAiSummery(params)
|
|
|
+
|
|
|
+ loading.close();
|
|
|
+ this.isSending = false;
|
|
|
+ this.$message.success(res.Msg)
|
|
|
+ if(res.Ret !== 200) return
|
|
|
+
|
|
|
+ this.resultForm.content = res.Data.Answer;
|
|
|
+ this.chatTopicId = res.Data.AiChatTopicId;
|
|
|
},
|
|
|
|
|
|
|
|
|
/* 保存纪要 */
|
|
|
- saveSummeryHandle() {
|
|
|
- if(!this.resultData.title) return this.$message.warning(this.$t('SemanticsManage.AiSummeryPage.ph_search'))
|
|
|
- if(!this.resultData.classify) return this.$message.warning(/* '请选择纪要分类' */this.$t('SemanticsManage.AiSummeryPage.ph_classify'))
|
|
|
+ async saveSummeryHandle() {
|
|
|
+ if(!this.resultForm.content) return this.$message.warning('请先生成纪要')
|
|
|
+
|
|
|
+ if(this.sourceForm.type===1 && !this.sourceForm.title) return this.$message.warning('请输入原文标题')
|
|
|
+
|
|
|
+ if(!this.resultForm.title) return this.$message.warning(this.$t('SemanticsManage.AiSummeryPage.ph_search'))
|
|
|
+
|
|
|
+ if(!this.resultForm.classifyId) return this.$message.warning(/* '请选择纪要分类' */this.$t('SemanticsManage.AiSummeryPage.ph_classify'))
|
|
|
+
|
|
|
+ let OriginContent = this.sourceForm.type===1
|
|
|
+ ? this.$refs.sourceContRef.content
|
|
|
+ : ''
|
|
|
+
|
|
|
+ let params = {
|
|
|
+ SaDocId: this.sourceForm.type===2 ? this.sourceForm.docId : 0,
|
|
|
+ OriginTitle: this.sourceForm.title,
|
|
|
+ OriginContent,
|
|
|
+ SummaryContent: this.resultForm.content,
|
|
|
+ ClassifyId: this.resultForm.classifyId,
|
|
|
+ Title: this.resultForm.title,
|
|
|
+ Prompt: this.$refs.promptContRef.content,
|
|
|
+ OpenaiFileName:this.sourceForm.type===3 ? this.fileInfo.ResourceName:'',
|
|
|
+ OpenaiFilePath:this.sourceForm.type===3 ? this.fileInfo.ResourceUrl:''
|
|
|
+ }
|
|
|
+ const res = await aiSummeryInterface.summerySave(params)
|
|
|
+
|
|
|
+ if(res.Ret !== 200) return
|
|
|
+ this.$message.success(res.Msg)
|
|
|
+
|
|
|
+ this.$router.replace({
|
|
|
+ path: '/aISummeryPage',
|
|
|
+ query: {
|
|
|
+ classifyId: res.Data.ParentId,
|
|
|
+ code: res.Data.UniqueCode,
|
|
|
+ id: res.Data.AiSummaryId
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
|
|
|
},
|
|
|
},
|
|
@@ -221,6 +533,16 @@ export default {
|
|
|
|
|
|
.title {
|
|
|
margin-bottom: 10px;
|
|
|
+ display: flex;
|
|
|
+ font-size: 16px;
|
|
|
+ align-items: center;
|
|
|
+ label { margin-right: 20px; }
|
|
|
+ }
|
|
|
+
|
|
|
+ .document-html {
|
|
|
+ padding: 20px 0;
|
|
|
+ height: 400px;
|
|
|
+ overflow-y: auto;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -252,7 +574,9 @@ export default {
|
|
|
padding: 20px;
|
|
|
}
|
|
|
.result-text {
|
|
|
- min-height: 300px;
|
|
|
+ height: 250px;
|
|
|
+ overflow-y: auto;
|
|
|
+ margin-bottom: 10px;
|
|
|
}
|
|
|
.bottom {
|
|
|
display: flex;
|
|
@@ -262,5 +586,9 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ #froala-editor-documentContent {
|
|
|
+ display: none !important;
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|