You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1240 lines
61 KiB
1240 lines
61 KiB
<template>
|
|
<div class="footer-bar-input before-top" :class="[!associationalWord ? 'footer-overflow' : '', elder ? '' : '']">
|
|
<!-- 联想词 -->
|
|
<!-- <transition name="draw" v-show="associationalWord"> -->
|
|
<div class="associational-word-box" v-if="associationalWord">
|
|
<div class="word-cells" v-if="wordList.length > 0">
|
|
<a class="word-cell word-cell_access word-cell_example opacity" href="javascript:;"
|
|
v-for="(item, index) in wordList" :key="index" @click.stop="lenovoQuery(item.name)"
|
|
v-show="doesMatchMessage(item.name)">
|
|
<div class="word-cell__bd word-cell_primary">
|
|
<p v-html="brightenKeyword(item.name)"></p>
|
|
</div>
|
|
<span class="word-cell__ft"></span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<!-- </transition> -->
|
|
<!-- 引用消息区块 -->
|
|
<div class="quote-preview-box" v-if="quoteMessageObj">
|
|
<div class="quote-text van-ellipsis">引用内容:{{ getQuotePreview(quoteMessageObj) }}</div>
|
|
<div class="quote-close-icon" @click="closeQuoteMessage">
|
|
<span style="
|
|
font-size: 18rem;
|
|
line-height: 1;
|
|
display: inline-block;
|
|
padding: 0 4rem;
|
|
color: #999;
|
|
">×</span>
|
|
</div>
|
|
</div>
|
|
<!-- 输入框模块 -->
|
|
<div class="input-box flex" :style="{ 'padding-bottom': isNewApp ? '15rem' : '' }">
|
|
<!-- <div class="input-box-margin"> -->
|
|
<div class="input-btn-box" style="padding-left: 0; padding-right: 10rem; display: flex; align-items: center"
|
|
v-if="isElder && asrData.switch == 1" @click="clickMicro">
|
|
<img src="@/assets/images/fill-microphone.png" alt="" />
|
|
</div>
|
|
<div class="input-box-txt">
|
|
<div v-if="!soundFlag" style="width: 100%">
|
|
<textarea class="input-txt" placeholder="有什么问题想要问我吗?" rows="1" ref="sendMessageArea" v-model="sendMessage"
|
|
@input.stop="monitorInputs" @blur.stop="monitorInputsBlur" @focus.stop="monitorInputsFocus($event)"
|
|
@keydown.delete="deleteFace($event)" is-pc="移动端" v-if="noTouchStop" :readonly="elderAndOutwork"></textarea>
|
|
|
|
<textarea class="input-txt" placeholder="有什么问题想要问我吗?" rows="1" ref="sendMessageArea" v-model="sendMessage"
|
|
@input.stop="monitorInputs" @blur.stop="monitorInputsBlur" @focus.stop="monitorInputsFocus($event)"
|
|
@keydown.delete="deleteFace($event)" @touchend.stop="clickInput" is-pc="移动端" v-else-if="!isPc"
|
|
:readonly="elderAndOutwork"></textarea>
|
|
|
|
<textarea class="input-txt" placeholder="有什么问题想要问我吗?" rows="1" ref="sendMessageArea" v-model="sendMessage"
|
|
@input.stop="monitorInputs" @blur.stop="monitorInputsBlur" @focus.stop="monitorInputsFocus($event)"
|
|
@keydown.delete="deleteFace($event)" @touchend.stop="clickInput" is-pc="pc端调试模式"
|
|
@keydown.stop="listenEnter($event)" required v-else :readonly="elderAndOutwork"></textarea>
|
|
</div>
|
|
|
|
<div v-else @click="clickMicro" style="width: 100%">
|
|
<voiceInput refNode="painSpotReason" ref="voiceInputRef" :content="sendMessage" :asrData="asrData"
|
|
@handleUpdateContent="onTTSContentUpdate" @isRecorderStart="isRecorderStart" @clickFinish="sayFinish">
|
|
</voiceInput>
|
|
</div>
|
|
|
|
<!-- <input
|
|
class="input-txt"
|
|
type="text"
|
|
placeholder="输入您想要问的问题吧~"
|
|
ref="sendMessageArea"
|
|
v-model="sendMessage"
|
|
@input="monitorInputs"
|
|
@focus.stop="monitorInputsFocus"
|
|
@blur.stop="monitorInputsBlur"
|
|
@keydown.delete="deleteFace"
|
|
@touchend.stop="clickInput"
|
|
@keyup.enter="lineFeed"
|
|
/>-->
|
|
<!-- <div class="input-box-middle">
|
|
|
|
</div> -->
|
|
<!-- <span v-show="!soundFlag" class="input-text-tips">{{ txtTips }}</span> -->
|
|
<div class="input-btn-box btn-box2" style="flex-shrink: 0">
|
|
<!-- <button class="btn-item opacity" v-if="!sendFlag" :class="addFlag ? 'add-box' : 'close-box'"
|
|
:disabled="sendDisabled || elderAndOutwork" @click.stop="addUpload()"></button> -->
|
|
<button class="btn-item opacity disabled-send-box" v-if="!sendFlag" :disabled="sendDisabled || elderAndOutwork"
|
|
@click.stop="clickSendMessage()"></button>
|
|
<button class="btn-item opacity send-box" v-if="sendFlag" :disabled="sendDisabled || elderAndOutwork"
|
|
@click.stop="clickSendMessage()"></button>
|
|
</div>
|
|
</div>
|
|
<!-- <div v-if="false" class="input-btn-box btn-box1">
|
|
<button
|
|
class="btn-item opacity"
|
|
:class="smileFlag ? 'smile-box' : 'keyboard-box'"
|
|
:disabled="smileDisabled || elderAndOutwork"
|
|
@click.stop="toggleShow()"
|
|
></button>
|
|
</div> -->
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 表情符号 -->
|
|
<!-- <transition name="draw"> -->
|
|
<emoticon-box class="smile-emoticon-box" :class="{ min_heightauto: !smileFlag }"
|
|
@onFaceChoose="handleFaceChoose"></emoticon-box>
|
|
<!-- </transition> -->
|
|
|
|
<upload-image :class="{ min_heightauto: !addFlag }" @image-selected="handleImageSelected"
|
|
@image-sent="handleImageSent" @image-failed="handleImageFailed"></upload-image>
|
|
|
|
<!-- <SoundRecord v-if="soundFlag" @clickFinish="sayFinish"></SoundRecord> -->
|
|
<!-- </div> -->
|
|
</template>
|
|
|
|
<script setup>
|
|
import {
|
|
ref,
|
|
computed,
|
|
watch,
|
|
inject,
|
|
onMounted,
|
|
onBeforeUnmount,
|
|
nextTick,
|
|
getCurrentInstance,
|
|
} from 'vue'
|
|
import { showToast } from 'vant'
|
|
import _ from 'lodash'
|
|
import uploadImage from '@/components/upload-image.vue'
|
|
import EmoticonBox from '@/components/emoticon-box.vue'
|
|
import voiceInput from '@/components/TTS.vue'
|
|
import { emitter } from '@/utils/mitt'
|
|
import utils from '@/utils/utils'
|
|
import { _debounce } from '@/utils'
|
|
import _Rules from '@/common/checkRules'
|
|
import faceJSON from '@/mock/face.json'
|
|
import mgcJSON from '@/mock/mgc.json'
|
|
import '@/assets/images/fill-microphone.png'
|
|
|
|
// Vue 2 中 this.$post / this.$xss 挂在全局属性上,<script setup> 中通过 globalProperties 获取
|
|
const { appContext } = getCurrentInstance()
|
|
const globalProps = appContext.config.globalProperties
|
|
const $post = globalProps.$post
|
|
const $xss = globalProps.$xss || ((v) => v)
|
|
|
|
// —— inject(对应原 Vuex mapState)——
|
|
const store = inject('appStore', null)
|
|
const userId = inject('userId', ref(''))
|
|
const sessionId = inject('sessionId', ref(''))
|
|
const sendLoading = inject('sendLoading', ref(false))
|
|
const source = inject('source', ref(''))
|
|
const mescrollContent = inject('mescrollContent', ref(null))
|
|
const chatList = inject('chatList', ref([]))
|
|
const manualService = inject('manualService', ref('1'))
|
|
const userInfo = inject('userInfo', ref({}))
|
|
const planCode = inject('planCode', ref(''))
|
|
const appentry = inject('appentry', ref(''))
|
|
const notitle = inject('notitle', ref(''))
|
|
const asrConfig = inject('asrConfig', ref({}))
|
|
const elder = inject('elder', ref(false))
|
|
|
|
// —— 模板引用 ——
|
|
const sendMessageArea = ref(null)
|
|
const voiceInputRef = ref(null)
|
|
|
|
// —— 响应式状态(原 data)——
|
|
const sendMessage = ref('') // 输入的内容
|
|
const smileFlag = ref(true)
|
|
const sendFlag = ref(false)
|
|
const addFlag = ref(true)
|
|
const smileDisabled = ref(false)
|
|
const sendDisabled = ref(false)
|
|
const associationalWord = ref(false) // 联想词
|
|
const cursorFirst = ref('') // 光标前一位的字符
|
|
const cursorIndex = ref(0) // 光标位置的索引
|
|
const leftBracketIndex = ref(0) // 右括号到左括号的索引
|
|
const isDeleteFace = ref(false) // 是否要删掉表情
|
|
const deleteFaceTxt = ref('') // 删除的表情
|
|
const wordList = ref([])
|
|
const oldMessage = ref('')
|
|
const facejson = faceJSON
|
|
const faceList = ref([])
|
|
const imageBoxShow = ref(false)
|
|
const onceClick = ref(0) // 初始化一次 只点击一次
|
|
const isPc = ref(false) // 是否pc
|
|
const emoticonClick = ref(false) // 当前点击的是否是表情
|
|
const txtMaxlength = ref(100)
|
|
const txtTips = ref(100)
|
|
const duolunFloat = ref(true) // 多轮的情况 o5 pdstart
|
|
const isNewApp = ref(false) // 是否寿险app
|
|
const startCursor = ref(0) // 连续表情输出处理
|
|
const endCursor = ref(0) // 连续表情输出处理
|
|
const noTouchStop = ref(false) // e办app上@touchend.stop会导致输入框需要长按才能输入
|
|
const showRecord = ref(true) // 是否显示录音按钮
|
|
const isRecording = ref(false) // 是否正在录音
|
|
const soundFlag = ref(false)
|
|
const asrData = ref({}) // asr入参
|
|
const lastMsg = ref('') // 语音转文字上一次返回的内容
|
|
const asrMsg = ref('') // 语音转文字所有内容
|
|
const currentMSg = ref('') // 点击语音转文字前输入框当前内容
|
|
const quoteMessageObj = ref(null)
|
|
let timer = null
|
|
|
|
const isElder = computed(() => !!elder.value) // 老年人关爱版
|
|
|
|
// 特定渠道 + 关爱版 + 非人工 时输入框只读
|
|
const elderAndOutwork = computed(() => {
|
|
return (
|
|
(source.value == '95290000' || source.value == '95460000' || source.value == '95830000') &&
|
|
isElder.value &&
|
|
manualService.value !== '2'
|
|
)
|
|
})
|
|
|
|
// —— 初始化(原 created)——
|
|
processedEmoji()
|
|
|
|
// 是否pc端(Vite 中用 import.meta.env.MODE 替代 process.env.NODE_ENV)
|
|
isPc.value = ['sit', 'development'].includes(import.meta.env.MODE)
|
|
|
|
// 是否寿险app
|
|
isNewApp.value = source.value == '95290000' && appentry.value == '1'
|
|
|
|
// e办app 养老金、b2bi渠道
|
|
noTouchStop.value = notitle.value === '1'
|
|
|
|
asrData.value = asrConfig.value || {}
|
|
|
|
// —— 生命周期(原 mounted)——
|
|
// 原 Bus.$on('quoteMessageBus'),迁移后统一走 mitt 的 quoteMessage 事件
|
|
function onQuoteMessage(item) {
|
|
quoteMessageObj.value = item
|
|
sendMessageArea.value && sendMessageArea.value.focus()
|
|
}
|
|
|
|
onMounted(() => {
|
|
emitter.on('quoteMessage', onQuoteMessage)
|
|
})
|
|
|
|
onBeforeUnmount(() => {
|
|
emitter.off('quoteMessage', onQuoteMessage)
|
|
if (timer) clearTimeout(timer)
|
|
})
|
|
|
|
// —— 方法(原 methods)——
|
|
// 表情处理
|
|
function processedEmoji() {
|
|
faceList.value = []
|
|
facejson.forEach((item, index) => {
|
|
for (let i = 0; i < item.faceList.length; i++) {
|
|
const element = `[${item.faceList[i].title}]`
|
|
faceList.value.push(element)
|
|
}
|
|
})
|
|
}
|
|
|
|
function isEmoji(face) {
|
|
var isFace = faceList.value.includes(face)
|
|
return isFace
|
|
}
|
|
|
|
function deleteFace(e) {
|
|
var elInput = sendMessageArea.value // 输入框最新的值
|
|
|
|
getHeight(elInput) // 处理删除时text的高度
|
|
|
|
emoticonClick.value = false
|
|
associationalWord.value = elInput.value.replace(/(^\s*)|(\s*$)/g, '') ? true : false
|
|
|
|
const startPos = elInput.selectionStart // input 第0个字符到选中的字符
|
|
const endPos = elInput.selectionEnd // 选中的字符到最后的字符
|
|
|
|
let afterEndPos = endPos
|
|
|
|
if (startPos === undefined || endPos === undefined) return
|
|
if (!elInput.value) return
|
|
|
|
if (elInput.setSelectionRange) {
|
|
if (isDeleteFace.value && leftBracketIndex.value != -1) {
|
|
let str = elInput.value
|
|
elInput.value = str.replace(/\[.*?\]/g, (item, index) => {
|
|
if (endPos === item.length + index && isEmoji(item)) {
|
|
e.preventDefault()
|
|
afterEndPos -= item.length
|
|
elInput.focus()
|
|
|
|
return ''
|
|
} else {
|
|
return item
|
|
}
|
|
})
|
|
elInput.selectionStart = afterEndPos
|
|
elInput.selectionEnd = afterEndPos
|
|
|
|
// 重置值
|
|
sendMessage.value = elInput.value
|
|
}
|
|
}
|
|
}
|
|
|
|
function clickInput() {
|
|
const elInput = sendMessageArea.value
|
|
const startPos = elInput.selectionStart // input 第0个字符到选中的字符
|
|
const endPos = elInput.selectionEnd // 选中的字符到最后的字符
|
|
|
|
onceClick.value++ // 点击次数
|
|
emoticonClick.value = false
|
|
|
|
scrollTopBody()
|
|
|
|
if (startPos === undefined || endPos === undefined) return
|
|
cursorIndex.value = startPos
|
|
cursorFirst.value = elInput.value.substring(startPos - 1, startPos)
|
|
|
|
// 截取光标之前的数据
|
|
const cursorBeforeTxt = elInput.value.substring(0, elInput.selectionStart)
|
|
isDeleteFace.value = cursorFirst.value != ']' ? false : true
|
|
if (cursorFirst.value != ']') return
|
|
|
|
const leftBracketIdx = cursorBeforeTxt.lastIndexOf('[') // 光标到左括号的索引
|
|
leftBracketIndex.value = leftBracketIdx
|
|
const deleteFaceTxt = cursorBeforeTxt.substring(leftBracketIdx, elInput.selectionStart + 1)
|
|
deleteFaceTxt.value = deleteFaceTxt
|
|
}
|
|
|
|
// 标签切换
|
|
function toggleShow() {
|
|
smileFlag.value = !smileFlag.value
|
|
imageBoxShow.value = true
|
|
addFlag.value = true
|
|
emoticonClick.value = false
|
|
soundFlag.value = false
|
|
|
|
scrollTopBody()
|
|
}
|
|
|
|
function scrollTopBody() {
|
|
setTimeout(() => {
|
|
// 滚动到底部
|
|
try {
|
|
mescrollContent.value.scrollTop = mescrollContent.value.scrollHeight || 0
|
|
} catch (error) {
|
|
console.log(error)
|
|
}
|
|
}, 300)
|
|
}
|
|
|
|
function listenEnter(event) {
|
|
const elInput = sendMessageArea.value
|
|
let elInputValue = $xss(elInput.value.replace(/(^\s*)|(\s*$)/g, ''))
|
|
|
|
if (event.keyCode == 13 && event.ctrlKey) {
|
|
elInput.value += '\n'
|
|
getHeight(elInput) // 处理删除时text的高度
|
|
} else if (event.keyCode == 13) {
|
|
// 避免回车键换行
|
|
event.preventDefault()
|
|
|
|
clickSendMessage() // 发送文本
|
|
}
|
|
}
|
|
|
|
// 发送消息
|
|
function clickSendMessage() {
|
|
// 包含敏感词不允许发送
|
|
if (sendMessage.value.includes('***')) {
|
|
showToast('有非法字符*,无法提交')
|
|
return
|
|
}
|
|
// 校验是否包含链接
|
|
if (_Rules.isContainsLink(sendMessage.value)) {
|
|
showToast('为了您的账号安全,请避免在消息中包含链接哦~')
|
|
return
|
|
}
|
|
const elInput = sendMessageArea.value
|
|
associationalWord.value = false
|
|
let elInputValue = $xss(elInput.value.replace(/(^\s*)|(\s*$)/g, ''))
|
|
|
|
if (!elInputValue) {
|
|
showToast({ message: '输入您想要问的问题吧~', position: 'bottom' })
|
|
return
|
|
}
|
|
|
|
if (sendFlag.value) {
|
|
let sendParmas = {
|
|
reqAndResType: '1', // 1文本 2图片 3问提评价
|
|
msgText: elInputValue,
|
|
msgSource: manualService.value, // 1机器人 2人工
|
|
}
|
|
if (quoteMessageObj.value) {
|
|
let quoteType = getQuoteType(quoteMessageObj.value)
|
|
let quoteMsg = ''
|
|
if (quoteType === '2') {
|
|
quoteMsg =
|
|
quoteMessageObj.value.imgUrl ||
|
|
quoteMessageObj.value.imgKey ||
|
|
quoteMessageObj.value.msgText ||
|
|
''
|
|
} else if (quoteType === '3') {
|
|
quoteMsg = quoteMessageObj.value.voiceUrl || ''
|
|
} else {
|
|
quoteMsg = getQuotePreview(quoteMessageObj.value)
|
|
}
|
|
sendParmas.quoteData = {
|
|
quoteMsg: quoteMsg,
|
|
quoteId: quoteMessageObj.value.chatId || '',
|
|
quoteType: quoteType,
|
|
}
|
|
closeQuoteMessage() // 清空状态
|
|
}
|
|
// 发送的消息 存到store
|
|
scrollTopBody()
|
|
sendFlag.value = !sendFlag.value
|
|
emoticonClick.value = false
|
|
sendMessage.value = ''
|
|
|
|
// 机器人走 /liics_api/semantic/qaChat,人工客服沿用 WebSocket。
|
|
const request = Number(manualService.value) === 2
|
|
? store?.sendmessageContent?.(sendParmas)
|
|
: store?.sendingRobot?.(sendParmas)
|
|
request?.then((res) => {
|
|
duolunFloat.value = !(res?.reqAndResType == '05' && res?.cmd == 'pbstart')
|
|
}).catch((err) => {
|
|
console.log(err)
|
|
})
|
|
}
|
|
}
|
|
|
|
function closeQuoteMessage() {
|
|
quoteMessageObj.value = null
|
|
}
|
|
|
|
function getQuotePreview(item) {
|
|
console.log('引用item====', item)
|
|
if (!item) return ''
|
|
if (item.voiceUrl || item.voiceNo) {
|
|
return '[语音]'
|
|
} else if (item.reqAndResType == '2' || item.imgUrl) {
|
|
return '[图片]'
|
|
} else {
|
|
let text = item.msgText || ''
|
|
return text.replace(/<[^>]+>/g, '') // 去除可能的 html 标签以纯文本展示
|
|
}
|
|
}
|
|
|
|
function getQuoteType(item) {
|
|
if (!item) return '1'
|
|
if (item.voiceUrl || item.voiceNo) {
|
|
return '3'
|
|
} else if (item.reqAndResType == '2' || item.imgUrl) {
|
|
return '2'
|
|
} else {
|
|
return '1'
|
|
}
|
|
}
|
|
|
|
// 选择的表情处理
|
|
function handleFaceChoose(face) {
|
|
nextTick(() => {
|
|
const elInput = sendMessageArea.value
|
|
startCursor.value = elInput.selectionStart || startCursor.value // input 第0个字符到选中的字符
|
|
endCursor.value = elInput.selectionEnd || endCursor.value // 选中的字符到最后的字符
|
|
|
|
emoticonClick.value = true
|
|
if (startCursor.value === undefined || endCursor.value === undefined) return
|
|
const txt = elInput.value
|
|
if (_.isEmpty(txt)) {
|
|
startCursor.value = 0
|
|
endCursor.value = 0
|
|
}
|
|
// 将表情添加到选中的光标位置
|
|
let result = txt.substring(0, startCursor.value) + face + txt.substring(endCursor.value)
|
|
|
|
sendMessage.value = result // 赋值给表单中的的字段,先赋值防止安卓端watch监听不到变化
|
|
elInput.value = result // 赋值给input的value
|
|
|
|
smileFlag.value = false
|
|
sendFlag.value = true // 添加表情成功改成发送按钮
|
|
|
|
// 重新定义光标位置
|
|
startCursor.value = startCursor.value + face.length
|
|
endCursor.value = endCursor.value + face.length
|
|
// 删除时用的处理
|
|
cursorIndex.value = startCursor.value
|
|
cursorFirst.value = elInput.value.substring(startCursor.value - 1, startCursor.value)
|
|
|
|
// 截取光标之前的数据
|
|
const cursorBeforeTxt = elInput.value.substring(0, startCursor.value)
|
|
isDeleteFace.value = cursorFirst.value != ']' ? false : true
|
|
if (cursorFirst.value != ']') return
|
|
const leftBracketIdx = cursorBeforeTxt.lastIndexOf('[') // 光标到左括号的索引
|
|
leftBracketIndex.value = leftBracketIdx
|
|
deleteFaceTxt.value = cursorBeforeTxt.substring(leftBracketIdx, startCursor.value + 1)
|
|
})
|
|
}
|
|
|
|
// 上传图片:底部滑出图片/拍照面板
|
|
function addUpload() {
|
|
smileFlag.value = true
|
|
emoticonClick.value = false
|
|
imageBoxShow.value = true
|
|
addFlag.value = !addFlag.value
|
|
scrollTopBody()
|
|
}
|
|
|
|
function handleImageSelected(payload) {
|
|
store?.pushImageMessage?.(payload)
|
|
scrollTopBody()
|
|
}
|
|
|
|
function handleImageSent(payload) {
|
|
store?.updateImageMessage?.(payload.localId, {
|
|
imageUrl: payload.imageUrl,
|
|
imageKey: payload.imageKey,
|
|
uploadStatus: 'success',
|
|
})
|
|
// liics upload/image returns the follow-up conversation record in res.data.
|
|
// Keep it in the chat list after updating the local image bubble.
|
|
if (payload.responseData) {
|
|
store?.setChatList?.(payload.responseData)
|
|
}
|
|
addFlag.value = true
|
|
imageBoxShow.value = false
|
|
scrollTopBody()
|
|
}
|
|
|
|
function handleImageFailed(payload) {
|
|
store?.updateImageMessage?.(payload.localId, { uploadStatus: 'failed' })
|
|
}
|
|
|
|
// input焦点事件
|
|
function monitorInputsFocus(e) {
|
|
const elInput = sendMessageArea.value
|
|
associationalWord.value = elInput.value ? true : false
|
|
|
|
if (utils.isAndroid() == 'isAndroid') {
|
|
smileFlag.value = true
|
|
addFlag.value = true
|
|
|
|
setTimeout(() => {
|
|
e.target.scrollIntoView(true)
|
|
e.target.scrollIntoViewIfNeeded()
|
|
// true:元素的顶端将和其所在滚动区的可视区域的顶端对齐; false:底端对齐。
|
|
}, 300) // 延时 == 键盘弹起需要时间
|
|
} else {
|
|
if (!emoticonClick.value) {
|
|
smileFlag.value = true
|
|
}
|
|
|
|
// 控制初始化点击输入框 被输入法挡着问题
|
|
setTimeout(() => {
|
|
addFlag.value = true
|
|
|
|
e.target.scrollIntoView(true)
|
|
e.target.scrollIntoViewIfNeeded()
|
|
|
|
// true:元素的顶端将和其所在滚动区的可视区域的顶端对齐; false:底端对齐。
|
|
}, 300) // 延时 == 键盘弹起需要时间
|
|
}
|
|
}
|
|
|
|
// input 失去焦点
|
|
function monitorInputsBlur() {
|
|
emoticonClick.value = false
|
|
const elInput = sendMessageArea.value
|
|
|
|
// this.associationalWord = false;
|
|
// this.smileFlag = true;
|
|
// this.addFlag = true;
|
|
resilience()
|
|
}
|
|
|
|
function changeMaxLength() {
|
|
if (sendMessage.value.length > txtMaxlength.value) {
|
|
sendMessage.value = sendMessage.value.slice(0, txtMaxlength.value)
|
|
sendMessageArea.value.setAttribute('maxlength', txtMaxlength.value)
|
|
|
|
// showToast(`不能超过${txtMaxlength.value}个字`)
|
|
} else {
|
|
sendMessageArea.value.removeAttribute('maxlength')
|
|
}
|
|
|
|
txtTips.value = txtMaxlength.value - sendMessage.value.length
|
|
}
|
|
|
|
// input正在输入
|
|
function monitorInputs(e) {
|
|
// 处理表情字符串的问题
|
|
const elInput = sendMessageArea.value
|
|
const startPos = elInput.selectionStart // input 第0个字符到选中的字符
|
|
const endPos = elInput.selectionEnd // 选中的字符到最后的字符
|
|
// 敏感词替换为***
|
|
let mgc = mgcJSON.mgc
|
|
const words = _Rules.replaceTaboo(mgc, sendMessage.value)
|
|
sendMessage.value = words
|
|
|
|
// 处理光标问题
|
|
if (startPos === undefined || endPos === undefined) return
|
|
cursorIndex.value = startPos
|
|
cursorFirst.value = elInput.value.substring(startPos - 1, startPos)
|
|
|
|
// 截取光标之前的数据
|
|
const cursorBeforeTxt = elInput.value.substring(0, elInput.selectionStart)
|
|
isDeleteFace.value = cursorFirst.value != ']' ? false : true
|
|
|
|
const leftBracketIdx = cursorBeforeTxt.lastIndexOf('[') // 光标到左括号的索引
|
|
leftBracketIndex.value = leftBracketIdx
|
|
deleteFaceTxt.value = cursorBeforeTxt.substring(leftBracketIdx, elInput.selectionStart + 1)
|
|
}
|
|
|
|
// 关键字加高亮
|
|
function brightenKeyword(val) {
|
|
let titleString = val
|
|
let keyword = sendMessage.value
|
|
if (titleString.length <= 0) {
|
|
return ''
|
|
}
|
|
|
|
var reg = new RegExp(keyword, 'gi')
|
|
val = val.replace(reg, function (txt) {
|
|
return '<font color=#FC5454>' + txt + '</font>'
|
|
})
|
|
|
|
return val
|
|
}
|
|
|
|
function doesMatchMessage(item) {
|
|
const elInput = sendMessage.value.toLowerCase()
|
|
item = item.toLowerCase()
|
|
|
|
if (item && item.indexOf(elInput) > -1) {
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
function offEmoticonsPic() {
|
|
if (!smileFlag.value || !addFlag.value || associationalWord.value) {
|
|
emoticonClick.value = false
|
|
smileFlag.value = true
|
|
addFlag.value = true
|
|
associationalWord.value = false
|
|
}
|
|
}
|
|
|
|
// 输入框高度
|
|
function getHeight(element) {
|
|
if (!element) return
|
|
timer = setTimeout(() => {
|
|
element.style.height = 'auto' // 必须设置为auto
|
|
element.style.height = element.scrollHeight + 'px'
|
|
}, 20)
|
|
}
|
|
|
|
// 解决微信输入框顶上去下不来问题
|
|
function resilience() {
|
|
setTimeout(() => {
|
|
var scrollHeight = document.documentElement.scrollTop || document.body.scrollTop || 0
|
|
window.scrollTo(0, Math.max(scrollHeight - 1, 0))
|
|
}, 150)
|
|
}
|
|
|
|
// 点击联想词查询
|
|
function lenovoQuery(item) {
|
|
const sendParmas = {
|
|
reqAndResType: '1',
|
|
msgText: item,
|
|
msgSource: manualService.value,
|
|
questionType: 3,
|
|
}
|
|
|
|
// 发送的消息 存到store
|
|
scrollTopBody()
|
|
store?.sendingRobot?.(sendParmas).then(() => {
|
|
associationalWord.value = false
|
|
sendFlag.value = false
|
|
sendMessage.value = ''
|
|
}).catch((err) => {
|
|
console.log(err)
|
|
})
|
|
}
|
|
|
|
// 实时获取联想词
|
|
const getAssociationalWord = _debounce(function () {
|
|
let param = {
|
|
category: 5,
|
|
source: source.value,
|
|
planCode: planCode.value,
|
|
keyWord: sendMessage.value,
|
|
sceneId: (userInfo.value && userInfo.value.sceneId) || '',
|
|
}
|
|
|
|
if (!sendMessage.value) {
|
|
return
|
|
}
|
|
|
|
$post('config/activity', param)
|
|
.then((res) => {
|
|
if (res.code && res.code != 0) {
|
|
wordList.value = ''
|
|
return
|
|
}
|
|
|
|
wordList.value = res.data
|
|
})
|
|
.catch((error) => {
|
|
wordList.value = ''
|
|
console.log(error)
|
|
})
|
|
}, 200)
|
|
|
|
function recordShow() {
|
|
showRecord.value = !showRecord.value
|
|
smileFlag.value = true
|
|
}
|
|
|
|
// 点击完成
|
|
function sayFinish(num) {
|
|
soundFlag.value = true
|
|
}
|
|
|
|
// 成功调用录音
|
|
function isRecorderStart(isStart) {
|
|
if (isStart) {
|
|
soundFlag.value = false
|
|
} else {
|
|
soundFlag.value = true
|
|
}
|
|
}
|
|
|
|
function clickMicro() {
|
|
console.log('点击了麦克风')
|
|
lastMsg.value = sendMessage.value
|
|
asrMsg.value = ''
|
|
smileFlag.value = true
|
|
soundFlag.value = !soundFlag.value
|
|
}
|
|
|
|
// TTS 语音识别内容回填(替代原 :content.sync)
|
|
function onTTSContentUpdate(val) {
|
|
sendMessage.value = val
|
|
}
|
|
|
|
// 暴露给父组件通过 ref 调用(如 footer-bar.vue 的 offEmoticonsPictures)
|
|
defineExpose({
|
|
offEmoticonsPic,
|
|
})
|
|
|
|
// —— watch(原 sendMessage 侦听器)——
|
|
watch(sendMessage, (newValue, oldValue) => {
|
|
oldMessage.value = oldValue
|
|
|
|
const elInput = sendMessageArea.value
|
|
|
|
getHeight(elInput)
|
|
|
|
sendFlag.value = newValue ? true : false
|
|
addFlag.value = true
|
|
associationalWord.value = newValue ? true : false
|
|
|
|
// 联想词 人工时不调用联想词
|
|
if (elInput && elInput.value && manualService.value != 2) {
|
|
if (duolunFloat.value) {
|
|
getAssociationalWord()
|
|
} else if (chatList.value[chatList.value.length - 1]?.cmd == 'pbend') {
|
|
// 防止用户点击的时候, 状态没有更新
|
|
duolunFloat.value = true
|
|
getAssociationalWord()
|
|
} else {
|
|
associationalWord.value = false
|
|
}
|
|
}
|
|
|
|
changeMaxLength()
|
|
})
|
|
</script>
|
|
|
|
<style scoped>
|
|
.footer-bar-input {
|
|
position: relative;
|
|
}
|
|
|
|
.footer-overflow {
|
|
overflow: hidden;
|
|
}
|
|
|
|
.associational-word-box {
|
|
width: 100%;
|
|
height: auto;
|
|
position: absolute;
|
|
top: 1rem;
|
|
left: 0;
|
|
z-index: 10;
|
|
-ms-transform: translate(0, -100%);
|
|
-webkit-transform: translate(0, -100%);
|
|
transform: translate(0, -100%);
|
|
background: #ffffff;
|
|
box-shadow: 0 -3rem 4rem 0 #eef2f8;
|
|
border-radius: 18rem 18rem 0 0;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.input-box {
|
|
padding: 9.5rem 10rem 9.5rem 15rem;
|
|
min-height: 54rem;
|
|
-webkit-box-sizing: border-box;
|
|
box-sizing: border-box;
|
|
align-content: flex-start;
|
|
align-items: center;
|
|
display: -webkit-box;
|
|
display: -webkit-flex;
|
|
display: -ms-flexbox;
|
|
display: flex;
|
|
background-color: #ebf1ff;
|
|
}
|
|
|
|
.input-box-txt {
|
|
width: 100%;
|
|
height: auto;
|
|
min-height: 10rem;
|
|
line-height: 10rem;
|
|
border-radius: 30rem;
|
|
padding: 7.5rem 20rem 7.5rem 15rem;
|
|
vertical-align: middle;
|
|
margin-right: 5rem;
|
|
-webkit-box-sizing: content-box;
|
|
box-sizing: content-box;
|
|
user-select: text;
|
|
-webkit-user-select: text;
|
|
-webkit-box-flex: 1;
|
|
-ms-flex: 1;
|
|
flex: 1;
|
|
position: relative;
|
|
overflow: hidden;
|
|
display: flex;
|
|
align-items: flex-end;
|
|
background: linear-gradient(111deg, #dcfcff 0%, #ffffffbf 12%, #ffffff 38%);
|
|
box-sizing: border-box;
|
|
/* border: 1.2px solid; */
|
|
border-image: linear-gradient(99deg, #ffffff 4%, #ffffff 88%) 1.2;
|
|
backdrop-filter: blur(14px);
|
|
box-shadow: 0px 4px 10px 0px rgba(181, 189, 216, 0.3);
|
|
|
|
z-index: 0;
|
|
}
|
|
|
|
.input-text-tips {
|
|
position: absolute;
|
|
bottom: 7.5rem;
|
|
right: 5rem;
|
|
font-size: 9rem;
|
|
color: #999;
|
|
line-height: 20rem;
|
|
}
|
|
|
|
.input-box-middle {
|
|
display: table-cell;
|
|
min-height: 20rem;
|
|
line-height: 20rem;
|
|
vertical-align: middle;
|
|
height: 100%;
|
|
margin: 7.5rem auto;
|
|
}
|
|
|
|
.input-txt {
|
|
box-sizing: border-box;
|
|
width: 100%;
|
|
/* height: 20rem; */
|
|
max-height: 80rem;
|
|
line-height: 20rem;
|
|
border: 0;
|
|
background: transparent;
|
|
border-radius: 2rem;
|
|
font-family: SourceHanSansCN-Normal;
|
|
font-size: 14rem;
|
|
color: #333;
|
|
letter-spacing: 0;
|
|
text-align: justify;
|
|
vertical-align: middle;
|
|
caret-color: #1988fe;
|
|
border: none;
|
|
resize: none;
|
|
overflow: hidden;
|
|
overflow-y: auto;
|
|
word-break: break-all;
|
|
-webkit-appearance: none;
|
|
-webkit-user-select: text;
|
|
-moz-user-select: text;
|
|
-ms-user-select: text;
|
|
user-select: text;
|
|
-webkit-overflow-scrolling: touch;
|
|
}
|
|
|
|
textarea:-moz-placeholder,
|
|
textarea:-webkit-input-placeholder,
|
|
textarea:-ms-input-placeholder {
|
|
font-family: SourceHanSansCN-Normal;
|
|
font-size: 14rem;
|
|
color: #b5bace;
|
|
letter-spacing: 0;
|
|
text-align: justify;
|
|
}
|
|
|
|
/* .input-txt::selection{
|
|
background-color: transparent;
|
|
} */
|
|
|
|
.input-btn-box {
|
|
width: 30rem;
|
|
height: 30rem;
|
|
padding: 0 5rem;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.input-btn-box .btn-box1 {
|
|
-ms-flex-negative: 0;
|
|
flex-shrink: 0;
|
|
-webkit-box-flex: 0;
|
|
-ms-flex-positive: 0;
|
|
flex-grow: 0;
|
|
}
|
|
|
|
.input-btn-box .btn-box2 {
|
|
-ms-flex-negative: 1;
|
|
flex-shrink: 1;
|
|
-webkit-box-flex: 1;
|
|
-ms-flex-positive: 1;
|
|
flex-grow: 1;
|
|
}
|
|
|
|
.btn-item {
|
|
display: block;
|
|
width: 28rem;
|
|
height: 28rem;
|
|
margin: 0 auto;
|
|
transition: transform 0.5s;
|
|
-moz-transition: -moz-transform 0.5s;
|
|
-webkit-transition: -webkit-transform 0.5s;
|
|
-o-transition: -o-transform 0.5s;
|
|
}
|
|
|
|
.btn-item:disabled {
|
|
opacity: 0.5;
|
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
|
}
|
|
|
|
.smile-box {
|
|
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAAXNSR0IArs4c6QAACN1JREFUaAXlW2uIVUUc/8/ZVyYaJZpGURq5SH4wfBWY3u0hKWogUbnrursqqyESpflNlPxWGYRJKer6vJaEUIpFga2bIL5ISBELsiJKVirUNt3XnX6/OWfOnvvYvefsvavXdZbdef1fv5n/zJnXKumjUH9A393SLFNEyXhJSDnUlGslw5XIII1fqkX6GtLXlJZLyF4QB79aTg8cJkc3z1b/kSbfATrzF6p36mGJdqmE0XMBbjLi0l5JV9KGRjiOFtnvlEh81wLV3Cs5GZjyArhyi56qlLyltbwAHcUZ9ORS1AHZX0H2u/HFqikXQeTNCXDlVl0BGW+jJ6ekGaIEnSxnUd4Ig89B0wVVJL+i566OGiDXSP/zdbi3ksG6Ux6GjHKAehzFMbj5WOTTbVNy1HFk9e461Uj+3oR0oSGkzN+lR+g2WQ8D5yWRAyTyTQC1s9SRAw0L1eWk+pCZum16aFtCZqMxFoBlaip4NOBeVSordlerP0OK9MkiA67aqmcA6F5IuCcgRQPkvpIiWb29Tv3kl+chUdugH2vvlHUA/3IK8CsAPm/PIvVlFDWRAAPsCih9B93oWCVQ+i0yq3YtUqdsWV/E1Vv1hIRAt5YKKx/GJ+D4qwB6vS3LFocCvPyQLvv7D9kEoDVWIBgvQtmyqC1s+Xsb08PQ6Bthy0grA7bsuO8BWbJhpmq1Zd3FWQFzPLVq+RxKnrJCwNRYVCIv7axRf9mymxkv2KGHdLbLZwAd8/UqOVam5MVs84bvmj5jIMGezQB208BxMv1WgaV51E0b0PCbfHPRIbSVNvtlGRI9fjPpxuBxe1ZJJxS8DhfemEHOTS/aPEG1Q+lSuPgP6OkP4IFF9ELP5truDOq2hzlBQVCNZSwksNYmxuwA2mbLaLOZXG1BSgza9OBNDAfBbBoERJv2LFZL0ykLp6Rqi/4Y9i6hRbCXs/esTBNqWg+bRQW+swGwjRgvywsHWmZLaCOANrKWtnOtQCyp1GmAuYICkVlUQMBFzsbeeEnlLag8baSttNkz7B4PS5KdSYDnN+hY0nIR39lbORsnWRoiY2yFzZaUWIjJ5hknAU4kZJ2t5Aoq0xiw9YUa02babu0LYmKZD7h6m54G53d3PdgEoGKVZbrdYmO7u5HhgJ5isHkgfMAJLSstMG4E+nptbHX1RUzbicHKDmIzgHlSAX/n5p1zuuauxxLfrrHB4PUysREjsRjA5lim66SiKd9bvFvRaB6GJk93sYfRG8M4g7JGwRV22vTtHidh8TAW83Tx32Zz4GbcuVTJgShAvVXZZsOjpD7fM3su8nnqgg0FfxQOECYTq2OOUr3TRXy0z2bbXqU1hpbNWNk8yF8IdoGnEeVQkIN8YiEmox0YidXBJDU+YE5jIN1fkl2YgNXxDskNOHywz0VGCTdGK/7OXzRefWT+bAw5yk/ChAsB7ofLfZ04SvXTIRPemH0oJHlkspzlJ2MqdzCYh1srgP4Xm+4vMc/CLRZideCKg2xBwnEPyG2+P8T4NF21OIjVwezqA7Y3ApagP8RBTMRqVlr9AVhYDHRpc89DBt71hGW8XeiCmIiVLu0DxqAeHBWI1lrN36qr+Mt0VP5s9LnKD2Ii1mIM6ktIPELF5hav64gkmy2mvnqbVGL7tZsZpBn2mL95+pOrfA+TsYZYOYa7vr24soxqJxprqOVJKJlo0/mKgzKDukLLT8Z0wcF+yQeMfSPvZyMFHI385jMkZJSfzlMCvfKoFZWkyxZmiZMwAauDBf/pAE8skA6VLHa8xTmplTxXtVtHnge6U0RZ6NVnbX2SLluYPY75JMDq8AEJDG1jIYSP5eWZTxAigZPCH0HmNpqWAZDknxqGYO+ZhLIo0w2nPV098wRqiYWYTBEwEqvD1zJwm+OmEPtG3rwHeMIlna5toU7Imuot2lUSjjsjFWVQll8Z0OGXZUlgLzwHDWa+HMRIrO7CA69lLC+mcT4ziBRG18kW7ErcRhMpw0TzDc6QxkQSEiAmL2WgqIzFlE0dAZKwyWqf0MNoAPNpECo6vMqpfGbgE4ZIrFWKdzkLQXqF5Jgohne2yTE8eqllPkogD3kpw+O7QtlGRwRBHoapHkuHh9HtbhbiKOUAlMxiGj7wKS7PXmU6Sqhq0E9if/015HSt2JScwnLufVUsX+C9VUsmeejRgbpD5uB7/iZccIKlQc9eA+/zuxYq6z22KmuMy7VPMH5fISHkHMQ20wxVf2XEt1aoO2Ik4XizSGRSb86mKxv0ONUpcShLcmkoakdLnoR8TnKXjR73Gz4aICeCvsQrMxHoz8OIynidOhMsD5Pme5BOkRN2/IJnmn3j5QOmILjTdyAytw9oFV61PBNGQSrNG/v0gOarshYAl6G3B6bW95SH3hbYsBHnymtw1HqjJ9ru6uCth6G3wtTjbVd8kXra0qYCroCyw36lkpneiYMtihRX7tH3OjfkNbjqXCh6Ar3oTpIpUlAHEvke7rs/cZd8FK9S/6SQhM7ylBNgD1kGp0gqgg/ZkgCTCAxxMMxjGpW8Lp2YjxtEgi9qlUkJwQNTLeYWAF+EZrTApc4yOZELSNrK4D12OYnGG8k8vGUvOqySaRvSAPMSOdEq50Fg74h5IT690O+I60/pkpYzmDBFYh64K06ZjEl9rZfmYiRAy8xDS6AzzOorBkEbPCEFG9FGC5a2E0MqWBqfBpiFZtzihRvTDBC0BK6evyWjKzZvf2kbbfQFuq/zMj5JTHNpnwkJfMu2Q1CNKSuwZ0vWTg+s+2wJhQC0A2uIWlufGmfsYUvE53yQcMzk8Q4Kk9mHfC3D8WJpblVMG8zLHdgEF8SyAQG2Gpt7MKrHHibfHfX0kIB5ITVkhFTQVZhngJvH8NbxJNxphlty8/5SJ3XTBquVttHGMBeBWXvYCmUMZXfG8+EU0HfOA3EL/I76FwALmjEffZl3UPa5U7ASOy6Ml/7xTx5BXEzzHRRW/yvx2eqzf+PBxuI97IuPpOqOmo80aWUTvjiu779+HRuP/v6PWpkaolD/Fe9/yD/EQUUaOhgAAAAASUVORK5CYII=') no-repeat center;
|
|
background-size: 100% auto;
|
|
}
|
|
|
|
.keyboard-box {
|
|
background: url('data:image/png;base64,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') no-repeat center;
|
|
background-size: 100% auto;
|
|
}
|
|
|
|
.send-box {
|
|
background: url('data:image/png;base64,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') no-repeat center;
|
|
background-size: 100% 100%;
|
|
border: 0;
|
|
}
|
|
.disabled-send-box {
|
|
background: url('data:image/png;base64,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') no-repeat center;
|
|
background-size: 100% 100%;
|
|
border: 0;
|
|
}
|
|
|
|
.close-box {
|
|
background: url('../assets/images/add-icon.png') no-repeat center;
|
|
background-size: 100% auto;
|
|
transform: rotate(135deg);
|
|
-webkit-transform: rotate(135deg);
|
|
-moz-transform: rotate(135deg);
|
|
-o-transform: rotate(135deg);
|
|
border: 0;
|
|
}
|
|
|
|
.add-box {
|
|
background: url('../assets/images/add-icon.png') no-repeat center;
|
|
background-size: 100% auto;
|
|
border: 0;
|
|
}
|
|
|
|
.smile-emoticon-box {
|
|
min-height: 0;
|
|
height: 0;
|
|
background-color: #efefef;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.smile-emoticon-box.min_heightauto {
|
|
min-height: 245rem;
|
|
}
|
|
|
|
.upload-image {
|
|
min-height: 0;
|
|
height: 0;
|
|
background-color: #fff;
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.upload-image.min_heightauto {
|
|
min-height: 123rem;
|
|
}
|
|
|
|
.draw-enter-active,
|
|
.draw-leave-active {
|
|
transition: all 0.4s ease;
|
|
}
|
|
|
|
.draw-enter,
|
|
.draw-leave-to {
|
|
height: 0;
|
|
}
|
|
|
|
.word-cells {
|
|
background-color: #ffffff;
|
|
line-height: 23rem;
|
|
font-size: 15rem;
|
|
overflow: hidden;
|
|
position: relative;
|
|
}
|
|
|
|
.word-cell_access {
|
|
-webkit-tap-highlight-color: rgba(255, 255, 255, 0.3);
|
|
color: inherit;
|
|
}
|
|
|
|
.word-cell {
|
|
padding: 0 15rem 0 18rem;
|
|
position: relative;
|
|
display: -webkit-box;
|
|
display: -webkit-flex;
|
|
display: flex;
|
|
-webkit-box-align: center;
|
|
-webkit-align-items: center;
|
|
align-items: center;
|
|
}
|
|
|
|
.word-cell:before {
|
|
content: ' ';
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
right: 0;
|
|
height: 1rem;
|
|
border-top: 1rem solid rgba(0, 0, 0, 0.1);
|
|
color: rgba(0, 0, 0, 0.1);
|
|
-webkit-transform-origin: 0 0;
|
|
transform-origin: 0 0;
|
|
-webkit-transform: scaleY(0.5);
|
|
transform: scaleY(0.5);
|
|
left: 16rem;
|
|
z-index: 2;
|
|
}
|
|
|
|
.word-cell:first-child::before {
|
|
border: 0;
|
|
}
|
|
|
|
.word-cell_example:before {
|
|
left: 18rem;
|
|
}
|
|
|
|
.word-cell_access .word-cell__ft {
|
|
padding-right: 15rem;
|
|
position: relative;
|
|
}
|
|
|
|
.word-cell__bd {
|
|
-webkit-box-flex: 1;
|
|
-webkit-flex: 1;
|
|
flex: 1;
|
|
}
|
|
|
|
.word-cell__bd p {
|
|
height: 47rem;
|
|
text-align: left;
|
|
font-family: SourceHanSansCN-Regular;
|
|
font-size: 15rem;
|
|
color: #717985;
|
|
line-height: 47rem;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.word-cell_primary {
|
|
-webkit-box-align: start;
|
|
-webkit-align-items: flex-start;
|
|
align-items: flex-start;
|
|
width: 100%;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.word-cell__ft {
|
|
text-align: right;
|
|
color: rgba(0, 0, 0, 0.5);
|
|
}
|
|
|
|
.word-cell_access .word-cell__ft:after {
|
|
content: ' ';
|
|
width: 12rem;
|
|
height: 24rem;
|
|
mask-position: 0 0;
|
|
mask-repeat: no-repeat;
|
|
mask-size: 100%;
|
|
background-color: currentColor;
|
|
color: rgba(0, 0, 0, 0.3);
|
|
mask-image: url(data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.454%206.58l1.06-1.06%205.78%205.779a.996.996%200%20010%201.413l-5.78%205.779-1.06-1.061%205.425-5.425-5.425-5.424z%22%20fill%3D%22%23B2B2B2%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E);
|
|
position: absolute;
|
|
top: 50%;
|
|
right: 0;
|
|
margin-top: -12rem;
|
|
}
|
|
|
|
.elder-wrapper .associational-word-box {
|
|
box-shadow: 0 -4rem 16rem 0 rgba(25, 28, 104, 0.1);
|
|
}
|
|
|
|
.elder-wrapper .associational-word-box .word-cell__bd p {
|
|
font-family: PingFangSC-Regular;
|
|
font-size: 20rem;
|
|
color: #2c3562;
|
|
letter-spacing: 0;
|
|
}
|
|
|
|
.elder-wrapper .input-txt {
|
|
font-family: PingFangSC-Medium;
|
|
font-size: 16rem;
|
|
color: #2c3562;
|
|
letter-spacing: 0;
|
|
height: 26rem;
|
|
max-height: 104rem;
|
|
line-height: 26rem;
|
|
}
|
|
|
|
.elder-wrapper .input-box {
|
|
align-items: center;
|
|
}
|
|
|
|
.elder-wrapper .input-box .btn-item {
|
|
width: 36rem;
|
|
height: 36rem;
|
|
}
|
|
|
|
.elder-wrapper .input-btn-box {
|
|
width: 36rem;
|
|
height: 40rem;
|
|
padding: 2.5rem 5rem 0 5rem;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.elder-wrapper .input-box .smile-box {
|
|
background: url(data:image/png;base64,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) no-repeat;
|
|
background-size: 100%;
|
|
}
|
|
|
|
.elder-wrapper .input-box .send-box {
|
|
background: url(data:image/png;base64,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) no-repeat;
|
|
background-size: 100%;
|
|
}
|
|
|
|
.elder-wrapper textarea:-moz-placeholder {
|
|
font-family: PingFangSC-Medium;
|
|
font-size: 20rem;
|
|
color: #bfc3d1;
|
|
}
|
|
|
|
.elder-wrapper textarea:-webkit-input-placeholder {
|
|
font-family: PingFangSC-Medium;
|
|
font-size: 20rem;
|
|
color: #bfc3d1;
|
|
}
|
|
|
|
.elder-wrapper textarea:-ms-input-placeholder {
|
|
font-family: PingFangSC-Medium;
|
|
font-size: 20rem;
|
|
color: #bfc3d1;
|
|
}
|
|
|
|
.elder-wrapper .keyboard-box {
|
|
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGwAAABsCAMAAAC4uKf/AAAAflBMVEUAAAAsNWMtNmNTU304PGksNWIsNWMuOGQuN2Q3RGwtNWIsNWIsNmMsNWMsNmIsNWMsNWMtNmIuNmMuNmMvN2QuN2MwN2QtNWMzPGYsNmItNmMsNmMsNmMsNWMuNmQtN2MtNmMsNWMsN2MuOGMvNmUuNWQwNWUzQGZVVaosNWKh0xYfAAAAKXRSTlMA54gGDfuhMVUJ9d/avrqnlJBpXkE5Jc0c0Mfy7bKAfndtYk1MRzAUA416VbMAAAMeSURBVGje7JbZeqowFIV3mIKVQYYi2lpna97/Bc/3dUdTDQkZOL3yvwogLLOz9gAvXrx48UfMLuk22eTLLFvmm2SbXmbwf4hO1YpJrKpTNLlSU8RMQVw0U+q9J29My1vyDtPQ5syAvJ1iV2tmyNp3d98Je2BeVPWxpV1H22NdFXP2QPINHhw+mYAkTQ9P9E1CmODz4G7B8pcFyvMVBrmey1/2KR2NSTOxqZ32G9FObC+j4EAa36X2s9HSsr/LxSlYU9+04kVkFPPF/YUaLPlinCU1DvuScb4ctRYhGBMunNRqhnxYxj/9YEht7w1CrR1MbF1Cuda8A2u6OVejhrmcca0eHOi5WmaW3SWPYQdOdDySpVE95N6g4AjlLjkY1Hlee1NwJuVVebwHJDy/wAOeb8lor+R1IwQPQl5LxrrpWmtcy+RZg5ZWCqJXIFvQkaPrI/AkQv/nBie2B2/24tT0ViQz8GZGxgwZ4TCxgwnY4eiiPpBm6AdhQNgjJAjxvryW/ngDKoqhohYwmQDvy2upxBbKKGJ2nOEBwmQIvy+vBWfMWFUcT/jCdRqxK948wTCVMJBvGIW1KxhmJY7U1yDCbitFauCnepiIHr83nLQXHAZgMnBAuGh6XgGTUWi68HbwQMV5aNZ4ietnw23VhVEeLwMzBwa3taDWlMfNz7MjPEHMcovc1oLjz/ONppe1jmJ4IXViVU/DwYFah1EpRnGcgSFwEO6sDaIU63A01orZ4iAmwmiLQxiFQWyxN4iwvsOZiWKtt75/UuOao09quVy55BlhHH25kguxj1j8r10rOQEYhmH00UdHSDbo/gv2U+qHKUotU2SwFggkJtYFPmK3YphrnGDF+OUZHpB9Hnh5elrAw2gBJDw8jPBAKsfDqBwgqf7NMIx1YZKK6TcGpt9YWGznOjYvLKBk4g8zyYTFIH2NJgaxzGUHxGSuioBPtyZ0TJckO2ncL6ZklKVagFrmZp5tq2dIJ1ntiiFCRjyiGvzEIq3xnKUc1jExpHrAGo2OK4Tigbi/TpHhS0WjXvlkpVZTtzD0XoVqNBqNf3ABXVBf3qwAlzEAAAAASUVORK5CYII=) no-repeat;
|
|
background-size: 100%;
|
|
}
|
|
|
|
.elder-wrapper .add-box {
|
|
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGwAAABsCAMAAAC4uKf/AAAAgVBMVEUAAAAtNWMsNmI4PGksNWIsNWMtNmMtNmMuNmQvN2MvN2Q7RWwtNWIsNWIsNmMtNmMtNmMuNmMtNmMvN2QtN2UwN2QtNWMsNmIsNWMtNWIsNmMtNmMtNmMsNmIsNWMsNWMtNmMtNmMtN2ItNmMsN2MvOGQuO2IzPGYzQGYzPWYsNWJmp6vtAAAAKnRSTlMA8OkN+KKTa0s6MAj1wL2ef15UQTIlzdDh3dvZx7iyqKWOgndiVyceFBl1hbf5AAACwUlEQVRo3uzX23KqMBQG4B/COQVEQFvPZ23e/wH3DFlTqRuTAGl743cpzvwkWQsWeHl5efklPDlP/E06Wy5n6cafnBOOn8Gi/Vz8Z76PmPWkIvPEE15W2MyL/Teh9ObHsKPMhIGstLGqlTC0Gru6Wy6+eV8HYVRWdV2VURis38U3+Q0jnBxx5/rFFQ+uhe+KO+eEodi2VQK7CE9Eu1b5bBkGSRb3RR0ZFNjxvrxFggGm3ldUyKHBw684b4reQkG8gMEACzxBQvQ0EWSWGG/7TJDJwKyAwxgPFGn6PXSmPc/Z6b+TUyG5FXqqXCEZ32VCR/1Ro7f6g8rK8KjZgrI+McAnpS0YTGxpD2sMUtNObmHgRLVRYaCKquQErZujPeHLIc8PF219OTfo5NRfijec11SA4u1F/ZZDI6bnhqKXU9FIFd1Nz5IYait94bpUQPrmWUGpVG0icehIAO1GllDJ5E2zsWFMLj8zOLEQY8MQ6k/Nlwvj48O4XJqvWLwcJo4YH4ajHF0YninoDzbC6MYLTXnsYCMMO3WJMNkdkZ2wSHYsU152YScMrvLW91RAdsKotPfoNqcjtRNG5TZHJy4aV1thV9Hg6JLI7xTYCoP8xknQ5dxcW9sLWzf/OysG08BeWCAHVkX1hPbCQkV1b7r6Ik5d54EgzgM3jbv6dqN43Zdou3iiB++CtlIxPsjBoULbQfRyQFslxxl0WTbX6o5Zy1iOtrr5bfn3Yf/aNZcbgEEYho7B/pv2UnFDgmCTFylZoFL52X52/cb8DeLa+vmH2nVd5V/Ericm//E0yQKC4PFIOYJItchvhrFwWCaGGTTYXIqBl0cTnNBFFCeNf8VIQZk0AmSFm7rYlhdIi6J2IkRQ4BEq+IkhrTG/RYZ1NxiSDlij6LgCFA/g/jpFhpOKRr3yyU6tpm5haF2F6unp6XkzHxu1R0ZZuA0PAAAAAElFTkSuQmCC) no-repeat;
|
|
background-size: 100%;
|
|
}
|
|
|
|
.elder-wrapper .close-box {
|
|
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGwAAABsCAMAAAC4uKf/AAAAgVBMVEUAAAAtNWMsNmI4PGksNWIsNWMtNmMtNmMuNmQvN2MvN2Q7RWwtNWIsNWIsNmMtNmMtNmMuNmMtNmMvN2QtN2UwN2QtNWMsNmIsNWMtNWIsNmMtNmMtNmMsNmIsNWMsNWMtNmMtNmMtN2ItNmMsN2MvOGQuO2IzPGYzQGYzPWYsNWJmp6vtAAAAKnRSTlMA8OkN+KKTa0s6MAj1wL2ef15UQTIlzdDh3dvZx7iyqKWOgndiVyceFBl1hbf5AAACwUlEQVRo3uzX23KqMBQG4B/COQVEQFvPZ23e/wH3DFlTqRuTAGl743cpzvwkWQsWeHl5efklPDlP/E06Wy5n6cafnBOOn8Gi/Vz8Z76PmPWkIvPEE15W2MyL/Teh9ObHsKPMhIGstLGqlTC0Gru6Wy6+eV8HYVRWdV2VURis38U3+Q0jnBxx5/rFFQ+uhe+KO+eEodi2VQK7CE9Eu1b5bBkGSRb3RR0ZFNjxvrxFggGm3ldUyKHBw684b4reQkG8gMEACzxBQvQ0EWSWGG/7TJDJwKyAwxgPFGn6PXSmPc/Z6b+TUyG5FXqqXCEZ32VCR/1Ro7f6g8rK8KjZgrI+McAnpS0YTGxpD2sMUtNObmHgRLVRYaCKquQErZujPeHLIc8PF219OTfo5NRfijec11SA4u1F/ZZDI6bnhqKXU9FIFd1Nz5IYait94bpUQPrmWUGpVG0icehIAO1GllDJ5E2zsWFMLj8zOLEQY8MQ6k/Nlwvj48O4XJqvWLwcJo4YH4ajHF0YninoDzbC6MYLTXnsYCMMO3WJMNkdkZ2wSHYsU152YScMrvLW91RAdsKotPfoNqcjtRNG5TZHJy4aV1thV9Hg6JLI7xTYCoP8xknQ5dxcW9sLWzf/OysG08BeWCAHVkX1hPbCQkV1b7r6Ik5d54EgzgM3jbv6dqN43Zdou3iiB++CtlIxPsjBoULbQfRyQFslxxl0WTbX6o5Zy1iOtrr5bfn3Yf/aNZcbgEEYho7B/pv2UnFDgmCTFylZoFL52X52/cb8DeLa+vmH2nVd5V/Ericm//E0yQKC4PFIOYJItchvhrFwWCaGGTTYXIqBl0cTnNBFFCeNf8VIQZk0AmSFm7rYlhdIi6J2IkRQ4BEq+IkhrTG/RYZ1NxiSDlij6LgCFA/g/jpFhpOKRr3yyU6tpm5haF2F6unp6XkzHxu1R0ZZuA0PAAAAAElFTkSuQmCC) no-repeat;
|
|
background-size: 100%;
|
|
}
|
|
|
|
.elder-wrapper .input-box-txt {
|
|
min-height: 44rem;
|
|
line-height: 44rem;
|
|
background: #eef0f6;
|
|
border-radius: 22rem;
|
|
padding: 0 35rem 0 18rem;
|
|
}
|
|
|
|
.elder-wrapper .input-box-txt .input-txt {}
|
|
|
|
.elder-wrapper .input-box-txt .input-text-tips {
|
|
bottom: 12rem;
|
|
right: 16rem;
|
|
font-family: PingFangSC-Regular;
|
|
font-size: 14rem;
|
|
color: #d0d2db;
|
|
}
|
|
|
|
.quote-preview-box {
|
|
line-height: normal;
|
|
background-color: #f7f8fa;
|
|
padding: 8rem 16rem;
|
|
height: 28rem;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
font-size: 13rem;
|
|
color: #666;
|
|
border-top: 1rem solid #eee;
|
|
border-bottom: 1rem solid #eee;
|
|
}
|
|
|
|
.quote-text {
|
|
flex: 1;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.quote-close-icon {
|
|
padding-left: 10rem;
|
|
cursor: pointer;
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
</style>
|
|
|