main
zhangqun 11 months ago
parent 7ec85a3de7
commit 9474184eb9
  1. 2
      pages/index/detail.vue
  2. 6
      pages/investigation/task.vue
  3. 556
      pages/knowledge/index.vue
  4. 30
      pages/map/index.vue

@ -236,7 +236,7 @@ export default {
userId: this.params.userId, userId: this.params.userId,
deptId: this.params.deptId, deptId: this.params.deptId,
stream: true, stream: true,
type: 1, type: '1',
id: this.params.id, id: this.params.id,
taskId: this.params.taskId, taskId: this.params.taskId,
sectionId: this.params.sectionId, sectionId: this.params.sectionId,

@ -318,7 +318,7 @@
<uni-forms-item label="隐患图片" label-position="top" label-width="200px" /> <uni-forms-item label="隐患图片" label-position="top" label-width="200px" />
<u-upload :fileList="fileList" @afterRead="(e) => afterRead(e, 'fileList')" <u-upload :fileList="fileList" @afterRead="(e) => afterRead(e, 'fileList')"
@delete="(e) => deletePic(e, 'fileList')" name="1" :maxCount="1"></u-upload> @delete="(e) => deletePic(e, 'fileList')" name="1"></u-upload>
</view> </view>
<view class="detail-item"> <view class="detail-item">
<uni-forms-item label="补充信息" label-position="top" label-width="200px" /> <uni-forms-item label="补充信息" label-position="top" label-width="200px" />
@ -927,7 +927,7 @@
hdTerm: this.hiddenDangerList2[2].id, hdTerm: this.hiddenDangerList2[2].id,
hdTermName: this.hiddenDangerList2[2].itemname, hdTermName: this.hiddenDangerList2[2].itemname,
hdDesc: this.describe.hdDesc, hdDesc: this.describe.hdDesc,
hdPic: this.fileList.length > 0 ? this.fileList[0].url : '', hdPic: this.fileList.length > 0 ? this.fileList : '',
hdInfo: this.describe.hdInfo, hdInfo: this.describe.hdInfo,
dangerProblem: this.hiddenDangerList2[0].itemname + '/' + this.hiddenDangerList2[1].itemname + dangerProblem: this.hiddenDangerList2[0].itemname + '/' + this.hiddenDangerList2[1].itemname +
'/' + this.hiddenDangerList2[2].itemname '/' + this.hiddenDangerList2[2].itemname
@ -1081,7 +1081,7 @@
hdTerm: r.id, hdTerm: r.id,
hdDesc: r.checkedSelect ? r.checkedSelect.hdDesc : '', hdDesc: r.checkedSelect ? r.checkedSelect.hdDesc : '',
hdPic: r.checkedSelect ? r.checkedSelect.hdPic : '', hdPic: r.checkedSelect ? r.checkedSelect.hdPic : '',
hdInfo: r.checkedSelect ? r.checkedSelect.hdPic : '', hdInfo: r.checkedSelect ? r.checkedSelect.hdInfo : '',
pcType: 1 pcType: 1
}) })
}) })

