limingtao 11 months ago
parent da1344605a
commit cbe8166381
  1. 4
      common/globalJs/globalJs.js
  2. 4
      components/bottom-button/three2.vue
  3. 6
      manifest.json
  4. 138
      pages/index/detail.vue
  5. 83
      pages/knowledge/index.vue

@ -2,8 +2,8 @@
// #ifdef APP-PLUS || MP // #ifdef APP-PLUS || MP
// const baseUrl = "http://116.62.210.143:9002"; // const baseUrl = "http://116.62.210.143:9002";
// const baseUrl = "http://118.89.79.160:8800/HiatmpPro"; // const baseUrl = "http://118.89.79.160:8800/HiatmpPro";
const baseUrl = "http://49.235.207.167:8800/HiatmpPro"; // const baseUrl = "http://49.235.207.167:8800/HiatmpPro";
// const baseUrl = "http://219.147.31.25:30001/tht-app-api/HiatmpPro"; const baseUrl = "http://219.147.31.25:30001/tht-app-api/HiatmpPro";
const chatUrl = "http://219.147.31.25:30001/hitap"; const chatUrl = "http://219.147.31.25:30001/hitap";
// #endif // #endif
// #ifdef H5 // #ifdef H5

@ -119,7 +119,7 @@ export default {
box-sizing: border-box; box-sizing: border-box;
text-align: center; text-align: center;
border-radius: 10rpx; border-radius: 10rpx;
line-height: 60rpx; line-height: 75rpx;
.font { .font {
position: absolute; position: absolute;
top: 0; top: 0;
@ -128,7 +128,7 @@ export default {
width: 100%; width: 100%;
height: 100%; height: 100%;
text-align: center; text-align: center;
line-height: 60rpx; line-height: 75rpx;
} }
// cover-image { // cover-image {
// width: 100%; // width: 100%;

@ -1,6 +1,6 @@
{ {
"name" : "隐患排查", "name" : "隐患排查",
"appid" : "__UNI__79F6C5E", "appid" : "__UNI__68B38F3",
"description" : "", "description" : "",
"versionName" : "1.0.0", "versionName" : "1.0.0",
"versionCode" : "100", "versionCode" : "100",
@ -135,8 +135,8 @@
"https" : false, "https" : false,
"proxy" : { "proxy" : {
"/HiatmpPro" : { "/HiatmpPro" : {
"target" : "http://49.235.207.167:8800", // "target" : "http://49.235.207.167:8800",
// "target" : "http://219.147.31.25:30001/tht-app-api", "target" : "http://219.147.31.25:30001/tht-app-api",
"changeOrigin" : true, "changeOrigin" : true,
"secure" : false, "secure" : false,
"pathRewrite" : { "pathRewrite" : {

@ -25,98 +25,57 @@
<view class="stepBox"> <view class="stepBox">
<view class="step" v-for="(item, index) in tablist" :key="index"> <view class="step" v-for="(item, index) in tablist" :key="index">
<view class="stepItem"> <view class="stepItem">
<view <view :class="{
:class="{
stepCircleActive: index <= active, stepCircleActive: index <= active,
stepCircle: index > active, stepCircle: index > active,
}" }">{{ index + 1 }}
>{{ index + 1 }}
</view> </view>
<view <view class="stepText" :style="{ color: index <= active ? '#000000' : '#bcc3cd' }">{{ item.title }}
class="stepText"
:style="{ color: index <= active ? '#000000' : '#bcc3cd' }"
>{{ item.title }}
</view> </view>
</view> </view>
<view v-if="index !== 3" class="circles"> <view v-if="index !== 3" class="circles">
<view <view :class="{ circleActive: index < active, circle: index >= active }" v-for="i in 8" :key="i">
:class="{ circleActive: index < active, circle: index >= active }"
v-for="i in 8"
:key="i"
>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<scroll-view <scroll-view scroll-y="true" :scroll-top="scrollTop" :style="{
scroll-y="true"
:scroll-top="scrollTop"
:style="{
height: isExpanded ? 'calc(100% - 350rpx)' : 'calc(100% - 250rpx)', height: isExpanded ? 'calc(100% - 350rpx)' : 'calc(100% - 250rpx)',
}" }" class="chatlist" id="scrollView" ref="scrollView" @click="clickContent">
class="chatlist" <view :class="['bar', item.answerId == '0' ? 'currAnswer' : '']" v-for="(item, i) in msgList"
id="scrollView" :key="item.id">
ref="scrollView"
@click="clickContent"
>
<view
:class="['bar', item.answerId == '0' ? 'currAnswer' : '']"
v-for="(item, i) in msgList"
:key="item.id"
>
<!-- <image <!-- <image
:src=" :src="
item.answerId == '0' ? '/static/self.png' : '/static/left_user.png' item.answerId == '0' ? '/static/self.png' : '/static/left_user.png'
" "
class="img" class="img"
/> --> /> -->
<image <image :src="
:src="
item.answerId == '0' 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=' ? '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='
: '/static/left_user.png' : '/static/left_user.png'
" " class="img" />
class="img"
/>
<view class="content"> <view class="content">
<view style="width: 100%; overflow: hidden;"> <view style="width: 100%; overflow: hidden;">
<zeroMarkdownView :markdown="item.data" /> <zeroMarkdownView :markdown="item.data" />
</view> </view>
<!-- <ua-markdown :source="mdvalue" /> --> <!-- <ua-markdown :source="mdvalue" /> -->
<view class="btnBox"> <view class="btnBox">
<view <view class="btn" @click="handleBtn(text)" v-for="(text, index) in item.options" :key="index">
class="btn" {{ text }}</view>
@click="handleBtn(text)"
v-for="(text, index) in item.options"
:key="index"
>{{ text }}</view
>
</view> </view>
<view <view v-if="item.answerOptions && item.answerOptions.length > 0 && item.optionType == 1"
v-if="item.answerOptions && item.answerOptions.length > 0 && item.optionType == 1" style="display: flex; flex-wrap: wrap;">
style="display: flex; flex-wrap: wrap;" <u-checkbox-group v-model="item.checkboxValue1" placement="column" iconPlacement="right"
> style="width: 100%; padding: 0 15px; box-sizing: border-box">
<u-checkbox-group <u-checkbox :customStyle="{ marginBottom: '8px' }"
v-model="item.checkboxValue1" v-for="(item, index) in item.answerOptions" :key="index" :label="item" :name="item"
placement="column" style="background-color: #ededed;padding: 8px;">
iconPlacement="right"
style="width: 100%; padding: 0 15px; box-sizing: border-box"
>
<u-checkbox
:customStyle="{ marginBottom: '8px' }"
v-for="(item, index) in item.answerOptions"
:key="index"
:label="item"
:name="item"
style="background-color: #ededed;padding: 8px;"
>
</u-checkbox> </u-checkbox>
</u-checkbox-group> </u-checkbox-group>
</view> </view>
<view <view v-if="item.answerOptions && item.answerOptions.length > 0 && item.optionType == 0"
v-if="item.answerOptions && item.answerOptions.length > 0 && item.optionType == 0" style="display: flex; flex-wrap: wrap;">
style="display: flex; flex-wrap: wrap;"
>
<view v-for="(item, index) in item.answerOptions" :key="index" <view v-for="(item, index) in item.answerOptions" :key="index"
style="padding: 8px 8px;margin:0 0 8px 8px;background-color: #ededed;" style="padding: 8px 8px;margin:0 0 8px 8px;background-color: #ededed;"
@click="handleGroup(item)"> @click="handleGroup(item)">
@ -139,10 +98,8 @@
</u-radio> </u-radio>
</u-radio-group> --> </u-radio-group> -->
</view> </view>
<view <view class="btnBox"
class="btnBox" v-if="item.answerOptions && item.answerOptions.length > 0 && item.optionType == 1">
v-if="item.answerOptions && item.answerOptions.length > 0 && item.optionType == 1"
>
<view class="btn" @click="handleGroup(item)">确认</view> <view class="btn" @click="handleGroup(item)">确认</view>
<view class="btn" @click="handleGroup2(i)">清空</view> <view class="btn" @click="handleGroup2(i)">清空</view>
</view> </view>
@ -154,25 +111,12 @@
<view class="bounce-dot"></view> <view class="bounce-dot"></view>
</view> </view>
</scroll-view> </scroll-view>
<view <view class="input-wrapper" :class="{ 'input-wrapper-expanded': isExpanded }">
class="input-wrapper"
:class="{ 'input-wrapper-expanded': isExpanded }"
>
<view class="topContent"> <view class="topContent">
<input <input class="uni-input" placeholder="请输入内容" :value="inputValue" @confirm="handleSend"
class="uni-input" @input="onKeyInput" />
placeholder="请输入内容"
:value="inputValue" <uni-icons class="uni-icon" type="plus" size="30" @click="handlePlus"></uni-icons>
@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">
@ -197,7 +141,9 @@ import zeroMarkdownView from "../../components/zeroMarkdownView/zeroMarkdownView
// EventSourcePolyfill // EventSourcePolyfill
// } from 'event-source-polyfill'; // } from 'event-source-polyfill';
import $ from "../../common/globalJs/globalJs.js"; import $ from "../../common/globalJs/globalJs.js";
import { fetchEventSource } from "@microsoft/fetch-event-source"; import {
fetchEventSource
} from "@microsoft/fetch-event-source";
// import { // import {
// baseUrl // baseUrl
// } from '../../utils/config.js'; // } from '../../utils/config.js';
@ -210,8 +156,7 @@ export default {
data() { data() {
return { return {
active: 0, active: 0,
tablist: [ tablist: [{
{
title: "信息确认", title: "信息确认",
}, },
{ {
@ -333,14 +278,12 @@ export default {
this.active = this.tabkey - 1 > 0 ? this.tabkey - 1 : 0; this.active = this.tabkey - 1 > 0 ? this.tabkey - 1 : 0;
} }
if (this.msgList.length == 0) { if (this.msgList.length == 0) {
this.msgList = [ this.msgList = [{
{
answerId, answerId,
data: res.result.data.content, data: res.result.data.content,
optionType: res.result.data?.optionType, optionType: res.result.data?.optionType,
answerOptions: res.result.data?.answerOptions || [], answerOptions: res.result.data?.answerOptions || [],
}, }, ];
];
} else { } else {
// debugger // debugger
// //
@ -446,8 +389,12 @@ console.log({
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 { result = {} } = res.data; const {
const { data = {} } = result; 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;
} }
@ -761,6 +708,7 @@ console.log({
position: absolute; position: absolute;
right: -4px; right: -4px;
bottom: -36px; bottom: -36px;
.btn { .btn {
color: #497cca; color: #497cca;
background-color: #d8e3f8; background-color: #d8e3f8;
@ -895,6 +843,7 @@ console.log({
} }
@keyframes bounce { @keyframes bounce {
0%, 0%,
80%, 80%,
100% { 100% {
@ -905,4 +854,7 @@ console.log({
transform: scale(1); transform: scale(1);
} }
} }
/deep/ ._img{
max-width:220rpx;
}
</style> </style>

@ -1,9 +1,10 @@
<template> <template>
<view class="detail"> <view class="detail" @touchmove="handleTouchMove">
<scroll-view @scroll="handleScroll" scroll-y="true" :scroll-top="scrollTop" :style="{ <scroll-view scroll-y="true" :scroll-top="scrollTop" :style="{
height: isExpanded ? 'calc(100% - 1rpx)' : 'calc(100% - 1rpx)', height: isExpanded ? 'calc(100% - 1rpx)' : 'calc(100% - 1rpx)',
}" class="chatlist" :class="{ 'chatlist-wrapper-expanded': isExpanded }" id="scrollView" ref="scrollView" }" class="chatlist" :class="{ 'chatlist-wrapper-expanded': isExpanded }" id="scrollView" ref="scrollView"
@click="clickContent"> @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">
@ -26,7 +27,8 @@
</view> </view>
</view> </view>
</view> </view>
<view :class="['bar', item.answerId == '0' ? 'currAnswer' : '']" v-for="item in msgList" :key="item.id"> <view :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=" <image :src="
item.answerId == '0' item.answerId == '0'
@ -38,15 +40,13 @@
<!-- <ua-markdown :source="mdvalue" /> --> <!-- <ua-markdown :source="mdvalue" /> -->
<view class="icon" v-show="item.answerId != '0' && item.isOver && item.isSuccess"> <view class="icon" v-show="item.answerId != '0' && item.isOver && item.isSuccess">
<uni-icons <uni-icons
:type="iconsType == '' ? 'hand-up' : (iconsType == 'handUp' ? 'hand-up-filled' : 'hand-up')" :type="item.iconsType == '' ? 'hand-up' : (item.iconsType == 'handUp' ? 'hand-up-filled' : 'hand-up')"
:color="iconsType == 'handUp' ? '#FFD131' : ''" :color="item.iconsType == 'handUp' ? '#FFD131' : ''" size="22"
size="22" @click="clickIcon('handUp', item.qaId,index)">
@click="clickIcon('handUp', item.qaId)">
</uni-icons> </uni-icons>
<uni-icons <uni-icons
:type="iconsType == '' ? 'hand-down' : (iconsType == 'handDown' ? 'hand-down-filled' : 'hand-down')" :type="item.iconsType == '' ? 'hand-down' : (item.iconsType == 'handDown' ? 'hand-down-filled' : 'hand-down')"
size="22" size="22" @click="clickIcon('handDown', item.qaId,index)">
@click="clickIcon('handDown', item.qaId)">
</uni-icons> </uni-icons>
</view> </view>
</view> </view>
@ -139,6 +139,7 @@
lastScrollTop: 0, // lastScrollTop: 0, //
temp: 0, temp: 0,
iconsType: '', iconsType: '',
isUserScrolling: false,
}; };
}, },
onLoad() { onLoad() {
@ -166,21 +167,26 @@
} }
}, },
methods: { methods: {
async clickIcon(type, qaId) { async clickIcon(type, qaId, index) {
if (this.iconsType == '') { if (this.iconsType == '') {
this.iconsType = type this.iconsType = type
this.$set(this.msgList[index], 'iconsType', type)
} else { } else {
if (this.iconsType == 'handUp') { if (this.iconsType == 'handUp') {
if (type == 'handUp') { if (type == 'handUp') {
this.iconsType = '' this.iconsType = ''
this.$set(this.msgList[index], 'iconsType', '')
} else { } else {
this.iconsType = 'handDown' this.iconsType = 'handDown'
this.$set(this.msgList[index], 'iconsType', 'handDown')
} }
} else { } else {
if (type == 'handUp') { if (type == 'handUp') {
this.$set(this.msgList[index], 'iconsType', 'handUp')
this.iconsType = 'handUp' this.iconsType = 'handUp'
} else { } else {
this.iconsType = '' this.iconsType = ''
this.$set(this.msgList[index], 'iconsType', '')
} }
} }
} }
@ -209,51 +215,40 @@
}); });
}, },
handleTouchStart(e) { handleTouchStart(e) {
// this.isUserScrolling = true;
// //
this.startX = e.touches[0].clientX; // this.startX = e.touches[0].clientX;
this.startY = e.touches[0].clientY; // this.startY = e.touches[0].clientY;
// this.isScrolling = false; // // // this.isScrolling = false; //
}, },
handleTouchMove(e) { handleTouchMove(e) {
// console.log(e)
let moveX = e.touches[0].clientX; // this.isUserScrolling = true
let moveY = e.touches[0].clientY;
//
let deltaX = moveX - this.startX;
let deltaY = moveY - this.startY;
// 5px
if (Math.abs(deltaX) > 5 || Math.abs(deltaY) > 5) {
// this.isScrolling = true; //
this.isHandleScroll = false this.isHandleScroll = false
// deltaY //
if (deltaY > 0) { // this.startX = e.touches[0].clientX;
console.log('用户正在向下滑动'); // this.startY = e.touches[0].clientY;
} else if (deltaY < 0) { // // this.isScrolling = false; //
console.log('用户正在向上滑动');
}
// startXstartYmoveXmoveY
//
}
// startXstartY
}, },
handleTouchEnd(e) { handleTouchEnd(e) {
// this.isUserScrolling = true;
// setTimeout(() => {
// this.isUserScrolling = false;
// }, 300); //
// //
// startXstartY // startXstartY
// //
}, },
handleScroll(event) { handleScroll(event) {
console.log(event)
// event.detail // event.detail
const scrollTop = event.detail.scrollTop; const scrollTop = event.detail.scrollTop;
if (scrollTop > this.lastScrollTop) { if (scrollTop > this.lastScrollTop) {
console.log('向下滑动'); console.log('向下滑动');
// this.temp=0
} else { } else {
this.temp++ this.temp++
if (this.temp == 2) { if (this.temp == 2&&this.isUserScrolling) {
this.isHandleScroll = false this.isHandleScroll = false
} }
@ -341,6 +336,7 @@
} }
this.temp = 0 this.temp = 0
this.isHandleScroll = true this.isHandleScroll = true
this.isUserScrolling = false
this.changeMsgList("0", this.inputValue || text); this.changeMsgList("0", this.inputValue || text);
this.queryChat(this.inputValue || text); this.queryChat(this.inputValue || text);
this.inputValue = ""; this.inputValue = "";
@ -817,6 +813,8 @@
.titleTwo { .titleTwo {
margin: 15rpx 0; margin: 15rpx 0;
font-size: 28rpx; font-size: 28rpx;
font-size: 28rpx;
line-height: 42rpx;
} }
.tipItem { .tipItem {
@ -831,12 +829,13 @@
.text { .text {
font-size: 28rpx; font-size: 28rpx;
// line-height:50rpx;
} }
} }
} }
.text { .text {
font-size: 32rpx; font-size: 28rpx;
} }
} }
@ -1098,10 +1097,12 @@
color: #999999 !important; color: #999999 !important;
} }
} }
.icon { .icon {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
margin: 0 15rpx 15rpx 12rpx; margin: 0 15rpx 15rpx 12rpx;
.uni-icons { .uni-icons {
margin-left: 15rpx; margin-left: 15rpx;
} }

Loading…
Cancel
Save