(function () { 'use strict' if (typeof $ === 'undefined') { throw new Error('请先加载jQuery') } $(function () { var multilingual = window.multilingual || {} var urlObj = getUrlQuery(location.search) || {} var lastChatTime = null var questionSourceType = '' //帮助规范 var limit = 30 var moreNum = 5, questionLength = window.questionLength || 5, associatedAnswerNum = 3 var robotAvatar = '' var robotSetting = {} var hdUserId = '' var commonProblem = [] var historicRecords = { maxLen: 10, value: [] } var isHanjiang = $('#is-hanjiang').data('value') var isZhiPu = $('#zhipu').data('value') var isYueZT = $('#yuezt').data('value'); var isCzkj3 = $('#czkj3').data('value'); var isBaoding = $('#is-baoding').data('value') var isXinjiang = $('#xinjiang').data('value') if(isYueZT) historicRecords.maxLen = 20; var timeFlag = false // 小程序端判断 var isWxMiniAppFlag = null var isZFBMiniAppFlag = null var isBDMiniAppFlag = null var sendFlag = true, errFlag = false, loginCount = 0 var questionArr = [] var formArr = [] var formIndex = 0 var ie = !!window.ActiveXObject var canChangeSuggest = true var typed, xId; var traceId = new Date().getTime(); var serviceId, rewriteServiceId; //数字人 var kpHuman = null var isKpNumberRobot = $('#is-kaipu-robot').data('value') var isKpNumberMianyang = $('#is-kaipu-mianyang').data('value') var isKpNumberTongLiang = $('#is-kaipu-tongliang').data('value') var kphumanVoice = true var kphumanWord = '' var tagRegex = /(<([^>]+)>)/gi; if (ie) { $('.czkj-textarea').bind('propertychang', function () { watchQuestion() }) } else { $('.czkj-textarea').on('input', function (event) { watchQuestion() }) } var linkMobile = $('#like-mobile').data('value') var resultMap = $('#czkj-result-map').data('value') var testMap = $('#czkj-test-map').data('value') var robotFootHtml = '' var isHljMiniApp = false isWxMiniApp(function () { // 小程序端重写计算底部高度 $('.czkj-content-all').addClass('wx-mini-app-container') if ($('#hlj-mini-app').data('value')) { isHljMiniApp = 1 } // 如果是iPhonex 以上 黑龙江小程序内需重新计算底部高度 if (/iphone/gi.test(window.navigator.userAgent) && window.screen.height >= 812) { $('.czkj-content-all').addClass('iphonex-mini-app') if ($('#hlj-mini-app').data('value')) { isHljMiniApp = 2 } } }) isZFBMiniApp() isBDMiniApp() //英文版 var chineseContent = [ {name: '非常抱歉,服务器异常,请稍后再试', value: '非常抱歉,服务器异常,请稍后再试', key: 'errMsg'}, {name: '非常抱歉,授权失败', value: '非常抱歉,授权失败', key: 'authErr'}, {name: '以上问题都不是', value: '以上问题都不是', key: 'notall'}, {name: '是否已解决你的问题', value: '是否已解决你的问题', key: 'isResolved'}, {name: '请对我们的服务进行评价', value: '请对我们的服务进行评价', key: 'rateService'}, {name: '相关附件资源', value: '相关附件资源', key: 'resources'}, {name: '查看问法规范', value: '查看问法规范', key: 'questionForms'}, {name: '你的浏览器不支持查看该视频资源', value: '你的浏览器不支持查看该视频资源', key: 'noneVideo'}, {name: '你的浏览器不支持查看该音频资源', value: '你的浏览器不支持查看该音频资源', key: 'noneAudio'}, {name: '非常抱歉,你的浏览器不支持录音功能,请尝试其他浏览器', value: '非常抱歉,你的浏览器不支持录音功能,请尝试其他浏览器', key: 'noneVoice'}, {name: '查看关联资源', value: '查看关联资源', key: 'viewResource'}, {name: '推荐主题', value: '推荐主题', key: 'hotQuestion'}, {name: '更多', value: '更多', key: 'more'}, {name: '收起', value: '收起', key: 'putWay'}, {name: '你还可以输入', value: '你还可以输入', key: 'canenter'}, {name: '个字', value: '个字', key: 'characters'}, {name: '你输入的字数已经超过上限', value: '你输入的字数已经超过上限', key: 'wordLimit'}, {name: '热门问题', value: '热门问题', key: 'hotProblem'}, {name: '原始事项链接', value: '原始事项链接', key: 'matterLink'}, {name: '登录已失效,请重新登录', value: '登录已失效,请重新登录', key: 'errorMsg'}, {name: '请输入你的问题', value: '请输入你的问题', key: 'youInformation'}, {name: '输入字数过多,请精简后咨询', value: '输入字数过多,请精简后咨询', key: 'manyWords'}, {name: '提问规范', value: '提问规范', key: 'standard'}, {name: '暂无提问规范', value: '暂无提问规范', key: 'noStandard'}, {name: '常见问题', value: '常见问题', key: 'commonQuestion'}, {name: '暂无历史记录数据', value: '暂无历史记录数据', key: 'noHistory'}, {name: '感谢你的评价', value: '感谢你的评价', key: 'thank'}, {name: '请你进行选择', value: '请你进行选择', key: 'choice'}, {name: '确定', value: '确定', key: 'confirm'}, {name: '请选择不满意的原因后提交', value: '请选择不满意的原因后提交', key: 'choiceQuestion'}, {name: '非常抱歉,你的浏览器暂不支持语音', value: '非常抱歉,你的浏览器暂不支持语音', key: 'supporSound'}, {name: '非常抱歉,你的浏览器暂不支持语音,请尝试切换至safari浏览器', value: '非常抱歉,你的浏览器暂不支持语音,请尝试切换至safari浏览器', key: 'supporSafari'}, {name: '非常抱歉,没有听清楚你在说什么。', value: '非常抱歉,没有听清楚你在说什么。', key: 'noSound'}, {name: '此浏览器不支持录音', value: '此浏览器不支持录音', key: 'noSuppor'}, {name: '按住 说话', value: '按住 说话', key: 'pinSay'}, {name: '授权中..', value: '授权中..', key: 'authorization'}, {name: '链接出错了', value: '链接出错了', key: 'interlinkageErr'}, {name: '推荐主题:', value: '推荐主题:', key: 'popularTheme'}, {name: '业务主题:', value: '业务主题:', key: 'popularThemeHbmz'}, {name: '历史记录', value: '历史记录', key: 'history'}, {name: '暂无历史记录数据', value: '暂无历史记录数据', key: 'noData'}, {name: '长按分享问答详情', value: '长按分享问答详情', key: 'share'}, {name: '扫码查看问答详情', value: '扫码查看问答详情', key: 'details'}, {name: '换一换', value: '换一换', key: 'change'}, {name: '你是否还想问以下问题', value: '你是否还想问以下问题', key: 'belowQuestion'}, {name: '构建时间:', value: '构建时间:', key: 'startTime'}, {name: '分词结果:', value: '分词结果:', key: 'participleResult'}, {name: '你的选择是', value: '你的选择是', key: 'youChoice'}, {name: '感谢你的评价', value: '感谢你的评价', key: 'youEvaluate'}, {name: '请在微信客户端打开链接', value: '请在微信客户端打开链接', key: 'wxOpen'}, {name: '网络超时请稍后再尝试~', value: '网络超时请稍后再尝试~', key: 'timeout'}, {name: '请等机器人回复后再发送~', value: '请等机器人回复后再发送~', key: 'chatgptTip'}, ] var languageType = $('#language-type').html() var otherLanguageObj = {} var languageObj = {} if (languageType) { for (var i = 0; i < languageList.length; i++) { if (languageType == languageList[i].languageType) { otherLanguageObj = languageList[i] } } if (otherLanguageObj.content) { for (var i = 0; i < otherLanguageObj.content.length; i++) { languageObj[otherLanguageObj.content[i].key] = otherLanguageObj.content[i].value } for (var i = 0; i < otherLanguageObj.htmlBody.length; i++) { languageObj[otherLanguageObj.htmlBody[i].key] = otherLanguageObj.htmlBody[i].value } $('.mobile-top-name').html(languageObj.topName) $('.czkj-top-name').html(languageObj.topName) $('.czkj-rules-btn span').html(languageObj.questionFormsHtml) $('.czkj-enter-word').html('0/30') $('.czkj-enter-btn').html(languageObj.send) $('.czkj-send').html(languageObj.send) $('.czkj-caption').html(languageObj.attach) $('.czkj-robot-modal .czkj-caption').html(languageObj.attach) $('.czkj-err-modal .czkj-caption').html(languageObj.prompt) $('.czkj-err-modal .czkj-err-msg').html(languageObj.wordMore) $('#err-ok').html(languageObj.ok) $('#user_input').attr('placeholder', languageObj.inputQuestion) $('.mobile-top-name').html('' + languageObj.topName) } //设置页面html } else { for (var i = 0; i < chineseContent.length; i++) { languageObj[chineseContent[i].key] = chineseContent[i].value } } //判断是否是微信端 if (urlObj.wxid) { document.head.innerHTML = 'kaiyunI体育手机版登陆官网(中国)VIP官方认证·百度百科' document.body.innerHTML = '

' + languageObj.wxOpen + '

!
' robotServer.wxLogin(urlObj.wxid).then(function (res) { }) return } // 微信端参数 // code=031iPPFa14JbeA0dLPIa1gApuw4iPPFJ&state=wx_state&appid=wxc4bd3269be5d0805 var urlStr = '', urlArr = [] for (var key in urlObj) { urlArr.push(key + '=' + urlObj[key]) } if (urlArr.length) { urlStr = '?' + urlArr.join('&') } robotServer.login(urlStr).then(function (res) { loginFn(res, false) }, function (err) { $('#czkj-wait-modal .wait-msg').html(languageObj.errMsg) }) /* 登录 res login成功后返回值 boolean 是否是海淀通登录 */ function loginFn(res, boolean) { if (!res.content) { try { if (JSON.parse(res).ret === 401) { $('#czkj-wait-modal .wait-msg').html(languageObj.errorMsg) } else { $('#czkj-wait-modal .wait-msg').html(languageObj.errMsg) } } catch (e) { console.log(e) } return } else { if (!res.content.result) { $('#czkj-wait-modal').hide() $('.czkj-logo-icon img').attr('src', './image/robot-icon-blue.png') robotSetting.robotIcon = robotSetting.robotIcon || './image/robot-icon-blue.png' var html = robotHeadHtml() + languageObj.authErr + robotFootHtml $('#czkj-chat').append(html) return } } try { //登录成功后隐藏等待框 $('#czkj-wait-modal').hide() var resObj = res.content || {} robotSetting = resObj.robotSetting || {} if(!robotSetting.userIcon) $('#czkj-chat').addClass('no-user-icon'); //robotSetting.hotTopics = []; robotSetting.adminPath = resObj.adminPath || '' robotSetting.associatedResourceNum = robotSetting.associatedResourceNum || 5 robotSetting.foldNum = robotSetting.foldNum || 100 robotSetting.previewNum = robotSetting.previewNum || 1 robotSetting.voiceMode = robotSetting.voiceMode || 1 // 语音样式 robotSetting.foldPreviewNum = robotSetting.foldPreviewNum || 100 robotSetting.childLabelNum = robotSetting.childLabelNum || 10 robotSetting.foldChildLabel = robotSetting.foldChildLabel || 1000 // 设置头像设置robotIcon 和标题icon robotTitleGif robotSetting.robotIcon = robotSetting.robotIcon || './image/robot-icon-blue.png' robotSetting.robotTitleGif = robotSetting.robotTitleGif || '' var robotIcons = robotSetting.robotIcon.split('\n') robotSetting.robotIcon = robotIcons[0] if (robotIcons[1]) { robotSetting.errRobotIcon = robotIcons[1] } var robotTitleGifs = robotSetting.robotTitleGif.split('\n') robotSetting.robotTitleGif = robotTitleGifs[0] if (robotTitleGifs[1]) { robotSetting.errTitleGif = robotTitleGifs[1] } robotSetting.robotTitleGif = robotSetting.robotTitleGif || robotSetting.robotIcon robotSetting.errTitleGif = robotSetting.errTitleGif || './image/robot-icon-blue.png' robotSetting.errRobotIcon = robotSetting.errRobotIcon || './image/robot-icon-blue.png' $('.czkj-logo-icon img').attr('src', robotSetting.robotTitleGif) $('.czkj-logo-icon img').attr('onerror', 'this.src="' + robotSetting.errTitleGif + '"') //设置机器人名称 if (robotSetting.name) { $('.czkj-logo-name').html(robotSetting.name) if (robotSetting.robotRemark) { $('.czkj-server').html(robotSetting.robotRemark) } else { $('.czkj-server').hide() } } document.title = robotSetting.webTitle || '' //设置favicon.ico setFavicon(robotSetting.webPageIcon) //欢迎语 var html = robotHeadHtml('czkj-welcome-msg czkj-special-width') + robotSetting.welcome + robotFootHtml $('#czkj-chat').append(html) // 是否开启语音播报 robotSetting.audioVoice = true if (robotSetting.audioVoice) { var audioStr = '' $('.czkj-content-all').append(audioStr) } limit = robotSetting.maxTextLength || 50 if (robotSetting.enableVoiceInput && isMobile() && document.location.protocol === 'https:') { $('.czkj-chat-input .czkj-textarea').css('width', 'calc(100% - 100px)') $('.chat-toggle').css('display', 'block') } //推荐问题 initrecommendedQuestions(robotSetting.recommendedQuestions) //监听输入内容 watchQuestion() //常见问题和历史记录 initHotAndHistory(robotSetting) initColor(robotSetting) //推荐主题 initPopularThemes(robotSetting.hotTopics) //开普数字人 if (isKpNumberRobot) initkpNumberRobot(); if(isKpNumberMianyang) initkpNumberRobotMY(); if(isKpNumberTongLiang) initkpNumberRobotTL(); //设置换一换数量 // associatedAnswerNum = robotSetting.associatedAnswerNum || 3 associatedAnswerNum = 3 if (robotSetting && robotSetting.name) { $('.mobile-top-name').html('' + robotSetting.name) } //如果是海淀通 if (boolean) { var str = resObj.result.info || '{}' var userObj = JSON.parse(str) hdUserId = userObj.userId } //如果url中有问题 if (urlObj.question) { setTimeout(function () { sendMsg(decodeURIComponent(urlObj.question)) }, 20) } if (resObj.engineOut) { appendRobotMsg(resObj.engineOut) if (typeof WeixinJSBridge == 'undefined') { if (document.addEventListener) { document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false) } else if (document.attachEvent) { document.attachEvent('WeixinJSBridgeReady', onBridgeReady) document.attachEvent('onWeixinJSBridgeReady', onBridgeReady) } } else { onBridgeReady() } } // 如果是日志版本 // urlObj.mode = 1 仿真 旧版 2 内测 新版日志版本 if (urlObj.key && urlObj.mode === '2') { $('.czkj-container').addClass('czkj-log-template') // 覆盖右侧历史记录区域 $('.czkj-chat-right').html( '
' + '
' + '
暂无' + '
' + '
' + '
' + '
相关问法标注如下:' + '
暂无' + '
' + '
').addClass('czkj-chat-log-right') // 创建hover后的html模板 var html = '
' $('.czkj-container').append(html) } if(robotSetting.dynamicSetting && robotSetting.dynamicSetting['action.type'] && robotSetting.dynamicSetting['action.url']) { robotServer.anyChat('chatgpt/dknow/api/session/save', {name: '1', chatWinSize: 10, serviceId: robotSetting.dynamicSetting['chatgpt-serviceId'] || 3}).then(function (responses) { window.sessionIdCzkj = responses.data; window.chatModelUrl = 1; window.multiMode = '1'; }) } if(Personalization) Personalization(robotSetting); } catch (e) { console.log(e) } } var infoList = [] // 获取json if (resultMap) { $.ajax({ type: 'get', url: '../data.json', success: function (data) { data = data || [] infoList = [] var html = '' var index = 0 for (var i = 0; i < data.length; i++) { var item = data[i] if (item.type !== "hide") { html += '
' + '
' + item.name + '
' } item.children = item.children || [] for (var j = 0; j < item.children.length; j++) { var ls = item.children[j] ls.lnglat = ls.lnglat || "" ls.lng = Number(ls.lnglat.split(',')[0]) ls.lat = Number(ls.lnglat.split(',')[1]) ls.id = index ls.type = item.icon infoList.push(ls) index++ } } } }) $(document).on('click', '.address-href', function (e) { $('.map-form').show() var id = $(this).data('id') var marker = {} for (var i = 0; i < infoList.length; i++) { if (infoList[i].id == id) { marker = infoList[i] } } $('#panel').html('').hide() $('#map-end').val(marker.address) }) var mapType = 'Driving' var driving $(document).on('click', '.map-nav-item', function (e) { $('.map-nav-item').removeClass('actived') $(this).addClass('actived') mapType = $(this).data('key') }) $(document).on('click', '.map-submit', function (e) { var start = $('#map-start').val() var end = $('#map-end').val() if (!start || !end) { return } $('#panel').html('') $('#panel').show() AMap.plugin('AMap.' + mapType, function () { var obj = { map: map, panel: "panel" } if (mapType !== 'Walking') { // 驾车路线规划策略,AMap.DrivingPolicy.LEAST_TIME是最快捷模式 obj.policy = AMap[mapType + 'Policy'].LEAST_TIME } driving = new AMap[mapType](obj) var points = [ {keyword: start, city: '河北'}, {keyword: end, city: '河北'} ] driving.clear() driving.search(points, function (status, result) { // 未出错时,result即是对应的路线规划方案 console.log(result); }) }) }) $(document).on('click', '.map-close', function (e) { $('.map-form').hide() }) } $(document).on('click', '.czkj-text-content', function (e) { window.parent.postMessage({type: 'check', data: $(this).data('content')}, '*') }) function setMap(resObj) { if (!resObj.oneAnswer) { return } var answers = resObj.oneAnswer.answers || {} var answerResources = answers.answerResources || [] var res = [] for (var i = 0; i < answerResources.length; i++) { if (answerResources[i].type === 'reslib_text') { res.push(answerResources[i]) } } var markers = [] var textContent = '' if (testMap) { for (var i = 0; i < res.length; i++) { textContent = res[i].textContent ? JSON.parse(res[i].textContent) : [] textContent = textContent.length > 0 ? textContent[0] : '' if (textContent && res[i].text.indexOf(textContent) >= 0) { res[i].text = res[i].text.replace(new RegExp(textContent, 'g'), '
' + textContent + '
') } else { window.parent.postMessage({type: 'check', data: 'clear'}, '*') } } } else { for (var i = 0; i < res.length; i++) { // 如果存在textContent if (res[i].textContent) { textContent = res[i].textContent for (var j = 0; j < infoList.length; j++) { if (res[i].text && infoList[j].address && textContent === (infoList[j].address + '#@#')) { markers.push(infoList[j]) } } } else { for (var j = 0; j < infoList.length; j++) { // 如果是分类模块的数据 if (infoList[j].type) { if (res[i].text && infoList[j].address && res[i].text.indexOf(infoList[j].address) >= 0) { markers.push(infoList[j]) } } else { // 如果是隐藏的大批量数据 if (res[i].text && infoList[j].address && res[i].name === infoList[j].matter && res[i].text.indexOf(infoList[j].address) >= 0) { markers.push(infoList[j]) } } } } } } setMarker(markers) } function setMarker(arr, center) { arr = arr || [] if (!arr.length) { return } center = center || arr[1] || arr[0] window.map = new AMap.Map('container', { viewMode: '2D', // 默认使用 2D 模式,如果希望使用带有俯仰角的 3D 模式,请设置 viewMode: '3D', zoom: 11, //初始化地图层级 center: [center.lng, center.lat] //初始化地图中心点 }); for (var i = 0; i < arr.length; i++) { (function () { var item = arr[i] var marker = new AMap.Marker({ position: new AMap.LngLat(item.lng, item.lat), offset: new AMap.Pixel(-20, -40), size: new AMap.Size(40, 40), // 图标尺寸 icon: '../img/map.svg', // 添加 Icon 图标 URL }); // for(var key in item){ // marker[key] = item[key] // } marker.id = item.id marker.name = item.name marker.actualName = item.actualName marker.address = item.address marker.phone = item.phone marker.time = item.time marker.officeTime = item.officeTime marker.officePhone = item.officePhone marker.mail = item.mail marker.lng = item.lng marker.lat = item.lat window.map.add(marker); setTimeout(function () { var content = [ "
" + (marker.actualName || marker.name) + "
" + "
电话 : " + marker.phone + "
" + "
地址 : " + marker.address + "
" + (marker.officeTime ? "
办理时间 : " + marker.officeTime + "
" : "") + (marker.officePhone ? "
办公电话 : " + marker.officePhone + "
" : "") + (marker.mail ? "
邮编 : " + marker.mail + "
" : "") + "
到这去
" ]; var infoWindow = new AMap.InfoWindow({ content: content.join("
"), closeWhenClickMap: true, //点击地图隐藏窗体 offset: new AMap.Pixel(0, -40), }); // 打开信息窗体 infoWindow.open(window.map, [marker.lng, marker.lat]); }, 300) marker.on('click', function (e) { // 信息窗体的内容 var content = [ "
" + (e.target.actualName || e.target.name) + "
" + "
电话 : " + e.target.phone + "
" + "
地址 : " + e.target.address + "
" + (e.target.officeTime ? "
办理时间 : " + e.target.officeTime + "
" : "") + (e.target.officePhone ? "
办公电话 : " + e.target.officePhone + "
" : "") + (e.target.mail ? "
邮编 : " + e.target.mail + "
" : "") + "
到这去
" ]; var infoWindow = new AMap.InfoWindow({ content: content.join("
"), closeWhenClickMap: true, //点击地图隐藏窗体 offset: new AMap.Pixel(0, -40), }); // 打开信息窗体 infoWindow.open(window.map, marker.getPosition()); }) }()) } } function setLogHtml(resObj) { if (!resObj || !resObj.logs) { return; } var segments = resObj.logs.combinationInfo ? resObj.logs.combinationInfo.segments : [] // 拼接分词结果html var segmentsHtml = '' for (var i = 0; i < segments.length; i++) { var groupsHtml = '
' segments[i].wordList = segments[i].wordList || [] for (var j = 0; j < segments[i].wordList.length; j++) { groupsHtml += '
' + segments[i].wordList[j].name + '
' } groupsHtml += '
' segmentsHtml += '
[' + segments[i].text + ']' + groupsHtml + '
' } if (resObj.abortType) { segmentsHtml += '(' + resObj.abortType + ')' } // 拼接问法标注html var matchGroupLogList = resObj.logs.matchGroupLogList || [] var matchHtml = '' for (var i = 0; i < matchGroupLogList.length; i++) { var item = matchGroupLogList[i] var itemAskHtml = '' item.seq = item.seq || [] for (var j = 0; j < item.seq.length; j++) { var tagHtml = '' item.seq[j].dTag4LogList = item.seq[j].dTag4LogList || [] for (var k = 0; k < item.seq[j].dTag4LogList.length; k++) { var ls = item.seq[j].dTag4LogList[k] var className = '' if (k >= 10) { className = 'hide-tag-item' } tagHtml += '' + ls.name + '' } itemAskHtml += '
' + (j + 1) + '.[ID:' + item.seq[j].id + ']' + item.seq[j].title + '[' + item.seq[j].score + ']' + (item.seq[j].dTag4LogList.length >= 10 ? '' : '') + '
' + tagHtml + '
' } matchHtml += '
' + (i + 1) + '.[ID:' + item.askGroupId + ']' + item.title + (item.askGroupId > 0 ? ('') : '') + '
' + itemAskHtml + '
' } $('.czkj-chat-right').html( '
' + '
' + '
' + segmentsHtml + '
' + '
' + '
' + '
相关问法标注如下:' + '' + matchHtml + '
') } $(document).on('click', '.czkj-open-dknow', function (e) { var id = $(this).data('id'); var question = $(this).data('question'); if (question) { windowOpen(robotSetting.adminPath + '#/home/editQuestGroup?type=edit&id=' + id) } else { windowOpen(robotSetting.adminPath + '#/home/editAllTag?type=edit&id=' + id) } }) $(document).on('click', '.czkj-mark-group>img', function (e) { sendHistoryMobile() }) $(document).on('click', '.czkj-mark-item-asks-name>img', function (e) { var next = $(this).parents('.czkj-mark-item-asks-name').next() next.toggleClass('actived') var children = next.children('.word-item') for (var i = 0; i < children.length; i++) { if ($(children[i]).hasClass('hide-tag-item')) { if (next.hasClass('actived')) { $(children[i]).show() } else { $(children[i]).hide() } } } }) $(document).on('click', '.czkj-log-result-item', function (e) { $('.czkj-log-groups').hide() $(this).children('.czkj-log-groups').show() }) $(document).on('click', '.czkj-log-item', function (e) { var id = $(this).data('id') $('.czkj-log-html').html($('.czkj-hover-modal').hide().html()) $('.word-item').removeClass('under-line') for (var i = 0; i < $('.word-item').length; i++) { if (id === $($('.word-item')[i]).data('id')) { $($('.word-item')[i]).addClass('under-line') } } }) $(document).on('mouseover', '.czkj-log-item', function (e) { var id = $(this).data('id') robotServer.showInfo(id).then(function (res) { var content = res.content var typeHtml = [] var customWords = [] var replaceHtml = '' content.tagToTypes = content.tagToTypes || [] for (var i = 0; i < content.tagToTypes.length; i++) { typeHtml.push(content.tagToTypes[i].tagTypeName) } content.customWords = content.customWords || [] for (var i = 0; i < content.customWords.length; i++) { customWords.push(content.customWords[i].name) } for (var i = 0; i < content.replaceWordGroups.length; i++) { var replaceWordTags = content.replaceWordGroups[i].replaceWordTags || [] var wordTagHtml = '' for (var j = 0; j < replaceWordTags.length; j++) { wordTagHtml += (j > 0 ? '+' : '') wordTagHtml += '' + replaceWordTags[j].tagName + '' } replaceHtml += '
' + (i + 1) + '.
' + wordTagHtml + '
' } var html = '
标签名称:' + content.showName + '编辑
' + '
标签编码:' + content.code + '
' + '
标签类型:' + typeHtml.join(',') + '
' + '
同义词:' + customWords.join(' ') + '
' + (replaceHtml ? ('
替代标签组:' + replaceHtml + '
') : '') $('.czkj-hover-modal').show().html(html) }) }) $(document).on('mouseleave', '.czkj-log-item', function (e) { $('.czkj-hover-modal').hide() }) function onBridgeReady() { WeixinJSBridge.call('hideOptionMenu') } //显示移动端操作栏 $('.czkj-send').click(function () { var val = $('.czkj-textarea').val() if (val) { //todo 判断 if (val && val.length > limit) { $('.czkj-err-modal').show() return } sendMsg(val, null, 'save') $('.czkj-suggest').hide() $('.czkj-send').removeClass('send-flag') } else { $('.czkj-chat-left').toggleClass('show-user-btn') } }) //隐藏操作栏 $(document).on('click', function (e) { if ($(e.target).attr('class') === 'czkj-user-btn-item' || $(e.target).parent().attr('class') === 'czkj-user-btn-item') { } else { if ($(e.target).attr('class') !== 'czkj-send' && $('.czkj-chat-left').hasClass('show-user-btn')) { $('.czkj-chat-left').removeClass('show-user-btn') } } // 自定义下拉框 var _con = $('.selectPickerWrapper') // 设置目标区域 if (!_con.is(e.target) && _con.has(e.target).length === 0) { $('.select-picker-options-wrp').hide() //淡出消失 $('.selectPickerWrapper').removeClass('select-actived') } // 隐藏日志操作框 if ($(e.target).attr('class') !== 'czkj-log-result-item') { $('.czkj-log-groups').hide() } }) $('.czkj-enter-btn').click(function () { var val = $('.czkj-textarea').val() if (val && val.length > limit) { $('.czkj-err-modal').show() return } if (!val) return questionSourceType = 'direct_input' sendMsg(val, null, 'save') document.body.scrollTop = document.documentElement.scrollTop + 1000 $('.czkj-suggest').hide() }) //输入框回车事件 $('.czkj-textarea').keydown(function (event) { if (event.which == 13) { event.preventDefault() var text = $('.czkj-textarea').val() if (!text) { errMsg(languageObj.youInformation) return } if (text.length > limit) { errMsg(languageObj.manyWords) return } $('.czkj-textarea').val('') $('.czkj-suggest').hide() questionSourceType = 'direct_input' sendMsg(text, null, 'save') } }) //关闭模态框 $('.czkj-robot-modal .czkj-tools').click(function () { if ($('.czkj-modal-body video').get(0)) { $('.czkj-modal-body video').get(0).pause() } $('.czkj-modal-body video').first().attr('src', '') if ($('.czkj-modal-body audio').get(0)) { $('.czkj-modal-body audio').get(0).pause() } $('.czkj-modal-body audio').first().attr('src', '') $('.czkj-robot-modal').hide() }) //查看更多推荐主题 var hotTypeFlag = true $(document).on('click', '.last-hot-type-item', function (e) { if (hotTypeFlag) { $('.hot-type').animate({'height': '100px', 'top': '-60px'}, 200, 'linear') } else { $('.hot-type').animate({'height': '52px', 'top': '-12px'}, 200, 'linear') } hotTypeFlag = !hotTypeFlag $('.last-hot-type-item').toggleClass('actived') }) //推荐主题点击 $(document).on('click', '.hot-type-item', function (e) { var key = $(e.target).data('key') if (key === 'undefined') { key = $(e.target).html() } questionSourceType = 'recommended_topic_input' sendMsg(key) if (isMobile() || navigator.userAgent.toLowerCase().indexOf('miniprogramenv') != -1) { return } $('.hot-type').animate({'height': '52px', 'top': '-12px'}, 200, 'linear') hotTypeFlag = true // $('.last-hot-type-item').toggleClass('actived') }) //推荐问题点击 $(document).on('click', '.czkj-recommend-item', function (e) { var contents = $(e.target).text() if (contents) { sendMsg(String(contents)) } }) $(document).on('click', '.czkj-history-item', function (e) { var key = $(e.target).data('key') if (key) { questionSourceType = 'recommended_topic_input' sendMsg(String(unescape(key))) } }) //用户选择问题智能推荐 $('.czkj-suggest').on('click', 'li', function (e) { var val = JSON.parse(unescape($($(event)[0].target).data('html'))) questionSourceType = 'association_input' sendMsg(val, null, 'save') $('.czkj-suggest').hide() }) $('.czkj-help-list').click(function () { $('.czkj-help').click() }) //帮助点击事件 $('.czkj-help').click(function () { $('.czkj-robot-modal').show() if (isMobile()) { $('.czkj-modal-body').html('') $('.czkj-modal-content').css({'background-color': 'transparent'}) $('.czkj-modal-title').css({'position': 'relative'}) $('.czkj-modal-title').css({'top': '105px'}) $('.czkj-modal-title').css({'right': '5px'}) } else { $('.czkj-modal-body').html('') } }) $('.czkj-back-fixed').click(function () { sendMsg('意见反馈') }) $('.czkj-msg-fixed').click(function () { sendMsg('我要留言') }) $('.czkj-back-pc').click(function () { sendMsg('意见反馈') }) $('.czkj-msg-pc').click(function () { sendMsg('我要留言') }) // 全屏版本点击事件 $(document).on('click', '.czkj-line-imgs-item-div', function (e) { sendMsg($(this).data('text')) }) //移动端菜单点击事件----常见问题 $('.czkj-mobile-common').click(function (e) { var html = '
' + (multilingual.commonQuestion || languageObj.commonQuestion) + '
' for (var i = 0; i < commonProblem.length; i++) { var className = '' if (i >= moreNum) { className = 'hide' } html += '
' + commonProblem[i] + '
' } if (commonProblem.length > moreNum) { html += '
' } $('#czkj-chat').append(robotHeadHtml('czkj-special-width') + html + robotFootHtml) $('.czkj-mobile-common-title i').css({'background-color': robotSetting.titleColor}) $('.czkj-robot .czkj-msg').css({'background-color': robotSetting.msgBgColor}) chatScroll() }) //移动端菜单点击事件---历史记录 $('.czkj-mobile-history').click(function (e) { $('.chatgpt-operate, .chatGptAudio').remove(); sendHistoryMobile() }) // pc端查看历史记录 $('.czkj-history-btn').click(function (e) { var list = JSON.parse(unescape(localStorage.historicRecordsValue)) var html = '
'+ (multilingual.history || '历史记录') +'
' for (var i = 0; i < list.length; i++) { html += '
' + list[i] + '
' } $('#czkj-chat').append(robotHeadHtml('czkj-special-width czkj-special-history') + html + robotFootHtml) $('.czkj-robot .czkj-msg').css({'background-color': robotSetting.msgBgColor}) $('.czkj-history-title').css({'color': robotSetting.msgTitleColor}) chatScroll() }) function sendHistoryMobile() { var html = '
' + (multilingual.history || languageObj.history) + '
'+ (multilingual.clear || '清空') +'
' if (localStorage.historicRecordsValue) { var list = JSON.parse(unescape(localStorage.historicRecordsValue)) for (var i = 0; i < list.length; i++) { html += '
' + list[i] + '
' } } else { html = '
' + (multilingual.noHistory || languageObj.noHistory) + '
' } $('#czkj-chat').append(robotHeadHtml('czkj-special-width') + html + robotFootHtml) $('.czkj-mobile-common-title i').css({'background-color': robotSetting.titleColor}) $('.czkj-robot .czkj-msg').css({'background-color': robotSetting.msgBgColor}) chatScroll() } // 清空历史记录 $(document).on('click', '.czkj-history-del', function (e) { localStorage.historicRecordsValue = '' historicRecords.value = [] var html = '
'+ (multilingual.noHistory || '暂无历史记录数据') +'
' if (isMobile()) { $(this).parents('.czkj-msg').html(html) } else { $('.czkj-right-hot-groups').html(html) $('.question-radio').hide() } }) //查看更多 $(document).on('click', '.czkj-view-more-li', function (e) { $(this).hide().parent().children('.czkj-recommend-item').show() chatScroll() }) //智谱评价部分 $(document).on('click', '.czkj-eval-true-zhipu', function (e) { if($(this).parents('.czkj-robot').find('.czkj-eval-false-zhipu').hasClass('actived')) { return } var key = $(this).data('key') var that = this $(that).addClass('actived') robotServer.chat({text: '', chooseId: key}).then(function (res) { var obj = res.content || {} var str = obj.text || multilingual.thank || languageObj.thank if($(that).parents('.czkj-robot').next().hasClass('czkj-select-result')) { $(that).parents('.czkj-robot').next().show().children('.czkj-msg').html(str) } $(that).addClass('actived').children('img').attr('src', 'image/eval-true-white.png') $(that).parents('.czkj-robot').find('.czkj-eval-false-zhipu').hide() chatScrollBottom() }) }) //智谱评价不满意 $(document).on('click', '.czkj-eval-false-zhipu', function (e) { if($(this).parents('.czkj-robot').find('.czkj-eval-true-zhipu').hasClass('actived')) { return } var key = $(this).data('key'); $(this).addClass('actived') var dataAppraisale = $(this).data('appraisal') var appraisal = dataAppraisale && JSON.parse(unescape(dataAppraisale)) || {} var options = appraisal.options || [] $(this).parents('.czkj-robot').find('.czkj-eval-true-zhipu').hide() if ($(this).parents('.czkj-msg').data('ischoosed')) { return } $(this).parents('.czkj-msg').data('ischoosed', true) if (!options.length) { return } var that = this robotServer.chat({text: '', chooseId: key}).then(function (res) { $(that).addClass('active').children('img').attr('src', 'image/eval-false-white.png') var itemStr = '' itemStr += '
' for (var i = 0; i < options.length; i++) { var item = options[i] if (item.show) { itemStr += '
' + item.value + '
' } } itemStr += '
' var evalResult = '
' + res.content.text + '
' + itemStr + '
' + (multilingual.confirm || languageObj.confirm) + '
' $(that).parents('.czkj-robot').next().show().children('.czkj-msg').html(evalResult) chatScrollBottom() }) }) //评价部分 $(document).on('click', '.czkj-eval-true', function (e) { var key = $(this).data('key') // $(this).addClass('actived') var that = this robotServer.chat({text: '', chooseId: key}).then(function (res) { var obj = res.content || {} var str = obj.text || multilingual.thank || languageObj.thank $(that).parents('.czkj-robot').next().show().children('.czkj-msg').html(str) $(that).addClass('actived').children('img').attr('src', 'image/eval-true-white.png') $(that).parents('.czkj-eval-btns').children('.czkj-eval-false').hide() chatScrollBottom() }) }) //评价不满意 $(document).on('click', '.czkj-eval-false', function (e) { var key = $(this).data('key') $(this).addClass('actived') var dataAppraisale = $(this).data('appraisal') var appraisal = JSON.parse(unescape(dataAppraisale)) || {} var options = appraisal.options || [] $(this).parents('.czkj-eval-btns').children('.czkj-eval-true').hide() if ($(this).parents('.czkj-msg').data('ischoosed')) { return } $(this).parents('.czkj-msg').data('ischoosed', true) if (!options.length) { return } var that = this robotServer.chat({text: '', chooseId: key}).then(function (res) { $(that).addClass('active').children('img').attr('src', 'image/eval-false-white.png') var itemStr = '' itemStr += '
' for (var i = 0; i < options.length; i++) { var item = options[i] if (item.show) { itemStr += '
' + item.value + '
' } } itemStr += '
' var evalResult = '
' + languageObj.choice + '
' + itemStr + '
' + (multilingual.confirm || languageObj.confirm) + '
' $(that).parents('.czkj-robot').next().show().children('.czkj-msg').html(evalResult) var nowHtml = $(that).parents('.czkj-msg').html() $(that).parents('.czkj-msg').html(nowHtml + '
' + res.content.text) $('.czkj-mobile-common-title i').css({'background-color': robotSetting.titleColor}) chatScrollBottom() }) }) //chat滚动到底部 function chatScrollBottom() { setTimeout(function() { chat.scrollTop = chat.scrollHeight }, 0) } //选择不满意原因 $(document).on('click', '.czkj-no-item', function (e) { $('.czkj-no-item').removeClass('active') $(this).parents('.czkj-robot').data('key', $(this).data('key')) $(this).parents('.czkj-robot').data('value', $(this).html()) $(this).addClass('active') }) //不满意原因提交 $(document).on('click', '.czkj-submit-no', function (e) { var key = $(this).parents('.czkj-robot').data('key') var value = $(this).parents('.czkj-robot').data('value') if (!key) { errMsg(languageObj.choiceQuestion) return } var apprasial = JSON.parse(unescape($(this).parents('.czkj-msg').children('.czkj-mobile-common-title').data('apprasial'))) || {} var that = this robotServer.chat({text: '', chooseId: key}).then(function (res) { var html = (multilingual.youChoice || languageObj.youChoice) + ' “' + '' + value + '' + '” ,' + (multilingual.thank || languageObj.thank) + (apprasial.text ? '
' + apprasial.text : '') $(that).parents('.czkj-msg').html(html) }) }) //查看单个资源 $(document).on('click', '.czkj-resource-view-item', function (e) { // e.preventDefault() var item = '', resourceHtml = '' if ($(this).data('item')) { item = JSON.parse(unescape($(this).data('item'))) } if (!item) { return } var fileName = item.name var type = item.type var itemUrl = item.viewPath var isModal = true if (type === 'reslib_form') { sendForm(item.content) chatScroll() return } if (type === 'reslib_text') { resourceHtml = '
' + item.text + '
' } if (type === 'reslib_url') { item.downloadPath = item.downloadPath || '' if (!item || !item.downloadPath) { errMsg(languageObj.interlinkageErr) return } // 如果是PC端的url链接 if (item.downloadPath.indexOf('http') >= 0) { // 1.1 如果是在小程序中 那么弹框展示 if (isWxMiniAppFlag || isBDMiniAppFlag || isZFBMiniAppFlag) { resourceHtml = getCopyModelHtml(item.downloadPath, '访问') } // 1.2 如果是在浏览器中 else { windowOpen(item.downloadPath) isModal = false } } else { isModal = false //如果是配置的url资源跳转小程序 // 2.1 如果是在小程序中 那么弹框展示 if (isWxMiniAppFlag || isBDMiniAppFlag || isZFBMiniAppFlag) { openHref(item) } // 2.2 如果是在浏览器中 else { errMsg(languageObj.interlinkageErr) } } chatScroll() } if (type === 'reslib_interface' || type === 'reslib_rounds') { sendMsg(fileName, item.displayId) return } if (type === 'reslib_image') { if (item.preview && item.picPath) { windowOpen(item.picPath) return } let strimg = ''; resourceHtml = '
'+ strimg +'' + '
' } if (type === 'reslib_video') { resourceHtml = '
' } if (type === 'reslib_audio') { resourceHtml = '
' } if (type === 'reslib_doc') { var iframeHtml = itemUrl //如果是pdf 可预览 if (iframeHtml.indexOf('.pdf') >= 0) { if (isMobile() === 'android' || isMobile() === 'iframe') { iframeHtml = './js/pdf/web/viewer.html' localStorage.iframeHtml = itemUrl } resourceHtml = '
' + '
' $('.czkj-modal-body').addClass('czkj-file-doc-modal') } else { // 如果 是微信浏览器 或 小程序端 弹框提示 if (navigator.userAgent.toLowerCase().indexOf('micromessenger') != -1 || isZFBMiniAppFlag || isBDMiniAppFlag || isWxMiniAppFlag) { resourceHtml = getCopyModelHtml(item.downloadPath, '下载') } else { // 其他情况 直接下载 isModal = false var a = document.createElement('a') a.href = item.downloadPath a.target = 'download' document.body.appendChild(a) a.click() document.body.removeChild(a) } } } if (isModal) { resourceHtml += '
' + fileName + '
' $('.czkj-robot-modal').show() $('.czkj-modal-body').html(resourceHtml) } }) $(document).on('click', '.czkj-fangda', function() { let widhts = $('.czkj-modal-image').width(); $('.czkj-modal-image').width(widhts * 1.2); }) $(document).on('click', '.czkj-suoxiao', function() { let widhts = $('.czkj-modal-image').width(); $('.czkj-modal-image').width(widhts * .8); }) function windowOpen(url) { if (isMobile() === 'ios' || isMobile() === 'android') { window.location.href = url } else { window.open(url, '_blank') } } function getCopyModelHtml(url, str) { str = str || '访问' return '
' + '
无法访问该资源
请复制以下链接前往浏览器进行' + str + '
' + url + '
' } function openHref(item) { // 如果是微信小程序 if (isWxMiniAppFlag) { var url = item.downloadPath if (url.indexOf('/') !== 0) { url = '/' + url } wx.miniProgram.navigateTo({ url: url }) } else if (isZFBMiniAppFlag) { //如果是支付宝小程序 var url = item.downloadPath if (url.indexOf('/') !== 0) { url = '/' + url } my.navigateTo({url: url}) } else if (isBDMiniAppFlag) { var url = item.downloadPath if (url.indexOf('/') !== 0) { url = '/' + url } swan.webView.navigateTo({url: url}) } } //复制链接 $(document).on('click', '.czkj-copy', function (e) { var url = $(this).data('href') var clipboard = new ClipboardJS(this, { text: function () { errMsg('复制链接成功') return url } }) clipboard.on('success', function (e) { e.clearSelection() errMsg('复制成功') }) clipboard.on('error', function () { }) this.click() clipboard.destroy() }) //更多下级标签 $(document).on('click', '.czkj-tag-more', function (e) { $(this).hide().parents('.czkj-tags-group').children('.czkj-tags-item').show() }) //下级标签点击 $(document).on('click', '.czkj-tags-item', function (e) { if($('.stopChat').length || $('.chatDiv').length) { errMsg(languageObj.chatgptTip) return } var chooseId = $(this).data('key') var value = $(this).html() $(this).siblings().removeClass('tag-actived') $(this).addClass('tag-actived') sendMsg(value, chooseId) }) //多个答案点击 $(document).on('click', '.czkj-answer-item', function (e) { var chooseId = $(this).data('key') var value = $(this).html() sendMsg(value, chooseId) }) // 云南点击事件处理 $(document).on('click', '.bot_div ul li a', function (e) { var change_age = $(this).text(); sendMsg($.trim(change_age)) }) $(document).on('click', '.header-znwd .h-help', function (e) { $('.czkj-robot-modal').show() if (isMobile()) { $('.czkj-modal-body').html('') $('.czkj-modal-content').css({'background-color': 'transparent'}) $('.czkj-modal-title').css({'position': 'relative'}) $('.czkj-modal-title').css({'top': '105px'}) $('.czkj-modal-title').css({'right': '5px'}) } else { $('.czkj-modal-body').html('') } }) // 云南点击事件处理 $(document).on('click', '#advice', function (e) { sendMsg('意见反馈') }) //调用政策文件库机器人接口 function showPolicyChatInfo(infos) { robotServer.anyChat(ENV.api + '/home/webSubscriber/chat', {text: infos}).then(function (res) { var data = res.content || {}; if(data.answer) { $('#policyChatAnswer').html(data.answer); $('#policyChatText').html(data.text); $('#policyChat').show().data('text', infos) $('#policyChatTip').hide() }else { $('#policyChatAnswer, #policyChatText').html(''); $('#policyChat').hide().data('text', '') $('#policyChatTip').show() } }).catch(function(err) { console.log(err) }) }; //多模式问答切换 $('#creationCore').on('click', '.setChatMode', function() { if($('.stopChat').length || $('.chatDiv').length) { errMsg(languageObj.chatgptTip) return } if($(this).hasClass('active')) { $('.yzt-operate-add').trigger('click'); $(this).removeClass('active'); $('#creationCurrent').hide(); $('#policyChat').data('text', '') }else { $('.yzt-operate-add').trigger('click'); window.multiMode = $(this).data('keys'); $('.setChatMode').removeClass('active'); $(this).addClass('active'); serviceId = window.ChatId; $('#creationCurrent').show(); $('#creationTitle').text($(this).data('names')); if(window.multiMode == 2 && $('#policyChat').data('text')) { $('.czkj-textarea').val($('#policyChat').data('text')) $('.czkj-enter-btn').trigger('click') }else { $('#policyChat').data('text', '') } } }) //发送消息 save参数 是否存到历史记录中 function sendMsg(text, chooseId, save) { if(testMap) window.parent.postMessage({type: 'check', data: 'expand'}, '*'); if($('.stopChat').length || $('.chatDiv').length) { errMsg(languageObj.chatgptTip) return }; $('.czkj-msg.chatgpt-stop').removeClass('chatgpt-stop'); $('.chatgpt-operate, .chatGptAudio').remove(); clearInterval(window.chatgptInterval); window.modelManage && window.modelManage.ResetAllStates && window.modelManage.ResetAllStates() canChangeSuggest = false if (!sendFlag) { return } sendFlag = false text = ToDBC(text) text = text ? text.replace(/[\n]/g, '
') : '' var spaceText = text.replace(/ /g, '') if (!spaceText) { errMsg(languageObj.youInformation) sendFlag = true return } $('#limit').html('0') $('#elhtLimit').html(limit) var index = questionArr.length if (!errFlag) { appendUserMsg(text, index) $('.yzt-page2').addClass('active') questionArr.push({text: text, index: index, flag: 'user'}) } if (timeFlag) { sendFlag = true return } var chatObj = { text: text, questionSourceType: questionSourceType || 'other_input', areaId: window.selectAreaId } if (typeof chooseId === 'number') { chatObj.chooseId = chooseId } $('.czkj-send').removeClass('send-flag') $('.czkj-send').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -145px -182px'}) $('.czkj-send').css({'background-size': '500px 300px'}) var loadinghtml = '请稍等,正在匹配答案'; if(isZhiPu) { loadinghtml = multilingual.pleaseWait || '请稍等,正在生成答案。' }; var groupHtml = robotHeadHtml('loading-header') + '
' + loadinghtml + '
' + '
' + robotFootHtml if(isYueZT) { //if(!$('#czkj-chat .loading-header').last().next().length) $('#czkj-chat .loading-header').last().remove(); groupHtml = robotHeadHtml('loading-header') + '
' + (robotSetting.dynamicSetting &&robotSetting.dynamicSetting['czkj-robot2_waiting_text1'] || '相关问题已经收到') + '
' + ''+ (robotSetting.dynamicSetting && robotSetting.dynamicSetting['czkj-robot2_waiting_text2'] || '正在开足马力,很快回复') +'
' + robotFootHtml } $('#czkj-chat').append(groupHtml) setTimeout(function () { chatScroll() }, 10) var setTimes = 0; if(isCzkj3) setTimes = 1200; setTimeout(function() { //console.log(window.multiMode, serviceId) if(!window.noAuth) { if(window.multiMode == '4') { sendFlag = true; showPolicyChatInfo(chatObj.text); chatgptQa('czkj-gpt/chat/query?text='+ chatObj.text +'&answerGroupId='+ (window.answerGroupId || '243') +'&id=' + traceId + '&serviceId=' + (window.chatServiceId || '1')) return } if(window.chatModelUrl && window.multiMode != '2') { var textObj = {text: chatObj.text}; if($('.previousQuestion').text()) { textObj.text = $('.previousQuestion').text() + '。' + chatObj.text; $('.previousQuestion').remove() } var urlss = 'llm/completionOnSSE?traceId='+ traceId +'&serviceId='+ window.ChatId +'&text=' + JSON.stringify(textObj); if(!serviceId && window.ChatId != 134) { // urlss = 'chatgpt/dknow/api/chatSse?traceId='+ traceId +'&serviceId=1&text=' + encodeURI(JSON.stringify(chatObj.text)); urlss = 'chatgpt/dknow/api/v2/chatSse?sessionId='+ (window.sessionIdCzkj || 10001) + '&text=' + encodeURI(chatObj.text); }else { serviceId = window.ChatId; } showPolicyChatInfo(chatObj.text); if(save) { if (localStorage.historicRecordsValue) { historicRecords.value = JSON.parse(unescape(localStorage.historicRecordsValue)) } for (var i = 0; i < historicRecords.value.length; i++) { if (historicRecords.value[i] === chatObj.text) { historicRecords.value.splice(i, 1) } } historicRecords.value.push(chatObj.text) $('.yzt-h-c-log').html('') var newArr = JSON.parse(JSON.stringify(historicRecords.value)).reverse() for (var i = 0; i < newArr.length; i++) { $('.yzt-h-c-log').append('
' + newArr[i] + '
') } localStorage.historicRecordsValue = escape(JSON.stringify(historicRecords.value)) } sendFlag = true; $('.czkj-marry').find('.czkj-marry-btn').addClass('disabled').text('当前表单已失效,请填写最新表单'); $('.czkj-marry').find('.czkj-marry-btn.creation-btn').html(''+ (multilingual.writingBtn || '帮我写') +'') $('.czkj-marry').find('.codeBtn').text(multilingual.send || '发送').addClass('active'); $('.czkj-marry').addClass('disabled') setTimeout(function() { if(robotSetting.dynamicSetting && robotSetting.dynamicSetting['action.type'] && robotSetting.dynamicSetting['action.url']) { chatgptLlm(robotSetting.dynamicSetting['action.url'] + '?sessionId='+ (window.sessionIdCzkj || 10001) + '&text=' + encodeURI(chatObj.text)) }else { chatgptLlm(urlss) } }, 600); return; }; if(window.anyChatUrl) { robotServer.anyChat(window.anyChatUrl, {text: chatObj.text}).then(function (responses) { sendFlag = true; chatDataModal(responses) }).catch(function() { $('#czkj-chat').children('.loading-header').hide(); sendFlag = true; }) return; }; } //window.serverSseChat = '1'; if(window.EventSource && (window.serverSseChat == '1' || (robotSetting.dynamicSetting && robotSetting.dynamicSetting.serverSseChat == '1'))) { robotServerSseChat(chatObj, index, save); return } robotServer.chat(chatObj).then(function (res) { questionSourceType = null if (typeof res === 'string' && JSON.parse(res).ret == 401 || res.ret == 401) { lastChatTime = new Date().getTime() - 1000 * 60 * 16 appendUserMsg('超时了', index) return errFlag = true loginCount++ if (loginCount >= 10) { return } robotServer.login().then(function (result) { sendFlag = true if (text) { sendMsg(text, chooseId, save) } }) return } try { var resObj = res.content if (resObj && resultMap) { setMap(resObj) } if (resObj && testMap) { setMap(resObj) } sendFlag = true //构建时间 if (urlObj.key && urlObj.mode === '2') { if (resObj.buildTime) $('.czkj-time').html(languageObj.startTime + resObj.buildTime) setLogHtml(resObj) } if (!resObj) { appendRobotMsg({}, true) return } if (!errFlag) { appendUserMsg(resObj.userInput, index) } errFlag = false appendRobotMsg(resObj, true) if (save && resObj.resultType !== 'SENSITIVE_WORDS' && resObj.resultType !== 'INVALID_QUESTION' && resObj.resultType !== 'SENSITIVE_WORDS_FOUND') { //判断是否需要push var pushFlag = true if (localStorage.historicRecordsValue) { historicRecords.value = JSON.parse(unescape(localStorage.historicRecordsValue)) } for (var i = 0; i < historicRecords.value.length; i++) { if (historicRecords.value[i] === resObj.userInput) { historicRecords.value.splice(i, 1) } } if (!pushFlag) { return } if (historicRecords.value.length >= historicRecords.maxLen) { historicRecords.value.shift() } historicRecords.value.push(resObj.userInput) var historyStr = '' $('.yzt-h-c-log').html('') var newArr = JSON.parse(JSON.stringify(historicRecords.value)).reverse() for (var i = 0; i < newArr.length; i++) { historyStr += '
' + newArr[i] + '
'; $('.yzt-h-c-log').append('
' + newArr[i] + '
') } historyStr += '' $('.czkj-history-list .no-histroy').hide() $('.czkj-right-hot-groups').html(historyStr) var len = Math.ceil(historicRecords.value.length / questionLength) if (len > 1) { var radioStr = '' radioStr += '
' for (var i = 0; i < len; i++) { radioStr += '' } radioStr += '
' $('.czkj-history-list').append('
') $('.czkj-history-list .question-radio').html(radioStr) $('.question-radio i.active').css({'background-color': robotSetting.titleColor}) } $('.czkj-right-hot-groups .czkj-hot-item i').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -141px -7px'}) $('.czkj-right-hot-groups .czkj-hot-item i').css({'background-size': '500px 300px'}) localStorage.historicRecordsValue = escape(JSON.stringify(historicRecords.value)) } } catch (e) { console.log(e) sendFlag = true errMsg(languageObj.errMsg) } }, function (err) { sendFlag = true errMsg(languageObj.errMsg) }) }, setTimes) } //调用新的sse接口chat-涉及的事件 $('.czkj-content-body').on('click', '.chatSseBtn', function() { $(this).find('.btns').toggleClass('active') $(this).siblings('.chatsse-note').toggle() }) $('.czkj-content-body').on('click', '.czkjNlpCheck', function() { $(this).toggleClass('active') if($(this).hasClass('active')) { $(this).parent().siblings('.czkj-nlp-item.hide').show() }else { $(this).parent().siblings('.czkj-nlp-item.hide').hide() } }) $('.czkj-content-body').on('click', '.chatSseNoteCheck', function() { $(this).toggleClass('active') if($(this).hasClass('active')) { $(this).parent().siblings('.chatsse-note-item.hide').show() }else { $(this).parent().siblings('.chatsse-note-item.hide').hide() } }) $('.czkj-content-body').on('click', '.chatsse-note-item-head', function() { $(this).toggleClass('active') $(this).siblings('.chatsse-note-score').toggle() }) $('.czkj-content-body').on('click', '.czkjNlpUrl', function() { let urls = $(this).data('url'); console.log(urls); window.open(urls); }) function addHistoricRecords(userInput) {//把问题添加到历史记录 //判断是否需要push var pushFlag = true if (localStorage.historicRecordsValue) { historicRecords.value = JSON.parse(unescape(localStorage.historicRecordsValue)) } for (var i = 0; i < historicRecords.value.length; i++) { if (historicRecords.value[i] === userInput) { historicRecords.value.splice(i, 1) } } if (!pushFlag) { return } if (historicRecords.value.length >= historicRecords.maxLen) { historicRecords.value.shift() } historicRecords.value.push(userInput) var historyStr = '' $('.yzt-h-c-log').html('') var newArr = JSON.parse(JSON.stringify(historicRecords.value)).reverse() for (var i = 0; i < newArr.length; i++) { historyStr += '
' + newArr[i] + '
'; $('.yzt-h-c-log').append('
' + newArr[i] + '
') } historyStr += '' $('.czkj-history-list .no-histroy').hide() $('.czkj-right-hot-groups').html(historyStr) var len = Math.ceil(historicRecords.value.length / questionLength) if (len > 1) { var radioStr = '' radioStr += '
' for (var i = 0; i < len; i++) { radioStr += '' } radioStr += '
' $('.czkj-history-list').append('
') $('.czkj-history-list .question-radio').html(radioStr) $('.question-radio i.active').css({'background-color': robotSetting.titleColor}) } $('.czkj-right-hot-groups .czkj-hot-item i').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -141px -7px'}) $('.czkj-right-hot-groups .czkj-hot-item i').css({'background-size': '500px 300px'}) localStorage.historicRecordsValue = escape(JSON.stringify(historicRecords.value)) } //调用新的sse接口chat function robotServerSseChat(chatObj, index, save) { const Base64 = { decode: function(str) { return decodeURIComponent(atob(str).split('').map(function (c) { return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); }).join('')); } } var abortControllerz = new AbortController(); var signalz = abortControllerz.signal; //大模型 let sseindex; let currentIndex = 0; let sentences = []; window.modelManage && window.modelManage.ResetAllStates && window.modelManage.ResetAllStates() var referenceObj = []; var classz = 'c' + Date.now(); var sseHtml = '
'+ (multilingual.pleaseWait || '请稍等,正在生成答案。') +'
'+ (multilingual.stop || '停止生成') +'
'+ '
' +'
'; var boolss = true; let isSswFirst = true; let isSearchResult = true fetch(ENV.api + '/ctrl/webSubscriber/sse/chat', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Token': window.ssetoken || '' }, body: JSON.stringify(chatObj), signal: signalz }) .then(function(response) { const reader = response.body.getReader(); const decoder = new TextDecoder('utf-8'); let buffer = ''; function processStreamResult(result2) { const chunk = decoder.decode(result2.value, { stream: !result2.done }); buffer += chunk; //逐条解析后端返回数据 const lines = buffer.split('\n'); buffer = lines.pop(); lines.forEach(function(line) { if (line.trim().length > 0) { //console.log(line, line == 'data: [DONE]'); if(line != 'data: [DONE]'){ //执行完成的页面逻辑 let datass = JSON.parse(line.substring(5)); //console.log(datass.type); if(datass.type == '0') { questionSourceType = null; if (datass.ret == 401) { lastChatTime = new Date().getTime() - 1000 * 60 * 16 appendUserMsg('超时了', index) return } try { let res = { content: JSON.parse(Base64.decode(datass.data)) } console.log(res) var resObj = res.content if (resObj && resultMap) { setMap(resObj) } if (resObj && testMap) { setMap(resObj) } sendFlag = true //构建时间 if (urlObj.key && urlObj.mode === '2') { if (resObj.buildTime) $('.czkj-time').html(languageObj.startTime + resObj.buildTime) setLogHtml(resObj) } if (!resObj) { appendRobotMsg({}, true) return } if (!errFlag) { appendUserMsg(resObj.userInput, index) } errFlag = false appendRobotMsg(resObj, true) if (save && resObj.resultType !== 'SENSITIVE_WORDS' && resObj.resultType !== 'INVALID_QUESTION' && resObj.resultType !== 'SENSITIVE_WORDS_FOUND') { addHistoricRecords(resObj.userInput) } } catch (e) { console.log(e) sendFlag = true errMsg(languageObj.errMsg) } }else if(datass.type == '1') { //console.log('大模型') if(isSswFirst) { $('#czkj-chat').append(robotHeadHtml() + sseHtml + robotFootHtml); $('.' + classz).parents('.czkj-msg').addClass('chatgpt-stop') $('#czkj-chat').children('.loading-header').hide() $('.' + classz).parents('.czkj-msg').addClass('chatgpt-msg') $('.audioStopChat').off('click').on('click', function (e) { $('.audioPlayChat').removeClass('active'); window.modelManage.ResetAllStates() if($('.stopChat').length && false) { sseindex = undefined; currentIndex = 0; }else { setTimeout(function() { let indexss = 0 sentences.forEach(function(word) { if (word) { let startIndex = 0 let maxLength = 30 if (word.length >= maxLength) { while (startIndex < word.length) { const substr = word.substring(startIndex, startIndex + maxLength); window.modelManage.getChatgptText(indexss, substr); indexss++ startIndex += maxLength; } } else { if(word) { window.modelManage.getChatgptText(indexss, word); indexss++; } } } }) }, 1000); } }) $('.stopChat').off('click').on('click', function (e) { boolss = false; $('#czkj-chat').children('.loading-header').hide() $(this).text(multilingual.stopped || '已停止生成').addClass('stopChatActive').removeClass('stopChat'); $(this).siblings('.chat-loading').hide(); $(this).siblings('.chatgpt-operate').show(); $(this).siblings('.chat-wait').hide(); abortControllerz.abort(); }) } isSswFirst = false; var dataz = {}; var base64Data = Base64.decode(datass.data); if(base64Data.indexOf('{') === 0) dataz = JSON.parse(base64Data); //console.log(dataz); var contentHtml = dataz.content, contentArry = []; referenceObj = dataz.ref || []; contentArry = contentHtml.match(/\[\^[0-9|\,]+\^\]/ig) || []; contentArry.forEach(function(items){ var itemhtml = ''; var itemarry = items.substring(2, items.length - 2).split(',') itemarry.forEach(function(ite){ itemhtml += ''+ ite +'' }) contentHtml = contentHtml.replace(items, itemhtml) }) $('.' + classz).html(contentHtml); $('.' + classz).siblings('.chatgpt-tips').html(robotSetting.dynamicSetting && robotSetting.dynamicSetting['ai.text'] || dataz.tip); $('.' + classz).siblings('.chat-loading').css('display', 'inline-block') $('.' + classz).siblings('.chat-wait').hide() chat.scrollTop = chat.scrollHeight; let divs = $('
'); divs.html($('.' + classz).html()).find('.sup').remove(); let responseszz = divs.html().replace("\n", "").replace("\t", "").replace(tagRegex, "").replace(" ", "") sentences = responseszz.split(/[,!?。;,!?;、]/); if(window.modelManage && $('.lil-gui.autoPlace').length && !$('.audioStopChat').hasClass('active')) { //console.log(sseindex, sentences) if (sseindex != sentences.length) { let word = sentences[sentences.length - 2] if (word) { let startIndex = 0 let maxLength = 30 if (word.length >= maxLength) { while (startIndex < word.length) { const substr = word.substring(startIndex, startIndex + maxLength); window.modelManage.getChatgptText(currentIndex, substr); currentIndex++ startIndex += maxLength; } } else { console.log(word) if(word) { window.modelManage.getChatgptText(currentIndex, word); currentIndex++; } } } } sseindex = sentences.length; } }else if(datass.type == '3') { if(isSswFirst) { let sseHtml2 = '
问题分析中...
'+ (multilingual.stop || '停止生成') +'
'; $('#czkj-chat').append(robotHeadHtml('czkj-sse2') + sseHtml2 + robotFootHtml); $('.' + classz).parents('.czkj-msg').addClass('chatgpt-stop') $('#czkj-chat').children('.loading-header').hide() //$('.' + classz).parents('.czkj-msg').addClass('chatgpt-msg') $('.stopChat').off('click').on('click', function (e) { boolss = false; $('#czkj-chat').children('.loading-header').hide() $(this).text(multilingual.stopped || '已停止生成').addClass('stopChatActive').removeClass('stopChat'); $(this).siblings('.chat-loading').hide(); $(this).siblings('.chat-wait').hide(); abortControllerz.abort(); }) if(save) addHistoricRecords(chatObj.text); } isSswFirst = false; var dataz = {}; var base64Data = Base64.decode(datass.data); if(base64Data.indexOf('{') === 0) dataz = JSON.parse(base64Data); //console.log(dataz); var contentHtml = dataz.llmResult || '', contentArry = []; let searchResult = dataz.searchResult || []; if(searchResult.length && isSearchResult) { isSearchResult = false; $('.' + classz).parents('.czkj-msg').find('.chatSseName').text('共获取'+ searchResult.length +'份资料,资料解析中...'); let htmls = '' searchResult.forEach(function(item, index) { htmls += '
'+ (item.vo && item.vo.title) + '
'; item.searchResultScores && item.searchResultScores.forEach(function(ite) { htmls += '
['+ ite.id +']'+ ite.text +'
' }) htmls += '
' }) if(searchResult.length > 10) { htmls += '
查看更多
' } $('.' + classz).parents('.czkj-msg').find('.chatsse-note').html(htmls) $('.' + classz).parents('.czkj-msg').find('.chatSseBtn').css('display', 'flex') } contentArry = contentHtml.match(/\[\^[0-9|\,]+\^\]/ig) || []; contentArry.forEach(function(items){ var itemhtml = ''; var itemarry = items.substring(2, items.length - 2).split(',') itemarry.forEach(function(ite){ itemhtml += ''+ ite +'' }) contentHtml = contentHtml.replace(items, itemhtml) }) $('.' + classz).html(contentHtml); //$('.' + classz).siblings('.chatgpt-tips').html(robotSetting.dynamicSetting && robotSetting.dynamicSetting['ai.text'] || dataz.tip); $('.' + classz).siblings('.chat-loading').css('display', 'inline-block') $('.' + classz).siblings('.chat-wait').hide() chat.scrollTop = chat.scrollHeight; }else if(datass.type == '2') { questionSourceType = null; if (datass.ret == 401) { lastChatTime = new Date().getTime() - 1000 * 60 * 16 appendUserMsg('超时了', index) return } try { let arry = JSON.parse(Base64.decode(datass.data)) //console.log(arry) $('#czkj-chat').children('.loading-header').hide() sendFlag = true let sseHtml3 = ''; if(arry.text) sseHtml3 = '
'+ arry.text +'
'; if(arry.searchResult) { arry.searchResult.forEach(function(item, index) { sseHtml3 += '
'; sseHtml3 += '
'+ (index+1) +'. '+ (item.vo && item.vo.typeName || '政策文件') +''+ (item.vo && item.vo.title) +'
'; item.searchResultScores && item.searchResultScores.forEach(function(ite) { if(ite.text) sseHtml3 += '
'+ ite.text +'
'; }) sseHtml3 +='
'; }) if(arry.searchResult.length > 5) { sseHtml3 += '
查看更多
' } } $('#czkj-chat').append(robotHeadHtml('czkj-nlp3') + sseHtml3 + robotFootHtml); if(save) addHistoricRecords(chatObj.text); } catch (e) { console.log(e) sendFlag = true errMsg(languageObj.errMsg) } } //chatScrollBottom() } } }); if (!result2.done && boolss) { return reader.read().then(processStreamResult); }else { console.log('结束'); sendFlag = true $('.' + classz).siblings('.chat-loading').hide() $('.' + classz).siblings('.stopChat').remove() //$('.' + classz).parents('.czkj-msg').removeClass('chatgpt-stop') $('.' + classz).parents('.czkj-msg').find('.chatsse-note').hide() $('.' + classz).parents('.czkj-msg').find('.chatSseBtn .btns').addClass('active') $('.' + classz).parents('.czkj-msg').find('.chatSseName').text('共获取'+ $('.' + classz).parents('.czkj-msg').find('.chatsse-note-item').length +'份资料'); //自由会话添加点评 $('.' + classz).parents('.czkj-msg').append('
'); setChatgptNote(classz, referenceObj) setTimeout(function () { chat.scrollTop = chat.scrollHeight }, 200) } } return reader.read().then(processStreamResult); }) .catch(function(error) { if(boolss) errMsg(languageObj.timeout); console.log(error) sendFlag = true $('.stopChat').remove() $('#czkj-chat').children('.loading-header').hide() //errMsg(languageObj.errMsg) }); } $(document).on('click', '.chat-select', function() { $(this).toggleClass('active') }) $(document).on('click', '.selectChat', function() { $(this).parent().siblings('.chat-select-data').text($(this).text()).data('key', $(this).data('key')) $(this).parents('.chat-select').removeClass('active') return false; }) //新增用户信息 function appendUserMsg(msg, index) { if (!msg) { return } msg = msg.replace(/\/gi, '>'); // 判断是否超过15分钟 var nowTime = new Date().getTime() if (lastChatTime && (nowTime - lastChatTime > 1000 * 60 * 15)) { timeFlag = true var html = '
'+ ( robotSetting.dynamicSetting && robotSetting.dynamicSetting['timeOutInfo'] || multilingual.timeOutInfo || '你好,由于长时间没有对话,本轮对话已经结束,如需继续对话可点击下发按钮继续进行对话') +'
' + '
'+ (multilingual.continue || '继续咨询') +'
'+ (multilingual.close || '关闭页面') +'
' $('.czkj-modal-body').html(html) $('.czkj-robot-modal').addClass('czkj-level').show() $('.czkj-modal-title').hide() return } else { timeFlag = false } var appendFlag = true for (var i = 0; i < questionArr.length; i++) { if (index === questionArr[i].index) { appendFlag = false } } if (!appendFlag) { for (var i = 0; i < $('.czkj-user').length; i++) { var key = $($('.czkj-user')[i]).data('index') if (key === index) { $($('.czkj-user')[i]).children('.czkj-msg').text(msg) } } return } var colorStr = '' // if (robotSetting.robotBgColor) { // colorStr = 'style="color:' + robotSetting.robotBgColor + '"' // } var html = '
  • ' + '
    ' + '
    ' + msg + '
  • ' $('#czkj-chat').append(html) $('.czkj-textarea').val('') chatScroll() // $('#limit').html(limit) $('.czkj-user .czkj-msg').css({'background-color': robotSetting.userBgColor}) $('.czkj-user .czkj-msg').css({'color': robotSetting.userColor}) } //外部数据展示 function chatDataModal(responses) { $('#czkj-chat').children('.loading-header').hide(); if (responses.code === 0) { var res = responses.data || {}; var htmls = res.content || '暂无响应数据'; var types = res.type || 'TEXT'; if (types === 'CONFIRM') { xId = htmls.xId; var departmentInfo = htmls.options && htmls.options.departmentInfo || {}; var idTypeList = '', provinceNameList = ''; htmls.options && htmls.options.provinceNameList && htmls.options.provinceNameList.forEach(function(ite) { provinceNameList += ''+ ite +'' }) htmls.options && htmls.options.idTypeList && htmls.options.idTypeList.forEach(function(ite) { idTypeList += ''+ ite.name +'' }) var isNo = '' var groupStr = '
    '; groupStr += '
    登记机关
    '+ departmentInfo.department_id +'
    '; groupStr += '
    预约日期
    '+ departmentInfo.appointment_date +'
    '; groupStr += '
    预约时段:
    '+ departmentInfo.appointment_time_slot_id +'
    '; groupStr += '
    '; groupStr += '
    '; groupStr += '
    *男方姓名
    '; groupStr += '
    *男方证件类型
    请选择
    '+ idTypeList +'
    '; groupStr += '
    *男方证件号码
    '; groupStr += '
    *男方常住户口(省)
    请选择
    '+ provinceNameList +'
    '; groupStr += '
    *男方是否有居住证
    请选择
    '+ isNo +'
    '; groupStr += '
    男方居住证编号
    '; groupStr += '
    '; groupStr += '
    '; groupStr += '
    *女方姓名
    '; groupStr += '
    *女方证件类型
    请选择
    '+ idTypeList +'
    '; groupStr += '
    *女方证件号码
    '; groupStr += '
    *女方常住户口(省)
    请选择
    '+ provinceNameList +'
    '; groupStr += '
    *女方是否有居住证
    请选择
    '+ isNo +'
    '; groupStr += '
    女方居住证编号
    '; groupStr += '
    '; formIndex++ var html = robotHeadHtml('czkj-no-padding czkj-special-width') + '
    ' + htmls.msg + '
    ' + groupStr + '
    ' + (multilingual.submit || '提交') + '
    ' + '
    ' + robotFootHtml; $('.czkj-marry').find('.czkj-marry-btn').addClass('disabled').text('当前表单已失效,请填写最新表单'); $('.czkj-marry').find('.czkj-marry-btn.creation-btn').html(''+ (multilingual.writingBtn || '帮我写') +''); $('.czkj-marry').find('.codeBtn').text(multilingual.send || '发送').addClass('active'); $('.czkj-marry').addClass('disabled'); $('#czkj-chat').append(html); }else { var html = robotHeadHtml('czkj-send-action') + '
    '+ htmls +'
    ' + robotFootHtml; $('#czkj-chat').append(html); } } else { errMsg('请求错误'); var html = robotHeadHtml('czkj-send-action') + '
    请求错误
    ' + robotFootHtml; $('#czkj-chat').append(html); } setTimeout(function() { chatScrollBottom() }, 50); } //调用外部接口 function sendAction(dataz, inputz) { if(dataz.type === 'llm_marry') { window.anyChatUrl = dataz.url || ''; //window.anyChatUrl = dataz.url || '//demo.dknowc.cn/demo/demo/anychat/chat/marry/' + new Date().getTime(); robotServer.anyChat(window.anyChatUrl, {text: inputz}).then(function (responses) { chatDataModal(responses) }).catch(function() { $('#czkj-chat').children('.loading-header').hide() }) } } //新增机器人回复## function appendRobotMsg(obj, isDelete) { // 记录最后一次的时间 var lastTime = new Date().getTime() lastChatTime = lastTime obj.options = obj.options || [] var moreFlag = false var speakText = '' //1.首先判断是否为本级非本级 if (obj.answerView && obj.answerView.type === 'ItemList') { var answerView = obj.answerView || {} var levelHtml = setLevelTagHtml(answerView.data, 1) if (isDelete) { $('#czkj-chat').children('.loading-header').hide() } $('#czkj-chat').append(robotHeadHtml() + levelHtml + robotFootHtml) setTimeout(function () { chatScroll() }, 10) return } // 判断是否调用外部接口 if (obj.answerView && obj.answerView.type === 'reslib_action') { sendAction(obj.answerView.data, obj.userInput) return } // 判断是否为表单 if (obj.answerView && obj.answerView.type === 'reslib_form') { sendForm(obj.answerView.data) if (isDelete) { $('#czkj-chat').children('.loading-header').hide() } return } // 判断知识引导说明 if (obj.downAnswerText) { $('#czkj-chat').append(robotHeadHtml() + obj.downAnswerText + robotFootHtml) } var groupHtml = '' var oneAnswerHtml = '' var searchResults = '' //2.0 如果存在searchResults 搜索引擎结果 一个答案情况 if (obj.searchResults && obj.searchResults.results) { searchResults = setSearchResultHtml(obj.searchResults, obj) } var audioHtml = ''; var chatRandom = 'aaa' + new Date().getTime() var chatLi = 'b' + new Date().getTime() //2.1 渲染一个答案的情况 if ((obj.oneAnswer && obj.oneAnswer.answers) || obj.text) { var resourceHtml = '', nextTagHtml = '', moreTagHtml = '', sourceHtml = ''; if (obj.oneAnswer && obj.oneAnswer.answers) { var answers = obj.oneAnswer.answers || {} // 去除隐藏的childOption var options = removeHideItem(obj.oneAnswer.childOption || []) if(window.isZKF) { options.forEach(function(ites) { if(ites.value === '网上办理') { var chatObj = { text: ites.value, questionSourceType: questionSourceType || 'other_input', areaId: window.selectAreaId, chooseId: ites.chooseId } robotServer.chat(chatObj).then(function (res) { try { var resObjs = res.content if (resObjs.oneAnswer && resObjs.oneAnswer.answers && resObjs.oneAnswer.answers.answerResources) { var reslibText = '' var answertext = resObjs.oneAnswer.answers.answerResources || [] for (var i = 0; i < answertext.length; i++) { if (answertext[i].type === 'reslib_text') { reslibText = answertext[i].text } } $('.' + chatRandom).after('
    ●网上办理:' + reslibText +'
    ') chatScrollBottom() } } catch (e) { } }, function (err) { }) } }) } moreFlag = calcToggelFlag(answers, options) //2.1.1 拼接一个答案下资源列表 var oneStr = setReourceHtml(obj.oneAnswer.answers, 'associatedResourceNum', 'previewNum') if (oneStr) { resourceHtml = '
    ' resourceHtml += oneStr resourceHtml += '
    ' } //230621 childOptionText if(obj.oneAnswer.childOptionText) { resourceHtml += '
    '+ obj.oneAnswer.childOptionText +'
    '; } //2.1.2 拼接下级标签 if (options.length) { nextTagHtml = '
    ' nextTagHtml += setTagHtml(options, 'childLabelNum') nextTagHtml += '
    ' if (robotSetting.childLabelNum === 0) { nextTagHtml = '' } } var moreStr = '
    ' + (obj.oneAnswer.answers.source ? '' + obj.oneAnswer.answers.source + '' : '') + (moreFlag ? '
    ' : '') + '
    ' + '
    ' if (moreFlag || obj.oneAnswer.answers.source) { moreTagHtml += moreStr } audioHtml = '
    ' + '播报
    '; if (obj.oneAnswer.answers.answerResources) { var reslibText = '' var answertext = obj.oneAnswer.answers.answerResources || [] for (var i = 0; i < answertext.length; i++) { if (answertext[i].type === 'reslib_text') { reslibText = answertext[i].text } } speakText = obj.text + '。' + reslibText } if(obj.oneAnswer.answers.sourceUrl && robotSetting.dynamicSetting && robotSetting.dynamicSetting['item_url_flag'] == 'true') { sourceHtml = '办事指南
    '+ (robotSetting.dynamicSetting['item_url_text'] || '单击前往《办事指南》') +'
    ' } } else { speakText = obj.text || '' } // obj.text = obj.text ? obj.text.replace(/[\n]/g, '
    ') : '' obj.text = obj.text || '' var notFound = false var errArr = ['NOT_FOUND', 'INVALID_TEXT_FOUND', 'MRCACTOR_NOT_FOUND', 'LONG_TEXT', 'INVALID_INPUT', 'UNKNOWN'] for (var i = 0; i < errArr.length; i++) { if (errArr[i] === obj.resultType) { notFound = true } } oneAnswerHtml += '
  • ' + '
    ' + '' + '
    ' + '
    ' + sourceHtml + '
    ' + obj.text + (obj.oneAnswer && obj.oneAnswer.answers && obj.oneAnswer.answers.score ? getScoreStr(obj.oneAnswer.answers.score) : '') + (obj.qrCodeImage ? ('
    ' + '' + '
    ' + (isMobile() ? languageObj.share : languageObj.details) + '
    ') : '') + (robotSetting.enableVoiceOutput ? audioHtml : '') + '
    ' + resourceHtml + nextTagHtml + moreTagHtml + '
    ' + '
  • ' groupHtml += oneAnswerHtml } // 判断知识引导说明 if (obj.otherAnswerText) { groupHtml += robotHeadHtml() + obj.otherAnswerText + robotFootHtml } //4. 多个答案 if (obj.manyAnswers && obj.manyAnswers.length) { var audioHtml = '
    ' + '播报
    ' var manyAnswers = removeHideItem(obj.manyAnswers), manyHtml = '' manyHtml += '
    ' manyHtml += '
    ' + obj.manyAnswersText + (robotSetting.enableVoiceOutput ? audioHtml : '') + '
    ' for (var i = 0; i < manyAnswers.length; i++) { if (manyAnswers[i].value) { manyHtml += '
    ' + manyAnswers[i].value + getScoreStr(manyAnswers[i].score) + '' + (manyAnswers[i].source ? ("" + manyAnswers[i].source + "") : "") + '
    ' } } manyHtml += '
    ' groupHtml += (robotHeadHtml() + manyHtml + robotFootHtml); var texts = [] for (var i = 0; i < manyAnswers.length; i++) { texts.push(manyAnswers[i].value + '。') } speakText = obj.manyAnswersText + '。' + texts.join('、') } // 3. 拼接标签 if (obj.options && obj.options.length) { // 去除隐藏的option var options = removeHideItem(obj.options), optionsHtml = '', optionsMoreTagHtml = '' var optionsMoreFlag = calcToggelFlag({}, options) optionsHtml = '
    ' if (obj.optionsText) { optionsHtml += '
    ' + obj.optionsText + '
    ' } var noLine = false if (!obj.optionsText) { noLine = true } optionsHtml += '
    ' optionsHtml += setTagHtml(obj.options, 'childLabelNum') optionsHtml += '
    ' if (optionsMoreFlag) { optionsMoreTagHtml = '
    ' + '
    ' + '
    ' } groupHtml += (robotHeadHtml(optionsMoreFlag ? 'czkj-more-li' : '') + optionsHtml + optionsMoreTagHtml + robotFootHtml); speakText = speakText || obj.optionsText } //5. 评价 var appraisal = obj.appraisal; var zhipuAppraisal = '', zhipuAppraisalContenr = ''; if (appraisal) { var evalHtml = '' if (appraisal.options && appraisal.options.length) { appraisal.options[1].show = false for (var i = 0; i < appraisal.options.length; i++) { if (appraisal.options[i].show) { appraisal.evalTrue = appraisal.options[i] } else { appraisal.evalFalse = appraisal.options[i] } } } appraisal = appraisal || {evalTrue: {}, evalFalse: {}} evalHtml = robotHeadHtml('m0', true) + '
    ' + appraisal.text + '
    ' + '
    ' + appraisal.evalTrue.value + '
    ' + '
    ' + appraisal.evalFalse.value + '
    ' + robotFootHtml if(isZhiPu) { zhipuAppraisal = '
    ' + '
    '; zhipuAppraisalContenr = robotHeadHtml('czkj-select-result hide', true) + +robotFootHtml; }else { groupHtml += evalHtml groupHtml += robotHeadHtml('czkj-select-result hide', true) + +robotFootHtml; } } //6. 拼接换一换部分 obj.relevantAnswers = obj.relevantAnswers || [] if ((obj.relevantAnswers && (obj.relevantAnswers.length || (!obj.relevantAnswers.length && obj.relevantAnswerText))) || searchResults) { var questionHtml = '' var relevantAnswers = [] for (var i = 0; i < obj.relevantAnswers.length; i++) { if (obj.relevantAnswers[i].show) { relevantAnswers.push(obj.relevantAnswers[i]) } } var borderFlag = false if ((obj.relevantAnswers && obj.relevantAnswers.length) && searchResults) { borderFlag = true } questionHtml += '
    ' + obj.relevantAnswerText + '
    ' for (var i = 0; i < relevantAnswers.length; i++) { if (i < associatedAnswerNum) { questionHtml += '
    ' + relevantAnswers[i].value + '
    ' } } var changeStr = '' if (obj.relevantAnswers.length > associatedAnswerNum) { changeStr = '
    ' } questionHtml += '
    ' + changeStr + '
    ' if (!relevantAnswers.length) { questionHtml = '' } if(!obj.relevantAnswers.length && obj.relevantAnswerText) { questionHtml = obj.relevantAnswerText; } groupHtml += robotHeadHtml() + (searchResults.str ? searchResults.str : searchResults ) + questionHtml + robotFootHtml } groupHtml += '' if ((isKpNumberRobot || isKpNumberMianyang || isKpNumberTongLiang) && kpHuman) { console.log(speakText) kphumanWord = speakText.replace(/\*/gi, '').replace(/(<([^>]+)>)/gi, ''); if(kphumanVoice){ kpHuman.stop() setTimeout(function() { kpHuman.speak(kphumanWord || '') }, 100); } } clearInterval(window.chatgptInterval); if(robotSetting.typewriterMode && !searchResults.str) { $('body').append('') $('#czkj-chat').append('
    ') $('#chatUl').find('.hide').remove() var czkjText = $('#chatUl').find('.czkj-resource-view-text') var czkjHtml = czkjText.html(), czkjArry = [], strings = ''; if(czkjHtml) czkjArry = czkjHtml.split('
    '); czkjArry.forEach(function(ite, ind) { if(ind < 4) strings += ite.trim(); }) var fontLength = isMobile() ? 100 : 230; if(strings.length > fontLength) { czkjHtml = czkjHtml.trim(); var arrys = strings.split('>'), strs = '', strs2 = ''; for(var i = 0; i < arrys.length; i++ ) { strs2 += (arrys[i] + '>'); if(strs2.length > fontLength) { if(strs2.length - 10 > fontLength) strs += arrys[i].substr(0, fontLength - strs.length); break }else { strs = strs2; } } czkjText.html(czkjHtml.substr(0, strs.length) + '`' + czkjHtml.substr(strs.length) + '`') }else { var arry1 = [], arry2 = [] czkjArry.forEach(function(ite, ind) { if(ind < 4) { arry1.push(ite) }else { arry2.push(ite) } }) czkjText.html(arry1.join('
    ') + '
    `' + arry2.join('
    ') + '`') } var htmlzz = $('#chatUl').html(); let responseszz = $(htmlzz).text().replaceAll("•", "。").replaceAll("\n", "").replaceAll("\t", "").replaceAll(tagRegex, "").replaceAll(" ", "").replaceAll("【", "").replaceAll("】", "").replaceAll("《", "").replaceAll("》", "").replaceAll("〈", "").replaceAll("〉", "") let sentences = responseszz.split(/[,!?。;,!?;、]/).filter(function(ite) {return !!ite}); let delayTime = 0; $('#chatUl').remove(); var chatInterval = setInterval(function() { chatScrollBottom() }, 1000) setTimeout(function() { clearInterval(chatInterval) }, 90000); if(window.modelManage && $('.lil-gui.autoPlace').length) { delayTime = sentences[0] && sentences[0].length > 19 ? 3300 : 2500; window.modelManage.ResetAllStates && window.modelManage.ResetAllStates() let currentIndex = 0; if(sentences.length) { var lengthz = 0; window.chatgptInterval = setInterval(function() { //console.log('语音播报循环执行中') if(lengthz < sentences.length) { let startIndex = 0 let maxLength = 30 if (sentences[lengthz].length >= maxLength) { while (startIndex < sentences[lengthz].length) { const substr = sentences[lengthz].substring(startIndex, startIndex + maxLength); window.modelManage.getChatgptText(currentIndex, substr); currentIndex++ startIndex += maxLength; } } else { if(sentences[lengthz]) { window.modelManage.getChatgptText(currentIndex, sentences[lengthz]); currentIndex++ } } }else { clearInterval(window.chatgptInterval) } ++lengthz; }, 500); } }; setTimeout(function() { $('#czkj-chat').children('.loading-header').hide() $('.chatDiv .chatGptAudio').show(); }, delayTime); typed = new Typed("." + chatLi, { strings: [htmlzz], typeSpeed: 10,//打字的速度 smartBackspace: true, // 开启智能退格 默认false backSpeed: 50,//后退速度 backDelay: 500,//后退延迟 loop:false,//是否循环 默认false startDelay: delayTime,//起始时间 fadeOut:true,//淡出效果 showCursor: false, onComplete: function(self) { $('.' + chatLi).remove(); let htmlaudio = $('.chatDiv').html(); $('.chatDiv').remove() $('#czkj-chat').append(groupHtml) chatAfterInfo() clearInterval(chatInterval) setTimeout(function() { chatScrollBottom(); $('#czkj-chat .czkj-robot:visible').last().children('.czkj-msg').append(htmlaudio) setAudioStopEvent(); }, 100); }, }); setAudioStopEvent(); function setAudioStopEvent() { $('.audioStopChat').off('click').on('click', function (e) { $('.audioPlayChat').removeClass('active'); window.modelManage.ResetAllStates() let currentIndex = 0; if(sentences.length) { var lengthz = 0; window.chatgptInterval = setInterval(function() { //console.log('语音播报循环执行中') if(lengthz < sentences.length) { let startIndex = 0 let maxLength = 30 if (sentences[lengthz].length >= maxLength) { while (startIndex < sentences[lengthz].length) { const substr = sentences[lengthz].substring(startIndex, startIndex + maxLength); window.modelManage.getChatgptText(currentIndex, substr); currentIndex++ startIndex += maxLength; } } else { if(sentences[lengthz]) { window.modelManage.getChatgptText(currentIndex, sentences[lengthz]); currentIndex++ } } }else { clearInterval(window.chatgptInterval) } ++lengthz; }, 500); } }) } }else { if (isDelete && (!searchResults.str || !isYueZT)) { $('#czkj-chat').children('.loading-header').hide() //$('#czkj-chat').find('.yztLoading img').attr('src', 'image/yzt-fenxi.svg') } $('#czkj-chat').append(groupHtml) chatAfterInfo() setTimeout(function() { chatScroll() }, 50); if(!searchResults.str && window.modelManage && $('.lil-gui.autoPlace').length) { window.modelManage.ResetAllStates && window.modelManage.ResetAllStates() let responseszz = $(groupHtml).text().replaceAll("•", "。").replaceAll("\n", "").replaceAll("\t", "").replaceAll(tagRegex, "").replaceAll(" ", "").replaceAll("【", "").replaceAll("】", "").replaceAll("《", "").replaceAll("》", "").replaceAll("〈", "").replaceAll("〉", "") let sentences = responseszz.split(/[,!?。;,!?;、]/).filter(function(ite) {return !!ite}); let currentIndex = 0; if(sentences.length) { var lengthz = 0; window.chatgptInterval = setInterval(function() { //console.log('语音播报循环执行中') if(lengthz < sentences.length) { let startIndex = 0 let maxLength = 30 if (sentences[lengthz].length >= maxLength) { while (startIndex < sentences[lengthz].length) { const substr = sentences[lengthz].substring(startIndex, startIndex + maxLength); window.modelManage.getChatgptText(currentIndex, substr); currentIndex++ startIndex += maxLength; } } else { if(sentences[lengthz]) { window.modelManage.getChatgptText(currentIndex, sentences[lengthz]); currentIndex++ } } }else { clearInterval(window.chatgptInterval) } ++lengthz; }, 500); } } } function chatAfterInfo() { if(zhipuAppraisal) { var objzhipu = $('#czkj-chat .loading-header').last().next() objzhipu.children('.czkj-msg').append(zhipuAppraisal).addClass('hasZhipuAppraisal') objzhipu.after(zhipuAppraisalContenr) } // 9.4 换一换 历史记录 $('.czkj-change-icon').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat 0px -169px'}) $('.czkj-change-icon').css({'background-size': '500px 300px'}) $('.more-button').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -61px -254px'}) $('.more-button').css({'background-size': '500px 300px'}) $('.czkj-robot .czkj-msg').css({'background-color': robotSetting.msgBgColor}) $('.czkj-tags-group-title').css({'color': robotSetting.msgTitleColor}) $('.czkj-text-title').css({'color': robotSetting.msgTitleColor}) $('.czkj-text-title.not-found').css({'color': '#333'}) $('.czkj-rele-question-title').css({'color': robotSetting.msgTitleColor}) setTimeout(function () { // 设置右侧padding var prNum = 0 if (robotSetting.enableVoiceOutput && ((obj.manyAnswers && obj.manyAnswers.length) || (obj.oneAnswer && obj.oneAnswer.answers) || obj.text)) { prNum = 43 } $('.czkj-tags-group-title').css({'padding-right': prNum + 'px'}) if(robotSetting.enableVoiceOutput) $('.czkj-text-title').css({'padding-right': '0px'}); $('.czkj-resource-view-text img').css({'max-width': '100% !important'}) }, 10) if(isXinjiang && !isMobile() && groupHtml.includes('more-button')) { $('.czkj-user:last').nextAll().find('.more-button').trigger('click') } } if(searchResults.str) { var classz = searchResults.classz; if(!window.EventSource) { alert("你的浏览器不支持SSE~") $('.' + classz).parents('.czkj-robot').remove() $('#czkj-chat').children('.loading-header').hide() }else { //var source = new EventSource('/qa-query-zhipu/gpt/qasse?text=23年本科教学项目评选通知是啥时候发布的'); try { var queryUrl = obj.searchResults.results[0].url.split('#')[1]; if(!queryUrl.startsWith('http')) { queryUrl = location.origin + queryUrl; } let sseindex; let currentIndex = 0; let sentences = []; window.modelManage && window.modelManage.ResetAllStates && window.modelManage.ResetAllStates() var source = new EventSource(queryUrl); var referenceObj = []; var chatTime = setTimeout(function() { errMsg(languageObj.timeout) $('.stopChat').remove() $('.czkj-msg.chatgpt-stop').removeClass('chatgpt-stop') $('#czkj-chat').children('.loading-header').hide() source.close() }, 60000); $('.' + classz).parents('.czkj-msg').addClass('chatgpt-stop') $('#czkj-chat').children('.loading-header').hide() $('.' + classz).parents('.czkj-msg').addClass('chatgpt-msg') source.onmessage = function(event){ clearTimeout(chatTime) $('#czkj-chat').children('.loading-header').hide() console.log(event) var dataz = {}; if(event.data.indexOf('{') === 0) dataz = JSON.parse(event.data); var contentHtml = dataz.content, contentArry = []; referenceObj = dataz.ref || []; contentArry = contentHtml.match(/\[\^[0-9|\,]+\^\]/ig) || []; contentArry.forEach(function(items){ var itemhtml = ''; var itemarry = items.substring(2, items.length - 2).split(',') itemarry.forEach(function(ite){ itemhtml += ''+ ite +'' }) contentHtml = contentHtml.replace(items, itemhtml) }) $('.' + classz).html(contentHtml); $('.' + classz).siblings('.chatgpt-tips').html(robotSetting.dynamicSetting && robotSetting.dynamicSetting['ai.text'] || dataz.tip); $('.' + classz).siblings('.chat-loading').css('display', 'inline-block') $('.' + classz).siblings('.chat-wait').hide() chat.scrollTop = chat.scrollHeight; let divs = $('
    '); divs.html($('.' + classz).html()).find('.sup').remove(); let responseszz = divs.html().replace("\n", "").replace("\t", "").replace(tagRegex, "").replace(" ", "") sentences = responseszz.split(/[,!?。;,!?;、]/); if(window.modelManage && $('.lil-gui.autoPlace').length && !$('.audioStopChat').hasClass('active')) { if (sseindex != sentences.length) { let word = sentences[sentences.length - 2] if (word) { let startIndex = 0 let maxLength = 30 if (word.length >= maxLength) { while (startIndex < word.length) { const substr = word.substring(startIndex, startIndex + maxLength); window.modelManage.getChatgptText(currentIndex, substr); currentIndex++ startIndex += maxLength; } } else { if(word) { window.modelManage.getChatgptText(currentIndex, word); currentIndex++; } } } } sseindex = sentences.length; } }; source.onopen = function(event){ //console.log('建立连接') $('#czkj-chat').children('.loading-header').hide() }; source.onerror = function(event){ if(robotSetting.enableVoiceOutput) { let divs = $('
    '); divs.html($('.' + classz).html()).find('.sup').remove(); $('.' + classz).parents('.czkj-msg').append('
    ' + '播报
    '); } $('.' + classz).siblings('.chat-loading').hide() $('.' + classz).siblings('.stopChat').remove() $('.' + classz).parents('.czkj-msg').removeClass('chatgpt-stop') $('#czkj-chat').children('.loading-header').hide() //自由会话添加点评 $('.' + classz).parents('.czkj-msg').append('
    '); setChatgptNote(classz, referenceObj) setTimeout(function () { chat.scrollTop = chat.scrollHeight }, 200) source.close() //console.log('连接失败') }; $('.stopChat').off('click').on('click', function (e) { clearTimeout(chatTime) $('#czkj-chat').children('.loading-header').hide() $(this).text(multilingual.stopped || '已停止生成').addClass('stopChatActive').removeClass('stopChat'); $(this).parents('.czkj-msg').removeClass('chatgpt-stop') $(this).siblings('.chat-loading').hide() $(this).siblings('.chat-wait').hide() if(robotSetting.enableVoiceOutput) { let divs = $('
    '); divs.html($('.' + classz).html()).find('.sup').remove(); $('.' + classz).parents('.czkj-msg').append('
    ' + '播报
    '); } source.close() }) $('.audioStopChat').off('click').on('click', function (e) { $('.audioPlayChat').removeClass('active'); window.modelManage.ResetAllStates() if($('.stopChat').length && false) { sseindex = undefined; currentIndex = 0; }else { setTimeout(function() { let indexss = 0 sentences.forEach(function(word) { if (word) { let startIndex = 0 let maxLength = 30 if (word.length >= maxLength) { while (startIndex < word.length) { const substr = word.substring(startIndex, startIndex + maxLength); window.modelManage.getChatgptText(indexss, substr); indexss++ startIndex += maxLength; } } else { if(word) { window.modelManage.getChatgptText(indexss, word); indexss++; } } } }) }, 1000); } }) } catch (error) { errMsg('SSE连接失败!') $('.' + classz).parents('.czkj-robot').remove() $('#czkj-chat').children('.loading-header').hide() } } } } $('body').on('click', '.audioPlayChat', function (e) { window.modelManage.ResetAllStates() $(this).hide() $('.audioStopChat').show().addClass('active') $(this).addClass('active'); clearInterval(window.chatgptInterval) }) $('.yzt-operate-add').click(function () { $('.yzt-page2').removeClass('active') serviceId = undefined; if(window.multiMode) { $('.setChatMode').removeClass('active'); $('#policyChatAnswer, #policyChatText').html(''); $('#policyChat').hide(); $('#policyChatTip').show(); window.multiMode = window.defaultMultiMode || '1'; } if($('.positioning-robot').length) { $('.positioning-robot').nextAll().remove(); }else if($('.zhipu-hot').length) { $('.zhipu-hot').nextAll().remove(); }else if($('.czkj-welcome-msg').length) { $('.czkj-welcome-msg').nextAll().remove(); } typed && typed.destroy && typed.destroy(); window.modelManage && window.modelManage.ResetAllStates && window.modelManage.ResetAllStates() clearInterval(window.chatgptInterval); robotServer.change().then(function (responses) { console.log(responses) }).catch(function(error) { console.log(error) }) }) $('.yzt-operate-del').click(function () { if($('.positioning-robot').length) { $('.positioning-robot').nextAll().remove(); }else if($('.zhipu-hot').length) { $('.zhipu-hot').nextAll().remove(); }else if($('.czkj-welcome-msg').length) { $('.czkj-welcome-msg').nextAll().remove(); } typed && typed.destroy && typed.destroy() }) function setChatgptNote(classz, referenceObj) { if(!referenceObj.length) return; var htmlNote = '
    参考资料
    '; referenceObj.forEach(function(item, index) { htmlNote += '
    '+ (index + 1) +'.'+ item.title +'
    '+ item.content +'
    ' }) htmlNote += '
    '; $('.' + classz).siblings('.chatgpt-note').html(htmlNote) } function setChatReferenc(classz, referenceObj) { if(!referenceObj.length) return; var htmlss = '
    参考资料展开
    '; //htmlss += '
    1.hahaha
    参考资料
    ' referenceObj.forEach(function(item, index) { htmlss += '
    '+ (index + 1) +'.'+ item.title +'
    '+ item.content +'
    ' }); var referencHtml = robotHeadHtml('chat-referenc') + htmlss + '
    ' + robotFootHtml; $('#czkj-chat').append(referencHtml) } $(document).on('click', '.chatreferenc-title', function() { $(this).toggleClass('active'); $(this).hasClass('active') ? $(this).find('.chatBtn').text('收起') : $(this).find('.chatBtn').text('展开'); }) $(document).on('click', '.chatreferenc-item-name, .chatgpt-note-t, .note-item-n', function() { $(this).toggleClass('active') }) function removeHideItem(arr) { var options = [] for (var i = 0; i < arr.length; i++) { if (arr[i].show) { options.push(arr[i]) } } return options } function calcToggelFlag(answers, childOption) { var optionBool = false, resourcesBool = false, previewBool = false, textBool = false var previewResourceArr = [] if (answers.answerResources && answers.answerResources.length) { //1. 计算资源数量 if (answers.answerResources.length > robotSetting.associatedResourceNum) { resourcesBool = true } //2. 预览资源数量 for (var i = 0; i < answers.answerResources.length; i++) { if (answers.answerResources[i].preview) { previewResourceArr.push(answers.answerResources[i]) } } if (previewResourceArr.length > robotSetting.previewNum) { previewBool = true } } var width = ($('.czkj-chat-left').width() - 70) * 0.9 - 29.5 //3. 计算文字资源 预览情况下 文字个数问题 for (var i = 0; i < previewResourceArr.length; i++) { var item = previewResourceArr[i] || {} if (item.type === 'reslib_text' && item.text) { var html = '
    ' + item.text + '
    ' $($('#czkj-chat .czkj-robot .czkj-msg')[$('#czkj-chat .czkj-robot .czkj-msg').length - 1]).append(html) var height = $('.hide-reslib-text').height() if (height > 110 || item.text.includes('' $('#czkj-chat').append('
  • ' + html + '
  • '); var height = $('.hide-reslib-text').height() var heightLimit = isMobile() ? (window.optionHeightH5 || 126) : ((window.optionHeightPc || 50)); //console.log(height, heightLimit) if (height > heightLimit) { optionBool = true } $('.hide-reslib-text, .temporaryElements').remove() } return resourcesBool || previewBool || optionBool || textBool } //拼接关联资源 function setReourceHtml(obj, resourceKey, previewKey) { //1. 附件资源拼接 var resourceHtml = '' var answerResources = obj.answerResources || [] var resourceIndex = 0 var previewIndex = 0 for (var i = 0; i < answerResources.length; i++) { var item = answerResources[i] if (item.type) { resourceIndex++ } if (item.type && item.preview) { previewIndex++ } if (resourceIndex > robotSetting[resourceKey]) { item.hideResouce = true }else { item.hideResouce = false } if (previewIndex > robotSetting[previewKey]) { item.hidePreviewResource = true } if (item.type === 'reslib_text') { item.simpleText = item.simpleText || '' item.text = item.text || '' } } //先渲染text资源 for (var i = 0; i < answerResources.length; i++) { var item = answerResources[i] if (!item.hideResouce && item.hidePreviewResource) { item.preview = false } var hideClassName = (item.hideResouce) ? 'hide' : '' if (item.type === 'reslib_text' && item.preview) { var text = item.simpleText || '' if (resourceKey === 'foldNum') { // 展开后 text = item.text || item.simpleText || '' } else { // 展开前 text = item.simpleText || item.text || '' } resourceHtml += '
    ' + text + '
    ' } } if (obj.indexUrlText) { resourceHtml += '
    ' + obj.indexUrlText + '
    ' } for (var i = 0; i < answerResources.length; i++) { var item = answerResources[i] var itemStr = escape(JSON.stringify(item)) var hideClassName = (item.hideResouce) ? 'hide' : '' item.urlType = item.urlType || '' var urlType = isthisUrlType(item) if (item.type === 'reslib_url' && (item.urlType ? (item.urlType.indexOf(urlType) !== -1 || urlType === '-1') : true)) { if (item.preview && item.picPath) { resourceHtml += '
    ' + '
    ' } else { resourceHtml += '
    【链接】' + item.name + '
    ' } } if (item.type === 'reslib_image' && item.preview) { resourceHtml += '
    ' + '
    ' } if (item.type === 'reslib_video' && item.preview) { resourceHtml += '
    ' + '
    ' } if (item.type === 'reslib_audio' && item.preview) { resourceHtml += '
    ' } } var isinterfaceFlag = false for (var i = 0; i < answerResources.length; i++) { var item = answerResources[i] var itemStr = escape(JSON.stringify(item)) var hideClassName = (item.hideResouce) ? 'hide' : '' if (item.type === 'reslib_text' && !item.preview) { resourceHtml += '
    【文字】' + item.name + '
    ' } // 如果是婚登登记 if (item.type === 'reslib_form') { var htmlzz = isZhiPu ? '' : '【表单】'; resourceHtml += '
    ' + htmlzz + item.name + '
    ' } if (item.type === 'reslib_image' && !item.preview) { var htmlzz = isZhiPu ? '' : '【图片】'; resourceHtml += '
    ' + htmlzz + item.name + '
    ' } if (item.type === 'reslib_video' && !item.preview) { var htmlzz = isZhiPu ? '' : '【视频】'; resourceHtml += '
    ' + htmlzz + item.name + '
    ' } if (item.type === 'reslib_audio' && !item.preview) { var htmlzz = isZhiPu ? '' : '【音频】'; resourceHtml += '
    ' + htmlzz + item.name + '
    ' } if (item.type === 'reslib_doc') { var htmlzz = isZhiPu ? '' : '【文档】'; resourceHtml += '
    '+ htmlzz + item.name + '
    ' } if (item.type === 'reslib_interface' || item.type === 'reslib_rounds') { isinterfaceFlag = true } } if (isinterfaceFlag) { resourceHtml += '
    ' } for (var i = 0; i < answerResources.length; i++) { var item = answerResources[i] var itemStr = escape(JSON.stringify(item)) if (item.type === 'reslib_interface') { resourceHtml += '
    ' + item.name + '
    ' } if (item.type === 'reslib_rounds') { resourceHtml += '
    ' + item.name + '
    ' } } if (isinterfaceFlag) { resourceHtml += '
    ' } // 渲染接口资源和多轮资源 return resourceHtml } //设置下级标签html function setTagHtml(options, key) { var nextTagHtml = '' for (var i = 0; i < options.length; i++) { var hideClassName = '' // if (i >= robotSetting[key]) { // hideClassName = 'hide' // } nextTagHtml += '
    ' + options[i].value + getScoreStr(options[i].score) + '
    ' } return nextTagHtml } function getScoreStr(score) { var scoreStr = '' if (urlObj.key && score >= 0) { scoreStr = '[' + score + ']' } if (urlObj.mode !== '2') { return '' } return scoreStr } // 关闭当前页面 $(document).on('click', '.czkj-level-btn', function (e) { window.opener = null; window.close(); }) // 关闭模态框 $(document).on('click', '.czkj-continue-btn', function (e) { window.location.reload() return lastChatTime = new Date().getTime() $('.czkj-modal-title').show() $('.czkj-robot-modal').removeClass('czkj-level').removeClass('czkj-gpt').hide() }) //展开答案$$ $(document).on('click', '.more-button', function (e) { var resourceDom = $(this).parents('.czkj-msg').children('.czkj-resource-group') var resourceList = resourceDom.length ? JSON.parse(unescape($(resourceDom).data('resource'))) : '' robotSetting.foldChildLabel = 1000 var tagDom = $(this).parents('.czkj-msg').find('.czkj-tags-group') var tagList = tagDom.length ? JSON.parse(unescape($(tagDom).data('tags'))) : '' var resourceHtml = '', tagHtml = '' if (!$(this).hasClass('is-click')) { //展开后 resourceHtml = setReourceHtml(resourceList, 'foldNum', 'foldPreviewNum') tagHtml = setTagHtml(tagList, 'foldChildLabel') tagDom.addClass('actived') } else { //收起后 resourceHtml = setReourceHtml(resourceList, 'associatedResourceNum', 'previewNum') robotSetting.foldChildLabel = 1000 tagDom.removeClass('actived') tagHtml = setTagHtml(tagList, 'childLabelNum') } $(resourceDom).html(resourceHtml) var textDom = $(resourceDom).children('.czkj-resource-view-text') if (!$(this).hasClass('is-click')) { $(textDom).css({'max-height': 'none'}) } else { $(textDom).css({'max-height': '110px'}) } $(tagDom).html(tagHtml) $(this).toggleClass('is-click') $('.more-button').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -61px -254px'}) $('.more-button').css({'background-size': '500px 300px'}) $('.more-button.is-click').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -61px -218px'}) $('.more-button.is-click').css({'background-size': '500px 300px'}) }) $(document).on('click', '.search-more-btn', function (e) { var text = JSON.parse(unescape($(this).prev().data('text'))) if (!$(this).hasClass('is-click')) { $(this).prev().html(text) $(this).children('img').attr('src', './image/text-hide.svg') } else { $(this).prev().html(text.slice(0, robotSetting.wordLimit)) $(this).children('img').attr('src', './image/text-show.svg') } $(this).toggleClass('is-click') }) $(document).on('mouseover', '.czkj-scan', function (e) { if (isMobile()) { return } $(this).children('.czkj-scan-code').show() }) $(document).on('mouseleave', '.czkj-scan', function (e) { if (isMobile()) { return } $(this).children('.czkj-scan-code').hide() }) $(document).on('click', function (e) { if ($(e.target).hasClass('czkj-scan')) { $(e.target).children('.czkj-scan-code').show() } else { if ($(e.target).hasClass('czkj-scan-code') || $(e.target).parent().hasClass('czkj-scan-code')) { return } $('.czkj-scan-code').hide() } }) $('#czkj-chat').on('scroll', function (e) { if ($('.czkj-scan-code').css('display') === 'none') { return } $('.czkj-scan-code').hide() }) $(document).on('click', '.czkj-text-title a', function (e) { copyAhref(e, $(this).attr('href')) }) $(document).on('click', '.czkj-resource-view-text a', function (e) { copyAhref(e, $(this).attr('href')) }) function copyAhref(e, href) { if (isWxMiniAppFlag || isBDMiniAppFlag || isZFBMiniAppFlag) { e.preventDefault() var input = document.createElement('input') input.style.opacity = '0' input.setAttribute('class', 'hide-input') document.body.appendChild(input) input.value = href, input.select(); // 选中文本 document.execCommand("copy"); document.body.removeChild(input) errMsg('相关链接已复制,请前往浏览器打开') } } //打印日志 // $('.czkj-time').click(function () { // var a = document.createElement('a') // a.href = window.ENV.api + '/ctrl/webAdmin/dataset'; // a.target = 'download' // document.body.appendChild(a) // a.click() // document.body.removeChild(a) // }) //换一换 $(document).on('click', '.czkj-rele-change', function (e) { var arr = JSON.parse(unescape($(this).data('arr'))) var index = $(this).data('index') var nextIndex = index + associatedAnswerNum $(this).data('index', nextIndex) var html = '' $(this).parents('.czkj-rele-question').children('.czkj-rele-item').addClass('hide') if (nextIndex >= arr.length) { var newArr = JSON.parse(JSON.stringify(arr)) for (var i = 0; i < newArr.length; i++) { arr.push(arr[i]) } } $(this).data('arr', escape(JSON.stringify(arr))) for (var i = 0; i < arr.length; i++) { if (i > index && i <= index + associatedAnswerNum) { html += '
    ' + arr[i].value + '
    ' } } $(this).parents('.czkj-rele-question').children('.czkj-rele-group').html(html) }) //换一换单个事项点击事件 $(document).on('click', '.czkj-rele-item', function (e) { var key = $(this).data('key') var value = JSON.parse(unescape($(this).data('value'))) sendMsg(value, key) }) $(document).on('click', '.czkj-level-tag', function (e) { try { // 设置当前项选中 $(this).parents('.czkj-level-tag-group').children('.czkj-level-tag').removeClass('actived') $(this).addClass('actived') var item = JSON.parse(unescape($(this).data('item'))) // 清空事项展示内容 $(this).parents('.czkj-msg').children('.czkj-level-link-group').addClass('hide') // 设置level低于当前level的隐藏 var level = $(this).parents('.czkj-level-tag-group').data('level') var tagArr = $(this).parents('.czkj-msg').children('.czkj-level-tag-group') for (var i = 0; i < tagArr.length; i++) { if ($(tagArr[i]).data('level') > level) { $(tagArr[i]).addClass('hide') } } $(this).parents('.czkj-msg').append(setLevelLinkHtml(item) + setLevelTagHtml(item, level)) } catch (e) { console.log(e) } }) $(document).on('click', '.czkj-level-link', function (e) { try { var item = JSON.parse(unescape($(this).data('item'))) var a = document.createElement('a') a.setAttribute('href', item.url) a.setAttribute('target', '_blank') a.setAttribute('id', 'startTelMedicine') if (document.getElementById('startTelMedicine')) { document.body.removeChild(document.getElementById('startTelMedicine')) } document.body.appendChild(a) a.click() } catch (e) { console.log(e) } }) function setLevelTagHtml(data, level) { //如果flag为true 则为第2级以及之后,需要隐藏事项列表 var str = '' if (data.text) { str += '
    ' + data.text + '
    ' } if (data.area && data.area.length) { str += '
    ' for (var i = 0; i < data.area.length; i++) { var itemStr = escape(JSON.stringify(data.area[i])) str += '
    ' + data.area[i].name + '
    ' } str += '
    ' } else { // str = '
    暂无数据
    ' } return str } function setSearchResultHtml(data, obj) { var str = '' var dataData = data.results || [] if(dataData.length === 1 && dataData[0].url && dataData[0].url.indexOf('span#') === 0) { var classz = 'a' + Date.now(); str += '
    '+ (multilingual.pleaseWait || '请稍等,正在生成答案。') +'
    '+ (multilingual.stop || '停止生成') +'
    '+ '
    ' +'
    '; return {str: str, classz: classz}; } if (data.searchResultText || data.sourceShow) { str += '
    ' + data.searchResultText + (data.sourceShow ? ('(' + data.sourceShow + ')') : '') + '
    ' } if (dataData.length === 1 && dataData[0].text && !obj.oneAnswer && obj.resultType === 'NOT_FOUND') { return (dataData[0].title ? ('
    ' + dataData[0].title + '
    ') : '') + '
    ' + dataData[0].text + '
    ' + (data.sourceShow ? ('
    ' + data.sourceShow + '
    ') : '') + '
    ' } for (var i = 0; i < dataData.length; i++) { if (dataData[i].title) { var itemStr = escape(JSON.stringify(dataData[i])) str += '
    ' + dataData[i].title + '
    ' } } return str } function setLevelLinkHtml(data) { var str = '' if (data.items && data.items.length) { str += '' } else { // str = '
    暂无数据
    ' } return str } function setMoreHtml(text) { var str = '' var showMoreFlag = false text = text ? text.replace(/[\n]/g, '
    ') : '' var width = ($('.czkj-chat-left').width() - 70) * 0.9 - 30 //3. 计算文字资源 预览情况下 文字个数问题 var html = '
    ' + text + '
    ' $($('#czkj-chat .czkj-robot .czkj-msg')[0]).append(html) var height = $('.hide-reslib-text').height() if (height > 110) { showMoreFlag = true } $('.hide-reslib-text').remove() var showMoreHtml = '' if (showMoreFlag) { showMoreHtml = '
    ' } str += '
    ' + text + '
    ' + showMoreHtml return str } $(document).on('click', '.search-more-btn', function (e) { $(this).prev().toggleClass('czkj-resource-more-text') }) function initColor(robotSetting) { //1. 内容区域背景颜色 robotSetting.robotBgColor = robotSetting.robotBgColor || '#fff' $('#czkj-chat').css('background-color', robotSetting.robotBgColor) //2. 机器人名称及模块标题颜色 robotSetting.titleColor = robotSetting.titleColor || '#0F59A4' $('.czkj-logo-name').css({'color': robotSetting.titleColor}) $('.czkj-recommend-title').css({'color': robotSetting.titleColor}) $('.czkj-right-question-tile').css({'color': robotSetting.titleColor}) //3. 机器人对话框背景色 robotSetting.msgBgColor = robotSetting.msgBgColor || '#F7FAFF' $('.czkj-robot .czkj-msg').css({'background-color': robotSetting.msgBgColor}) //4. 机器人对话框title颜色 .czkj-tags-group-title, .czkj-text-title .czkj-rele-question-title robotSetting.msgTitleColor = robotSetting.msgTitleColor || '#0F59A4' // robotSetting.msgTitleColor = '#ff0000' //6. 提问对话框字体颜色 robotSetting.userColor = robotSetting.userColor || '#fff' $('.czkj-user .czkj-msg').css({'color': robotSetting.userColor}) //7. 提问对话框背景颜色 robotSetting.userBgColor = robotSetting.userBgColor || '#2272C3' $('.czkj-user .czkj-msg').css({'background-color': robotSetting.userBgColor}) //8. 主题区域背景色 robotSetting.hotBgColor = robotSetting.hotBgColor || '#F8FBFF' //9. 设置图片背景 // robotSetting.robotImg ='https://docs.dknowc.cn/20220817/1812/9df0d6be-83eb-4d0a-9934-0468c078f0a1/云南icon整合.png' robotSetting.robotImg = robotSetting.robotImg || './image/all-icon.png' // 9.1 使用帮助 背景 if (isMobile()) { $('.czkj-help').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -225px -215px'}) $('.czkj-help').css({'background-size': '500px 300px'}) } else { $('.czkj-help').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat 0px -8px'}) $('.czkj-help').css({'background-size': '500px 300px'}) $('.czkj-back-pc').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -291px -8px'}) $('.czkj-back-pc').css({'background-size': '500px 300px'}) $('.czkj-msg-pc').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -291px -220px'}) $('.czkj-msg-pc').css({'background-size': '500px 300px'}) } // 9.2 历史记录 背景 $('.czkj-history-btn').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat 0px -58px'}) $('.czkj-history-btn').css({'background-size': '500px 300px'}) // 9.3 常见问题 历史记录 背景 $('.czkj-common-title .czkj-tile-icon').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat 0px -143px'}) $('.czkj-qa-title .czkj-tile-icon').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat 0px -143px'}) $('.czkj-tile-icon').css({'background-size': '500px 300px'}) // 9.5 输入框小icon $('.czkj-chat-input .input-before').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -6px -254px'}) $('.czkj-chat-input .input-before').css({'background-size': '500px 300px'}) // 9.6 展开收起icon // 9.7 热门问题 icon $('.czkj-hot-question-icon').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -140px -58px'}) $('.czkj-hot-question-icon').css({'background-size': '500px 300px'}) // 10. 设置页面背景图片 if (robotSetting.robotBgImg && !isMobile()) { $('.czkj-content-body').css({'background': 'url(' + robotSetting.robotBgImg + ') no-repeat'}) $('.czkj-content-body').css({'background-size': '100% 100%'}) } // 11. 机器而标题背景图 if (robotSetting.robotTitleBgImg) { $('.czkj-logo-title').css({'background': 'url(' + robotSetting.robotTitleBgImg + ') no-repeat'}) $('.czkj-logo-title').css({'background-size': '100% 100%'}) } // 12. 机器人大头像gif if (robotSetting.robotTitleGif) { $('.czkj-logo-radio img').attr({'src': robotSetting.robotTitleGif || 'image/robot-icon-red.gif'}) $('.right-help-img').attr({'src': robotSetting.robotTitleGif || 'image/robot-icon-red.gif'}) $('.hbmz-img').html($('.czkj-logo-radio').html()) } // 13. 提问者头像 robotSetting.userIcon = robotSetting.userIcon || './image/user-icon.svg' $('.czkj-user-avatar img').attr({'src': robotSetting.userIcon}) // 14. 右侧背景图 if (robotSetting.questionBgimg) { $('.czkj-common-list').css({'background': 'url(' + robotSetting.questionBgimg + ') no-repeat'}) $('.czkj-common-list').css({'background-size': '100% 100%'}) $('.czkj-history-list').css({'background': 'url(' + robotSetting.questionBgimg + ') no-repeat'}) $('.czkj-history-list').css({'background-size': '100% 100%'}) } if (isMobile()) { //15. 移动端发送按钮 $('.czkj-send').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -145px -182px'}) $('.czkj-send').css({'background-size': '500px 300px'}) // 16. 移动端操作按钮 $('.czkj-user-btn-item i').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -212px -56px'}) $('.czkj-user-btn-item i').css({'background-size': '500px 300px'}) $('.czkj-mobile-history i').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -212px -141px'}) $('.czkj-mobile-history i').css({'background-size': '500px 300px'}) $('.czkj-back-icon i').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -281px -55px'}) $('.czkj-back-icon i').css({'background-size': '500px 300px'}) $('.czkj-message-icon i').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -281px -141px'}) $('.czkj-message-icon i').css({'background-size': '500px 300px'}) $('.chat-toggle i').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -146px -107px'}) $('.chat-toggle i').css({'background-size': '500px 300px'}) $('.chat-toggle .input-btn').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -230px -7px'}) $('.chat-toggle .input-btn').css({'background-size': '500px 300px'}) } if (!robotSetting.feedback && !robotSetting.leaveMsg) { $('.czkj-back-pc').hide() $('.czkj-msg-pc').hide() $('.czkj-back-icon').hide() $('.czkj-message-icon').hide() $('.czkj-back-fixed').hide() $('.czkj-msg-fixed').hide() $('.czkj-user-btn-item').css({'width': '50%'}) } if (!robotSetting.feedback && robotSetting.leaveMsg) { $('.czkj-back-pc').hide() $('.czkj-back-icon').hide() $('.czkj-back-fixed').hide() $('.czkj-user-btn-item').css({'width': '33%'}) } if (robotSetting.feedback && !robotSetting.leaveMsg) { $('.czkj-back-icon').hide() $('.czkj-message-icon').hide() $('.czkj-msg-fixed').hide() $('.czkj-user-btn-item').css({'width': '33%'}) } } //常见问题初始化 historicRecords存历史记录和最大长度 function initHotAndHistory(robotSetting) { commonProblem = robotSetting.commonProblem || [] var hotStr = '', historyStr = '' //没有常见问题和历史记录 if (!commonProblem.length && !isMobile()) { $('.czkj-chat-right').hide() $('.czkj-chat-center').css('padding-right', '0') $('.czkj-container').css('width', '900px') $('.czkj-container').css('margin', 'auto') return } if (commonProblem.length) { var changeStr = '
    ' hotStr += '
    ' + (multilingual.commonQuestion || languageObj.commonQuestion) + (commonProblem.length > questionLength ? changeStr : '') + '
    ' for (var i = 0; i < commonProblem.length; i++) { hotStr += '
    ' + commonProblem[i] + '
    ' } hotStr += '
    ' } // 如果是邗江版 if (isHanjiang && commonProblem.length) { hotStr = '
    ' for (var i = 0; i < commonProblem.length; i++) { hotStr += '
    ' + commonProblem[i] + '
    ' } hotStr += '
    ' } if (historicRecords.maxLen > 0) { if (localStorage.historicRecordsValue) { historicRecords.value = JSON.parse(unescape(localStorage.historicRecordsValue)) } historyStr += '
    ' + (multilingual.history || languageObj.history) + '
    '+ (multilingual.clear || '清空') +'
    ' if (isHanjiang) { historyStr = '
    ' } var newArr = JSON.parse(JSON.stringify(historicRecords.value)) newArr = newArr.reverse() for (var i = 0; i < newArr.length; i++) { if (i < historicRecords.maxLen) { historyStr += '
    ' + newArr[i] + '
    ' } } if (!newArr.length) { historyStr += '
    ' + (multilingual.noHistory || languageObj.noHistory) + '
    ' } historyStr += '
    ' var len = Math.ceil(historicRecords.value.length / questionLength) if (len > 1) { historyStr += '
    ' for (var i = 0; i < len; i++) { historyStr += '' } historyStr += '
    ' } } $('.czkj-history-list').html(historyStr) $('.czkj-common-list').html(hotStr) setTimeout(function () { $('.question-radio i.active').css({'background-color': robotSetting.titleColor}) // 9.4 换一换 历史记录 $('.czkj-change-icon').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat 0px -169px'}) $('.czkj-change-icon').css({'background-size': '500px 300px'}) $('.czkj-common-groups .czkj-hot-item i').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -141px -58px'}) $('.czkj-common-groups .czkj-hot-item i').css({'background-size': '500px 300px'}) $('.czkj-right-hot-groups .czkj-hot-item i').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -141px -7px'}) $('.czkj-right-hot-groups .czkj-hot-item i').css({'background-size': '500px 300px'}) }, 100) } //常见问题 历史记录 切换分页 $(document).on('click', '.question-radio-item', function (e) { var index = $(this).data('index') var historyStr = '' var array = [] var newArr = JSON.parse(JSON.stringify(historicRecords.value)) newArr = newArr.reverse() for (var i = 0; i < newArr.length; i++) { if (i >= questionLength * index && i < questionLength * (index + 1)) { array.push(newArr[i]) } } for (var i = 0; i < array.length; i++) { historyStr += '
    ' + array[i] + '
    ' } $('.czkj-right-hot-groups').html(historyStr) var radioStr = '
    ' var len = Math.ceil(historicRecords.maxLen / questionLength) for (var i = 0; i < len; i++) { radioStr += '' } radioStr += '
    ' $('.czkj-history-list .question-radio').html(radioStr) $('.question-radio i.active').css({'background-color': robotSetting.titleColor}) $('.czkj-common-groups .czkj-hot-item i').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -141px -58px'}) $('.czkj-common-groups .czkj-hot-item i').css({'background-size': '500px 300px'}) $('.czkj-right-hot-groups .czkj-hot-item i').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -141px -7px'}) $('.czkj-right-hot-groups .czkj-hot-item i').css({'background-size': '500px 300px'}) }) // pc端常见问题 换一换 $(document).on('click', '.czkj-question-rele-change', function (e) { var length = JSON.parse(unescape($(this).data('length'))); var index = JSON.parse(unescape($(this).data('index'))); $(this).data('index', ++index) for (var i = 0; i < $('.czkj-common-groups .czkj-hot-item').length; i++) { $($('.czkj-common-groups .czkj-hot-item')[i]).hide() } for (var i = 0; i < $('.czkj-common-groups .czkj-hot-item').length; i++) { if (i >= index % length * questionLength && i < (index % length + 1) * questionLength) { $($('.czkj-common-groups .czkj-hot-item')[i]).show() } } }) //调用接口进行SSE连接 function chatgptQa(urls) { var classz = 'a' + Date.now(); var htmlz = '
    '+ (multilingual.pleaseWait || '请稍等,正在生成答案。') +'
    '+ (multilingual.stop || '停止生成') +'
    '; if(!window.EventSource) { alert("你的浏览器不支持SSE~") }else { let sseindex; let currentIndex = 0; window.modelManage && window.modelManage.ResetAllStates && window.modelManage.ResetAllStates() var source = new EventSource(urls); var referenceObj = []; $('#czkj-chat').append(robotHeadHtml() + htmlz + robotFootHtml) setTimeout(function () { chat.scrollTop = chat.scrollHeight }, 0) var chatTime = setTimeout(function() { errMsg(languageObj.timeout) $('.stopChat').remove() $('.czkj-msg.chatgpt-stop').removeClass('chatgpt-stop') $('#czkj-chat').children('.loading-header').hide() source.close() }, 60000); $('.' + classz).parents('.czkj-msg').addClass('chatgpt-stop') source.onmessage = function(event){ clearTimeout(chatTime) $('#czkj-chat').children('.loading-header').hide() //console.log(event.data) var dataz = {}; if(event.data.indexOf('{') === 0) dataz = JSON.parse(event.data); var contentHtml = dataz.content, contentArry = []; referenceObj = dataz.ref || []; contentArry = contentHtml.match(/\[\^[0-9|\,]+\^\]/ig) || []; contentArry.forEach(function(items){ var itemhtml = ''; var itemarry = items.substring(2, items.length - 2).split(',') itemarry.forEach(function(ite){ itemhtml += ''+ ite +'' }) contentHtml = contentHtml.replace(items, itemhtml) }) $('.' + classz).html(contentHtml); $('.' + classz).siblings('.chatgpt-tips').html(robotSetting.dynamicSetting && robotSetting.dynamicSetting['ai.text'] || dataz.tip); $('.' + classz).parents('.czkj-msg').addClass('chatgpt-msg') $('.' + classz).siblings('.chat-loading').css('display', 'inline-block') $('.' + classz).siblings('.chat-wait').hide() chat.scrollTop = chat.scrollHeight; if(window.modelManage && $('.lil-gui.autoPlace').length) { let divs = $('
    '); divs.html($('.' + classz).html()).find('.sup').remove(); let responseszz = divs.html().replace("\n", "").replace("\t", "").replace(tagRegex, "").replace(" ", "") let sentences = responseszz.split(/[,!?。;,!?;、]/); if (sseindex != sentences.length) { let word = sentences[sentences.length - 2] if (word) { let startIndex = 0 let maxLength = 30 if (word.length >= maxLength) { while (startIndex < word.length) { const substr = word.substring(startIndex, startIndex + maxLength); window.modelManage.getChatgptText(currentIndex, substr); currentIndex++ startIndex += maxLength; } } else { if(word) { window.modelManage.getChatgptText(currentIndex, word); currentIndex++; } } } } sseindex = sentences.length; } }; source.onopen = function(event){ //console.log('建立连接') }; source.onerror = function(event){ if(robotSetting.enableVoiceOutput) { let divs = $('
    '); divs.html($('.' + classz).html()).find('.sup').remove(); $('.' + classz).parents('.czkj-msg').append('
    ' + '播报
    '); } $('.' + classz).siblings('.chat-loading').hide() $('.' + classz).siblings('.stopChat').remove() $('.' + classz).parents('.czkj-msg').removeClass('chatgpt-stop') //自由会话添加点评 $('.' + classz).parents('.czkj-msg').append('
    '); setChatgptNote(classz, referenceObj) setTimeout(function () { chat.scrollTop = chat.scrollHeight }, 200) source.close() //console.log('连接失败') }; $('.stopChat').off('click').on('click', function (e) { clearTimeout(chatTime) $('#czkj-chat').children('.loading-header').hide() $(this).text(multilingual.stopped || '已停止生成').addClass('stopChatActive').removeClass('stopChat'); $(this).siblings('.chat-loading').hide(); $(this).parents('.czkj-msg').removeClass('chatgpt-stop') $(this).siblings('.chat-wait').hide() if(robotSetting.enableVoiceOutput) { let divs = $('
    '); divs.html($('.' + classz).html()).find('.sup').remove(); $('.' + classz).parents('.czkj-msg').append('
    ' + '播报
    '); } source.close() }) } } // search-result $(document).on('click', '.czkj-search-result-item', function (e) { var itemStr = JSON.parse(unescape($(this).data('item'))) if(itemStr.url && itemStr.url.indexOf('span#') === 0) { chatgptQa(itemStr.url.split('#')[1]) return } // 如果有id 请求后台 记录该id if (itemStr.id) { robotServer.chooseSearchResult(itemStr.id) } //如果无text 有url 跳转离开 if (!itemStr.text && itemStr.url) { if(itemStr.urlType === 'modal') { $('.czkj-robot-modal').show().addClass('czkj-gpt') $('.czkj-modal-body').html('') return } if(isWxMiniAppFlag || isBDMiniAppFlag || isZFBMiniAppFlag){ var resourceHtml = getCopyModelHtml(itemStr.url, '访问') $('.czkj-robot-modal').show() $('.czkj-modal-body').html(resourceHtml) $('.czkj-resource-modal-name').hide() }else { windowOpen(itemStr.url) } return } var html = setMoreHtml(itemStr.text) appendUserMsg(itemStr.title) $('#czkj-chat').append(robotHeadHtml() + html + robotFootHtml) $('.more-button').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -61px -254px'}) $('.more-button').css({'background-size': '500px 300px'}) setTimeout(function () { chatScroll() }, 10); let htmlzz = html.replace(/\*/gi, '').replace(/(<([^>]+)>)/gi, ''); if(htmlzz) { kphumanWord = htmlzz; if(kphumanVoice){ kpHuman.stop() setTimeout(function() { kpHuman.speak(kphumanWord || '') }, 100); } } }) //常见问题 历史记录点击 $(document).on('click', '.czkj-hot-item', function (e) { var key = null if ($(e.target).parent().hasClass('czkj-hot-item')) { key = $(e.target).parent().data('key') } else if ($(e.target).hasClass('czkj-hot-item')) { key = $(e.target).data('key') } if (key) { questionSourceType = 'common_problem_input' sendMsg(String(decodeURIComponent(key))) } }) //移动端菜单点击事件---意见反馈 $('.czkj-back-icon').click(function (e) { sendMsg('意见反馈') }) //移动端菜单点击事件---我要留言 $('.czkj-message-icon').click(function (e) { sendMsg('我要留言') }) // 开普数字人 function initkpNumberRobot() { $('#czkj-chat').before('
    '); robotServer.getKpToken().then(function(res){ let obj = {}; if(res.indexOf && res.indexOf('{') === 0) { obj = JSON.parse(res); }else { obj = res || {} } var container = document.querySelector('.kp-human') kpHuman = new Metahuman({ container: container, modelGifConfig: { baseUrl: './link/models/gif/xiao_chuan/' }, modelApiBaseUrl: 'https://metaqa.ucap.com.cn/api/qa/', modelApiToken: obj.result && obj.result.token || '', voiceVolume: '50', onReady: function() { console.log('onReady') }, // 数字人api token失效回调 onModelApiTokenExpired: function(data) { // if(data.code == 401){ // robotServer.refreshKpToken().then(function(res){ // kpHuman.modelApiTokenSet(res.token) // }) // } } }) }) } function initkpNumberRobotMY() { $('#czkj-chat').before('
    '); robotServer.getKpMianYangToken().then(function(res){ let obj = {}; if(res.indexOf && res.indexOf('{') === 0) { obj = JSON.parse(res); }else { obj = res || {} } var container = document.querySelector('.kp-human') kpHuman = new Metahuman({ container: container, modelApiBaseUrl: 'https://metaqa.ucap.com.cn/api/qa/', modelUrl: './link/models/gltf/yun_xiao_qing/character.gltf', modelApiToken: obj.result && obj.result.token || '', modelMode: 'whole', onReady: function() { console.log('onReady-miany') }, // 数字人api token失效回调 onModelApiTokenExpired: function(data) { } }) }) } function initkpNumberRobotTL() { $('#czkj-chat').before('
    '); robotServer.getKpTongLingToken().then(function(res){ let obj = {}; if(res.indexOf && res.indexOf('{') === 0) { obj = JSON.parse(res); }else { obj = res || {} } var container = document.querySelector('.kp-human') kpHuman = new Metahuman({ container: container, modelGifConfig: { baseUrl: './link/models/gif/xiao_chuan/' }, modelApiBaseUrl: 'https://metaqa.ucap.com.cn/api/qa/', modelApiToken: obj.result && obj.result.token || '', voiceVolume: '50', onReady: function() { console.log('onReady') $('#kpNumberRobotTLClose').show() }, // 数字人api token失效回调 onModelApiTokenExpired: function(data) { // if(data.code == 401){ // robotServer.refreshKpToken().then(function(res){ // kpHuman.modelApiTokenSet(res.token) // }) // } } }) }) } $('body').on('click', '.kp-human', function() { if(kphumanVoice){ kpHuman.stop() $('#kpNumberRobotTLOpen').show(); $('#kpNumberRobotTLClose').hide(); }else{ kpHuman.speak(kphumanWord) $('#kpNumberRobotTLOpen').hide(); $('#kpNumberRobotTLClose').show(); } kphumanVoice = !kphumanVoice }) $('body').on('click', '#kpNumberRobotClose', function() { kpHuman.stop() $('.kp-human').remove(); $(this).remove(); kphumanVoice = false }) //推荐主题data.searchResultText || function initPopularThemes(hotTypeArr) { if (!hotTypeArr || !hotTypeArr.length) { $('.czkj-chat-input textarea').css('margin-top', '0') $('.czkj-chat-body').addClass('czkj-no-hot') $('.input-before').css('top', '10px') $('.czkj-chat-input').css('border-top', '1px solid #f1f1f1') $('#czkj-chat').css('border-bottom', '1px solid #ccc') if (isMobile()) { $('#czkj-chat').css('height', 'calc(100% - 60px)') } if (isHanjiang) { $('.czkj-chat-input textarea').css('margin-top', '50px') $('.czkj-chat-input .input-before').css('top', '85px') $('.czkj-chat-left').css('padding-bottom', ' 130px') } return } var hotTypeStr = '
    ' + ($('#hbmz').data('value') ? languageObj.popularThemeHbmz : (multilingual.popularTheme || languageObj.popularTheme)) + '
    ' for (var i = 0; i < hotTypeArr.length; i++) { if (hotTypeArr[i].shortName) { hotTypeStr += '
    ' + hotTypeArr[i].shortName + '
    ' } } hotTypeStr += '
    ' $('.czkj-chat-input').append(hotTypeStr) $('.czkj-chat-content').addClass('czkj-has-hot') var widthAll = 0 for (var i = 0; i < $('.czkj-chat-input .hot-type-item').length; i++) { widthAll += ($($('.czkj-chat-input .hot-type-item')[i]).outerWidth() + 12) } if (isMobile()) { $('.hot-type-inner').css('width', 80 + widthAll + 'px') } $('.hot-type-title').css({'color': robotSetting.titleColor}) $('.hot-type').css({'background-color': robotSetting.hotBgColor}) $('.last-hot-type-item .last-hot-icon').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -6px -217px'}) $('.last-hot-type-item .last-hot-icon').css({'background-size': '500px 300px'}) } //推荐问题 function initrecommendedQuestions(obj) { if (!obj || !obj.status || !obj.value || !obj.value.length) { return } var recommendHtml = '' for (var i = 0; i < obj.value.length; i++) { var className = '' if (i >= moreNum) { className = 'hide' } recommendHtml += '
    ' + obj.value[i] + '
    ' } var str = (isHanjiang || isBaoding) ? '猜你想问' : '热门问题'; if(isXinjiang) str = '猜您想问'; var classzz = 'czkj-special-width'; if(isZhiPu) { classzz = 'czkj-special-width zhipu-hot'; str = multilingual.questionsTip || '选择以下话题,快速与我对话:'; } if(isBaoding && obj.value.length > 2) { recommendHtml = ''; for(let i = 0; i < 3; i++){ let _num = Math.floor(Math.random() * obj.value.length) let mm = obj.value[_num]; obj.value.splice(_num,1); recommendHtml += '
    ' + mm + '
    ' }; obj.value = []; } var html = robotHeadHtml(classzz) + '
    ' + str + (obj.value.length > moreNum ? '
    ' : '') + '
    ' + recommendHtml + robotFootHtml $('#czkj-chat').append(html) if (robotSetting.robotColor) { // 9.4 换一换 历史记录 $('.czkj-change-icon').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat 0px -169px'}) $('.czkj-change-icon').css({'background-size': '500px 300px'}) $('').appendTo('head'); } } // pc端常见问题 换一换 $(document).on('click', '.czkj-hot-change', function (e) { var length = JSON.parse(unescape($(this).data('length'))); var index = JSON.parse(unescape($(this).data('index'))); $(this).data('index', ++index) for (var i = 0; i < $('.czkj-recommend-item').length; i++) { $($('.czkj-recommend-item')[i]).hide() } for (var i = 0; i < $('.czkj-recommend-item').length; i++) { if (i >= index % length * moreNum && i < (index % length + 1) * moreNum) { $($('.czkj-recommend-item')[i]).show() } } }) //预览图片特效 // $(document).on('mouseover', '.czkj-source-out', function (e) { // var width = $(this).parents('.czkj-msg').width() // $(this).css('padding', '5px') // // $(this).parents(".czkj-msg").width(width) // }) // $(document).on('mouseleave', '.czkj-source-out', function (e) { // $(this).css('padding', '10px') // }) //监听输入框事件,改变limit的值 var timer = null var flag = true function watchQuestion() { if (timer) { timer = new Date().getTime() } $('.czkj-enter-word-err').hide() canChangeSuggest = true var val = $('.czkj-textarea').val() if (isMobile()) { if (!val) { $('.czkj-send').removeClass('send-flag') $('.czkj-send').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -145px -182px'}) $('.czkj-send').css({'background-size': '500px 300px'}) } else { $('.czkj-send').addClass('send-flag') $('.czkj-send').css({'background': 'url(' + robotSetting.robotImg + ') no-repeat -145px -256px'}) $('.czkj-send').css({'background-size': '500px 300px'}) // $('.czkj-send').css('background', 'url("./image/mobile-send.svg") no-repeat') } // return } if (!val) { $('.czkj-enter-word-err').hide() $('.czkj-suggest').hide() $('.czkj-enter-btn').removeClass('actived') } else { if (!robotSetting.hotTopics || !robotSetting.hotTopics.length) { $('.czkj-suggest').css('bottom', '160px') } $('.czkj-enter-btn').addClass('actived') } $('.czkj-enter-word').html('
    ' + val.length + '/' + limit + '
    ') if (val.length > limit) { $('#limit').addClass('red-word') errMsg(multilingual.wordLimit || languageObj.wordLimit) $('.czkj-enter-word-err').show().html(multilingual.wordLimit || languageObj.wordLimit) return } if (new Date().getTime() - timer < 1000) { return } if (!robotSetting.enableInputPrompt) { return } if (flag && val) { flag = false robotServer.prompt(val.replace(/'/g, '')).then(function (res) { if (res.ret == 401) { robotServer.login(urlObj.source || source).then(function () { watchQuestion() }) return } var arr = res.content || [] flag = true var html = '' var regExp = new RegExp(val, 'g') for (var i = 0; i < arr.length; i++) { var item = arr[i].replace(regExp, '' + val + '') html += '
  • ' + item + '
  • ' } $('.czkj-suggest').html(html) if (arr.length && $('.czkj-textarea').val() && canChangeSuggest) { $('.czkj-suggest').show() } else { $('.czkj-suggest').hide() } }) } } //errmodal提示框 function errMsg(msg) { $('.czkj-err-msg').css('top', '20px').html(msg) setTimeout(function () { $('.czkj-err-msg').css('top', '-80px') }, 4000) } //设置favicon function setFavicon(href) { var link = document.querySelector('link[rel*=\'icon\']') || document.createElement('link') link.type = 'image/x-icon' link.rel = 'shortcut icon' link.href = href document.getElementsByTagName('head')[0].appendChild(link) } //滚动记录 var chat = document.querySelector('#czkj-chat') function chatScroll() { var chat = document.querySelector('#czkj-chat') var user = $('#czkj-chat .czkj-user') var last = user[user.length - 1] if (last) { chat.scrollTop = last.offsetTop - 10 } } function robotHeadHtml(className, noAvatar) { className = className || '' var avatar = noAvatar ? '' : ('
    ') return '
  • ' + avatar + '
    ' } function isthisUrlType(item) { var res = false if (item.urlType.indexOf('1') !== -1) { res = '1' } if (item.urlType.indexOf('3') !== -1 && isWxMiniAppFlag) { res = '3' } if (item.urlType.indexOf('4') !== -1 && isBDMiniAppFlag) { res = '4' } if (item.urlType.indexOf('5') !== -1 && isZFBMiniAppFlag) { res = '5' } // 测试 true 生产原样 return getUrlQuery().key ? '-1' : res } function isWxMiniApp(cb) { try { isWxMiniAppFlag = false var ua = navigator.userAgent.toLowerCase() if (ua.match(/MicroMessenger/i) == 'micromessenger') { wx.miniProgram.getEnv(function (res) { isWxMiniAppFlag = !!res.miniprogram cb && cb() }) } } catch (e) { console.log(e) } } function isZFBMiniApp() { try { my.getEnv(function (res) { isZFBMiniAppFlag = !!res.miniprogram }) } catch (e) { console.log(e) } } function isBDMiniApp() { try { swan.webView.getEnv(function (res) { isBDMiniAppFlag = !!res.smartprogram }) } catch (e) { console.log(e) } } var originalHeight = document.documentElement.clientHeight || document.body.clientHeight; window.onresize = function () { if (!isMobile()) { $('.chat-toggle').hide() } //键盘弹起与隐藏都会引起窗口的高度发生变化 var resizeHeight = document.documentElement.clientHeight || document.body.clientHeight; if (resizeHeight - 0 < originalHeight - 0) { //当软键盘弹起,在此处操作 if (isHljMiniApp) { $('.czkj-content-all.wx-mini-app-container').css('height', '100%') } } else { //当软键盘收起,在此处操作 if (isHljMiniApp === 1) { $('.czkj-content-all.wx-mini-app-container').css('height', 'calc(100% - 48px)') } else if (isHljMiniApp === 2) { $('.czkj-content-all.wx-mini-app-container').css('height', 'calc(100% - 82px)') } } } function getResourceType(type) { var arr = [ {name: '图片', value: 'reslib_image'}, {name: '链接', value: 'reslib_url'}, {name: '音频', value: 'reslib_audio'}, {name: '视频', value: 'reslib_video'}, {name: '文字', value: 'reslib_text'}, {name: '文档', value: 'reslib_doc'}, ] for (var i = 0; i < arr.length; i++) { if (type === arr[i].value) { return '[' + arr[i].name + ']' } } return '' } $(document).on('click', '.selectPickerWrapper', function (e) { var apiKey = $(this).data('api') var key = $(this).data('key') $('.select-picker-options-wrp').hide() var formvalues = JSON.parse(unescape($(this).data('formvalues'))) || [] var _this = $(this) var html = '' if (apiKey) { var beforeObj = getUrlQuery(apiKey) var beforeVal = {} if (JSON.stringify(beforeObj) !== '{}') { var randomId = $(this).parents('.czkj-marry').data('randomid') var content = getInputVal(randomId) for (var j = 0; j < content.formGroups.length; j++) { for (var k = 0; k < content.formGroups[j].fieldList.length; k++) { var item = content.formGroups[j].fieldList[k] for (var key in beforeObj) { if (item.apiKey === beforeObj[key]) { beforeVal[key] = item.value } } } } } var beforeValStr = '' for (var key in beforeVal) { if (beforeVal[key]) { beforeValStr += key + '=' + beforeVal[key] + '&' } } beforeValStr = beforeValStr ? ('?' + beforeValStr.slice(0, beforeValStr.length - 1)) : '' apiKey = apiKey.split('?')[0] + beforeValStr robotServer.selectApi(apiKey).then(function (res) { var resData = res.content if (!resData.length) { resData = [{value: '', text: '请选择'}] } var optionStr = '' for (var i = 0; i < resData.length; i++) { optionStr += '
    ' + resData[i].text + '
    ' } html = '
    ' + optionStr + '
    ' _this.children('.select-picker-options-wrp-out').html(html) }) } else if (formvalues.length) { var optionStr = '' if (!formvalues.length) { formvalues = [{value: '', text: '请选择'}] } for (var i = 0; i < formvalues.length; i++) { optionStr += '
    ' + formvalues[i].text + '
    ' } html = '
    ' + optionStr + '
    ' _this.children('.select-picker-options-wrp-out').html(html) } _this.toggleClass('select-actived') }) $(document).on('click', '.select-picker-options-list-item', function (e) { e.stopPropagation() if ($(this).hasClass('disabled')) { return } $(this).parents('.select-picker-options-wrp').hide() $(this).parents('.selectPickerWrapper').removeClass('select-actived') var apiKey = $(this).parents('.select-picker-search').data('api') var groupSort = $(this).parents('.czkj-marry-group').data('sort') var nowIndex = 0 if (apiKey) { var randomId = $(this).parents('.czkj-marry').data('randomid') var content = getInputVal(randomId) var marryGroup = $(this).parents('.czkj-marry-group').children('.czkj-marry-item') var changeArr = [] for (var i = 0; i < content.formGroups.length; i++) { if (content.formGroups[i].sort === groupSort) { for (var j = 0; j < content.formGroups[i].fieldList.length; j++) { var item = content.formGroups[i].fieldList[j] if (apiKey === item.selectApiKey) { nowIndex = j } } } } for (var i = 0; i < content.formGroups.length; i++) { if (content.formGroups[i].sort === groupSort) { for (var j = 0; j < content.formGroups[i].fieldList.length; j++) { var item = content.formGroups[i].fieldList[j] if (j > nowIndex) { changeArr.push(item) } } } } var selectArr = $(marryGroup).find('.czkj-marry-select') for (var k = 0; k < selectArr.length; k++) { for (var l = 0; l < changeArr.length; l++) { if ($(selectArr[k]).data('api') === changeArr[l].selectApiKey) { $(selectArr[k]).children('.czkj-select-value').data('value', '') $(selectArr[k]).children('.czkj-select-value').html('请选择') } } } } var selectVal = $(this).parents('.czkj-marry-select').children('.czkj-select-value') selectVal.html($(this).html()) selectVal.data('value', $(this).data('value')) }) $(document).on('click', '.chatgpt-copy', function (e) { var htmlcc = $('.' + $(this).parent().data('classz')).text(); var clipboard = new ClipboardJS(this, { text: function () { errMsg('复制成功') return htmlcc } }) clipboard.on('success', function (e) { e.clearSelection() errMsg('复制成功') }) clipboard.on('error', function () { }) this.click() clipboard.destroy() }) $(document).on('click', '.chatgpt-rewrite', function (e) {//重写 if($(this).parent().hasClass('stopz')) return; $(this).parent().addClass('stopz'); var textObj = decodeURI($(this).parent().data('textz')).split('&text=')[1]; serviceId = serviceId || rewriteServiceId; var urlss = 'llm/completionOnSSE?traceId='+ traceId +'&serviceId='+ serviceId +'&text=' + textObj; addSseLoading(); setTimeout(function() { chatgptLlm(urlss) }, 1800); }) $(document).on('click', '.chatgpt-recast', function (e) {//改写 if($(this).parent().hasClass('stopz')) return; $(this).parent().addClass('stopz'); var textObj = {text: $('.' + $(this).parent().data('classz')).html()}; serviceId = window.RecastId || 8 var urlss = 'llm/completionOnSSE?traceId='+ traceId +'&serviceId='+ serviceId +'&text=' + JSON.stringify(textObj); addSseLoading(); setTimeout(function() { chatgptLlm(urlss, true) }, 1800); }) $(document).on('click', '.chatgpt-expand', function (e) {//扩写 if($(this).parent().hasClass('stopz')) return; $(this).parent().addClass('stopz'); var textObj = {text: $('.' + $(this).parent().data('classz')).html()}; serviceId = window.ExpandId || 50 var urlss = 'llm/completionOnSSE?traceId='+ traceId +'&serviceId='+ serviceId +'&text=' + JSON.stringify(textObj); addSseLoading(); setTimeout(function() { chatgptLlm(urlss, true) }, 1800); }) function chatgptLlm(urls, isExpand) { var classz = 'a' + Date.now(); var htmlz = '
    '+ (multilingual.pleaseWait || '请稍等,正在生成答案。') +'
    '+ (multilingual.stop || '停止生成') +'
    '+ '
    ' +'
    '+ (multilingual.chatgptRewrite ||'重写') +''+ (multilingual.chatgptRecast ||'改写') +''+ (multilingual.chatgptExpand ||'扩写') +''+ (multilingual.chatgptCopy ||'复制') +'
    '; $('.czkj-msg.chatgpt-stop').removeClass('chatgpt-stop'); $('.chatgpt-operate, .chatGptAudio, .onSseAll').remove(); if(!window.EventSource) { alert("你的浏览器不支持SSE~") $('#czkj-chat').children('.loading-header').hide() }else { var boolss = true; var urlzz = urls.split('?')[0]; var objzz = {} urls.split('?')[1].split('&').forEach(function(ites) { if(ites.split('=')[0] === 'text') { objzz[ites.split('=')[0]] = ites.substring(5); }else { objzz[ites.split('=')[0]] = ites.split('=')[1]; } }) window.modelManage && window.modelManage.ResetAllStates && window.modelManage.ResetAllStates(); if(!serviceId) { let sseindex; let currentIndex = 0; let sseDelayBool; let sseDelayTime = 0; let sentences = []; var source = new EventSource(urls); //var audioCount = 1; $('#czkj-chat').append(robotHeadHtml() + htmlz + robotFootHtml); setTimeout(function () { chat.scrollTop = chat.scrollHeight }, 0) var chatTime = setTimeout(function() { errMsg(languageObj.timeout) $('.stopChat').remove() //$('.czkj-msg.chatgpt-stop').removeClass('chatgpt-stop') $('.' + classz).parents('.czkj-msg').removeClass('chatgpt-stop') $('#czkj-chat').children('.loading-header').hide() source.close() }, 60000); $('.' + classz).parents('.czkj-msg').addClass('chatgpt-stop') $('.' + classz).siblings('.chatgpt-tips').html(robotSetting.dynamicSetting && robotSetting.dynamicSetting['ai.text'] || '以下内容为AI生成,不代表开发者立场,请勿删除或修改本标记。' ); $('.' + classz).parents('.czkj-msg').addClass('chatgpt-msg') source.onmessage = function(event){ clearTimeout(chatTime) console.log(event.data) $('.' + classz).siblings('.chat-loading').css('display', 'inline-block') $('.' + classz).siblings('.chat-wait').hide() $('#czkj-chat').children('.loading-header').hide() let htmlSse = '' if(event.data.indexOf('{') === 0) { var datass = JSON.parse(event.data) || {} if(window.marked) { htmlSse = marked.marked(datass.responses.replace(/\|/gi, '\n|').replace(/\|/gi, '|\n\n')) }else { htmlSse = datass.responses } }else { if(window.marked) { htmlSse = marked.marked(event.data.replace(/\|/gi, '\n|').replace(/\|/gi, '|\n\n')) }else { htmlSse = event.data } } let responseszz = htmlSse.replace("\n", "").replace("\t", "").replace(tagRegex, "").replace(" ", "") sentences = responseszz.split(/[,!?。;,!?;、]/); if(window.modelManage && $('.lil-gui.autoPlace').length && !$('.audioStopChat').hasClass('active')) { sseDelayTime = sentences[0] && sentences[0].length > 19 ? 3300 : 2500; if (sseindex != sentences.length) { let word = sentences[sentences.length - 2] if (word) { let startIndex = 0 let maxLength = 30 if (word.length >= maxLength) { while (startIndex < word.length) { const substr = word.substring(startIndex, startIndex + maxLength); window.modelManage.getChatgptText(currentIndex, substr); currentIndex++ startIndex += maxLength; } } else { if(word) { window.modelManage.getChatgptText(currentIndex, word); currentIndex++; } } } } sseindex = sentences.length; } setTimeout(function() { if(!sseDelayBool) $('.' + classz).html(htmlSse); }, sseDelayTime); chat.scrollTop = chat.scrollHeight; }; source.onopen = function(event){ //console.log('建立连接') }; source.onerror = function(event){ $('.' + classz).siblings('.chat-loading').hide() $('.' + classz).siblings('.stopChat').remove() //$('.' + classz).parents('.czkj-msg').removeClass('chatgpt-stop') setTimeout(function() { //自由会话添加点评 $('.' + classz).parents('.chatgpt-qa').append('
    '); }, sseDelayTime); setTimeout(function () { chat.scrollTop = chat.scrollHeight }, 200) source.close() //console.log('连接失败') clearTimeout(chatTime) }; $('.stopChat').off('click').on('click', function (e) { clearTimeout(chatTime) //clearTimeout(sseDelay) $('#czkj-chat').children('.loading-header').hide() $(this).text(multilingual.stopped || '已停止生成').addClass('stopChatActive').removeClass('stopChat'); $(this).siblings('.chat-loading').hide(); $(this).parents('.czkj-msg').removeClass('chatgpt-stop') $(this).siblings('.chat-wait').hide() sseDelayBool = true; source.close() }) $('.audioStopChat').off('click').on('click', function (e) { $('.audioPlayChat').removeClass('active'); window.modelManage.ResetAllStates() if($('.stopChat').length && false) { sseindex = undefined; currentIndex = 0; }else { setTimeout(function() { let indexss = 0 sentences.forEach(function(word) { if (word) { let startIndex = 0 let maxLength = 30 if (word.length >= maxLength) { while (startIndex < word.length) { const substr = word.substring(startIndex, startIndex + maxLength); window.modelManage.getChatgptText(indexss, substr); indexss++ startIndex += maxLength; } } else { if(word) { window.modelManage.getChatgptText(indexss, word); indexss++; } } } }) }, 1000); } }) return } $('#czkj-chat').append(robotHeadHtml() + htmlz + robotFootHtml); if(isExpand) { $('.' + classz).siblings('.chatgpt-operate').find('.chatgpt-rewrite').remove(); } $('.' + classz).parents('.czkj-msg').addClass('chatgpt-stop') $('.' + classz).siblings('.chatgpt-tips').html(robotSetting.dynamicSetting && robotSetting.dynamicSetting['ai.text'] || '以下内容为AI生成,不代表开发者立场,请勿删除或修改本标记。' ); $('.' + classz).parents('.czkj-msg').addClass('chatgpt-msg'); chatScrollBottom() var abortControllerz = new AbortController(); var signalz = abortControllerz.signal; let sseindex; let currentIndex = 0; let writingDelayBool; let writingDelayTime = 0; let sentences = []; let lineHtml = ''; fetch(urlzz, { method: 'POST', headers: { 'Content-Type': 'application/json', 'Token': window.ssetoken || '' }, body: JSON.stringify({ traceId: objzz.traceId, serviceId: objzz.serviceId, text: objzz.text }), signal: signalz }) .then(function(response) { const reader = response.body.getReader(); const decoder = new TextDecoder('utf-8'); let buffer = ''; $('#czkj-chat').children('.loading-header').hide() $('.' + classz).siblings('.chat-loading').css('display', 'inline-block') $('.' + classz).siblings('.chat-wait').hide() function processStreamResult(result2) { const chunk = decoder.decode(result2.value, { stream: !result2.done }); buffer += chunk; //逐条解析后端返回数据 const lines = buffer.split('\n'); buffer = lines.pop(); lines.forEach(function(line) { if (line.trim().length > 0) {  //console.log(line, line == 'data: [DONE]'); if(line != 'data: [DONE]'){ //执行完成的页面逻辑 //console.log(line); let responseszz = $('
    ').html(line.substring(5)).html().replace("\n", "").replace("\t", "").replace(tagRegex, "").replace(" ", "") sentences = responseszz.split(/[,!?。;,!?;、]/); if(window.modelManage && $('.lil-gui.autoPlace').length && !$('.audioStopChat').hasClass('active')) { console.log(!$('.audioStopChat').hasClass('active')) writingDelayTime = sentences[0] && sentences[0].length > 19 ? 3300 : 2500; if (sseindex != sentences.length) { let word = sentences[sentences.length - 2] if (word) { let startIndex = 0 let maxLength = 30 if (word.length >= maxLength) { while (startIndex < word.length) { const substr = word.substring(startIndex, startIndex + maxLength); window.modelManage.getChatgptText(currentIndex, substr); currentIndex++ startIndex += maxLength; } } else { if(word) { window.modelManage.getChatgptText(currentIndex, word); currentIndex++; } } } } sseindex = sentences.length; } setTimeout(function() { if(!writingDelayBool) $('.' + classz).html(line.substring(5)); }, writingDelayTime); lineHtml = $('
    ').html(line.substring(5)).html(); chatScrollBottom() } } }); if (!result2.done && boolss) { return reader.read().then(processStreamResult); }else { $('.' + classz).siblings('.chat-loading').hide() $('.' + classz).siblings('.stopChat').remove() $('.' + classz).siblings('.chatgpt-operate').show(); setTimeout(function () { chat.scrollTop = chat.scrollHeight }, 200) //console.log('连接完成') if(lineHtml) { chatgptContentSave(objzz, lineHtml); //智能写作添加点评 $('.' + classz).parents('.chatgpt-qa').append('
    '); if(isMobile() && window.ISCOMMENT) { $('.czkj-chat-body').append('
    '+ $('.chatgpt-operate')[0].outerHTML +'
    '); $('.onSseAll').off('click').on('click', function() { $('.chatgpt-copy-operate').show(); }) $('.chatgpt-copy-operate').off('click').on('click', function() { $(this).hide() }) $('.' + classz).siblings('.chatgpt-operate').remove(); } }else { $('.chatgpt-operate, .chatGptAudio').remove(); }; //满足条件的数据处理成表单 console.log(window.ChatId) if(window.ChatId == 134) { let htmla = $('.' + classz).html(); let contenta = ''; let arryaa = []; console.log(htmla) htmla.split('
    ').forEach(function(item) { if(item && item.split(':') && item.split(':').length > 1) { let inputa = item.split(':')[1]; if((item.split(':')[0] === '客户反映内容' || item.split(':')[0] === '客户地址') && (item.split(':')[1] === '-' || item.split(':')[1] === '无') ) { arryaa.push(item.split(':')[0]) } if(inputa.slice(-1) === '。') inputa = inputa.substring(0, inputa.length - 1); contenta += '
    '+ item.split(':')[0] +'
    '+ inputa +'
    ' } }); if(contenta) { $('.' + classz).parents('.czkj-msg').removeClass('chatgpt-stop') $('.' + classz).html('
    ' + contenta + '
    '); if(arryaa.length) $('#czkj-chat').append(robotHeadHtml() + '
    目前缺少'+ arryaa.join('、') +',请提供相关内容。
    '+ (JSON.parse(objzz.text).text) +'
    ' + robotFootHtml); } } } } return reader.read().then(processStreamResult); }) .catch(function(error) { if(boolss) errMsg(languageObj.timeout); $('.stopChat').remove() $('#czkj-chat').children('.loading-header').hide() }); $('.audioStopChat').off('click').on('click', function (e) { $('.audioPlayChat').removeClass('active'); window.modelManage.ResetAllStates() if($('.stopChat').length && false) { sseindex = undefined; currentIndex = 0; }else { setTimeout(function() { let indexss = 0 sentences.forEach(function(word) { if (word) { let startIndex = 0 let maxLength = 30 if (word.length >= maxLength) { while (startIndex < word.length) { const substr = word.substring(startIndex, startIndex + maxLength); window.modelManage.getChatgptText(indexss, substr); indexss++ startIndex += maxLength; } } else { if(word) { window.modelManage.getChatgptText(indexss, word); indexss++; } } } }) }, 1000); } }) $('.stopChat').off('click').on('click', function (e) { boolss = false; $('#czkj-chat').children('.loading-header').hide() $(this).text(multilingual.stopped || '已停止生成').addClass('stopChatActive').removeClass('stopChat'); $(this).siblings('.chat-loading').hide(); $(this).siblings('.chatgpt-operate').show(); $(this).siblings('.chat-wait').hide(); $(this).siblings('.chatgpt-operate').find('.chatgpt-rewrite').remove(); $(this).siblings('.chatgpt-operate').find('.chatgpt-recast').remove(); $(this).siblings('.chatgpt-operate').find('.chatgpt-expand').remove(); abortControllerz.abort(); writingDelayBool = true; if($('.' + classz).html()) { chatgptContentSave(objzz, $('.' + classz).html()) }else { $('.chatgpt-operate').remove(); } }) } } //调接口保存会话内容 function chatgptContentSave(servic, content) { if(window.sessionIdCzkj) { var contentType1 = ''; if(window.sseModel[servic.serviceId]) { contentType1 = window.sseModel[servic.serviceId].useTip; }else { var dataType1 = JSON.parse(servic.text) || {} contentType1 = dataType1.text } robotServer.anyChat('chatgpt/dknow/gpt/content/save', {sessionId: window.sessionIdCzkj, contentList: [{type: 1, content: contentType1}, {type: 2, content: content}]}).then(function (responses) { rewriteServiceId = serviceId; serviceId = undefined; }).catch(function() { }) } } function addSseLoading() { var groupHtml = robotHeadHtml('loading-header') + '
    ' + (robotSetting.dynamicSetting &&robotSetting.dynamicSetting['czkj-robot2_waiting_text1'] || '相关问题已经收到') + '
    ' + ''+ (robotSetting.dynamicSetting && robotSetting.dynamicSetting['czkj-robot2_waiting_text2'] || '正在开足马力,很快回复') +'
    ' + robotFootHtml; $('#czkj-chat').append(groupHtml) chatScrollBottom(); } // 婚登表单提交 $(document).on('click', '.czkj-marry-btn', function (e) { if($(this).hasClass('disabled')) return false; if($(this).data('creations')) {//智能写作的帮我写 var obj = window.sseModel[serviceId] || {}, textObj = {}; var group = $(this).parents('.czkj-marry').find('.czkj-marry-group'); obj.arry && obj.arry.forEach(function(ite) { content += '
    '+ ite.name +'
    '+ ite.text +'
    '; textObj[ite.key] = group.find('.' + ite.key + '_' + serviceId).text(); }) //textObj = {"title":"校春季运动会","desc":"校春季运动会顺利召开"} var urlss = 'llm/completionOnSSE?traceId='+ traceId +'&serviceId='+ serviceId +'&text=' + JSON.stringify(textObj); $(this).addClass('disabled'); $(this).parents('.czkj-marry').addClass('disabled'); addSseLoading(); setTimeout(function() { chatgptLlm(urlss) }, 1800); return } if($(this).data('keys')) {//调用外部的提交-婚姻登记 var arrys = ['name_of_male', 'id_number_of_male', 'name_of_female', 'id_number_of_female']; var arrys1 = ['id_type_of_male', 'registered_permanent_residence_province_of_male', 'residence_permit_type_of_male', 'id_type_of_female', 'registered_permanent_residence_province_of_female', 'residence_permit_type_of_female']; var bools = false, obj = {}; arrys.forEach(function(ite){ if(!$('#' + ite).val()) bools = true; obj[ite] = $('#' + ite).val() }) arrys1.forEach(function(ite){ if($('#' + ite).text() === '请选择') bools = true; obj[ite] = $('#' + ite).text(); if(ite === 'id_type_of_female' || ite === 'id_type_of_male') obj[ite] = $('#' + ite).data('key'); }) if(bools) { errMsg('请输入必填项'); return } obj.residence_permit_number_of_female = $('#residence_permit_number_of_female').val(); obj.residence_permit_number_of_male = $('#residence_permit_number_of_male').val(); robotServer.anyChat(window.anyChatUrl, {xId:xId, content: obj}).then(function (responses) { var html = robotHeadHtml('czkj-send-action') + '
    '; $('#czkj-chat').children('.loading-header').hide(); window.anyChatUrl = ''; if (responses.code === 0) { var res = responses.data || {}; var htmls = res.content || '暂无响应数据'; var types = res.type || 'TEXT'; if (types === 'CONFIRM') { html += htmls }else { html += htmls } } else { errMsg('请求错误'); html += '请求错误' } html += '
    ' html += robotFootHtml; $('#czkj-chat').append(html); setTimeout(function() { chatScrollBottom() }, 50); }).catch(function() { $('#czkj-chat').children('.loading-header').hide() }) return } var randomId = $(this).parents('.czkj-marry').data('randomid') var content = getInputVal(randomId) // 必填项验证 var errMsgStr = '' for (var i = 0; i < content.formGroups.length; i++) { for (var j = 0; j < content.formGroups[i].fieldList.length; j++) { var item = content.formGroups[i].fieldList[j] if (item.notNull && !item.value) { errMsgStr = errMsgStr || (multilingual.requiredForm ? (multilingual.requiredForm + ' ' + item.name) : ('请填写' + item.name + '后提交')) } } } if (errMsgStr) { errMsg(errMsgStr) return } // 输入框格式验证 if($('.czkj-marry-input.red-border').length > 0) { return } var btn = $(this).parents('.czkj-marry').children('.czkj-marry-btn-row').children('.czkj-marry-btn') var btnCode = $(this).parents('.czkj-marry').find('.codeBtn') var isLogins = $(this).parents('.czkj-marry').hasClass('czkj_login'); robotServer.submitForm(content).then(function (res) { // 提交成功后 所有表单 disabled if(window.isAuthenticationPop && isLogins && res.content && res.content.oneAnswer) { errMsg(res.content.text) return; } window.noAuth = undefined; disabledForm(randomId) btn.addClass('disabled') $('.czkj-marry-input.red-border').removeClass('red-border') $('.czkj-from-error-tip').remove() btnCode.text(multilingual.send || '发送').addClass('active') appendRobotMsg(res.content) }) }) // 正则验证 $(document).on('keyup', '.czkj-marry-input', function (e) { var regular = $(this).data('regular') if (!regular) { return } var pattern = new RegExp(regular, 'i') if (!pattern.test($(this).val())) { $(this).addClass('red-border').removeClass('green-border') if($(this).siblings('.czkj-from-error-tip').length) { $(this).siblings('.czkj-from-error-tip').show() }else { $(this).after('
    格式不正确
    ') } } else { $(this).removeClass('red-border').addClass('green-border') $(this).siblings('.czkj-from-error-tip').hide() } }) //表单输入 $(document).on('keyup', '.czkj-marry-textarea', function () { $(this).next().html($(this).val().length + '/500') }) function getInputVal(randomId) { var content = [] for (var i = 0; i < formArr.length; i++) { if (randomId === formArr[i].randomId) { content = formArr[i] } } var formGroups = content.formGroups || [] for (var i = 0; i < $('.czkj-marry-input').length; i++) { for (var j = 0; j < formGroups.length; j++) { for (var k = 0; k < formGroups[j].fieldList.length; k++) { var item = formGroups[j].fieldList[k] if (item.apiKey === $($('.czkj-marry-input')[i]).data('key')) { item.value = $($('.czkj-marry-input')[i]).val() } } } } for (var i = 0; i < $('.czkj-marry-textarea').length; i++) { for (var j = 0; j < formGroups.length; j++) { for (var k = 0; k < formGroups[j].fieldList.length; k++) { var item = formGroups[j].fieldList[k] if (item.apiKey === $($('.czkj-marry-textarea')[i]).data('key')) { item.value = $($('.czkj-marry-textarea')[i]).val() } } } } for (var i = 0; i < $('.czkj-marry-select').length; i++) { for (var j = 0; j < formGroups.length; j++) { for (var k = 0; k < formGroups[j].fieldList.length; k++) { var item = formGroups[j].fieldList[k] if (item.apiKey === $($('.czkj-marry-select')[i]).data('key') && item.type === 'SELECT') { item.text = $($('.czkj-marry-select')[i]).children('.czkj-select-value').text() item.value = $($('.czkj-marry-select')[i]).children('.czkj-select-value').data('value') } } } } return content } function disabledForm(randomId) { var content = [] for (var i = 0; i < formArr.length; i++) { if (randomId === formArr[i].randomId) { content = formArr[i] } } var formGroups = content.formGroups || [] for (var i = 0; i < $('.czkj-marry-input').length; i++) { for (var j = 0; j < formGroups.length; j++) { for (var k = 0; k < formGroups[j].fieldList.length; k++) { var item = formGroups[j].fieldList[k] if (item.apiKey === $($('.czkj-marry-input')[i]).data('key')) { $($('.czkj-marry-input')[i]).attr('disabled', true) } } } } for (var i = 0; i < $('.czkj-marry-textarea').length; i++) { for (var j = 0; j < formGroups.length; j++) { for (var k = 0; k < formGroups[j].fieldList.length; k++) { var item = formGroups[j].fieldList[k] if (item.apiKey === $($('.czkj-marry-textarea')[i]).data('key')) { $($('.czkj-marry-textarea')[i]).attr('disabled', true) } } } } for (var i = 0; i < $('.czkj-marry-select').length; i++) { for (var j = 0; j < formGroups.length; j++) { for (var k = 0; k < formGroups[j].fieldList.length; k++) { var item = formGroups[j].fieldList[k] if (item.apiKey === $($('.czkj-marry-select')[i]).data('key') && item.type === 'SELECT') { $($('.czkj-marry-select')[i]).attr('disabled', true) } } } } return content } $(document).on('click', '.showCompletionInfo', function() { if(window.isAuthenticationPop && window.noAuth) { return } if($('.stopChat').length || $('.chatDiv').length) { errMsg(languageObj.chatgptTip) return } if(window.multiMode != '3') $('.yzt-operate-del').trigger('click'); serviceId = $(this).data('id'); var obj = window.sseModel[serviceId] || {}; $('.yzt-page2').addClass('active') $('.czkj-msg.chatgpt-stop').removeClass('chatgpt-stop'); $('.chatgpt-operate, .chatGptAudio').remove(); appendUserMsg(obj.useTip || '帮我写一篇文章'); formIndex++; var content = ''; obj.arry && obj.arry.forEach(function(ite) { content += '
    '+ ite.name +'
    '+ ite.text +'
    ' }) var html = robotHeadHtml('czkj-no-padding czkj-special-width') + '
    ' + (obj.tip || '我将根据以下信息为您进行写作') + '
    ' + content + '
    '+ (multilingual.writingBtn || '帮我写') +'
    ' + '
    ' + robotFootHtml; $('.czkj-marry').find('.czkj-marry-btn').addClass('disabled').text('当前表单已失效,请填写最新表单'); $('.czkj-marry').find('.czkj-marry-btn.creation-btn').html(''+ (multilingual.writingBtn || '帮我写') +'') $('.czkj-marry').find('.codeBtn').text(multilingual.send || '发送').addClass('active'); $('.czkj-marry').addClass('disabled') $('#czkj-chat').append(html) chatScrollBottom() if(window.multiMode) { window.multiMode = '3'; $('.setChatMode').removeClass('active'); $('.setChatMode[data-keys="3"]').addClass('active'); $('#creationCurrent').show(); $('#creationTitle').text($('.setChatMode.active').data('names')); $('#creationBack').trigger('click') } }); function sendForm(content) { var pushFlag = true for (var i = 0; i < formArr.length; i++) { if (formArr[i].randomId === content.randomId) { pushFlag = false content = getInputVal(formArr[i].randomId) } } if (pushFlag) { formArr.push(content) } var formGroups = content.formGroups || [] var groupStr = ''; var fromLoginKey = ['czkj_login', 'czkj_password_login']; for (var i = 0; i < formGroups.length; i++) { groupStr += '
    ' for (var j = 0; j < formGroups[i].fieldList.length; j++) { var itemStr = '' var itemObj = formGroups[i].fieldList[j] var nameStr = itemObj.name var valueWidth = false if (itemObj.type === 'SELECT') { itemStr = '' } if (itemObj.type === 'INPUT' || itemObj.type === 'PASSWORD' || itemObj.type === 'NUMBER') { itemStr = '' } if (itemObj.type === 'TEXT_AREA') { nameStr = '' valueWidth = true itemStr = '
    ' itemStr += '
    0/500
    ' } if(itemObj.type === 'V_CODE'){ itemStr = ''+ (multilingual.send || '发送') +'' } if (itemObj.notNull && nameStr) { nameStr = '*' + nameStr } groupStr += '
    ' + (nameStr ? ('
    ' + nameStr + '
    ') : '') + '
    ' + itemStr + '
    ' + '
    ' } groupStr += '
    ' } formIndex++; var btnss = '
    ' + (multilingual.submit || '提交') + '
    '; var html = robotHeadHtml('czkj-no-padding czkj-special-width czkj-form-max-width') + '
    ' + content.name + '
    ' + groupStr + btnss + '
    ' + robotFootHtml; $('.czkj-marry').find('.czkj-marry-btn').addClass('disabled').text('当前表单已失效,请填写最新表单'); $('.czkj-marry').find('.czkj-marry-btn.creation-btn').html(''+ (multilingual.writingBtn || '帮我写') +'') $('.czkj-marry').find('.codeBtn').text(multilingual.send || '发送').addClass('active'); $('.czkj-marry').addClass('disabled') $('#czkj-chat').append(html) if(window.isAuthenticationPop && fromLoginKey.includes(content.key)) window.noAuth = true; for (var i = 0; i < $('.czkj-marry').length; i++) { if ($($('.czkj-marry')[i]).data('index') === formIndex) { $('.base-scroll').scrollTop($('.base-scroll').scrollTop() + $($('.czkj-marry')[i]).height() - (isMobile() ? 100 : 0)) } } } //发送验证码 $(document).on('click', '.codeBtn', function() { var apiKey = $(this).data('api'), that = $(this); if(!apiKey || $(this).hasClass('active')) return false; var beforeObj = getUrlQuery(apiKey) var beforeVal = {} if (JSON.stringify(beforeObj) !== '{}') { var randomId = $(this).parents('.czkj-marry').data('randomid') var content = getInputVal(randomId) for (var j = 0; j < content.formGroups.length; j++) { for (var k = 0; k < content.formGroups[j].fieldList.length; k++) { var item = content.formGroups[j].fieldList[k] for (var key in beforeObj) { if (item.apiKey === beforeObj[key]) { beforeVal[key] = item.value } } } } } var beforeValStr = '' for (var key in beforeVal) { if (beforeVal[key]) { beforeValStr += key + '=' + beforeVal[key] + '&' } } beforeValStr = beforeValStr ? ('?' + beforeValStr.slice(0, beforeValStr.length - 1)) : '' apiKey = apiKey.split('?')[0] + beforeValStr robotServer.selectApi(apiKey).then(function (res) { var resData = res.content || []; errMsg(resData[0].text || '发送失败') if(resData.length && resData[0].enable) { var codeNub = 60; that.addClass('active').text(codeNub); var codeInterval = setInterval(function() { if(that.parents('.czkj-marry').children('.czkj-marry-btn-row').children('.czkj-marry-btn').hasClass('disabled')){ clearInterval(codeInterval); that.text(multilingual.send || '发送').addClass('active') }else { --codeNub; that.text(codeNub) if(codeNub < 0) { clearInterval(codeInterval); that.text(multilingual.send || '发送').removeClass('active') } } }, 1000); } }) }) //判断是不是移动端 function isMobile() { var u = navigator.userAgent var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1 //android终端 var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/) //ios终端 if (isAndroid) { return 'android' } if (isiOS) { return 'ios' } if (document.body.clientWidth <= 640 && linkMobile) { return 'iframe' } return false } //ios触底回弹问题 if (isMobile() === 'ios') { if (window.location.href.indexOf('#') > 0) { } else { window.history.pushState({}, 'title', '#') } } var blurFlag = false $('#user_input').blur(function () { if (isMobile() === 'ios') { blurAdjust() } blurFlag = false }) $('#user_input').focus(function () { setTimeout(function () { blurFlag = true }, 300) }) function blurAdjust(e) { setTimeout(function () { if (document.activeElement.tagName == 'INPUT' || document.activeElement.tagName == 'TEXTAREA') { return } if (isMobile() === 'ios') { //判断iPhone|iPad|iPod|iOS document.activeElement.scrollIntoViewIfNeeded(true) } }, 100) } document.addEventListener('touchmove', function (e) { if (blurFlag && isMobile() === 'ios') { $('#user_input').blur() } }) var audioObj = null var audioFlag = true audioObj = new audioVoice() $(document).on('click', '.czkj-audio', function (e) { var text = $(this).data('text') var reslibText = '' if ($(this).data('answertext')) { var answertext = JSON.parse(unescape($(this).data('answertext'))) if (answertext && answertext.length) { for (var i = 0; i < answertext.length; i++) { if (answertext[i].type === 'reslib_text') { reslibText = answertext[i].text } } } } if ($(this).data('manyanswers')) { var manyanswers = JSON.parse(unescape($(this).data('manyanswers'))) if (manyanswers && manyanswers.length) { var texts = [] for (var i = 0; i < manyanswers.length; i++) { texts.push(manyanswers[i].value + '。') } reslibText = texts.join('、') } } if (audioFlag) { audioObj.init(text + '。' + reslibText) } else { audioObj.stop() } audioFlag = !audioFlag }) var voiceObj = null, isFirst = true //音频切换 $('.voice-btn').click(function () { if (robotSetting.voiceMode === 1 && window.voiceOldFn) { voiceObj = new voiceOldFn() } if (robotSetting.voiceMode === 2 && window.voiceFn) { voiceObj = new voiceFn() } $(this).hide() $('.input-btn').show() $('.voice-hold').show() $('.czkj-textarea').hide() $('.czkj-suggest').hide() $('#voice-hold').hide() $('#voice-hold').after('
    ') if (isFirst) { voiceObj.openRecorder(function () { $('.voice-refresh').hide() $('#voice-hold').show().val(languageObj.pinSay) $(this).hide() $('.input-btn').show() $('.voice-hold').show() $('.czkj-textarea').hide() initVoice() }, function (errmsg) { var str = '' if (errmsg === languageObj.noSuppor && isMobile() === 'ios') { str = languageObj.supporSafari } else { str = languageObj.supporSound } var html = robotHeadHtml() + '
    ' + str + '
    ' + robotFootHtml $('#czkj-chat').append(html) }, limit) isFirst = false } else { voiceObj.openRecorder(null, null, limit) $('.voice-refresh').hide() $('#voice-hold').show().val(languageObj.pinSay) } }) $('.input-btn').click(function () { $(this).hide() $('.voice-btn').show() $('.voice-hold').hide() $('.czkj-textarea').show() }) function initVoice() { voiceObj.init(document.getElementById('voice-hold'), function (msg) { var voiceArr = sessionStorage.voiceArr ? JSON.parse(sessionStorage.voiceArr) : [] var str = msg if (msg === '@@') { var voiceStr = '
    ' str = '
    ' + languageObj.noSound + '
    ' $('#czkj-chat').append(robotHeadHtml() + str + voiceStr + robotFootHtml) chatScroll() } else { sendMsg(msg) } if (voiceArr.length) { voiceArr[voiceArr.length - 1].text = msg } }) } function ToDBC(txtstring) { var tmp = '' for (var i = 0; i < txtstring.length; i++) { if (txtstring.charCodeAt(i) === 60 || txtstring.charCodeAt(i) === 62) { tmp += String.fromCharCode(txtstring.charCodeAt(i) + 65248) } else { tmp += txtstring[i] } } return tmp } function dataURLtoBlob(dataurl) { var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n) while (n--) { u8arr[n] = bstr.charCodeAt(n) } return new Blob([u8arr], {type: mime}) } function getUrlQuery(url) { // 用JS拿到URL,如果函数接收了URL,那就用函数的参数。如果没传参,就使用当前页面的URL var queryString = url ? url.split('?')[1] : window.location.search.slice(1) // 用来存储我们所有的参数 var obj = {} // 如果没有传参,返回一个空对象 if (!queryString) { return obj } // stuff after # is not part of query string, so get rid of it queryString = queryString.split('#')[0] // 将参数分成数组 var arr = queryString.split('&') for (var i = 0; i < arr.length; i++) { // 分离成key:value的形式 var a = arr[i].split('=') // 将undefined标记为true var paramName = a[0] var paramValue = typeof (a[1]) === 'undefined' ? true : a[1] // 如果paramName以方括号结束, e.g. colors[] or colors[2] if (paramName.match(/\[(\d+)?\]$/)) { // 如果paramName不存在,则创建key var key = paramName.replace(/\[(\d+)?\]/, '') if (!obj[key]) obj[key] = [] // 如果是索引数组 e.g. colors[2] if (paramName.match(/\[\d+\]$/)) { // 获取索引值并在对应的位置添加值 var index = /\[(\d+)\]/.exec(paramName)[1] obj[key][index] = paramValue } else { // 如果是其它的类型,也放到数组中 obj[key].push(paramValue) } } else { // 处理字符串类型 if (!obj[paramName]) { // 如果如果paramName不存在,则创建对象的属性 obj[paramName] = paramValue } else if (obj[paramName] && typeof obj[paramName] === 'string') { // 如果属性存在,并且是个字符串,那么就转换为数组 obj[paramName] = [obj[paramName]] obj[paramName].push(paramValue) } else { // 如果是其它的类型,还是往数组里丢 obj[paramName].push(paramValue) } } } return obj } }) })(window)