@ -1,22 +1,25 @@
<template> <template>
<view class="detail"> <view class="detail">
<scroll-view scroll-y="true" :scroll-top="scrollTop" <scroll-view
:style="{height: isExpanded ? 'calc(100% - 332rpx)' : 'calc(100% - 210rpx)'}" class="chatlist" scroll-y="true"
ref="scrollView" @click="clickContent"> :scroll-top="scrollTop"
:style="{
height: isExpanded ? 'calc(100% - 332rpx)' : 'calc(100% - 210rpx)',
}"
class="chatlist"
ref="scrollView"
@click="clickContent"
>
<view v-if="!msgList.length" class="helloContent"> <view v-if="!msgList.length" class="helloContent">
<image :src="$.imgSrc + '/left_user.png'" class="imgLeft" /> <image :src="$.imgSrc + '/left_user.png'" class="imgLeft" />
<view class="titleBox"> <view class="titleBox">
<view class="titleOne"> <view class="titleOne"> 您好我是海信通途大模型 </view>
您好我是海信通途大模型
</view>
<view class="titleTwo"> <view class="titleTwo">
作为你的智能伙伴我可以为你提供交通领域知识的答疑解惑 作为你的智能伙伴我可以为你提供交通领域知识的答疑解惑
</view> </view>
<view class=""> <view class=""> 你这样试着问我: </view>
你这样试着问我:
</view>
<view class="tipQuestions"> <view class="tipQuestions">
<view class="" v-for="(item,index) in tipQuestions" :key=index> <view class="" v-for="(item, index) in tipQuestions" :key="index">
<view class="tipItem" @click="handleBtn(item.text)"> <view class="tipItem" @click="handleBtn(item.text)">
<view class="title"> <view class="title">
{{ item.title }} {{ item.title }}
@ -29,10 +32,20 @@
</view> </view>
</view> </view>
</view> </view>
<view :class="['bar', item.answerId == '0' ? 'currAnswer' : '']" v-for="(item,index) in msgList" <view
:key="item.id"> :class="['bar', item.answerId == '0' ? 'currAnswer' : '']"
v-for="(item, index) in msgList"
:key="item.id"
>
<!--<image :src="item.answerId == '0' ? $.imgSrc + '/self.png' : $.imgSrc + '/left_user.png'" class="img" />--> <!--<image :src="item.answerId == '0' ? $.imgSrc + '/self.png' : $.imgSrc + '/left_user.png'" class="img" />-->
<image :src="item.answerId == '0' ? 'data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDY3IDc5LjE1Nzc0NywgMjAxNS8wMy8zMC0yMzo0MDo0MiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYwQjdBNUI1OTNGMzExRTk5OEMyRUJEREM0NTA0NzFEIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYwQjdBNUI2OTNGMzExRTk5OEMyRUJEREM0NTA0NzFEIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjBCN0E1QjM5M0YzMTFFOTk4QzJFQkREQzQ1MDQ3MUQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjBCN0E1QjQ5M0YzMTFFOTk4QzJFQkREQzQ1MDQ3MUQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6ceP8WAAAFRUlEQVR42sxYa0xbVRzvvb29bS9taQvtYBQ63kxhsBlw6mbwQZyabE4H6geTZfOR+MFPiyZO4jRxiYl+UOOXOdTERxyLcxs+trkFxbGxwZgb22CAPDoKpQ8ofVFa7q3/g7ekK33ce9st/pNfbnLPOf/zyzn/839hoVBIJEBKAHWAdYACQA5Azo7NAywAE+Aq4CJgmO8GGA9iFGA7YBugiOc+I4BjgJ8AvnQREwOaAC8DMkWpyRzgIKAVQKdCDF3TB4C1ovRKP2Ave90xBU+weDPgmztASsTq/JbdgxexJwEfATJEd04odo+nuF7lw+wCXHR3hAHsAXQkImZkr4/iorHvHxv13cl+fdf1KbXPHxSH/5OEmKkqznY3PV5urV9f4MKwpKrQS30JMB6LGFL8dTKbYpiQ6LeuUfWP7YP6ayN25ZI9YFho59OV5qK8TL911idpaevL884HCTSWp1P4n60vs+54pMwhlxJMkgexM/xaI6+riYuh/3B6IPu9lnPFYVLLRvlA4WzXtSnV5mqDi4ogYLZ5ZJ8d7i34+PvuPA4P4vlo46dYP5VU6u7JdeMx7iZHmxEkJWIGkZKRxAofdV9FjpuD+t1hMwoT287VeZYY1AsNdUbbbdcbCmG79p8oz9crF97/6rzxltUtjxwvK9B4tmwsdHJQn8lyWbaxVj5hxulZEL/24akytBQdXiBIwyH+d4oSAmdoOoRRMoImxHgI4fXnasw1pXofR/UofDUhAy3lG/vUCikNRi4FAxcnm4sehlYlW+ShHnEpRcRqhTifrZuKrRaHj7wxZlcgktHuEMgHy41ar05NBQpWqQI81dciYpVCiP15eUJjc/rI0nyNt7Io24PjWAg9CoZl6JjzS64M2ZRZmbKgAPVViFihEGKrwT9N2j2yG6MOJSDuvNxshVuA+jXoVeqFENt4b64rnfOiRI9zDT/RAt7ckSGXJMypYHwRzRMS4AUHaoVcwry6rXoi0RwYN6N5QvTjXFPdWPJiQ4UdQpEtZt4E/9G4QNU+RMyaSs7y7q4HTcg1RLsK9D8FtVZEbCwVYl5Id7Co2IlcBgpTKagdQ+6iD9DAZ5VnPoh3XjWregYsio7LE9rP9zw2+PeQjfqk9ZIR2d0T969xvtD889oN5XoXBG/PQ+vyXDxtrQ8R6+Y62zbrIz493Lu6vfdWFoqP4f+nLoyraTihhQCNO91+4gTka6ZplxzhaMfwKikpZurX5zveaNwwqdNQXMJTN1I+xAbOhHK6ezyz8Z22ypMXxnSRpJYMwumT7KgvtZcYNN5N1YY564yPjBxHhNG6pua2yjM948myGMRlKLzB8UQz4dqUzQfOFkemz5HSUGt0nr8+pRyemM34/eKYZvfWKgsKUSvsEYJ+84HO4nN9k4oE2x2PzMeOsMVoTIHrM9BMfGM+9tdwloJ1tih9bj1zM5uJM3+RZjDIaA1xVLlYLsvEkC9ribexFDLTRCd69opZq5CTS8SMOSr/L50juoR1Q/wXezDsV4mIn4fYenJF3v/l3i2DR/4Y0rZfMmkGTDMZ4UIj8hR6+i1KJUUuznkWCMuMVxqtA9JtBrJf7+Yag7Px0fJYjvcmy0F4+TZl90igyCCnoSKanvGSyLgpmYSGrJVBX5PFJSMIPAS5WDBHSwUgEwkYdMoA2J2g8u1/VfDG2hxN2McuuBuk9kWTStS7+BXwZioBnkugBrzF7iWoDbUfUJFmUgOAtxO1ofg07l4BqFIkhPzUF+lo3N2WGwKeYVudfOuEUbbVeRTlAOnuwSZrDlMRtpNyc/hfAQYAFFwdv9Iba+4AAAAASUVORK5CYII=' : $.imgSrc + '/left_user.png'" class="img" /> <image
:src="
item.answerId == '0'
? 'data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDY3IDc5LjE1Nzc0NywgMjAxNS8wMy8zMC0yMzo0MDo0MiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYwQjdBNUI1OTNGMzExRTk5OEMyRUJEREM0NTA0NzFEIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYwQjdBNUI2OTNGMzExRTk5OEMyRUJEREM0NTA0NzFEIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjBCN0E1QjM5M0YzMTFFOTk4QzJFQkREQzQ1MDQ3MUQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjBCN0E1QjQ5M0YzMTFFOTk4QzJFQkREQzQ1MDQ3MUQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6ceP8WAAAFRUlEQVR42sxYa0xbVRzvvb29bS9taQvtYBQ63kxhsBlw6mbwQZyabE4H6geTZfOR+MFPiyZO4jRxiYl+UOOXOdTERxyLcxs+trkFxbGxwZgb22CAPDoKpQ8ofVFa7q3/g7ekK33ce9st/pNfbnLPOf/zyzn/839hoVBIJEBKAHWAdYACQA5Azo7NAywAE+Aq4CJgmO8GGA9iFGA7YBugiOc+I4BjgJ8AvnQREwOaAC8DMkWpyRzgIKAVQKdCDF3TB4C1ovRKP2Ave90xBU+weDPgmztASsTq/JbdgxexJwEfATJEd04odo+nuF7lw+wCXHR3hAHsAXQkImZkr4/iorHvHxv13cl+fdf1KbXPHxSH/5OEmKkqznY3PV5urV9f4MKwpKrQS30JMB6LGFL8dTKbYpiQ6LeuUfWP7YP6ayN25ZI9YFho59OV5qK8TL911idpaevL884HCTSWp1P4n60vs+54pMwhlxJMkgexM/xaI6+riYuh/3B6IPu9lnPFYVLLRvlA4WzXtSnV5mqDi4ogYLZ5ZJ8d7i34+PvuPA4P4vlo46dYP5VU6u7JdeMx7iZHmxEkJWIGkZKRxAofdV9FjpuD+t1hMwoT287VeZYY1AsNdUbbbdcbCmG79p8oz9crF97/6rzxltUtjxwvK9B4tmwsdHJQn8lyWbaxVj5hxulZEL/24akytBQdXiBIwyH+d4oSAmdoOoRRMoImxHgI4fXnasw1pXofR/UofDUhAy3lG/vUCikNRi4FAxcnm4sehlYlW+ShHnEpRcRqhTifrZuKrRaHj7wxZlcgktHuEMgHy41ar05NBQpWqQI81dciYpVCiP15eUJjc/rI0nyNt7Io24PjWAg9CoZl6JjzS64M2ZRZmbKgAPVViFihEGKrwT9N2j2yG6MOJSDuvNxshVuA+jXoVeqFENt4b64rnfOiRI9zDT/RAt7ckSGXJMypYHwRzRMS4AUHaoVcwry6rXoi0RwYN6N5QvTjXFPdWPJiQ4UdQpEtZt4E/9G4QNU+RMyaSs7y7q4HTcg1RLsK9D8FtVZEbCwVYl5Id7Co2IlcBgpTKagdQ+6iD9DAZ5VnPoh3XjWregYsio7LE9rP9zw2+PeQjfqk9ZIR2d0T969xvtD889oN5XoXBG/PQ+vyXDxtrQ8R6+Y62zbrIz493Lu6vfdWFoqP4f+nLoyraTihhQCNO91+4gTka6ZplxzhaMfwKikpZurX5zveaNwwqdNQXMJTN1I+xAbOhHK6ezyz8Z22ypMXxnSRpJYMwumT7KgvtZcYNN5N1YY564yPjBxHhNG6pua2yjM948myGMRlKLzB8UQz4dqUzQfOFkemz5HSUGt0nr8+pRyemM34/eKYZvfWKgsKUSvsEYJ+84HO4nN9k4oE2x2PzMeOsMVoTIHrM9BMfGM+9tdwloJ1tih9bj1zM5uJM3+RZjDIaA1xVLlYLsvEkC9ribexFDLTRCd69opZq5CTS8SMOSr/L50juoR1Q/wXezDsV4mIn4fYenJF3v/l3i2DR/4Y0rZfMmkGTDMZ4UIj8hR6+i1KJUUuznkWCMuMVxqtA9JtBrJf7+Yag7Px0fJYjvcmy0F4+TZl90igyCCnoSKanvGSyLgpmYSGrJVBX5PFJSMIPAS5WDBHSwUgEwkYdMoA2J2g8u1/VfDG2hxN2McuuBuk9kWTStS7+BXwZioBnkugBrzF7iWoDbUfUJFmUgOAtxO1ofg07l4BqFIkhPzUF+lo3N2WGwKeYVudfOuEUbbVeRTlAOnuwSZrDlMRtpNyc/hfAQYAFFwdv9Iba+4AAAAASUVORK5CYII='
: $.imgSrc + '/left_user.png'
"
class="img"
/>
<view class="content"> <view class="content">
<zeroMarkdownView :markdown="item.data" /> <zeroMarkdownView :markdown="item.data" />
<!-- <ua-markdown :source="mdvalue" /> --> <!-- <ua-markdown :source="mdvalue" /> -->
@ -44,78 +57,101 @@
<view class="bounce-dot"></view> <view class="bounce-dot"></view>
</view> </view>
</scroll-view> </scroll-view>
<view class="input-wrapper" :class="{ 'input-wrapper-expanded': isExpanded }"> <view
class="input-wrapper"
:class="{ 'input-wrapper-expanded': isExpanded }"
>
<view class="topContent"> <view class="topContent">
<input class="uni-input" placeholder="请输入内容" :value="inputValue" @confirm="handleSend" <input
@input="onKeyInput" /> class="uni-input"
placeholder="请输入内容"
<uni-icons class="uni-icon" type="plus" size="30" @click="handlePlus"></uni-icons> :value="inputValue"
@confirm="handleSend"
@input="onKeyInput"
/>
<uni-icons
class="uni-icon"
type="plus"
size="30"
@click="handlePlus"
></uni-icons>
</view> </view>
<view v-if="isExpanded" class="expanded"> <view v-if="isExpanded" class="expanded">
<view @click="chooseImage" class="expandedItem"> <view @click="chooseImage" class="expandedItem">
<uni-icons class="camera-icon" type="image" size="28"></uni-icons> <uni-icons class="camera-icon" type="image" size="28"></uni-icons>
<view>照片</view> <view>照片</view>
</view> </view>
<view class="expandedItem" style="margin-top: 6px;"> <view class="expandedItem" style="margin-top: 6px">
<image src="../../static/video.png" class="video"></image> <image src="../../static/video.png" class="video"></image>
<view>视频</view> <view>视频</view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</template> </template>
<script> <script>
import AbortController from "abort-controller/dist/abort-controller";
import zeroMarkdownView from '../../components/zeroMarkdownView/zeroMarkdownView.vue' import TopTitle from "../../components/top-title.vue";
let baseUrl = '' // import headerNavBar from '../../components/headerNavBar/headerNavBar.vue'
import zeroMarkdownView from "../../components/zeroMarkdownView/zeroMarkdownView.vue";
// import {
// EventSourcePolyfill
// } from 'event-source-polyfill';
import $ from "../../common/globalJs/globalJs.js";
import { fetchEventSource } from "@microsoft/fetch-event-source";
// import {
// baseUrl
// } from '../../utils/config.js';
let baseUrl = "";
export default { export default {
components: { zeroMarkdownView }, components: { zeroMarkdownView },
data() { data() {
return { return {
$: this.$, $: this.$,
active: 0, active: 0,
inputValue: '', inputValue: "",
es: null, es: null,
msgList: [], msgList: [],
loading: false, loading: false,
streamLoading: true, streamLoading: true,
scrollTop: 0, scrollTop: 0,
title: '', title: "",
isExpanded: false, isExpanded: false,
sessionId: '', sessionId: "",
id: '', id: "",
tipQuestions: [{ tipQuestions: [
title: '标准法规', {
text: '一级公路停车视距标准是什么?', title: "标准法规",
text: "一级公路停车视距标准是什么?",
}, },
{ {
title: '工作指南', title: "工作指南",
text: '如何开展道路安全隐患排查工作?', text: "如何开展道路安全隐患排查工作?",
}, },
{ {
title: '参考案例', title: "参考案例",
text: '请给我一个典型的视距不良路口案例。', text: "请给我一个典型的视距不良路口案例。",
} },
] ],
} };
}, },
onLoad() { onLoad() {
let params = uni.getStorageSync('itemMessage') let params = uni.getStorageSync("itemMessage");
// params = JSON.parse(decodeURIComponent(this.$route.query.params)) // params = JSON.parse(decodeURIComponent(this.$route.query.params))
// this.sessionId = params.sessionId // this.sessionId = params.sessionId
// this.id = '37020017407' // this.id = '37020017407'
this.sessionId = '37020000000' this.sessionId = "37020017407";
this.id = '37020017407' this.id = "37020017407";
// console.log(params.roadName,"5555"); // console.log(params.roadName,"5555");
let str = ''; let str = "";
if (params.roadName) { if (params.roadName) {
str += '路段名:' + params.roadName; str += "路段名:" + params.roadName;
this.title = params.roadName + '智能排查'; this.title = params.roadName + "智能排查";
} }
if (params.id) { if (params.id) {
str += ',id:' + params.id; str += ",id:" + params.id;
} }
// this.queryChat("," + str, ); // this.queryChat("," + str, );
}, },
@ -125,70 +161,329 @@ import zeroMarkdownView from '../../components/zeroMarkdownView/zeroMarkdownView
this.es = null; this.es = null;
} }
}, },
methods: {async queryChat(voiceText) { // methods: {
// async queryChat(voiceText) {
// // console.log(voiceText,"voiceText");
// this.loading = true;
// const [err, res] = await uni.request({
// // url: 'http://10.16.3.159:8777/api/local_doc_qa/local_doc_chat',
// url: this.$.chatUrl+'/chat',
// dataType: 'json',
// method: 'POST',
// // responseType: 'arraybuffer',
// headers: {
// // 'Accept': 'text/event-stream',
// 'content-type': 'application/json'
// },
// data: {
// voiceText,
// "sceneFlag": "",
// "sessionId": this.sessionId,
// "id": this.id,
// "multiType": "",
// "userId": "admin1",
// "deptId": "3702000000",
// "type": '0',
// "stream": 'false',
// // "user_id": "zzp",
// // "kb_ids": ["KBa80ea15e786241eca70a20f136f4e34c"],
// // "question": "",
// // "streaming": true,
// // "history": []
// }
// });
// console.log(res)
// if (res && res.data && res.data.code == 200) {
// // console.log('request success', res.data)
// const {
// result = {}
// } = res.data;
// const {
// data = {}
// } = result;
// if (data.tabkey - 1 != this.active) {
// this.active = data.tabkey - 1 > 0 ? data.tabkey - 1 : 0;
// }
// if (data.content) {
// this.changeMsgList(data.answerId || '1', data.content);
// }
// this.loading = false;
// } else {
// if (err) {
// console.log('request fail', err.errMsg);
// }
// uni.showToast({
// title: "",
// icon: "error",
// duration: 2000
// })
// }
// },
// //
// handleBtn(text) {
// this.handleSend(text)
// },
// //
// onKeyInput(event) {
// this.inputValue = event.detail.value
// },
// //
// handleSend(text) {
// if (!this.inputValue & !text) {
// uni.showToast({
// title: "",
// icon: "closeempty",
// duration: 2000
// })
// }
// this.changeMsgList('0', this.inputValue || text);
// this.queryChat(this.inputValue || text,);
// this.inputValue = '';
// },
// //
// changeMsgList(answerId, data) {
// let id = 1;
// if (this.msgList.length > 0) {
// id = this.msgList[this.msgList.length - 1].id + 1;
// }
// if (answerId == '1') { //
// let newdata = '';
// let index = 0;
// const timer = setInterval(() => {
// console.log(this.msgList);
// newdata = newdata += data[index]
// if (this.msgList?.filter(item => (item.id == id)).length == 0) {
// this.msgList = [...this.msgList, {
// id,
// answerId,
// data: newdata,
// }];
// } else {
// this.msgList[this.msgList.length - 1].data = newdata;
// }
// index += 1;
// this.$nextTick(() => {
// const height = this.$refs.scrollView && this.$refs.scrollView.$refs && this
// .$refs.scrollView.$refs.content ? this.$refs.scrollView.$refs.content
// .scrollHeight : 0;
// this.scrollTop = height;
// })
// if (newdata == data) {
// clearInterval(timer);
// }
// }, 50)
// } else {
// this.msgList = [...this.msgList, {
// id,
// answerId,
// data,
// }];
// this.$nextTick(() => {
// const height = this.$refs.scrollView && this.$refs.scrollView.$refs && this.$refs
// .scrollView.$refs.content ? this.$refs.scrollView.$refs.content.scrollHeight : 0;
// this.scrollTop = height;
// })
// }
// },
// handlePlus() {
// this.isExpanded = !this.isExpanded;
// },
// clickContent() {
// if (this.isExpanded) {
// this.isExpanded = !this.isExpanded;
// }
// },
// goToKnowledge() {
// uni.navigateTo({
// url: `/pages/home/detail?params=${encodeURIComponent(JSON.stringify(item))}`
// })
// },
// //
// chooseImage() {
// uni.chooseImage({
// count: 6, //9
// sizeType: ['original', 'compressed'], //
// sourceType: ['album'], //
// success: (res) => {
// if (res.tempFilePaths && res.tempFilePaths.length) {
// let str = '';
// for (let i = 0; i < res.tempFilePaths.length; i++) {
// str += `![${i + 1}](${res.tempFilePaths[i]})`;
// }
// this.changeMsgList('0', str);
// this.queryChat(res.tempFilePaths);
// }
// }
// });
// }
// }
methods: {
// SSE
SSE(voiceText, answerId) {
const ctrl = new AbortController();
console.log(ctrl.signal);
fetchEventSource($.chatUrl + "/chat", {
method: "POST",
headers: {
"Content-Type": "application/json",
Accept: ["text/event-stream", "application/json"],
},
body: JSON.stringify({
voiceText,
deptId: "3702000000",
id: "37020017407",
multiType: "",
sceneFlag: "",
stream: true,
type: "0",
userId: "admin1",
}),
signal: ctrl.signal,
openWhenHidden: true,
onopen: () => {},
onmessage: (ev) => {
console.log(ev);
this.loading = true;
const res = JSON.parse(ev.data);
if (res?.code == 200 && res.result) {
console.log(res.result.data.tabkey);
console.log(res.result.data);
this.tabkey = res.result.data.tabkey;
if (this.tabkey - 1 != this.active) {
this.active = this.tabkey - 1 > 0 ? this.tabkey - 1 : 0;
}
if (this.msgList.length == 0) {
this.msgList = [
{
answerId,
data: res.result.data.content,
},
];
} else {
// debugger
//
if (this.msgList[this.msgList.length - 1].answerId == "1") {
//
this.msgList[this.msgList.length - 1].data +=
res.result.data.content;
} else {
//
this.msgList = [
...this.msgList,
{
answerId: "1",
data: res.result.data.content,
},
];
}
}
// debugger
this.scrollBottom();
}
},
onclose: () => {
console.log(1111);
this.loading = false;
if (this.isExpanded) {
this.isExpanded = !this.isExpanded;
}
},
onerror(error) {
console.log("error", error);
throw error;
},
});
},
async queryChat(voiceText) {
// console.log(voiceText,"voiceText"); // console.log(voiceText,"voiceText");
this.loading = true; this.loading = true;
const [err, res] = await uni.request({ const [err, res] = await uni.request({
// url: 'http://10.16.3.159:8777/api/local_doc_qa/local_doc_chat', // url: 'http://10.16.3.159:8777/api/local_doc_qa/local_doc_chat',
url: this.$.chatUrl+'/chat', url: $.chatUrl + "/chat",
dataType: 'json', dataType: "json",
method: 'POST', method: "POST",
// responseType: 'arraybuffer', // responseType: 'arraybuffer',
headers: { headers: {
// 'Accept': 'text/event-stream', // 'Accept': 'text/event-stream',
'content-type': 'application/json' "content-type": "application/json",
}, },
data: { data: {
voiceText, voiceText,
"sceneFlag": "", sceneFlag: "",
"sessionId": this.sessionId, sessionId: this.sessionId,
"id": this.id, id: this.id,
"multiType": "", multiType: "",
"userId": "admin1", userId: "admin1",
"deptId": "3702000000", deptId: "3702000000",
"type": 0 type: 1,
stream: false,
// "user_id": "zzp", // "user_id": "zzp",
// "kb_ids": ["KBa80ea15e786241eca70a20f136f4e34c"], // "kb_ids": ["KBa80ea15e786241eca70a20f136f4e34c"],
// "question": "", // "question": "",
// "streaming": true, // "streaming": true,
// "history": [] // "history": []
} },
}); });
console.log(res)
if (res && res.data && res.data.code == 200) { if (res && res.data && res.data.code == 200) {
// console.log('request success', res.data) // console.log('request success', res.data)
const { const { result = {} } = res.data;
result = {} const { data = {} } = result;
} = res.data;
const {
data = {}
} = result;
if (data.tabkey - 1 != this.active) { if (data.tabkey - 1 != this.active) {
this.active = data.tabkey - 1 > 0 ? data.tabkey - 1 : 0; this.active = data.tabkey - 1 > 0 ? data.tabkey - 1 : 0;
} }
if (data.content) { if (data.content) {
this.changeMsgList(data.answerId || '1', data.content); this.changeMsgList(
data.answerId || "1",
data.content,
data.answerOptions
);
} }
this.loading = false; this.loading = false;
if (this.isExpanded) {
this.isExpanded = !this.isExpanded;
}
} else { } else {
if (err) { if (err) {
console.log('request fail', err.errMsg); console.log("request fail", err.errMsg);
} }
uni.showToast({ uni.showToast({
title: "查询失败", title: "查询失败",
icon: "error", icon: "error",
duration: 2000 duration: 2000,
}) });
} }
}, },
//
handleBtn(text) {
this.handleSend(text)
},
// //
onKeyInput(event) { onKeyInput(event) {
this.inputValue = event.detail.value this.inputValue = event.detail.value;
},
addQuestion(q, answerId) {
const newQuestion = {
answerId,
data: q,
};
this.msgList.push(newQuestion); //
// this.$store.commit('setMSg_List', this.msgList);
this.scrollBottom();
},
scrollBottom() {
this.$nextTick(() => {
const height =
this.$refs.scrollView &&
this.$refs.scrollView.$refs &&
this.$refs.scrollView.$refs.content
? this.$refs.scrollView.$refs.content.scrollHeight
: 0;
this.scrollTop = height;
});
}, },
// //
handleSend(text) { handleSend(text) {
@ -196,62 +491,90 @@ import zeroMarkdownView from '../../components/zeroMarkdownView/zeroMarkdownView
uni.showToast({ uni.showToast({
title: "请输入内容", title: "请输入内容",
icon: "closeempty", icon: "closeempty",
duration: 2000 duration: 2000,
}) });
}
if (text || this.inputValue) {
// if (this.params.id == 12121212) {
// this.changeMsgList("0", this.inputValue || text);
// this.queryChat(this.inputValue || text);
// this.scrollBottom();
// } else {
this.addQuestion(this.inputValue || text, "0");
this.SSE(this.inputValue || text, "0");
// }
this.inputValue = "";
} }
this.changeMsgList('0', this.inputValue || text);
this.queryChat(this.inputValue || text,);
this.inputValue = '';
}, },
// //
changeMsgList(answerId, data) { changeMsgList(answerId, data, answerOptions) {
let id = 1; let id = 1;
if (this.msgList.length > 0) { if (this.msgList.length > 0) {
id = this.msgList[this.msgList.length - 1].id + 1; id = this.msgList[this.msgList.length - 1].id + 1;
} }
if (answerId == '1') { // if (answerId == "1") {
let newdata = ''; //
let newdata = "";
let index = 0; let index = 0;
const timer = setInterval(() => { const timer = setInterval(() => {
console.log(this.msgList); console.log(this.msgList);
newdata = newdata += data[index] newdata = newdata += data[index];
if (this.msgList?.filter(item => (item.id == id)).length == 0) { if (this.msgList?.filter((item) => item.id == id).length == 0) {
this.msgList = [...this.msgList, { this.msgList = [
...this.msgList,
{
id, id,
answerId, answerId,
data: newdata, data: newdata,
}]; // options: answerOptions // ['西','','','西'] answerOptions
},
];
} else { } else {
this.msgList[this.msgList.length - 1].data = newdata; this.msgList[this.msgList.length - 1].data = newdata;
} }
index += 1; index += 1;
this.$nextTick(() => { this.$nextTick(() => {
const height = this.$refs.scrollView && this.$refs.scrollView.$refs && this const height =
.$refs.scrollView.$refs.content ? this.$refs.scrollView.$refs.content this.$refs.scrollView &&
.scrollHeight : 0; this.$refs.scrollView.$refs &&
this.$refs.scrollView.$refs.content
? this.$refs.scrollView.$refs.content.scrollHeight
: 0;
this.scrollTop = height; this.scrollTop = height;
}) });
if (newdata == data) { if (newdata == data) {
this.msgList[this.msgList.length - 1].options = answerOptions;
clearInterval(timer); clearInterval(timer);
} }
}, 50) }, 50);
} else { } else {
this.msgList = [...this.msgList, { this.msgList = [
...this.msgList,
{
id, id,
answerId, answerId,
data, data,
}]; },
];
this.$nextTick(() => { this.$nextTick(() => {
const height = this.$refs.scrollView && this.$refs.scrollView.$refs && this.$refs const height =
.scrollView.$refs.content ? this.$refs.scrollView.$refs.content.scrollHeight : 0; this.$refs.scrollView &&
this.$refs.scrollView.$refs &&
this.$refs.scrollView.$refs.content
? this.$refs.scrollView.$refs.content.scrollHeight
: 0;
this.scrollTop = height; this.scrollTop = height;
}) });
} }
}, },
handlePlus() { handlePlus() {
this.isExpanded = !this.isExpanded; this.isExpanded = !this.isExpanded;
}, },
//
handleBtn(text) {
this.handleSend(text);
},
clickContent() { clickContent() {
if (this.isExpanded) { if (this.isExpanded) {
this.isExpanded = !this.isExpanded; this.isExpanded = !this.isExpanded;
@ -259,29 +582,36 @@ import zeroMarkdownView from '../../components/zeroMarkdownView/zeroMarkdownView
}, },
goToKnowledge() { goToKnowledge() {
uni.navigateTo({ uni.navigateTo({
url: `/pages/home/detail?params=${encodeURIComponent(JSON.stringify(item))}` url: "/pages/home/knowledge",
}) // url: `/pages/home/knowledge?params=${encodeURIComponent(JSON.stringify(this.$route.query.params))}`
});
}, },
// //
chooseImage() { chooseImage() {
uni.chooseImage({ uni.chooseImage({
count: 6, //9 count: 6, //9
sizeType: ['original', 'compressed'], // sizeType: ["original", "compressed"], //
sourceType: ['album'], // sourceType: ["album"], //
success: (res) => { success: (res) => {
if (res.tempFilePaths && res.tempFilePaths.length) { if (res.tempFilePaths && res.tempFilePaths.length) {
let str = ''; let str = "";
for (let i = 0; i < res.tempFilePaths.length; i++) { for (let i = 0; i < res.tempFilePaths.length; i++) {
str += `![图${i + 1}](${res.tempFilePaths[i]})`; str += `![图${i + 1}](${res.tempFilePaths[i]})`;
} }
this.changeMsgList('0', str);
if (this.id == 12121212) {
this.changeMsgList("0", str);
this.queryChat(res.tempFilePaths); this.queryChat(res.tempFilePaths);
} else {
this.addQuestion(str, "0");
this.SSE(res.tempFilePaths, "0");
} }
} }
},
}); });
} },
} },
} };
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@ -319,7 +649,7 @@ import zeroMarkdownView from '../../components/zeroMarkdownView/zeroMarkdownView
.titleOne { .titleOne {
font-weight: 700; font-weight: 700;
font-size: 30rpx font-size: 30rpx;
} }
.titleTwo { .titleTwo {
@ -404,7 +734,6 @@ import zeroMarkdownView from '../../components/zeroMarkdownView/zeroMarkdownView
color: #bcc3cd; color: #bcc3cd;
} }
} }
} }
.chatlist { .chatlist {
@ -437,11 +766,10 @@ import zeroMarkdownView from '../../components/zeroMarkdownView/zeroMarkdownView
background-color: #ffffff; background-color: #ffffff;
._img { ._img {
max-width: 80% max-width: 80%;
} }
} }
&.currAnswer { &.currAnswer {
flex-direction: row-reverse; flex-direction: row-reverse;
@ -449,7 +777,6 @@ import zeroMarkdownView from '../../components/zeroMarkdownView/zeroMarkdownView
background-color: #cce0ff; background-color: #cce0ff;
} }
} }
} }
} }
@ -459,7 +786,7 @@ import zeroMarkdownView from '../../components/zeroMarkdownView/zeroMarkdownView
margin: 20rpx auto 0 auto; margin: 20rpx auto 0 auto;
height: 80rpx; height: 80rpx;
flex-direction: column; flex-direction: column;
background-color: #FFFFFF; background-color: #ffffff;
box-sizing: border-box; box-sizing: border-box;
border-top: 1px solid #e2e4e9; border-top: 1px solid #e2e4e9;
bottom: 1px solid #e2e4e9; bottom: 1px solid #e2e4e9;
@ -483,20 +810,18 @@ import zeroMarkdownView from '../../components/zeroMarkdownView/zeroMarkdownView
justify-content: space-between; justify-content: space-between;
.camera-icon { .camera-icon {
margin-top: 5px margin-top: 5px;
} }
} }
.video { .video {
width: 60rpx; width: 60rpx;
height: 60rpx; height: 60rpx;
} }
} }
} }
.input-wrapper-expanded { .input-wrapper-expanded {
height: 200rpx; height: 200rpx;
} }
@ -546,7 +871,6 @@ import zeroMarkdownView from '../../components/zeroMarkdownView/zeroMarkdownView
} }
@keyframes bounce { @keyframes bounce {
0%, 0%,
80%, 80%,
100% { 100% {

@ -36,7 +36,7 @@
</view> </view>
<view class="btn-box"> <view class="btn-box">
<view @click="handleCheck(1)" class="btn btn1" v-show="type=='edit'"> 智能排查 </view> <view @click="handleCheck(1)" class="btn btn1" v-show="type=='edit'"> 智能排查 </view>
<view @click="handleCheck(2)" class="btn btn2" v-show="type=='edit'"> 人工排查 </view> <view @click="show2 = true" class="btn btn2" v-show="type=='edit'"> 人工排查 </view>
<view @click="handleCheck(2)" class="btn btn8" v-show="type=='view'"> 查看排查详情 </view> <view @click="handleCheck(2)" class="btn btn8" v-show="type=='view'"> 查看排查详情 </view>
</view> </view>
</view> </view>
@ -46,7 +46,7 @@
<view class="btn-box"> <view class="btn-box">
<view @click="onJump(3)" class="btn btn3" v-show="type=='edit'"> 更换 </view> <view @click="onJump(3)" class="btn btn3" v-show="type=='edit'"> 更换 </view>
<view @click="handleCheck(1)" class="btn btn4" v-show="type=='edit'"> 智能排查 </view> <view @click="handleCheck(1)" class="btn btn4" v-show="type=='edit'"> 智能排查 </view>
<view @click="handleCheck(2)" class="btn btn5" v-show="type=='edit'"> 人工排查 </view> <view @click="show2 = true" class="btn btn5" v-show="type=='edit'"> 人工排查 </view>
<view @click="handleCheck(2)" class="btn btn8" v-show="type=='view'"> 查看排查详情 </view> <view @click="handleCheck(2)" class="btn btn8" v-show="type=='view'"> 查看排查详情 </view>
</view> </view>
</view> </view>
@ -158,7 +158,7 @@
<cover-view class="umodal-content"> 新增成功</cover-view> <cover-view class="umodal-content"> 新增成功</cover-view>
<cover-view class="umodal-line1"></cover-view> <cover-view class="umodal-line1"></cover-view>
<cover-view class="umodal-btnbox"> <cover-view class="umodal-btnbox">
<cover-view class="umodal-btn" @click="handleCheck(2)"> <cover-view class="umodal-btn" @click="show2 = true">
人工排查 人工排查
</cover-view> </cover-view>
<cover-view class="umodal-line2"></cover-view> <cover-view class="umodal-line2"></cover-view>
@ -168,6 +168,27 @@
</cover-view> </cover-view>
</cover-view> </cover-view>
</cover-view> </cover-view>
<cover-view class="umodal" v-show="show2">
<cover-view class="umodal-box" style="height: 280rpx;">
<cover-view class="umodal-content" style="padding: 12px 0 0 22px;box-sizing: border-box; height: 180rpx;">
<cover-view style="height: 40rpx; margin-top: 2px;">您将进入人工排查智能排查数据将自动转入</cover-view>
<cover-view style="height: 40rpx;">人工排查结果但无法再次转回智能排查</cover-view>
<cover-view style="height: 40rpx;">是否继续请确认</cover-view>
</cover-view>
<cover-view class="umodal-line1"></cover-view>
<cover-view class="umodal-btnbox">
<cover-view class="umodal-btn" style="color: #606266;" @click="show2 = false">
取消
</cover-view>
<cover-view class="umodal-line2"></cover-view>
<cover-view class="umodal-btn" @click="handleCheck(2)">
确认
</cover-view>
</cover-view>
</cover-view>
</cover-view>
</view> </view>
</template> </template>
<script> <script>
@ -204,7 +225,8 @@ export default {
name3: "", name3: "",
name4: "", name4: "",
show: false, show: false,
type:'' type:'',
show2: false,
}; };
}, },
onLoad(options) { onLoad(options) {

Loading…
Cancel
Save