{"version":3,"sources":["asset/imgs/icon_logo.png","asset/imgs/icon_g2.svg","asset/imgs/send_on.png","asset/imgs/send_f.png","asset/imgs/send.png","asset/imgs/icon_arrow.png","locales/index.js","locales/en/index.js","locales/zh/index.js","utils/util.js","utils/entity.js","utils/request.js","services/yoobot.js","components/questionEvaluate.js","components/questionnaire.js","components/questionList.js","pages/customerService.js","components/headeNavbar.js","services/ticket.js","pages/workOrderList.js","components/antdFormContent/citySelect.jsx","components/antdFormContent/uploadDragger.jsx","components/template/phoneCodeButton.js","components/template/antdFormContent.js","components/template/createTicketFormFields.js","pages/workOrderSubmit.js","pages/myWorkOrder.js","components/template/antdFormToValues.js","components/template/ticketFeedback.js","pages/myWorkOrderInfo.js","pages/closeWin.js","App.js","reportWebVitals.js","index.js"],"names":["en","question","remind","ques_recommend","ques_ans","order_num","response","user_ask","click_here","other_qus","success_help","error_help","satisfaction","unSatisfaction","return_ask","zh","searchObj","search","searchList","slice","length","split","forEach","item","renderText","text","searchProps","window","location","lang","locales","main","id","name","url","service","newEntityList","islocation","entity","host","indexOf","language","http_origin","find","getFetch","a","params","needLanguage","paramsArray","addObj","Object","keys","key","push","join","fetch","method","mode","cache","credentials","headers","substring","redirect","referrerPolicy","json","postFetch","data","origin","dataType","body","JSON","stringify","then","parse","formDataPostFetch","formData","FormData","map","append","requestUrl","getInitInfo","charAnswer","clickNav","clickBot","hostname","QuestionEvaluate","props","serviceAvatar","appendMsg","question_id","isBanner","useState","status","setStatus","handleEvaluate","statusId","evaluate","is_satisfied","is_banner","res","type","content","answer_intro","user","avatar","justifyContent","style","paddingBottom","className","flex","color","display","transform","onClick","theme","game_id","gta_version_ios","sdkVersion","center","padding","block","href","encodeURIComponent","history","pathname","RenderRemind","list","needRef","setPageIndex","questionClick","title","guide","qes_list","setQes_list","useEffect","wrap","maxWidth","flexDirection","paddingLeft","position","width","verticalAlign","marginRight","left","src","require","default","alt","marginLeft","fontSize","page","newPage","right","top","marginTop","index","wordBreak","fontWeight","variant","borderBottom","CustomerService","useMessages","messages","setTyping","pageIndex","quickList","setQuickList","getNavBar","resp","code","notify","children","renderHint","welcome","smart_icon","auto_order","info","getBottomBar","bottom_name","textInfo","needOther","minWidth","question_title","question_answer","navClick","navigation_type","director_text","botClick","bot_id","renderAns","answer_status","guide_content","end_intro","content_id","other_question","trim","toast","show","navbar","leftContent","icon","replace","Composer","inpValue","setInpValue","value","onKeyUp","e","keyCode","scrollTo","onBlur","onChange","val","placeholder","quickReplies","renderMessageContent","msg","picUrl","overflowX","answer","renderItem","background","borderRadius","margin","height","boxShadow","direction","alignItems","sheet_number","template_id","parent_type","query","tplId","alignSelf","textAlign","overflow","navigation_icon","lazy","fluid","objectFit","navigation_name","onQuickReplyClick","onSend","HeadeNavbar","useHistory","useLocation","myButton","close","size","goBack","listButton","findIndex","phone","gameId","Number","ticketId","account","pageSize","csi","resolved","role","file_url","WorkOrderList","templateList","setTemplateList","getCategory","borderStyle","borderColor","borderWidth","lineHeight","tpl","_item","_index","marginBottom","CitySelect","cityObj","cityList","options","label","UploadDragger","accept","maxCount","fileList","listType","imgUrl","setImgUrl","upList","setUpList","uploading","setUploading","getBase64","file","Promise","resolve","reject","reader","FileReader","readAsDataURL","onload","result","onerror","error","fileByBase64","console","log","target","iosUpload","dataurl","arr","mime","match","suffix","bstr","atob","n","u8arr","Uint8Array","charCodeAt","File","base64toFile","message","uploadConfig","customRequest","iosSelectMovie","webkit","messageHandlers","selectMovie","postMessage","fileUpload","upload_img","onSuccess","onError","onRemove","newFileList","splice","beforeUpload","Upload","LIST_IGNORE","onPreview","preview","originFileObj","loading","event","stopPropagation","selectImage","UploadOutlined","visible","footer","onCancel","PhoneCodeButton","formName","form","React","counter","setCounter","setTimeout","fetchPhoneCode","getFieldValue","getPhoneCode","success","fail","seconds","m","Math","floor","secondsToMMSS","AntdFormContent","Item","rules","required","desc","inputReadOnly","gutter","span","TextArea","autoSize","minRows","Option","len","valuePropName","getValueFromEvent","Array","isArray","pattern","min","precision","CreateTicketFormFields","fieldsList","values","field_uid","uid","field_order","field_name","startOf","unix","content_value","format","date","time","allTime","moment","i","ic","filter","ch","province","city","fieldsContent","locale","WorkOrderSubmit","Form","useForm","template","setTemplate","getTemplate","fields","err","zhCN","layout","paddingTop","validateFields","expand","decodeURIComponent","ticketForm","createTicketForm","entity_id","level","classify","cat_id","concat","op_id","serverID","serverName","roleID","roleName","icJson","extendsValid","IDENTITY_NAME","IDENTITY_CARD","phoneJson","PHONE_NUMBER","PHONE_CODE","createTicket","resetFields","MyWorkOrder","ticketList","setTicketList","getTicketList","tag","document","documentElement","clientWidth","clientHeight","maxHeight","fronted_status","gameNickName","truncate","breakWord","classifyName","bottom","disabled","videoArr","videoSrc","imageArr","imageSrc","UserTicketTicketReply","ticketData","getTicketInfoList","ticketInfoReply","UserTicketSatisfaction","getTicket","updateTicketSatisfaction","TicketFeedback","MyWorkOrderInfo","chatList","setChatList","ticketInfoList","res2","getOneTicket","ticketInfoRead","escapeHtml","AntdFormToValues","displayName","reply_role","paddingRight","created_at","reply_content","closeWin","tip","route","exact","path","component","CloseWin","to","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","includes","ReactDOM","render","getElementById"],"mappings":"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","file":"static/js/main.43cd7335.chunk.js","sourcesContent":["export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/icon_g2.7535bbe6.svg\";","export default __webpack_public_path__ + \"static/media/send_on.4df8ca42.png\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAYAAACLz2ctAAAAAXNSR0IArs4c6QAAGONJREFUeF7tnQlYVMeWgC8gW7M02EjTuMaVpVkDikYUXKLkkcQNJODGIqA0Aq4xZkzURBZRsAkIHfdEfJpkHJckRifOZGJGQZwW3F9kjJnEBQVFR0SB5n2n3y2/az+W7uauUPf7+utOuLeq7qnfU+ecqjplQuALS4BDCZhwWDeuGkuAwABiCDiVAAaQU/HjyjGAmAFOJYAB5FT8uHIMIGaAUwlgADkVP64cA4gZ4FQCGEBOxY8rxwBiBjiVAAaQU/HjyjGAmAFOJYAB5FT8uHIMIGaAUwlgADkVP64cA4gZ4FQCGEBOxY8rxwBiBjiVAAaQU/HjyjGAmAFOJYAB5FT8uHIMIGaAUwlgADkVP64cA9jzGEB9rvvdSooCvtFvxqWDAWRcxLypAPoafUzJ3+gbQachCAI+6L8ZBxEDyBs+GGkIVcsBbPAxIwiiF/kNv+EeAK2FIIgmgiCayd8IRkYahgrFADIqXs4K19V2AB5ABx8LysecBBBge04QRCNBEM8IgnhBgoi0IWMvggFkTLScFKwLHtJ2ABqAZ0kQhDVBEFZ5eXmvz5gxI9LV1XV0S0tL4/Xr1/8aHBxc8Pjx48cEQTwlIQStCBAydmEAGRMtawVToYPfVG0H4AF0VvAZMmSIQ0FBwVujR4+OdHBwGKbbQrVavcXf319JEEQ9qQlhSMYAstaVwqqoLW0HGo+q7QA865SUlCGJiYkR7u7ub5ubm9u295rNzc2PzM3NRxEEUaejBRmTDNaAjImWkYI7cioQeFptZ25ubr1r164JoaGhM11dXQEq0IwdXs3NzU9IAGsJgnhCGYY7e9Tov2MAjRYdqw/qDrOg6ZC2ow6z1pMnT5auXbt2ur+//wyRSCQzpJX37t0rd3FxWUAQBAbQEMF143v1cSq0w2xmZqbfzJkzI4YMGTLR1NQU7D6Dr7KyspKgoKAt5BD8/6QGxDagwZIU9gP6OBVab3bQoEH2SqUybMyYMbMkEolHV187Ly8vYenSpf9BEMRDgiAayLggBrCrghXI8+3F7mCIfWWYTUhIGJySkjLLw8PjbQsLCzEd7wehmL59+4bcu3fvNsULhqA0o7Mh2Aako/e6VgZ1eow6U/FK7A6ciqKiouCwsLCIvn37jiZtwK7VTHn67t27FTKZLI4giAcEQUAsEALTEAfEANImZf4U1J5TgWYqXsbuxo4d2+eTTz6ZHhAQMMPGxqYfU69QVlamCgoKyiMdEGT/AYCMXlgDMirefyq8I6cCNJ42hAL23bp167xnz54dMXTo0MlmZmbw/xi9tmzZkrhs2bIf2bT/4IUwgIx2q7ZwBB381l0QgOZlteBJpVL7bdu2TRk7duysPn36eDHftH/UoNFoGl1dXVm3/zCAzPZwZwsC0DBrHRMTMzAjI2OWl5cXOBW9mW3WP5d+9+7d86T9d59N+w8DyExP6+VUwDBbXFw8OiwsbHb//v3fMDExgcAyJ1dZWdnnZPwPAtCs2X8YQPq6Wx+nQhu7CwwMdMrOzn4nICBgpp2d3UD6mmB8Sfn5+UkZGRn/zrb9hwE0vs/Qk+05FVRvFpY/Wa9Zs8Zjzpw5EcOGDZtiZmYm6nrV9JTApf2HATSuD/VxKrTaTiKR2BYXF08eN25chLOzs69x1TH7VE1NzXmpVArxP9btPwygYX2rt1MRERHRd+XKlbPkcvm7VlZWToZVw+7d5eXl20eNGrWZ7fgfdQhh942FVxsVPHAU0ILPV5Y/gcZTKpWj3nnnncgBAwaMMzExgWGY95dSqUxKS0vjxP7DGrB9PDpzKiB+pw0Y+/j4OObm5r4zcuTIWfb29q/xnjhKAzUazfMBAwaE/Pnnn3+yOf9LlREORL9KjN6rjJcvX+4WGxsbMXz48LBevXrZCAk81Naampr/kUqlsVzZf1gD/qMnOltlDA6F1qkQi8U2xcXFE0NCQiJcXFz8hT6TVF5evmPUqFG5XNl/PR3AzpyKl8NseHi464cffjjT29t7mrW1tbMQtV1bbS4oKEhesmQJ2H+wB4SV9X+67eiJQ7A+q4y1sbvc3NwA2Lo4aNCgEBMTE3A6us3FB/uvJ2lAfVYZaxcEjBgxwjE/Pz88KCholoODw9BuQ5zOi9TU1KilUins/+Ak/tdTwjB6OxUKhWJYYmJipJub21sdbV3kAsi6urpaR0dHBzrniysqKnYEBgZyav91Vw3YmVOBbDsrkUhko1KpQiZMmBApk8kC+eZUaDSa5rNnz6r9/f09raysaJ2+++yzzxalpqae5NL+624AdrR1kbruznrKlCkua9euneHr6ztdJBK5cKHVOquzvr7+QWlp6Y+xsbHhVlZWtIZ5NBrNi8GDB4fcunUL4n+PyCwIjO//aOudu4MTordTkZ2dDVsXI1977bUJpqamACUvrytXrlwoKSn5KTs7O4Fu+OCFa2pqLkil0vlc239C1oD6OBUvty4WFhb+BZyK3r17u/GSOLJRMOR+9dVX3xw5cuTXHTt2pFtZWbWbRqMr71FRUbEzMDBwE5fxP6E6IR1tXUTZn7RTZImJibB1EfKh/MXc3JyWrYtd6fTOnn3y5MmDVatWFT1+/Lhl+/btK5iCD9pRWFi4WKFQnODa/hOKBtTbqYCtiyqVavzkyZMj+/btq1c+lM7AYOPv1dXV58PDw0tGjhzZR6VSvW9paWnHVL18sv/4DmBHTsUrG7XHjx/fZ8OGDTMgH4qNjY0rU51Hd7mtra3N33777f6333772Pz58weVlJSssbS0tKe7Hmp5NTU1lVKpdB4f7D++AqiPU6EdZtevX+8TFRUVOXjw4ElmZmZG5UNhsrM7Kvvp06f3169fvzknJ+dvcXFxg4uKitYyDR+0p6KiYldgYGAOH+w/PgHY3ipjlJbi5bxsv3797AoLC8PeeOMNyIfiyRVAXan3999/Pzdt2rQtarX6aXx8/ODCwsL1bMAHbS4uLl68aNEiXth/fACwI6filWF23rx5A9PT0yM9PT3DLSwsHLsCAFfPtra2tpw6dWrP1KlTv2pubiYSExOHKJXKTy0tLVlxkjQaTdPw4cNDqqur/+A6/se1F6z31kWVSjV26tSpkf3796c9HwqbIDY0NDzYvHnzp2vXrr0IMy7JycnD8vPzM9mCD971/v37lc7Ozryx/9jWgLreLEqySN1Bpo3dBQUF9cnMzJwG+VBsbW37swkKE3X98ccf56Kjozf+/PPPsOzJdNGiRcPz8vJy2IQP3uv8+fO7AwICsvli/7EJoK7Gox4XgDK3w9ZF+dy5cyPJfCiwJErQFwy5v/zyy+7Q0NA9zc3NkOjHTKFQDM/Nzc21tLR0YPvlSkpKUpKTk3/gQ/yP7SEY5UTR3S8rkkgkdiqVampwcDDkQ/Fmu1OYqu/Zs2cPCgsL161YsaKCTHPWS6FQuOXm5m7hAj4+2n9saUDQfmgnGWg7mFi3jYmJeW3p0qVRHh4esHWR9XwoTIEH5d65c+fc/PnzPz558uQ9Mr9eryVLlrjn5OTkcwEfaf9VOTs7z+VL/I9NDYiSLmrhk0gkjqdPn149YsSIGDrXtzEJlAFlt5w9e3bXuHHjPm9qaoIEj5Dc0YKET8kVfKT9tycgICCLT/YfWxoQAISQCth04qtXr65xc3NbaECnCuLWxsbGWpVK9VFaWtoZMrsotNsiLS3NMzs7G+DjNHSkUqkUSUlJx/lk/7EFIDpOABZU9m5sbPxvS0vLPoKgSs9GQnrb+Pj4f/nuu+9gfR2cswZmh2VGRoZnZmbmZ1zDx1f7j20AwfZzfPbs2X9aWVn11bNv+X5bS3l5+Z6xY8cWNTU1wflqcLQVaHzrjIwMj40bNxbywb69f//+RWdn5zl8s//YApA6BDtcuXLlA3d3d8EPwY2NjXU7d+78KCUl5b/ILY2wohi0PcAn5wt8pP23NyAgIJNv9h+bAELHgBNiK5VKndRq9WcymWw839Vbe+2DjAILFy5cc+TIkVvkcnaI8UGISZSWlibPysoq4oPmQ+1XqVSpSUlJ35P5/5CmZvT8D337lo0l+SgMg5Jw21lYWDhUVFSs9PLygmFBSJemoqJiz/jx4wsbGhrgKAM4Xxfgg3ezITUfwCfhy0u1trY2ubu7h16/fv3/+DL/S5UNGwBCfSgQjbxhsAcdjh07FhEWFva+qakp7zd9P3/+/OGePXvWJiUl/USmsYUwC2gRaLstqfm28Qk+EHxtbe1FJycnXtp/bA3BqB6AHR2gDOv5AEL7vLy8sYsXL84GrcgXraHbDtjEk5ycvPrQoUO/UY4x1cb4AL709HR5ZmZmMd/gg/dQq9V7/f39eWn/sQkgFULdWRG7uLi4EXl5eXn29vaDeQah5vz581+OGzdua0NDAxzijPKnQDPBprVLTU2V5+TkgObjZSLKHTt2pCYkJPDS/mMbQF0IkWMCAWo7f39/2ZEjR7LJY6g45/DFixcP9+7d+/HChQtPkWfnPqOEWRB8XnyGj+/2HxcAIrBAC8KQDJ4jsgvtRCKRQ1lZ2Qq5XB7FJYGwbi41NXX1gQMHbpLwIWcD2g3mA2g+XsNH2n+XnJycYvgY/0P9y5YT0hZPyDtGMyXQsbAPVvz9999HTZkyZTkHGak0arV6X2ho6Nb6+nrIGAAhC4APnA1oJ7TRXqFQwLBbbG1tzcthFwlbrVZ/Qdp/cAAhq+d/6KtAuARQ1zlBS/DBORErlcpxSUlJmXQdR9qZQF68eFG/b9++dXFxcZAvBY6rB3sPebqgqbWmgkKhAM3He/jgfbdv3562cOHCb/kY/+ODBqS2gRorBPsK5o3tFy1a5JaVlZVvb2/P6IEuMFWVnp7+fmlp6f9S4INpNfB0EXz2ixcvlufm5gJ8vJ/Lhi2fXl5eIZcvX+Zl/I9PALblIUN4AyC0CwwMlB0+fHiTTCYb2ZkWM+LvrZWVlaXjx4/PI4dcGKZgyAX44NLObsA/BiHBR9p/l52cnKIp5/8iO5bR838N7QOuh2Dd9lKdE4AQhj1bcE7Ky8tXe3p6zjL0Bdu7v6mpqb60tHTDggULYIk6DLnI3kNn5IJJoIUvJSXFc9OmTSVC0HzofS9cuPCln5/fRhJAXtp/XHrBHXHUrnNy4sSJ6EmTJi3r6hkctbW1l2DI/fLLL6t17D2AD+pHGhjMAI/NmzcDfILKDQ3JjRISEo7x2f7jK4BtOScvZ06KiopCEhISNpqbmxuTwqK1qqrqrxMmTMirra2FHWqgGVB8D+BDK3e0szRChQ/sPz8/v9DKysrf+Tj/S9U+fBuCddvWpnOiUChgoecWW1vbAfoOyU1NTY8PHDiwYe7cuTDkwkICNOQiZ4Oq+cSJiYke+fn5gtN8pP13xcnJ6T2+23981oBtechoR53WOQkODnY9ePBgrouLS0BnENbV1V1etmzZ6t27d/+qM+SirKCg+dCwi+ADb1faWdl8/PuFCxf2+fn5fcp3+08IAKL+bdM5EYvFjmfOnIEFrjPaAaH10qVLB0NCQjbX1tY+JIdciO/BsnkYcsEjhABzt4EP5LBz586M+Pj4o3y3/4QEIGor2mFHXdZlf+rUqbkhISFLqbvsmpqannzzzTfr33vvPdiIQ/VyYchFnu4r8CUkJLhv3bq1RCQSCVLzgZDA/vP19Z1QVVUFi2U5zf+sz+jAZxuwrfajDAto+g7tM7YpLCwcFRERkQT5AR88eHAJNgMVFxfDXC5yNGBWA+CDaTW0NOyl5usO8IHA6urqrkgkEoj/ofM/eBn/o9pY+oDKp3uoaT7ALkRnucE3AAV/B8hgmAXo4AO/qVng0UocsCfFcXFxbgUFBSohaz7UQZWVlft8fX3B/qslNT8yN/jUhy/bIjQN2JZzQk1yBL/hncC2g2EWoIMPsveomk8baomLi3MvKCiAYZeXxzUYSs3u3bszYmNjIf4HYSZe7f9ob0gz9B35cr9uCl/kqCAAQQsCiNTNN6/YfPHx8e5KpRI0X7eAD5Ihvf766xPUajWs3Oa9/Sc0J6Q98Klp33Tvoc57oiCzdnotISHBY+vWrdtFIpGML/+iutqOurq6qxKJBOJ/grD/uguA+vQbNT+N3ZgxY/qdPHnykEgk6i4b5LUyqKqqKvXx8flEKPZfTwMQhW4cKysrV3p7eyfrQ66Q7tmzZ8/SBQsWQPxPEPZfTwIQhW1gxXXv27dvb5fJZMFCgquzturYf2gDFSfnv3XWVurfheoFG/KOcC9yPuAAGKc7d+7scnFxYWJ9oaHtou3+urq6axKJBPbSCMb+62kaULuTjSCIPnfu3NnR3QCsqqra7+Pjs0FI9l9PBBCWcPW5ffv2DvJ8YNo0ENcF7d27d9n8+fOPCMn+wwByTQ199beMHDly4rlz52DqUTD2HwaQPgA4Lamuru66RCKZLTT7DwPIKTb0VQ6rvH18fNYLzf7DANLHAKclffHFF8vnzZt3WGj2HwaQU2xoqxzZf2j+Fxbc8j7+h96+J8UBIQzT7bzghw8fXu/du7cg7T+sAWlTQtwVVFVVdcDHx2edEO0/DCB33NBW8759+5bPmTNHkPYfBpA2DDgrqGX06NGTzp49C/E/WP8nKPsPA9hFbpqamhrMzc1hfSEn16NHj/7m6OgYKcT4H3ZCZLJAY6m5devWmYyMDOWhQ4fuRUVFybKyshQDBw6EA7VZvS5evHjQ29v7Y6Haf1gDGoHLjRs3jnt4eKwjT0Z6eThNeXl5SmBgIJxGzlpkobS0dEVMTMy/CTH+hzWgERqQhG8NpPkg7S2UT0abtvfrr7+eNn369A9MTU0h5MP01RIcHDzp9OnTgrX/sAY0AJHq6urj3t7eaxoaGlCGBWre6JfZtDIzM4PS09NzmD6y4dGjR786OjpGCNn+wwDqCWB1dfUP3t7eHzQ0NMBSd8iygDJqwaYntNXzZWbXqKioodu2bctzcHAYpmcVBt8GKUe8vLwEbf9hAPXo9g7go+41pm560uaSdnNzcz5x4sTG/v37M3Im3v79+1dGR0cfErL9hwHsBMCbN2/+IJfL29J8CD607RPtSUZL/7WZXc3NzcVlZWUZfn5+4JzQeWmCg4MnUuw/qkamsx7Gy2LNY2P8TTquAKXi0HtJ/s2bN0/I5fLVbQy7uvBRHTpq8iSUVFN8+PDhGeHh4eCcgK3Y5evRo0c3HB0dIV2xoPZ/tPXiPQlA6HztpqS7d+/ulEqlo9ojwQj4qBC2eSbepk2bRqempm6i4/T0y5cvfyWXyz8ScvyvJ4ZhtKdawrZMEsA32gLw5s2bJ+Vy+fsGaD7dYtpKngR5aOzmzZs3TKlU5onF4qFdUYP79+9fFR0d/a9Ct/96kg34yqnt165dWzNixIgEXQh+++23k56enqvIUAvV221v2G2PIyqEr5yJ5+Pj43Ls2LGN/fr1M3ZfsiYkJGTSTz/9BGeaoPwvKM1wV7jm5NmeMgRTvVTbiIiIAZ9//nmJWCz2RVK/devWt56enh88ffoUNvXoJi8HZ8OY8zXadU7Ky8uX+/r6wjluBl319fU3HBwcuoX915M0oG6yc5uhQ4c67t+//z2xWCy7evVqxbvvvvsjObsBK0rQYTWGar727Gxd5wRMAfujR49GvvXWW6sMObD78uXLX5P2H5z/Blqa1/n/OvvX1VM0IMiBemo7OCQQOAa7EP4/SmgJnYmSWdIBX1vOCfVMPHRgd5aFhYVjZ50Ffz948OCq2bNndwv7rydpQPSu1ENwUGJLakJLgA4+KLegMcOuPnYhyuyqdU4MOLBbM3HixMmnTp2CA3YEb//1NACpEFKTWyJgkJ1H/dZHKRlyT7vOCRzYffTo0SxXV9cx7RX4+PHjG2KxGE4EgOEXFkRA+mGkqQ1pB2/u7UlDMFXoukktqZqOTq3XXke3dWC39ky8M2fOQOq4Ng/svnbtWqm7uzvM/8KcNPW4Cd4AZWhDeiqAhsqJifup5gDYhejAbvvjx4/PfvPNN1dSD+zWaDTPFQpF+LZt265STnGH9YjUFMRMtJPRMjGAjIq308LbOnYClvjbKpXKgKioKIWDg8OIhoaGPw8dOpQZGxv7i85qHEEPvz3RBuyUCA5u0J05AQ8dtCF8kJcOoIG9B+Eh+FBPemLDZGBMLFgDMiZagwqmQgj2IXjJAB/12AkYbmHGAw27yFM3qCK+3YwB5FePILuQ+o3CROjICSZCRJxJAQPImejbrVjXQ0cA6oaL+NdyI1qEATRCaPgR+iSAAaRPlrgkIySAATRCaPgR+iSAAaRPlrgkIySAATRCaPgR+iSAAaRPlrgkIySAATRCaPgR+iSAAaRPlrgkIySAATRCaPgR+iSAAaRPlrgkIySAATRCaPgR+iSAAaRPlrgkIySAATRCaPgR+iSAAaRPlrgkIySAATRCaPgR+iSAAaRPlrgkIySAATRCaPgR+iSAAaRPlrgkIySAATRCaPgR+iSAAaRPlrgkIySAATRCaPgR+iSAAaRPlrgkIySAATRCaPgR+iSAAaRPlrgkIyTwd9mYqBmKCl5tAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAgdJREFUWEfF1j2L1FAUh/HzH5LATDHfYophmLnMObeyUWsLdxdkBQUVtFEUCwWr7bRSxGYr7URQ2G7BQmwEYYtkkMXCRURwiwVFfME3VvTIXaIMstlMkhuSNjPz/HJzkrmghg9k9eM4PgjgJhG9AHCemd/VYc0EJEnyVFX3pdE3RDRvrZ34Ruy1AutENJwKfiei09baez4RRQA7XQDXmfkKgF8+IIUBafRRFEWLo9HoQ1VEWYDrvgrDcM4Y87wKogrA3Y4vAE4y80pZRCVAOhOqqldFZAmAFoVUBvwNAljtdrvHer3e5yIIb4A0uhGG4WFjzMasCN8A1/0E4LiIrM6CqAPghvM3ES0x87W8uagFMDUXK0EQnDDGfM1ajVoB6VOy3mq19o/H44+7IWoHpNEb1tpLjQEA3BeRo40A3BACOMTMD5sAfANwSkQeNDGErwHMiYjbV2QetQwhgMedTmex3++/z3sZeQe4fSQzX551w+IT8APAGRG5m3fV0+d9ATYBzItIUiS+86LK+kIcx/9vSnf9KIAnQRAcMca8LRqvDACwrKoXrbU/y8RLAwBsAzjLzHfKhv/9YZW4BVsAFkRkrWq88AoAWFPVBWvtlo/4noAkSZ6pqpkK3W632+cGg8G2r3jeCtwiogtE5AbMDdqyz3DuDKhqazKZHIii6OVwONysI+5+8w8R+8shOVYnwAAAAABJRU5ErkJggg==\"","/* eslint-disable import/no-anonymous-default-export */\r\nimport en from './en'\r\nimport zh from './zh'\r\n\r\nexport default {\r\n en,\r\n zh\r\n}","// eslint-disable-next-line import/no-anonymous-default-export\r\nexport default {\r\n question: 'Question',\r\n remind: 'Reminder',\r\n ques_recommend: 'FAQ',\r\n ques_ans:'Feedback on progress of issues:',\r\n order_num: 'Ticket no.',\r\n response: 'Reply',\r\n user_ask: 'To reply, [tap Here]',\r\n click_here: 'To reply, [tap Here]',\r\n other_qus: 'Other questions',\r\n success_help: \"We're very happy to help!\",\r\n error_help: \"We're very sorry we could not help, please tap the button below to submit feedback, and we will solve it ASAP.\",\r\n satisfaction: 'Satisfied',\r\n unSatisfaction: 'Dissatisfied',\r\n return_ask: 'Feedback',\r\n '超出最大文案120字': 'Max 120 characters',\r\n '很抱歉,暂时没有内容推荐': 'We apologize, there are no recommended questions at the moment',\r\n '请输入您想咨询的问题': \"Please enter the issue you're having\",\r\n '客服中心': 'Customer service center'\r\n}","// eslint-disable-next-line import/no-anonymous-default-export\r\nexport default {\r\n question: '问题',\r\n remind: '提醒',\r\n ques_recommend: '常见问题推荐',\r\n ques_ans:'反馈问题的进度:',\r\n order_num: '工单编号',\r\n response: '回复内容',\r\n user_ask: '如需进行回复',\r\n click_here: '点击这里',\r\n other_qus: '其它问题',\r\n success_help: '很高兴可以帮到您呢,祝生活愉快。',\r\n error_help: '很抱歉没有帮到您呢,点击下方按钮可以快速反馈问题,我们会尽快为您解决。',\r\n satisfaction: '满意',\r\n unSatisfaction: '不满意',\r\n return_ask: '反馈问题',\r\n '超出最大文案120字': '超出最大文案120字',\r\n '很抱歉,暂时没有内容推荐': '很抱歉,暂时没有内容推荐',\r\n '请输入您想咨询的问题': '请输入您想咨询的问题',\r\n '当前网络状态不佳,请稍后再试': '当前网络状态不佳,请稍后再试',\r\n '客服中心':'客服中心'\r\n}","\r\nimport locales from '../locales'\r\n\r\nexport function searchObj(search) {\r\n if (search) {\r\n const searchList = search.slice(1, search.length).split('&');\r\n const searchObj = {}\r\n searchList.forEach(item => {\r\n searchObj[item.split('=')[0]] = item.split('=')[1]\r\n })\r\n return searchObj\r\n } else {\r\n return {}\r\n }\r\n};\r\n\r\n// util.js\r\n\r\nexport function inputBlur() {\r\n let u = navigator.userAgent\r\n\r\n let isIOS = !!u.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/)\r\n\r\n if (isIOS) {\r\n setTimeout(() => {\r\n const scrollHeight = document.documentElement.scrollTop || document.body.scrollTop || 0\r\n\r\n window.scrollTo(0, Math.max(scrollHeight - 1, 0))\r\n\r\n }, 200)\r\n }\r\n}\r\n\r\nexport const renderText = (text) => {\r\n const searchProps = searchObj(window.location.search);\r\n if(searchProps.lang){\r\n if(searchProps.lang === 'zh_cn'){\r\n return locales.zh[text] || text\r\n } else {\r\n return locales.en[text] || text\r\n }\r\n } else {\r\n return locales.zh[text] || text\r\n }\r\n}","//新主题列表\r\n\r\nexport const main = {\r\n id: 1,\r\n name: \"youzu\",\r\n url: \"aiservice.youzu.com\",\r\n service: \"service.youzu.com\",\r\n}\r\n\r\nexport const newEntityList = [\r\n {\r\n id: 2,\r\n name: \"dushang\",\r\n url: \"aiservice.dushang.top\",\r\n service: \"service.dushang.top\",\r\n },\r\n {\r\n id: 3,\r\n name: \"aimuyi\",\r\n url: \"aiservice.aimuyi.top\",\r\n service: \"service.aimuyi.top\",\r\n },\r\n]\r\n\r\nexport default {\r\n ...main,\r\n ...newEntityList\r\n}\r\n\r\nexport function islocation(entity) {\r\n if (entity) {\r\n return window.location.host.indexOf(entity) > -1\r\n } else {\r\n return false\r\n }\r\n};","import { searchObj } from './util'\r\nimport { newEntityList, islocation } from './entity';\r\n\r\nconst searchProps = searchObj(window.location.search);\r\nlet language = ''\r\nif (searchProps.lang) {\r\n language = searchProps.lang === 'zh_cn' ? 'zh' : 'en'\r\n} else {\r\n language = islocation('gtarcade') ? 'en' : 'zh'\r\n}\r\nconst http_origin = newEntityList.find(item => { return islocation(item.name) })?.name || (islocation('gtarcade') ? 'gtarcade' : 'youzu')\r\nexport async function getFetch(url = '', params = {}, needLanguage) {\r\n let paramsArray = [];\r\n const addObj = needLanguage ? {\r\n language,\r\n 'http-origin': http_origin\r\n } : {}\r\n Object.keys(params).forEach(key => paramsArray.push(key + '=' + params[key]))\r\n if (paramsArray.length > 0) {\r\n if (url.search(/\\?/) === -1) {\r\n url += '?' + paramsArray.join('&')\r\n } else {\r\n url += '&' + paramsArray.join('&')\r\n }\r\n }\r\n // Default options are marked with *\r\n const response = await fetch(url, {\r\n method: 'GET', // *GET, POST, PUT, DELETE, etc.\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'application/json; charset=UTF-8',\r\n 'token': window.location.search.substring(1),\r\n ...addObj\r\n },\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'strict-origin-when-cross-origin', // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url\r\n });\r\n return response.json(); // parses JSON response into native JavaScript objects\r\n}\r\n\r\nexport async function postFetch(url = '', data = {}) {\r\n data.origin = 1;\r\n // Default options are marked with *\r\n const response = await fetch(url, {\r\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\r\n mode: 'cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n headers: {\r\n 'Content-Type': 'application/json; charset=UTF-8',\r\n 'token': window.location.search.substring(1),\r\n },\r\n dataType: \"jsonp\",\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'strict-origin-when-cross-origin', // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url\r\n body: JSON.stringify(data) // body data type must match \"Content-Type\" header\r\n });\r\n return response.text().then(function (text) {\r\n return text ? JSON.parse(text) : {}\r\n }); // parses JSON response into native JavaScript objects\r\n}\r\n\r\nexport async function getGssfServerList(game_id, op_id) {\r\n // Default options are marked with *\r\n const response = await fetch(`https://gssf.youzu.com/server/queryServerList?appId=service.youzu.com&gameId=${game_id}&opId=${op_id}&columns=[\"server_id\",\"server_name\"]`, {\r\n method: 'GET', // *GET, POST, PUT, DELETE, etc.\r\n mode: 'no-cors', // no-cors, *cors, same-origin\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n credentials: 'same-origin', // include, *same-origin, omit\r\n redirect: 'follow', // manual, *follow, error\r\n referrerPolicy: 'strict-origin-when-cross-origin', // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url\r\n });\r\n return response.text().then(function (text) {\r\n return text ? JSON.parse(text) : {}\r\n }); // parses JSON response into native JavaScript objects\r\n}\r\n\r\nexport async function formDataPostFetch(url = '', data = {}) {\r\n let formData = new FormData();\r\n Object.keys(data).map(item => {\r\n formData.append(item, data[item]);\r\n return true;\r\n });\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n body: formData\r\n });\r\n return response.text().then(function (text) {\r\n return text ? JSON.parse(text) : {}\r\n }); // parses JSON response into native JavaScript objects\r\n}","import { getFetch, postFetch } from '../utils/request';\r\nlet requestUrl = ''\r\nif(window.location.hostname.indexOf('gtarcade') > -1){\r\n requestUrl = (window.location.host.indexOf('localhost') > -1 || window.location.host.indexOf('qa') > -1 || window.location.host.indexOf('dev') > -1 || window.location.host.indexOf('prv') > -1) ? \"https://qa-customer-robot.gtarcade.com\" : \"https://customer-robot.gtarcade.com\";\r\n} else {\r\n requestUrl = (window.location.host.indexOf('localhost') > -1 || window.location.host.indexOf('qa') > -1 || window.location.host.indexOf('dev') > -1 || window.location.host.indexOf('prv') > -1) ? \"https://qa-customer-robot.youzu.com\" : \"https://customer-robot.youzu.com\";\r\n}\r\n\r\n/** \r\n* @desc: 获取导航栏\r\n*/ \r\n\r\nexport async function getNavBar(data) {\r\n return getFetch(requestUrl + '/api/index/nav-bar', {}, true)\r\n}\r\n\r\n/**\r\n* @desc: 获取初始化信息\r\n*/ \r\n\r\n\r\nexport async function getInitInfo(data) {\r\n return getFetch(requestUrl + '/api/index/init', data, true)\r\n}\r\n\r\n\r\n/** \r\n* @desc: 问题回复\r\n* @param content 交互文案 默认 ''\r\n*/ \r\n\r\nexport async function charAnswer(data) {\r\n return getFetch(requestUrl + '/api/index/answer', data, true)\r\n}\r\n\r\n/** \r\n* @desc: 评价满意是否\r\n* @param satisfied 点击是否满意 1满意 2不满意\r\n*/ \r\n\r\nexport async function evaluate(data) {\r\n return getFetch(requestUrl + '/api/index/satisfied', data, true)\r\n}\r\n\r\n/** \r\n* @desc: 获取底部导航栏\r\n*/ \r\n\r\nexport async function getBottomBar(data) {\r\n return getFetch(requestUrl + '/api/index/bot-bar', data, true)\r\n}\r\n\r\n/**\r\n * @navigation_type 问题类型\r\n * @id id\r\n */ \r\nexport async function clickNav(data) {\r\n return getFetch(requestUrl + '/api/index/click-nav', data, true)\r\n}\r\n\r\n/**\r\n * @navigation_type 问题类型\r\n * @id id\r\n */ \r\nexport async function clickBot(data) {\r\n return getFetch(requestUrl + '/api/index/click-bot', data, true)\r\n}\r\n\r\n\r\n\r\n/* old */\r\n/**\r\n * @desc: 获取初始化数据\r\n */\r\nexport async function initData(data) {\r\n return getFetch(requestUrl + '/api/chat/init', {});\r\n}\r\n\r\n/**\r\n * @desc: 获取推荐问题列表\r\n * @param {type} cate_id 分类ID\r\n */\r\nexport async function getRecommend(data) {\r\n return getFetch(requestUrl + '/api/chat/recommend', {\r\n cate_id: data.cate_id\r\n });\r\n}\r\n\r\n/**\r\n * @desc: 用户输入问题\r\n * @param {type} question_id 问题ID 默认0\r\n * @param {type} content 问题内容\r\n */\r\nexport async function userChatAsk(data) {\r\n return postFetch(requestUrl + '/api/chat/ask', {\r\n question_id: 0,\r\n content: data.question,\r\n });\r\n}\r\n\r\n/**\r\n * @desc: 用户评价\r\n * @param {type} question_id 问题ID 默认0\r\n * @param {type} question 问题内容\r\n * @param {type} content 评价 1:好评 2:差评\r\n */\r\nexport async function userChatEvaluate(data) {\r\n return postFetch(requestUrl + '/api/chat/evaluate', {\r\n question_id: 0,\r\n question: data.question,\r\n comment: data.comment,\r\n });\r\n}\r\n\r\n/**\r\n * @desc: 获取问卷信息\r\n */\r\nexport async function getQuestionnaire(data) {\r\n return getFetch(requestUrl + '/api/chat/questionnaire', {});\r\n}\r\n\r\n/**\r\n * @desc: 问卷提交\r\n * @param {type} question_id 问题ID 默认0\r\n * @param {type} question 问题内容\r\n * @param {type} content 评价 1:好评 2:差评\r\n */\r\nexport async function questionnairePost(data) {\r\n return postFetch(requestUrl + '/api/chat/questionnaire-post', {\r\n question_id: data.question_id,\r\n question: data.question,\r\n comment: data.comment,\r\n comment_content: data.comment_content,\r\n });\r\n}","import React, { useState } from \"react\";\r\nimport { Flex, FlexItem } from \"@chatui/core\";\r\nimport { evaluate } from \"../services/yoobot\";\r\nimport { renderText } from '../utils/util';\r\nimport \"./questionnaire.css\";\r\n\r\nconst QuestionEvaluate = (props) => {\r\n\tconst { serviceAvatar, appendMsg, question_id, isBanner } = props;\r\n\tconst [status, setStatus] = useState(0); // 0 未评价 1 好评 2 差评\r\n\tfunction handleEvaluate(statusId) {\r\n\t\tsetStatus(statusId);\r\n\t\tevaluate({\r\n\t\t\tis_satisfied: statusId,\r\n\t\t\tquestion_id,\r\n\t\t\tis_banner: isBanner ? 1 : 0\r\n\t\t}).then((res) => {\r\n\t\t\tif (statusId === 1) {\r\n\t\t\t\tappendMsg({\r\n\t\t\t\t\ttype: \"richText\",\r\n\t\t\t\t\tcontent: {\r\n\t\t\t\t\t\ttext: res.data.answer_intro,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tuser: { avatar: serviceAvatar },\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tappendMsg({\r\n\t\t\t\t\ttype: \"questionnaire\",\r\n\t\t\t\t\tcontent: {\r\n\t\t\t\t\t\ttext: res.data.answer_intro\r\n\t\t\t\t\t},\r\n\t\t\t\t\tuser: { avatar: serviceAvatar },\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tif (status === 2) {\r\n\t\treturn (\r\n\t\t\t<Flex justifyContent=\"flex-end\" style={{ paddingBottom: \"6px\" }}>\r\n\t\t\t\t<div className={`qes_dz`}>\r\n\t\t\t\t\t<FlexItem\r\n\t\t\t\t\t\tflex=\"none\"\r\n\t\t\t\t\t\tclassName={`qes_dz_item qes_dz_item_b`}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\tclassName={`iconfont icon-dianzan`}\r\n\t\t\t\t\t\t\tstyle={{ color: \"#d7a240\" }}\r\n\t\t\t\t\t\t></i>\r\n\t\t\t\t\t\t{renderText('satisfaction')}\r\n\t\t\t\t\t</FlexItem>\r\n\t\t\t\t\t<FlexItem\r\n\t\t\t\t\t\tflex=\"none\"\r\n\t\t\t\t\t\tclassName={`qes_dz_item`}\r\n\t\t\t\t\t\tstyle={{ color: \"#fff\" }}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\tclassName={`iconfont icon-dianzan`}\r\n\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\tcolor: \"#fff\",\r\n\t\t\t\t\t\t\t\tdisplay: \"inline-block\",\r\n\t\t\t\t\t\t\t\ttransform: \"rotate(180deg)\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t></i>\r\n\t\t\t\t\t\t{renderText('unSatisfaction')}\r\n\t\t\t\t\t</FlexItem>\r\n\t\t\t\t</div>\r\n\t\t\t</Flex>\r\n\t\t);\r\n\t} else if (status === 1) {\r\n\t\treturn (\r\n\t\t\t<Flex justifyContent=\"flex-end\" style={{ paddingBottom: \"6px\" }}>\r\n\t\t\t\t<div className={`qes_dz`}>\r\n\t\t\t\t\t<FlexItem\r\n\t\t\t\t\t\tflex=\"none\"\r\n\t\t\t\t\t\tclassName={`qes_dz_item qes_dz_item_b`}\r\n\t\t\t\t\t\tstyle={{ color: \"#fff\" }}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\tclassName={`iconfont icon-dianzan`}\r\n\t\t\t\t\t\t\tstyle={{ color: \"#fff\" }}\r\n\t\t\t\t\t\t></i>\r\n\t\t\t\t\t\t{renderText('satisfaction')}\r\n\t\t\t\t\t</FlexItem>\r\n\t\t\t\t\t<FlexItem flex=\"none\" className={`qes_dz_item`}>\r\n\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\tclassName={`iconfont icon-dianzan`}\r\n\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\tcolor: \"#d7a240\",\r\n\t\t\t\t\t\t\t\tdisplay: \"inline-block\",\r\n\t\t\t\t\t\t\t\ttransform: \"rotate(180deg)\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t></i>\r\n\t\t\t\t\t\t{renderText('unSatisfaction')}\r\n\t\t\t\t\t</FlexItem>\r\n\t\t\t\t</div>\r\n\t\t\t</Flex>\r\n\t\t);\r\n\t} else {\r\n\t\treturn (\r\n\t\t\t<Flex justifyContent=\"flex-end\" style={{ paddingBottom: \"6px\" }}>\r\n\t\t\t\t<div className={`qes_dz`}>\r\n\t\t\t\t\t<FlexItem\r\n\t\t\t\t\t\tflex=\"none\"\r\n\t\t\t\t\t\tclassName={`qes_dz_item qes_dz_item_b`}\r\n\t\t\t\t\t\tonClick={() => handleEvaluate(1)}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\tclassName={`iconfont icon-dianzan`}\r\n\t\t\t\t\t\t\tstyle={{ color: \"#fce4af\" }}\r\n\t\t\t\t\t\t></i>\r\n\t\t\t\t\t\t{renderText('satisfaction')}\r\n\t\t\t\t\t</FlexItem>\r\n\t\t\t\t\t<FlexItem\r\n\t\t\t\t\t\tflex=\"none\"\r\n\t\t\t\t\t\tclassName={`qes_dz_item`}\r\n\t\t\t\t\t\tonClick={() => handleEvaluate(2)}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\tclassName={`iconfont icon-dianzan`}\r\n\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\tcolor: \"#fce4af\",\r\n\t\t\t\t\t\t\t\tdisplay: \"inline-block\",\r\n\t\t\t\t\t\t\t\ttransform: \"rotate(180deg)\",\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t></i>\r\n\t\t\t\t\t\t{renderText('unSatisfaction')}\r\n\t\t\t\t\t</FlexItem>\r\n\t\t\t\t</div>\r\n\t\t\t</Flex>\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport default QuestionEvaluate;\r\n","import React from \"react\";\r\nimport { Flex, Button } from \"@chatui/core\";\r\nimport { renderText } from '../utils/util';\r\nimport { searchObj } from '../utils/util';\r\nimport \"./questionnaire.css\";\r\nlet { theme , game_id, gta_version_ios, sdkVersion } = searchObj(window.location.search)\r\ngta_version_ios = gta_version_ios ? gta_version_ios : sdkVersion\r\nconst QuestionEvaluate = (props) => {\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Flex center style={{ padding: \"3px\" }}>\r\n\t\t\t\t<Button\r\n\t\t\t\t\tclassName={`submitBtn`}\r\n\t\t\t\t\tblock\r\n\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\tonClick={() =>{\r\n\t\t\t\t\t\tif(window.location.hostname.indexOf('gtarcade') > -1){\r\n\t\t\t\t\t\t\tif(window.location.hostname.indexOf('prv') > -1){\r\n\t\t\t\t\t\t\t\twindow.location.href = \"https://qamsupport.gtarcade.com/default/verify\" + props.location.search + `&callback_url=${encodeURIComponent('http://qasupport.gtarcade.com/aiservice/search/choose-form?gid=' + game_id + '&theme=' + theme + (gta_version_ios ? ('>a_version_ios=' + gta_version_ios) : ''))}`\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\twindow.location.href = \"https://msupport.gtarcade.com/default/verify\" + props.location.search + `&callback_url=${encodeURIComponent('http://support.gtarcade.com/aiservice/search/choose-form?gid=' + game_id + '&theme=' + theme + (gta_version_ios ? ('>a_version_ios=' + gta_version_ios) : ''))}`\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tprops.history.push({\r\n\t\t\t\t\t\t\t\tpathname: \"/workOrderList\",\r\n\t\t\t\t\t\t\t\tsearch: props.location.search,\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t>\r\n\t\t\t\t\t{renderText('return_ask')}\r\n\t\t\t\t</Button>\r\n\t\t\t</Flex>\r\n\t\t</>\r\n\t);\r\n};\r\n\r\nexport default QuestionEvaluate;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Button, Flex, FlexItem, RichText } from \"@chatui/core\";\r\nimport { getInitInfo } from \"../services/yoobot\";\r\nimport \"../pages/customerService.css\";\r\nimport \"./questionList.css\";\r\nimport { renderText } from '../utils/util'\r\n\r\n// 渲染问题推荐\r\nconst RenderRemind = (props) => {\r\n\tconst { list, needRef, setPageIndex, questionClick, title, guide, content } = props;\r\n\tconst [qes_list, setQes_list] = useState([]);\r\n\tuseEffect(() => {\r\n\t\tsetQes_list(list || []);\r\n\t}, [list]);\r\n\t// 点击刷新问题列表\r\n\tconst refreshQes = () => {\r\n\t\tsetPageIndex((page) => {\r\n\t\t\tconst newPage = page + 1;\r\n\t\t\tgetInitInfo({ page: newPage }).then((res) => {\r\n\t\t\t\tsetQes_list(res.data.question);\r\n\t\t\t});\r\n\t\t\treturn newPage;\r\n\t\t});\r\n\t};\r\n\treturn (\r\n\t\t<div>\r\n\t\t\t<Flex wrap=\"wrap\" style={{ maxWidth: \"320px\", flexDirection: 'column' }}>\r\n\t\t\t\t<FlexItem key={-1} flex=\"1 0 auto\" className=\"flex-wrap\">\r\n\t\t\t\t\t<div className=\"qus-item\">\r\n\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\tpadding: \"5px 0px\",\r\n\t\t\t\t\t\t\t\tpaddingBottom: \"10px\",\r\n\t\t\t\t\t\t\t\tpaddingLeft: !title ? '25px' : '0px',\r\n\t\t\t\t\t\t\t\tposition: \"relative\"\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{!title && <img\r\n\t\t\t\t\t\t\t\tstyle={{ width: '20px', verticalAlign: 'text-bottom', marginRight: '5px', position: 'absolute', left: 0 }}\r\n\t\t\t\t\t\t\t\tsrc={require('../asset/imgs/icon_logo.png').default}\r\n\t\t\t\t\t\t\t\talt='title'\r\n\t\t\t\t\t\t\t></img>}\r\n\t\t\t\t\t\t\t<span style={{ marginLeft: \"5px\", fontSize: '16px', marginRight: '20px' }}>\r\n\t\t\t\t\t\t\t\t{title ? <RichText style={{ display: 'inline-block' }} content={title}></RichText> : renderText('ques_recommend')}\r\n\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t{needRef && (\r\n\t\t\t\t\t\t\t\t<img\r\n\t\t\t\t\t\t\t\t\tonClick={refreshQes}\r\n\t\t\t\t\t\t\t\t\tstyle={{ position: \"absolute\", right: \"5px\", fontSize: \"20px\", top: '50%', marginTop: '-13px', color: \"#CCCCCC\", width: '20px' }}\r\n\t\t\t\t\t\t\t\t\tsrc={require('../asset/imgs/icon_g2.svg').default}\r\n\t\t\t\t\t\t\t\t\talt='needRef'\r\n\t\t\t\t\t\t\t\t></img>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</FlexItem>\r\n\t\t\t\t{qes_list && qes_list.map((item, index) => {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t<FlexItem key={index} flex=\"1 0 auto\" className=\"flex-wrap\">\r\n\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\tclassName=\"qus-item\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<div style={{ width: '100%' }}>\r\n\t\t\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\t\t\tcolor: \"var(--gray-1)\",\r\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"14px\",\r\n\t\t\t\t\t\t\t\t\t\t\tpadding: \"5px 0\",\r\n\t\t\t\t\t\t\t\t\t\t\twordBreak: 'break-word',\r\n\t\t\t\t\t\t\t\t\t\t\tfontWeight: '400'\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tvariant=\"text\"\r\n\t\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\t\tquestionClick(item.name, item.question_id, 0, guide, content);\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{item.name}\r\n\t\t\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</FlexItem>\r\n\t\t\t\t\t);\r\n\t\t\t\t})}\r\n\t\t\t\t{(!qes_list || qes_list.length === 0) && <FlexItem flex=\"1 0 auto\" className=\"flex-wrap\">\r\n\t\t\t\t\t<div\r\n\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\tborderBottom: \"1px solid #F3F3F3\",\r\n\t\t\t\t\t\t\tpadding: \"5px 0\",\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tclassName=\"qus-item\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<div style={{ width: '100%' }}>\r\n\t\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\tcolor: \"var(--gray-1)\",\r\n\t\t\t\t\t\t\t\t\tfontSize: \"14px\",\r\n\t\t\t\t\t\t\t\t\tpadding: \"5px\",\r\n\t\t\t\t\t\t\t\t\twordBreak: 'break-word'\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tvariant=\"text\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{renderText('很抱歉,暂时没有内容推荐')}\r\n\t\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</FlexItem>}\r\n\t\t\t</Flex>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default RenderRemind;\r\n","/* eslint-disable */\r\nimport React, { useState, useEffect } from \"react\";\r\nimport Chat, { Bubble, RichText, Image, Flex, FlexItem, Input, ScrollView, Divider, useMessages, toast } from \"@chatui/core\";\r\nimport { charAnswer, getInitInfo, getNavBar, getBottomBar, clickNav, clickBot } from \"../services/yoobot\";\r\nimport QuestionEvaluate from \"../components/questionEvaluate\";\r\nimport Questionnaire from \"../components/questionnaire\";\r\nimport RenderRemind from \"../components/questionList\";\r\nimport { searchObj, renderText } from '../utils/util';\r\nimport \"./customerService.css\";\r\nlet { theme, game_id, gta_version_ios, sdkVersion } = searchObj(window.location.search)\r\ngta_version_ios = gta_version_ios ? gta_version_ios : sdkVersion\r\nconst Composer = (questionClick) => {\r\n\tconst [inpValue, setInpValue] = useState('');\r\n\tconst valChange = (val) => {\r\n\t\tsetInpValue(val)\r\n\t}\r\n\tconst inpBlur = () => {\r\n\t\twindow.scrollTo(0, 0);\r\n\t}\r\n\tconst keyUp = (e) => {\r\n\t\tif (e.keyCode === 13) {\r\n\t\t\tquestionClick(inpValue, 0, 0, null, null, 'text');\r\n\t\t\twindow.scrollTo(0, 0);\r\n\t\t}\r\n\t}\r\n\treturn <div className=\"composer_wrap\">\r\n\t\t<Input value={inpValue} onKeyUp={keyUp} onBlur={inpBlur} onChange={valChange} placeholder=\"请输入...\" />\r\n\t\t<div className=\"img_k\">\r\n\t\t\t<img\r\n\t\t\t\tonClick={() => { questionClick(inpValue, 0, 0, null, null, 'text'); }}\r\n\t\t\t\tclassName=\"composer_img\"\r\n\t\t\t\tsrc={inpValue ? require('../asset/imgs/send_on.png').default : (theme === '2' ? require('../asset/imgs/send_f.png').default : require('../asset/imgs/send.png').default)}\r\n\t\t\t\talt='composer_img' />\r\n\t\t</div>\r\n\t</div>\r\n}\r\n\r\nconst CustomerService = (props) => {\r\n\tconst { messages, appendMsg, setTyping } = useMessages([]);\r\n\tconst [pageIndex, setPageIndex] = useState(1);\r\n\tconst [text] = useState(renderText('请输入您想咨询的问题'));\r\n\tconst [serviceAvatar] = useState(\r\n\t\twindow.location.hostname.indexOf('gtarcade') > -1 ? (theme === '2' ? 'https://oss.gtarcade.com/ucms/d9b63185-28ea-4bd0-9d44-d2e9ed8a5aed_2022-09-19.png' : 'https://oss.gtarcade.com/ucms/5c69df43-d1c4-4415-9ace-0c6f0287df35_2022-09-19.png') : (theme === '2' ? 'https://oss.youzu.com/y_web/41b84a85-a921-4bfa-897a-c3fcd4a5a185_2022-09-19.png' : 'https://oss.youzu.com/y_web/745e8680-db54-4c86-9867-956b9e5e882b_2022-09-19.png')\r\n\t);\r\n\tconst [quickList, setQuickList] = useState([]);\r\n\r\n\tuseEffect(() => {\r\n\r\n\t\t// 获取导航栏\r\n\t\tgetNavBar({}).then((resp) => {\r\n\t\t\tappendMsg({\r\n\t\t\t\ttype: \"head\",\r\n\t\t\t\tcontent: { list: resp.data },\r\n\t\t\t\tposition: \"center\",\r\n\t\t\t});\r\n\t\t\t// 获取初始化信息\r\n\t\t\tgetInitInfo({ page: pageIndex }).then((res) => {\r\n\t\t\t\tif (res.code === 0) {\r\n\t\t\t\t\t// 展示紧急提示\r\n\t\t\t\t\tif (res.data.notify) {\r\n\t\t\t\t\t\tappendMsg({\r\n\t\t\t\t\t\t\ttype: \"children\",\r\n\t\t\t\t\t\t\tcontent: {\r\n\t\t\t\t\t\t\t\tchildren: renderHint(res.data.notify),\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tuser: { avatar: serviceAvatar },\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (res.data.welcome) {\r\n\t\t\t\t\t\tappendMsg({\r\n\t\t\t\t\t\t\ttype: 'richText',\r\n\t\t\t\t\t\t\tcontent: { text: res.data.welcome || 'hi,我是智能客服小游,如果有遇到什么问题可以向我询问喔~' },\r\n\t\t\t\t\t\t\tuser: { avatar: res.data.smart_icon || serviceAvatar },\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// 展示默认问题列表\r\n\t\t\t\t\tif (res.data.question && res.data.question.length > 0) {\r\n\t\t\t\t\t\tappendMsg({\r\n\t\t\t\t\t\t\ttype: \"children\",\r\n\t\t\t\t\t\t\tcontent: {\r\n\t\t\t\t\t\t\t\tchildren: (\r\n\t\t\t\t\t\t\t\t\t<RenderRemind\r\n\t\t\t\t\t\t\t\t\t\tlist={res.data.question}\r\n\t\t\t\t\t\t\t\t\t\tsetPageIndex={setPageIndex}\r\n\t\t\t\t\t\t\t\t\t\tserviceAvatar={serviceAvatar}\r\n\t\t\t\t\t\t\t\t\t\tquestionClick={questionClick}\r\n\t\t\t\t\t\t\t\t\t\tneedRef={true}\r\n\t\t\t\t\t\t\t\t\t></RenderRemind>\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tuser: { avatar: serviceAvatar },\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// 展示默认工单回复\r\n\t\t\t\t\tif (res.data.auto_order) {\r\n\t\t\t\t\t\tappendMsg({\r\n\t\t\t\t\t\t\ttype: \"order\",\r\n\t\t\t\t\t\t\tcontent: {\r\n\t\t\t\t\t\t\t\tinfo: res.data.auto_order\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tuser: { avatar: serviceAvatar },\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t\tgetBottomBar({}).then((res) => {\r\n\t\t\tconst list = [];\r\n\t\t\tres.data.forEach(item => {\r\n\t\t\t\tlist.push({ name: item.bottom_name, id: item.id })\r\n\t\t\t})\r\n\t\t\tsetQuickList(list)\r\n\t\t\tappendMsg({\r\n\t\t\t\ttype: \"bottom\",\r\n\t\t\t\tcontent: { list: res.data },\r\n\t\t\t\tposition: \"center\",\r\n\t\t\t});\r\n\t\t});\r\n\t}, []);\r\n\t// 渲染紧急通知\r\n\tconst renderHint = (textInfo, needOther, content) => {\r\n\t\treturn (\r\n\t\t\t<div>\r\n\t\t\t\t<Flex wrap=\"wrap\" style={{ maxWidth: \"320px\" }}>\r\n\t\t\t\t\t<FlexItem flex=\"1 0 auto\" style={{ width: '100%' }}>\r\n\t\t\t\t\t\t<div style={{ minWidth: \"250px\" }}>\r\n\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\tpadding: \"0px 5px\",\r\n\t\t\t\t\t\t\t\t\tpaddingBottom: \"10px\",\r\n\t\t\t\t\t\t\t\t\tposition: \"relative\",\r\n\t\t\t\t\t\t\t\t\tborderBottom: \"1px solid #F3F3F3\",\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<img\r\n\t\t\t\t\t\t\t\t\tstyle={{ width: '22px', verticalAlign: 'text-bottom' }}\r\n\t\t\t\t\t\t\t\t\tsrc=\"https://oss.youzu.com/y_web/4af91ceb-06f5-4bcb-bf58-ad7dc566e88a_2022-06-27.svg\"\r\n\t\t\t\t\t\t\t\t\talt='bubble'\r\n\t\t\t\t\t\t\t\t></img>\r\n\t\t\t\t\t\t\t\t<span className='Bubble_title' style={{ marginLeft: \"5px\" }}>\r\n\t\t\t\t\t\t\t\t\t{textInfo.question_title}\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</FlexItem>\r\n\t\t\t\t\t<FlexItem flex=\"1 0 auto\" style={{ width: '100%' }}>\r\n\t\t\t\t\t\t<div style={{ padding: \"10px 5px\", position: \"relative\", borderBottom: \"1px solid #F3F3F3\" }}>\r\n\t\t\t\t\t\t\t<RichText content={textInfo.question_answer}></RichText>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</FlexItem>\r\n\t\t\t\t\t{needOther && (\r\n\t\t\t\t\t\t<FlexItem flex=\"none\">\r\n\t\t\t\t\t\t\t<div style={{ width: \"250px\" }}>\r\n\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\tquestionClick(content, 0, 1);\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\t\tpadding: \"10px 5px\",\r\n\t\t\t\t\t\t\t\t\t\tposition: \"relative\",\r\n\t\t\t\t\t\t\t\t\t\tcolor: \"#e09334\",\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t【\r\n\t\t\t\t\t\t\t\t\t{renderText('other_qus')}\r\n\t\t\t\t\t\t\t\t\t】\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</FlexItem>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</Flex>\r\n\t\t\t</div>\r\n\t\t);\r\n\t};\r\n\t// 对话组件\r\n\r\n\t// 点击头部导航栏\r\n\tconst navClick = async (id) => {\r\n\t\ttry {\r\n\t\t\tconst res = await clickNav({ navigation_type: 1, id, page: 1 });\r\n\t\t\tif (res.code === 0 && res.data) {\r\n\t\t\t\tappendMsg({\r\n\t\t\t\t\ttype: \"children\",\r\n\t\t\t\t\tcontent: {\r\n\t\t\t\t\t\tchildren: (\r\n\t\t\t\t\t\t\t<RenderRemind\r\n\t\t\t\t\t\t\t\tlist={res.data.question}\r\n\t\t\t\t\t\t\t\ttitle={res.data.director_text}\r\n\t\t\t\t\t\t\t\tsetPageIndex={setPageIndex}\r\n\t\t\t\t\t\t\t\tserviceAvatar={serviceAvatar}\r\n\t\t\t\t\t\t\t\tquestionClick={questionClick}\r\n\t\t\t\t\t\t\t\tneedRef={false}\r\n\t\t\t\t\t\t\t></RenderRemind>\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tuser: { avatar: serviceAvatar },\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t} catch {\r\n\t\t\tappendMsg({\r\n\t\t\t\ttype: \"questionnaire\",\r\n\t\t\t\tcontent: {\r\n\t\t\t\t\ttext: renderText('当前网络状态不佳,请稍后再试')\r\n\t\t\t\t},\r\n\t\t\t\tuser: { avatar: serviceAvatar },\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\t// 点击底部导航栏\r\n\tconst botClick = async (bot_id) => {\r\n\t\ttry {\r\n\t\t\tconst res = await clickBot({ bot_id })\r\n\t\t\trenderAns(res, null, bot_id, true)\r\n\t\t} catch {\r\n\t\t\tappendMsg({\r\n\t\t\t\ttype: \"questionnaire\",\r\n\t\t\t\tcontent: {\r\n\t\t\t\t\ttext: renderText('当前网络状态不佳,请稍后再试'),\r\n\t\t\t\t},\r\n\t\t\t\tuser: { avatar: serviceAvatar },\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tconst renderAns = (res, content, id, isBanner) => {\r\n\t\tif (res.code === 0) {\r\n\t\t\tconst type = res.data.answer_status;\r\n\t\t\tswitch (type) {\r\n\t\t\t\t// 1 匹配答案\r\n\t\t\t\tcase 1:\r\n\t\t\t\t\tid = res.data.question_id ? res.data.question_id : id;\r\n\t\t\t\t\tappendMsg({\r\n\t\t\t\t\t\ttype: \"botQuestion\",\r\n\t\t\t\t\t\tcontent: { text: res.data.answer_intro, id, isBanner },\r\n\t\t\t\t\t\tuser: { avatar: serviceAvatar },\r\n\t\t\t\t\t});\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 2:\r\n\t\t\t\t\tappendMsg({\r\n\t\t\t\t\t\ttype: \"children\",\r\n\t\t\t\t\t\tcontent: {\r\n\t\t\t\t\t\t\tchildren: (\r\n\t\t\t\t\t\t\t\t<RenderRemind\r\n\t\t\t\t\t\t\t\t\tguide={1}\r\n\t\t\t\t\t\t\t\t\tguide_content={content}\r\n\t\t\t\t\t\t\t\t\tcontent={content}\r\n\t\t\t\t\t\t\t\t\ttitle={res.data.director_text}\r\n\t\t\t\t\t\t\t\t\tlist={res.data.answer_intro}\r\n\t\t\t\t\t\t\t\t\tsetPageIndex={setPageIndex}\r\n\t\t\t\t\t\t\t\t\tserviceAvatar={serviceAvatar}\r\n\t\t\t\t\t\t\t\t\tquestionClick={questionClick}\r\n\t\t\t\t\t\t\t\t\tneedRef={false}\r\n\t\t\t\t\t\t\t\t></RenderRemind>\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tuser: { avatar: serviceAvatar },\r\n\t\t\t\t\t});\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 3:\r\n\t\t\t\t\tappendMsg({\r\n\t\t\t\t\t\ttype: \"children\",\r\n\t\t\t\t\t\tcontent: {\r\n\t\t\t\t\t\t\tchildren: renderHint(res.data.answer_intro, true, content),\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tuser: { avatar: serviceAvatar },\r\n\t\t\t\t\t});\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 6:\r\n\t\t\t\t\tappendMsg({\r\n\t\t\t\t\t\ttype: \"order\",\r\n\t\t\t\t\t\tcontent: {\r\n\t\t\t\t\t\t\tinfo: res.data.answer_intro\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tuser: { avatar: serviceAvatar },\r\n\t\t\t\t\t});\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 5:\r\n\t\t\t\t\tappendMsg({\r\n\t\t\t\t\t\ttype: \"richText\",\r\n\t\t\t\t\t\tcontent: { text: res.data.director_text },\r\n\t\t\t\t\t\tuser: { avatar: serviceAvatar },\r\n\t\t\t\t\t});\r\n\t\t\t\t\tres.data.answer_intro.forEach(item => {\r\n\t\t\t\t\t\tappendMsg({\r\n\t\t\t\t\t\t\ttype: \"richText\",\r\n\t\t\t\t\t\t\tcontent: { text: item },\r\n\t\t\t\t\t\t\tuser: { avatar: serviceAvatar },\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t})\r\n\t\t\t\t\tappendMsg({\r\n\t\t\t\t\t\ttype: \"botQuestion\",\r\n\t\t\t\t\t\tcontent: { text: res.data.end_intro, id, isBanner },\r\n\t\t\t\t\t\tuser: { avatar: serviceAvatar },\r\n\t\t\t\t\t});\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tappendMsg({\r\n\t\t\t\t\t\ttype: \"questionnaire\",\r\n\t\t\t\t\t\tcontent: {\r\n\t\t\t\t\t\t\ttext: res.data.answer_intro,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tuser: { avatar: serviceAvatar },\r\n\t\t\t\t\t});\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tsetTyping(false);\r\n\t\t}\r\n\t}\r\n\t//点击其他问题\r\n\t//点击问题 进行对话\r\n\tconst questionClick = async (\r\n\t\tcontent,\r\n\t\tcontent_id,\r\n\t\tother_question = 0,\r\n\t\tguide,\r\n\t\tguide_content,\r\n\t\ttype,\r\n\t) => {\r\n\t\tcontent = content.trim()\r\n\t\tif (type === \"text\") {\r\n\t\t\tif (!content) return\r\n\t\t\tif (content.length >= 120) {\r\n\t\t\t\tcontent = content.slice(0, 120)\r\n\t\t\t\ttoast.show(renderText('超出最大文案120字'))\r\n\t\t\t}\r\n\t\t\tappendMsg({\r\n\t\t\t\ttype: \"text\",\r\n\t\t\t\tcontent: { text: content },\r\n\t\t\t\tposition: \"right\",\r\n\t\t\t});\r\n\t\t}\r\n\t\tsetTyping(true);\r\n\t\ttry {\r\n\t\t\tconst res = await charAnswer({\r\n\t\t\t\tcontent,\r\n\t\t\t\tcontent_id,\r\n\t\t\t\tother_question,\r\n\t\t\t\tguide: guide ? guide : 0,\r\n\t\t\t\tguide_content: guide_content ? guide_content : ''\r\n\t\t\t});\r\n\t\t\trenderAns(res, content, content_id)\r\n\t\t} catch {\r\n\t\t\tappendMsg({\r\n\t\t\t\ttype: \"questionnaire\",\r\n\t\t\t\tcontent: {\r\n\t\t\t\t\ttext: renderText('当前网络状态不佳,请稍后再试')\r\n\t\t\t\t},\r\n\t\t\t\tuser: { avatar: serviceAvatar },\r\n\t\t\t});\r\n\t\t\tsetTyping(true);\r\n\t\t}\r\n\t};\r\n\r\n\tfunction renderMessageContent(msg) {\r\n\t\tconst { type, content } = msg;\r\n\t\t// 根据消息类型来渲染\r\n\t\tswitch (type) {\r\n\t\t\tcase \"text\":\r\n\t\t\t\treturn <Bubble content={content.text} />;\r\n\t\t\tcase \"image\":\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<Bubble type=\"image\">\r\n\t\t\t\t\t\t<img src={content.picUrl} alt=\"\" />\r\n\t\t\t\t\t</Bubble>\r\n\t\t\t\t);\r\n\t\t\tcase \"children\":\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<Bubble style={{ padding: \"20px\", marginRight: \"40px\" }}>\r\n\t\t\t\t\t\t{content.children}\r\n\t\t\t\t\t</Bubble>\r\n\t\t\t\t);\r\n\t\t\tcase \"richText\":\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<Bubble>\r\n\t\t\t\t\t\t<RichText content={content.text} />\r\n\t\t\t\t\t</Bubble>\r\n\t\t\t\t);\r\n\t\t\tcase \"repair\":\r\n\t\t\t\treturn <Bubble>{content.children}</Bubble>;\r\n\t\t\tcase \"botQuestion\":\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<Bubble>\r\n\t\t\t\t\t\t<RichText\r\n\t\t\t\t\t\t\tcontent={content.text}\r\n\t\t\t\t\t\t\tstyle={{ overflowX: \"auto\" }}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<Divider />\r\n\t\t\t\t\t\t<QuestionEvaluate\r\n\t\t\t\t\t\t\tquestion={content.question}\r\n\t\t\t\t\t\t\tquestion_id={content.id}\r\n\t\t\t\t\t\t\tserviceAvatar={serviceAvatar}\r\n\t\t\t\t\t\t\tappendMsg={appendMsg}\r\n\t\t\t\t\t\t\tisBanner={content.isBanner}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</Bubble>\r\n\t\t\t\t);\r\n\t\t\tcase \"questionnaire\":\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<Bubble>\r\n\t\t\t\t\t\t<RichText style={{ fontSize: \"13px\" }} content={content.text}></RichText>\r\n\t\t\t\t\t\t<Divider />\r\n\t\t\t\t\t\t<Questionnaire\r\n\t\t\t\t\t\t\thistory={props.history}\r\n\t\t\t\t\t\t\tlocation={props.location}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</Bubble>\r\n\t\t\t\t);\r\n\t\t\tcase 'order':\r\n\t\t\t\treturn (<Bubble>\r\n\t\t\t\t\t<Flex wrap=\"wrap\" style={{ maxWidth: \"320px\" }}>\r\n\t\t\t\t\t\t<FlexItem flex=\"1 0 auto\" style={{ width: '100%' }}>\r\n\t\t\t\t\t\t\t<div style={{ minWidth: \"250px\" }}>\r\n\t\t\t\t\t\t\t\t<div className=\"order_title\" style={{ padding: \"0px 0px\", paddingBottom: \"10px\", position: \"relative\", borderBottom: \"1px solid #F3F3F3\" }}>\r\n\t\t\t\t\t\t\t\t\t<span style={{ marginLeft: \"5px\" }}>\r\n\t\t\t\t\t\t\t\t\t\t{renderText('ques_ans')}\r\n\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</FlexItem>\r\n\t\t\t\t\t\t<FlexItem flex=\"1 0 auto\" style={{ width: '100%' }}>\r\n\t\t\t\t\t\t\t<div className={`qus_wrap`}>\r\n\t\t\t\t\t\t\t\t<div className={`qus_title`} >\r\n\t\t\t\t\t\t\t\t\t{renderText('question')}:\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t<div className={`qus_desc`}>\r\n\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t{content.info.title}\r\n\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</FlexItem>\r\n\t\t\t\t\t\t<FlexItem flex=\"1 0 auto\" style={{ width: '100%' }}>\r\n\t\t\t\t\t\t\t<div style={{ minWidth: \"250px\" }} className={`qus_wrap`}>\r\n\t\t\t\t\t\t\t\t<div className={`qus_title`}>\r\n\t\t\t\t\t\t\t\t\t{renderText('order_num')}:\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t<div className={`qus_desc`}>\r\n\t\t\t\t\t\t\t\t\t<span >\r\n\t\t\t\t\t\t\t\t\t\t{content.info.id}\r\n\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</FlexItem>\r\n\t\t\t\t\t\t<FlexItem flex=\"1 0 auto\" style={{ width: '100%' }}>\r\n\t\t\t\t\t\t\t<div style={{ minWidth: \"250px\" }} className={`qus_wrap`}>\r\n\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\tclassName={`qus_title`}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{renderText('response')}:\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t<div className={`qus_desc qus_ans`}>\r\n\t\t\t\t\t\t\t\t\t<RichText content={content.info.answer}>\r\n\t\t\t\t\t\t\t\t\t</RichText>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</FlexItem>\r\n\t\t\t\t\t\t<FlexItem flex=\"1 0 auto\" style={{ width: '100%' }}>\r\n\t\t\t\t\t\t\t<div style={{ minWidth: \"250px\" }} className=\"order_foter\">\r\n\t\t\t\t\t\t\t\t<img\r\n\t\t\t\t\t\t\t\t\tclassName=\"order_foter_icon\"\r\n\t\t\t\t\t\t\t\t\tsrc={require('../asset/imgs/icon_arrow.png').default}\r\n\t\t\t\t\t\t\t\t\talt='order_foter_icon'\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t{renderText('user_ask')}\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t<span\r\n\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\tif (window.location.host.indexOf('gtarcade') > -1) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (window.location.hostname.indexOf('prv') > -1) {\r\n\t\t\t\t\t\t\t\t\t\t\t\twindow.location.href = `https://qamsupport.gtarcade.com/default/verify${props.location.search}&callback_url=${encodeURIComponent(`http://qasupport.gtarcade.com/aiservice/mytickets/details?gid=${game_id}&qid=${content.info.id}&ismod=1&theme=${theme}${gta_version_ios ? `>a_version_ios=${gta_version_ios}` : ''}`)}`\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\twindow.location.href = `https://msupport.gtarcade.com/default/verify${props.location.search}&callback_url=${encodeURIComponent(`http://support.gtarcade.com/aiservice/mytickets/details?gid=${game_id}&qid=${content.info.id}&ismod=1&theme=${theme}${gta_version_ios ? `>a_version_ios=${gta_version_ios}` : ''}`)}`\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tprops.history.push({ pathname: '/myWorkOrder', search: props.location.search })\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tstyle={{ marginLeft: \"5px\", color: \"#e09334\" }}>\r\n\t\t\t\t\t\t\t\t\t【{renderText('click_here')}】\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</FlexItem>\r\n\t\t\t\t\t</Flex>\r\n\t\t\t\t</Bubble>\r\n\t\t\t\t)\r\n\t\t\tcase \"head\":\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<ScrollView\r\n\t\t\t\t\t\tstyle={{ paddingBottom: \"14px\" }}\r\n\t\t\t\t\t\tdata={content.list}\r\n\t\t\t\t\t\trenderItem={(item) => (\r\n\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\tclassName=\"sc_header\"\r\n\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\tmarginRight: \"8px\",\r\n\t\t\t\t\t\t\t\t\tbackground: \"var(--white)\",\r\n\t\t\t\t\t\t\t\t\tborderRadius: \"10px\",\r\n\t\t\t\t\t\t\t\t\twidth: \"70px\",\r\n\t\t\t\t\t\t\t\t\tmargin: \"5px\",\r\n\t\t\t\t\t\t\t\t\theight: '100%',\r\n\t\t\t\t\t\t\t\t\tboxShadow:\r\n\t\t\t\t\t\t\t\t\t\t\"0px 0px 5px 4px rgba(0, 0, 0, 0.01)\",\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Flex\r\n\t\t\t\t\t\t\t\t\tdirection=\"column\"\r\n\t\t\t\t\t\t\t\t\tjustifyContent=\"center\"\r\n\t\t\t\t\t\t\t\t\talignItems=\"stretch\"\r\n\t\t\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\t\t\tif (item.navigation_type === 2) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (window.location.href.indexOf(\"gtarcade\") > -1) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (window.location.hostname.indexOf('prv') > -1) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (item.sheet_number) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst template_id = item.sheet_number.split(',')[1];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst parent_type = item.sheet_number.split(',')[0];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twindow.location.href = \"https://qamsupport.gtarcade.com/default/verify\" + props.location.search + `&callback_url=${encodeURIComponent('http://qasupport.gtarcade.com/aiservice/search/submit?gid=' + game_id + '&template_id=' + template_id + '&parent_type=' + parent_type + '&theme=' + theme + (gta_version_ios ? ('>a_version_ios=' + gta_version_ios) : ''))}`\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twindow.location.href = \"https://qamsupport.gtarcade.com/default/verify\" + props.location.search + `&callback_url=${encodeURIComponent('http://qasupport.gtarcade.com/aiservice/search/choose-form?gid=' + game_id + '&theme=' + theme + (gta_version_ios ? ('>a_version_ios=' + gta_version_ios) : ''))}`\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (item.sheet_number) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst template_id = item.sheet_number.split(',')[1];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst parent_type = item.sheet_number.split(',')[0];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twindow.location.href = \"https://msupport.gtarcade.com/default/verify\" + props.location.search + `&callback_url=${encodeURIComponent('http://support.gtarcade.com/aiservice/search/submit?gid=' + game_id + '&template_id=' + template_id + '&parent_type=' + parent_type + '&theme=' + theme + (gta_version_ios ? ('>a_version_ios=' + gta_version_ios) : ''))}`\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twindow.location.href = \"https://msupport.gtarcade.com/default/verify\" + props.location.search + `&callback_url=${encodeURIComponent('http://support.gtarcade.com/aiservice/search/choose-form?gid=' + game_id + '&theme=' + theme + (gta_version_ios ? ('>a_version_ios=' + gta_version_ios) : ''))}`\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (item.sheet_number) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tprops.history.push({ pathname: '/workOrderSubmit', search: props.location.search, query: { tplId: item.sheet_number } })\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tprops.history.push({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpathname: \"/workOrderList\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tprops.location.search,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tnavClick(\r\n\t\t\t\t\t\t\t\t\t\t\t\titem.id,\r\n\t\t\t\t\t\t\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t\t\t\t\t\t\t0\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<FlexItem\r\n\t\t\t\t\t\t\t\t\t\talignSelf=\"auto\"\r\n\t\t\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\t\t\ttextAlign: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\theight: \"50px\",\r\n\t\t\t\t\t\t\t\t\t\t\tpadding: \"5px 10px 0 10px\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\t\t\t\theight: \"50px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\twidth: \"50px\",\r\n\t\t\t\t\t\t\t\t\t\t\t\toverflow: \"hidden\",\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<Image\r\n\t\t\t\t\t\t\t\t\t\t\t\tsrc={item.navigation_icon}\r\n\t\t\t\t\t\t\t\t\t\t\t\twidth=\"50\"\r\n\t\t\t\t\t\t\t\t\t\t\t\theight=\"50\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tlazy\r\n\t\t\t\t\t\t\t\t\t\t\t\tfluid\r\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: '100%',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tobjectFit: 'cover',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius: '10px'\r\n\t\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</FlexItem>\r\n\t\t\t\t\t\t\t\t\t<FlexItem\r\n\t\t\t\t\t\t\t\t\t\talignSelf=\"auto\"\r\n\t\t\t\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\t\t\t\ttextAlign: \"center\",\r\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"12px\",\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t\t\t{item.navigation_name}\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</FlexItem>\r\n\t\t\t\t\t\t\t\t</Flex>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t/>\r\n\t\t\t\t);\r\n\t\t\tdefault:\r\n\t\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\treturn (\r\n\t\t<div className={`contain ${theme === '1' ? 'black' : 'white'}`}>\r\n\t\t\t<Chat\r\n\t\t\t\tnavbar={window.location.href.indexOf('gtarcade') > -1 ? false : {\r\n\t\t\t\t\ttitle: renderText('客服中心'),\r\n\t\t\t\t\tleftContent: {\r\n\t\t\t\t\t\ticon: \"close\",\r\n\t\t\t\t\t\tcolor: \"primary\",\r\n\t\t\t\t\t\tonClick: () => (window.location.replace(`${window.location.origin}/closeWin`)),\r\n\t\t\t\t\t}\r\n\t\t\t\t}}\r\n\t\t\t\tComposer={() => Composer(questionClick)}\r\n\t\t\t\tplaceholder={text}\r\n\t\t\t\tmessages={messages}\r\n\t\t\t\tquickReplies={quickList}\r\n\t\t\t\trenderMessageContent={renderMessageContent}\r\n\t\t\t\tonQuickReplyClick={(info) => { botClick(info.id) }}\r\n\t\t\t\tonSend={(type, val) => {\r\n\t\t\t\t\tquestionClick(val, 0, 0, null, null, type);\r\n\t\t\t\t}}\r\n\t\t\t/>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default CustomerService;\r\n","import React from 'react';\r\nimport { IconButton } from '@chatui/core';\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\n\r\nconst HeadeNavbar = props => {\r\n let history = useHistory();\r\n let location = useLocation();\r\n\r\n return (\r\n <div className=\"ChatApp\">\r\n <div className=\"Navbar\">\r\n <div className=\"Navbar-left\">\r\n {props.myButton ? (props.close ?\r\n <IconButton icon=\"close\" size=\"lg\" color=\"primary\" onClick={() => { window.location.replace(`${window.location.origin}/closeWin`) }} /> :\r\n <IconButton icon=\"chevron-left\" size=\"lg\" color=\"primary\" onClick={() => { history.push({ pathname: '/', search: location.search }) }} />\r\n )\r\n : <IconButton icon=\"chevron-left\" size=\"lg\" color=\"primary\" onClick={() => { history.goBack() }} />}\r\n </div>\r\n <div className=\"Navbar-main\">\r\n <div className=\"Navbar-title\">\r\n {props.title}\r\n </div>\r\n </div>\r\n <div className=\"Navbar-right\">\r\n {props.listButton && <IconButton icon=\"home\" size=\"lg\" color=\"primary\" onClick={() => { history.push({ pathname: '/workOrderList', search: location.search }) }} />}\r\n {props.myButton && <IconButton icon=\"edit\" size=\"lg\" color=\"primary\" onClick={() => { history.push({ pathname: '/myWorkOrder', search: location.search }) }} />}\r\n </div>\r\n </div>\r\n <div className=\"MessageContainer\">\r\n <div className=\"PullToRefresh\">\r\n <div className=\"PullToRefresh-inner\">\r\n <div className=\"PullToRefresh-content\">\r\n {props.children}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"ChatFooter\"></div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default HeadeNavbar;\r\n","import { postFetch, getGssfServerList, formDataPostFetch } from '../utils/request';\r\nimport { main, newEntityList, islocation } from '../utils/entity';\r\n\r\nconst requestUrl = \"https://\" +\r\n (\r\n newEntityList.findIndex(item => { return islocation(item.name) }) > -1\r\n ? `${(islocation('qa') || islocation('dev') || islocation('prv')) ? \"qa-\" : \"\"}${newEntityList.find(item => { return islocation(item.name) }).service}`\r\n : `${(islocation('qa') || islocation('dev') || islocation('prv')) ? \"qa\" : \"\"}${main.service}`\r\n );\r\n/**\r\n * @desc: 获取手机验证码\r\n * @param {type} phone { string } 手机号\r\n * @return: \r\n * url\tstring\t文件地址\r\n */\r\nexport async function getPhoneCode(data) {\r\n return postFetch(requestUrl + '/api/ticket/phone-code', {\r\n phone: data.phone\r\n });\r\n}\r\n\r\n/**\r\n * @desc: 获取游戏列表\r\n * @return: \r\n * webgame2018\t{ object of arr }\t网页游戏\r\n * mobgame\t{ object of arr }\t手机游戏\r\n * object参数如下:\r\n * game_name\tstring\t游戏名称\r\n * game_id\t int\t 游戏id\r\n * game_type\tstring\t游戏类型 1、页游 2、手游\r\n * img\t string\t游戏图片\r\n * is_ticket\tint\t 是否配置工单系统 (1 是则渲染列表,0 否则不渲染)\r\n */\r\nexport async function getAllGames(data) {\r\n return postFetch(requestUrl + '/api/ticket/all-games', {});\r\n}\r\n\r\n/**\r\n * @desc: 根据游戏获取渠道op_id列表\r\n * @param {type} game_id {init} 游戏id\r\n * @param {type} game_type {init} 游戏类型 1、页游 2、手游\r\n * @return: \r\n * data\t{ object of arr }\t网页游戏\r\n * object参数如下:\r\n * op_id\t int\t 渠道id\r\n * op_name\t string\t渠道名称\r\n */\r\nexport async function getOpIdList(data) {\r\n return postFetch(requestUrl + '/api/ticket/all-games', {\r\n game_id: data.game_id,\r\n game_type: data.game_type,\r\n });\r\n}\r\n\r\n/**\r\n * @desc: 根据游戏获取区服server_list列表\r\n * @param {type} game_id {init} 游戏id\r\n * @param {type} op_id {init} 渠道id\r\n * @return: \r\n * data\t{ object of arr }\t网页游戏\r\n * object参数如下:\r\n * server_id\t int\t 区服id\r\n * server_name\t string\t区服名称\r\n */\r\nexport async function getServerList(data) {\r\n return getGssfServerList(data.game_id, data.op_id);\r\n}\r\n\r\n/**\r\n * @desc: 根据游戏及区服获取用户角色\r\n * @param {type} account {int} 用户账号\r\n * @param {type} game_type {int} 游戏类型 1、页游 2、手游\r\n * @param {type} game_id {int} 游戏id\r\n * @param {type} op_id {int} 渠道id\r\n * @param {type} server_id {int} 区服id\r\n * @return: \r\n * data\t{ object of arr }\t网页游戏\r\n * object参数如下:\r\n * op_id\t int\t 平台id\r\n * op_name\t string\t平台名称\r\n */\r\nexport async function getRoleList(data) {\r\n return postFetch(requestUrl + '/api/ticket/game-rolelist', {\r\n account: data.account,\r\n game_type: Number(data.activeGameType),\r\n game_id: Number(data.game_id),\r\n op_id: Number(data.op_id),\r\n server_id: Number(data.server_id),\r\n });\r\n}\r\n\r\n/**\r\n * @desc: 获取分类 (服务中转:后台转调国内客服后台)\r\n * @param {type} method {string} 转接后台地址\r\n * @param {type} id {init} 游戏id\r\n * @return: \r\n * list\t{ object of arr }\t分类列表\r\n * object参数如下:\r\n * name \tstring\t分类标题\r\n * img\t string\t暂无用途\r\n * templates { Object of arr }\t子分类列表\r\n * Object参数如下:\r\n * id \t int \t分类id\r\n * title\t string\t模板标题\r\n * img\t string\t分类图片\r\n * desc \tstring\t分类描述\r\n * needVerify\tBoolean 待确认\t\r\n */\r\nexport async function getCategory(data) {\r\n return postFetch(requestUrl + '/api/ticket/index', {\r\n method: 'TicketFrontService.getTemplateList',\r\n gameId: Number(data.gameId)\r\n });\r\n}\r\n\r\n/**\r\n * @desc: 获取模板 (服务中转:后台转调国内客服后台)\r\n * @param {type} method {string} 转接后台地址\r\n * @param {type} tplId {init} 分类id\r\n * @return: \r\n * id \t int\t 分类id\r\n * tpl_id \tint\t 模板id\r\n * title \tstring\t模板标题\r\n * img \t string\t待确认\r\n * desc \tstring\t模板的介绍\r\n * needVerify\tBoolean\t待确认\r\n * fields { Object of arr }\t自定义字段\r\n * Object参数如下:\r\n * type \tint \t字段类型\r\n * name\t string\t字段标题名称\r\n * content\t string 字段填充内容(原接口案例为Object类型,需要确认)\r\n * desc \tstring\t字段的介绍,用法参见原型\r\n * required\tBoolean 是否必填\t\r\n * uid \tint 唯一id\t\r\n */\r\nexport async function getTemplate(data) {\r\n return postFetch(requestUrl + '/api/ticket/index', {\r\n method: 'TicketFrontService.getTemplate',\r\n tplId: Number(data.tplId)\r\n });\r\n}\r\n\r\n/**\r\n * @desc: 创建工单 (服务中转:后台转调国内客服后台)\r\n * @param {type} \"entity_id\": 1, // 主体 1游族 2杜尚\r\n * @param {type} \"id\": 0, // 永远是0\r\n * @param {type} \"account\":\"1234568\", // 内部账号\r\n * @param {type} \"status\":0, // 永远是0\r\n * @param {type} \"source\":1, //1 平台service,3 QQ,4 微信,5 电话,6 七鱼\r\n * @param {type} \"source_number\":\"\", // qq号/微信号/手机号,没有放空\r\n * @param {type} \"leaf_cat_id\":0, // 永远是0\r\n * @param {type} \"game_id\":200,\r\n * @param {type} \"op_id\":2107,\r\n * @param {type} \"role_name\":\"角色名\",\r\n * @param {type} \"server_id\":\"服务器id\",\r\n * @param {type} \"tpl_id\":1, // template id\r\n * @param {type} \"content\":\"{}\", // 所有自定义字段,详情见自定义模板文档\r\n * @param {type} \"cur_handler\":\"\", // 永远是空\r\n * @param {type} \"group_id\":0, // 永远是0\r\n * @param {type} \"last_update_time\":0, // 永远是0\r\n * @param {type} \"classify\":1, // classify id, 理论上用不到\r\n * @param {type} \"create_time\":0, // 永远是0\r\n * @param {type} \"satisfaction\":0, // 永远是0\r\n * @param {type} \"rating_status\":0, // 永远是0\r\n * @param {type} \"completion\":0, // 永远是0\r\n * @param {type} \"evaluator\":\"\" // 永远是空\r\n * 备注:\r\n * @return: {}\r\n */\r\n// createTicket: function (account, game_id, op_id, role_name, server_id, tpl_id, content, callback) {\r\nexport async function createTicket(data) {\r\n return postFetch(requestUrl + '/api/ticket/index', {\r\n method: 'TicketFrontService.createTicket',\r\n ...data\r\n });\r\n}\r\n\r\n/**\r\n * @desc: 获取单个工单 (服务中转:后台转调国内客服后台)\r\n * @param {type} method {string} 转接后台地址\r\n * @param {type} ticketId {init} 工单id\r\n * @return: \r\n * \"id\": 0, // 永远是0\r\n * \"account\":\"1234568\", // 内部账号\r\n * \"status\":0, // 永远是0\r\n * \"source\":1, //1 平台service,3 QQ,4 微信,5 电话,6 七鱼\r\n * \"source_number\":\"\", // qq号/微信号/手机号,没有放空\r\n * \"leaf_cat_id\":0, // 永远是0\r\n * \"game_id\":200,\r\n * \"op_id\":2107,\r\n * \"role_name\":\"角色名\",\r\n * \"server_id\":\"服务器id\",\r\n * \"tpl_id\":1, // template id\r\n * \"content\":\"{}\", // 所有自定义字段,详情见自定义模板文档\r\n * \"cur_handler\":\"\", // 永远是空\r\n * \"group_id\":0, // 永远是0\r\n * \"last_update_time\":0, // 永远是0\r\n * \"classify\":1, // classify id, 理论上用不到\r\n * \"create_time\":0, // 永远是0\r\n * \"satisfaction\":0, // 永远是0\r\n * \"rating_status\":0, // 永远是0\r\n * \"completion\":0, // 永远是0\r\n * \"evaluator\":\"\" // 永远是空\r\n */\r\nexport async function getOneTicket(data) {\r\n return postFetch(requestUrl + '/api/ticket/index', {\r\n method: 'TicketFrontService.getOneTicket',\r\n ticketId: Number(data.ticketId)\r\n });\r\n}\r\n\r\n/**\r\n * @desc: 获取玩家的工单列表 (服务中转:后台转调国内客服后台)\r\n * @param {type} method {string} 转接后台地址\r\n * @param {type} account {string} 内部账号\r\n * @param {type} pagination {Object} 内部账号\r\n * Object: \r\n * @param {type} limit {init} 请求条数,\r\n * @param {type} offset {init} OFFSET理解成开端索引或者叫起始索引,OFFSET后面跟索引,\r\n * @return: \r\n * \"id\": 0, // 永远是0\r\n * \"account\":\"1234568\", // 内部账号\r\n * \"status\":0, // 永远是0\r\n * \"source\":1, //1 平台service,3 QQ,4 微信,5 电话,6 七鱼\r\n * \"source_number\":\"\", // qq号/微信号/手机号,没有放空\r\n * \"leaf_cat_id\":0, // 永远是0\r\n * \"game_id\":200,\r\n * \"op_id\":2107,\r\n * \"role_name\":\"角色名\",\r\n * \"server_id\":\"服务器id\",\r\n * \"tpl_id\":1, // template id\r\n * \"content\":\"{}\", // 所有自定义字段,详情见自定义模板文档\r\n * \"cur_handler\":\"\", // 永远是空\r\n * \"group_id\":0, // 永远是0\r\n * \"last_update_time\":0, // 永远是0\r\n * \"classify\":1, // classify id, 理论上用不到\r\n * \"create_time\":0, // 永远是0\r\n * \"satisfaction\":0, // 永远是0\r\n * \"rating_status\":0, // 永远是0\r\n * \"completion\":0, // 永远是0\r\n * \"evaluator\":\"\" // 永远是空\r\n */\r\nexport async function getTicketList(data) {\r\n return postFetch(requestUrl + '/api/ticket/index', {\r\n method: 'TicketFrontService.getTicketList',\r\n account: data.account,\r\n page: 1,\r\n pageSize: 10\r\n });\r\n}\r\n\r\n/**\r\n * @desc: 更新工单满意度和完成度 (服务中转:后台转调国内客服后台)\r\n * @param {type} method {string} 转接后台地址\r\n * @param {type} id {init} 分类模板id\r\n * @param {type} csi {init} 满意度 1~5 非常不满意~非常满意\r\n * @param {type} resolved {init} 解决度 1 未解决 0 已解决\r\n * @return: {}\r\n */\r\nexport async function updateTicketSatisfaction(data) {\r\n return postFetch(requestUrl + '/api/ticket/index', {\r\n method: 'TicketFrontService.updateTicketSatisfaction',\r\n account: data.account,\r\n ticketId: Number(data.id),\r\n csi: Number(data.csi),\r\n resolved: Number(data.resolved),\r\n });\r\n}\r\n\r\n/**\r\n * 获取工单对话记录\r\n * @param {number} ticketId 工单id\r\n * @param {*} callback \r\n */\r\nexport async function ticketInfoList(data) {\r\n return postFetch(requestUrl + '/api/ticket/index', {\r\n method: 'TicketFrontService.ticketInfoList',\r\n ticketId: Number(data.ticketId),\r\n role: 2\r\n });\r\n}\r\n\r\n/**\r\n * 回复工单\r\n * @param {number} id 工单id\r\n * @param {object} meta 信息\r\n * @param {function} callback \r\n */\r\nexport async function ticketInfoReply(data) {\r\n return postFetch(requestUrl + '/api/ticket/index', {\r\n method: 'TicketFrontService.ticketReply',\r\n ticketId: Number(data.id),\r\n content: data.content,\r\n file_url: data.file_url,\r\n account: data.account,\r\n role: 2,\r\n });\r\n}\r\n\r\n/**\r\n * 工单消息已读\r\n * @param {number} ticketId 工单id\r\n * @param {function} callback \r\n */\r\nexport async function ticketInfoRead(data) {\r\n return postFetch(requestUrl + '/api/ticket/index', {\r\n method: 'TicketFrontService.ticketRead',\r\n ticketId: Number(data.ticketId),\r\n role: 2,\r\n });\r\n}\r\n\r\n/**\r\n * 图片上传\r\n * @param {number} id 工单id\r\n * @param {function} callback \r\n */\r\nexport async function fileUpload(data) {\r\n return formDataPostFetch(requestUrl + '/api/ticket/upload', data);\r\n}\r\n\r\n// ?account=16149137860600006467&clientVersion=111&expand=333&game_id=352&netWorkType=WIFI&op_id=2107&phoneModel=WLZ-AN00&role_id=123&serverVersion=222&server_id=034401&sign=52b5527fb4640358876fd4493ae4a0b8","import React, { useState, useEffect } from 'react';\r\nimport { Flex, FlexItem, Image } from '@chatui/core';\r\nimport HeadeNavbar from '../components/headeNavbar'\r\nimport { getCategory } from '../services/ticket';\r\nimport { searchObj } from '../utils/util';\r\nimport { newEntityList, islocation } from '../utils/entity';\r\n\r\nconst WorkOrderList = props => {\r\n const [templateList, setTemplateList] = useState([]);\r\n\r\n useEffect(() => {\r\n const search = searchObj(props.location.search);\r\n if (search && search.game_id) {\r\n getCategory({ gameId: search.game_id })\r\n .then(res => {\r\n if (res.code === 0 && res.data.code === 0) {\r\n setTemplateList(res.data.data)\r\n }\r\n })\r\n } else {\r\n window.location.replace(`${window.location.origin}/closeWin`)\r\n }\r\n }, [props.location, props.history]);\r\n\r\n return (\r\n <HeadeNavbar title={\"问题反馈\"} myButton close={newEntityList.findIndex(item => { return islocation(item.name) }) > -1}>\r\n {templateList.map((item, index) => {\r\n return <Flex key={item.id} direction='column' style={{ padding: '8px 16px' }}>\r\n <FlexItem style={{ marginLeft: '0.75em', marginTop: '1em', paddingLeft: '12px', borderStyle: 'none none none solid', borderColor: \"var(--brand-1)\", borderWidth: '4px' }}>\r\n <span style={{ fontSize: '18px', lineHeight: '18px' }}>{item.name}</span>\r\n </FlexItem>\r\n <FlexItem style={{ marginLeft: '1em', marginRight: '1em' }}>\r\n <Flex direction='row' wrap='wrap' justifyContent='flex-start'>\r\n {item.tpl.map((_item, _index) => {\r\n return <FlexItem key={_item.id} flex='none' style={{\r\n margin: '8px 4px',\r\n width: '70px',\r\n }} >\r\n <Flex\r\n direction='column'\r\n justifyContent='center'\r\n alignItems='stretch'\r\n onClick={() => { props.history.push({ pathname: '/workOrderSubmit', search: props.location.search, query: { tplId: _item.id } }) }}\r\n >\r\n <FlexItem alignSelf='auto' style={{\r\n textAlign: 'center',\r\n marginTop: '5px',\r\n marginBottom: '10px',\r\n }}>\r\n <Image src={_item.icon} width=\"30\" height=\"30\" lazy alt={_item.title} />\r\n </FlexItem>\r\n <FlexItem alignSelf='auto' style={{ textAlign: 'center' }}>\r\n <span style={{ fontSize: '12px' }}>{_item.title}</span>\r\n </FlexItem>\r\n </Flex>\r\n </FlexItem>\r\n })}\r\n </Flex>\r\n </FlexItem>\r\n </Flex>\r\n })\r\n }\r\n {newEntityList.findIndex(item => { return islocation(item.name) }) === -1 &&\r\n <Flex center direction='column' justifyContent='center' style={{ marginTop: '15px' }}>\r\n <FlexItem>\r\n <span>如以上支持仍无法解决您的问题,您可在QQ向游族企业号</span>\r\n </FlexItem>\r\n <FlexItem>\r\n <span><span style={{ color: \"var(--brand-1)\" }}>4006689919</span> 提问咨询</span>\r\n </FlexItem>\r\n </Flex>}\r\n </HeadeNavbar>\r\n );\r\n};\r\n\r\nexport default WorkOrderList;\r\n","import React from 'react';\r\nimport { Cascader } from 'antd';\r\n\r\nconst CitySelect = props => {\r\n const { onChange, value, placeholder } = props;\r\n\r\n var cityObj = window.cityList\r\n if (cityObj) {\r\n const options = Object.keys(cityObj[1]).map(key => {\r\n return {\r\n value: cityObj[1][key],\r\n label: cityObj[1][key],\r\n children: Object.keys(cityObj[key]).map(item => {\r\n return {\r\n value: cityObj[key][item],\r\n label: cityObj[key][item],\r\n }\r\n })\r\n }\r\n })\r\n return <Cascader options={options} onChange={onChange} value={value} placeholder={placeholder} />\r\n }\r\n};\r\n\r\nexport default CitySelect;\r\n","import React, { useState } from 'react';\r\nimport { Modal, Button, Upload, message } from 'antd';\r\nimport { UploadOutlined } from '@ant-design/icons';\r\nimport { fileUpload } from '../../services/ticket';\r\nimport { searchObj } from '../../utils/util';\r\nlet { gta_version_ios, sdkVersion } = searchObj(window.location.search)\r\ngta_version_ios = gta_version_ios ? gta_version_ios : sdkVersion\r\ngta_version_ios = gta_version_ios > '5.5.7' ? true : false\r\nconst UploadDragger = props => {\r\n const { accept = 'image/*', maxCount = 1, placeholder, onChange, fileList, listType = 'text' } = props;\r\n const [imgUrl, setImgUrl] = useState(\"\");\r\n const [upList, setUpList] = useState(fileList || [])\r\n const [uploading, setUploading] = useState(false);\r\n function getBase64(file) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = error => reject(error);\r\n });\r\n }\r\n\r\n const fileByBase64 = (file) => {\r\n return new Promise((resolve, reject) => {\r\n var reader = new FileReader();\r\n // 传入一个参数对象即可得到基于该参数对象的文本内容\r\n reader.readAsDataURL(file);\r\n reader.onload = function (e) {\r\n // target.result 该属性表示目标对象的DataURL\r\n console.log(e.target.result);\r\n resolve(e.target.result)\r\n };\r\n reader.onerror = error => reject(error);\r\n })\r\n }\r\n \r\n\r\n const imgOnPreview = () => {\r\n if (listType === 'picture') {\r\n return {\r\n onPreview: async file => {\r\n console.log(file)\r\n if (!file.url && !file.preview) {\r\n if(gta_version_ios){\r\n file.preview = await fileByBase64(file)\r\n } else {\r\n file.preview = await getBase64(file.originFileObj);\r\n }\r\n }\r\n setImgUrl(file.url || file.preview)\r\n }\r\n }\r\n } else {\r\n return {}\r\n }\r\n };\r\n\r\n const iosUpload = (url) => {\r\n let file = base64toFile(url)\r\n if (accept === 'video/*') {\r\n if(file.size >= 1024*1024*20){\r\n message.error(`视频大于20M,请重新上传`);\r\n return\r\n }\r\n }\r\n console.log(file, \"我是url\")\r\n setUploading(true)\r\n uploadConfig.customRequest({file})\r\n }\r\n\r\n const iosSelectImage = () => {\r\n console.log(\"选择图片\")\r\n if(window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.selectImage){\r\n window.webkit.messageHandlers.selectImage.postMessage('')\r\n } else {\r\n iosUpload('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAGKADAAQAAAABAAAAGAAAAADiNXWtAAACWklEQVRIDbVWPYsUQRB91TOzrrqeeHiJBn4hGJgaCpeJiOEam+iFRiL+DkFMTk4NVFbEwEiT+wPiPzBRI+HE89D1ZnvK6tqZnunZ3lkEt2HoqlevX830dlUvoWPwcJig/6OPPduHRYp03yh90iuQYIJBMsb46JhGIztPhmIBFc6/HUGRH4rFZzCT/UK29jOWaCYB31zvY9cew6SYic0IN4HUMFaS77S1PW7CgQgP1wf4k680Cf9sH8h2abS9V62b7ql4+uad4uZMtahzFg3VKkmaQPfcbUvXYH4FpkcwfLCLpjHRUk1xpl/gftCuPWdKQbQm/Ouw9GBhAqflNF0CzbTwtPANMCdTYboqy64tTCKaTtvoOe9iU3pOtuZ+QGHcCvx5jtSQ0SKaR2C+gMK+BmE1pPAlFMlhgF7AvcC8IQVqtEJjhIQGshXPJHQ8FoYp7oJxWV7gIYztRTlS/caXf5sxwW2BTrRh79fbdBE23fB405DW4uugiZf24h/SL6Ir3mwZBq5xRQedjsIxkPh8DHbaRrtiNMpBTykpb2V2TzgYMS6cttGWG9KnHuFjC94E8YY+wGYQI3wI/MqRdm5cP6/8YGZ6GvjAlveL5Im31TDPQ7/0RNtoD3f9vD2oeCfn/E0N73/1tvn9pbbpJWDfe78yRNNpT0+RXBZyYrmK1TPfkSJzXyKx3skaL23CY+T2Xo2XltNymjL8faAtdidvVWy5oEhPSbNLQPknRTg7K00vlxr6XDLCaTXbqS4en8AxlnHhBAk0yTKvzOo7tYUv69KvkujX/Ie/LX8BxtDk725lA2AAAAAASUVORK5CYII=')\r\n }\r\n }\r\n\r\n function base64toFile (dataurl) {\r\n let arr = dataurl.split(',')\r\n let mime = arr[0].match(/:(.*?);/)[1]\r\n let suffix = mime.split('/')[1]\r\n let bstr = atob(arr[1])\r\n let n = bstr.length\r\n let u8arr = new Uint8Array(n)\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n)\r\n }\r\n return new File([u8arr], `${upList.length}.${suffix}`, {\r\n type: mime\r\n })\r\n }\r\n\r\n const btnClick = (event) => {\r\n if(gta_version_ios){\r\n event.stopPropagation();\r\n if(upList.length >= maxCount) return\r\n accept.indexOf('image') > -1 ? iosSelectImage() : iosSelectMovie()\r\n }\r\n }\r\n\r\n const iosSelectMovie = () => {\r\n console.log(\"选择视频\")\r\n if(window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.selectMovie){\r\n window.webkit.messageHandlers.selectMovie.postMessage('')\r\n }\r\n }\r\n\r\n window[accept === 'image/*' ? 'uploadFile' : 'uploadMedia'] = iosUpload\r\n \r\n const uploadConfig = {\r\n accept: accept,\r\n maxCount: maxCount,\r\n customRequest: data => {\r\n console.log(data)\r\n fileUpload({ upload_img: data.file }).then(res => {\r\n console.log(res)\r\n if(gta_version_ios){\r\n setUploading(false)\r\n if (res.code === 0) {\r\n data.file['response'] = res\r\n setUpList([...upList, data.file])\r\n onChange({fileList: [...upList, data.file]})\r\n } else {}\r\n } else {\r\n if (res.code === 0) {\r\n data.onSuccess(res)\r\n } else {\r\n data.onError(res.msg || \"上传失败\", res)\r\n }\r\n }\r\n })\r\n },\r\n onRemove: file => {\r\n const index = upList.indexOf(file);\r\n const newFileList = upList.slice();\r\n newFileList.splice(index, 1);\r\n setUpList(newFileList);\r\n onChange({fileList: newFileList})\r\n },\r\n beforeUpload: file => {\r\n if (accept === 'video/*') {\r\n if (file.type !== 'video/mp4' && file.type !== 'video/avi' && file.type !== 'video/quicktime') {\r\n message.error(`${file.name}不是.mp4,.avi,.mov文件`);\r\n return Upload.LIST_IGNORE;\r\n } else {\r\n return true\r\n }\r\n }\r\n if (accept === 'image/*') {\r\n if (file.type !== 'image/png' && file.type !== 'image/jpeg' && file.type !== 'image/gif') {\r\n message.error(`${file.name}不是.png,.jpg,.gif文件`);\r\n return Upload.LIST_IGNORE;\r\n } else {\r\n return true\r\n }\r\n }\r\n return true;\r\n },\r\n ...imgOnPreview()\r\n };\r\n\r\n return (\r\n <>\r\n {<Upload {...uploadConfig} onChange={onChange} fileList={gta_version_ios ? upList :fileList} listType={listType}>\r\n <Button loading={uploading} onClick={btnClick} icon={<UploadOutlined />}>{placeholder || '点击上传文件'}</Button>\r\n </Upload>}\r\n \r\n {listType === 'picture' && <Modal\r\n title={'预览'}\r\n visible={imgUrl}\r\n footer={null}\r\n onCancel={() => setImgUrl('')}\r\n >\r\n <img alt=\"example\" style={{ width: '100%' }} src={imgUrl} />\r\n </Modal>}\r\n </>\r\n );\r\n};\r\n\r\nexport default UploadDragger;\r\n","import React from 'react';\r\nimport { Button, toast } from '@chatui/core';\r\nimport { getPhoneCode } from '../../services/ticket';\r\n\r\nconst PhoneCodeButton = props => {\r\n const { formName, form } = props;\r\n const [counter, setCounter] = React.useState(0);\r\n\r\n React.useEffect(() => {\r\n if (counter > 0) {\r\n setTimeout(() => {\r\n setCounter(counter - 1)\r\n }, 1000);\r\n }\r\n }, [counter]);\r\n\r\n const fetchPhoneCode = () => {\r\n const phone = form.getFieldValue(formName);\r\n if (counter > 0) {\r\n toast.show('请稍后操作')\r\n } else if (!phone) {\r\n toast.fail('请填写手机号码')\r\n } else {\r\n getPhoneCode({ phone: phone })\r\n .then(res => {\r\n if (res.code === 0) {\r\n toast.success(res.msg || '发送成功')\r\n setCounter(120)\r\n } else {\r\n toast.fail(res.msg || '发送失败')\r\n }\r\n })\r\n }\r\n }\r\n const secondsToMMSS = (seconds) => {\r\n var m = Math.floor(seconds / 60);\r\n var s = seconds % 60;\r\n\r\n return (m < 10 ? '0' : '') + m + \":\" + ('0' + s).slice(-2);\r\n }\r\n\r\n return <Button color=\"primary\" block onClick={() => fetchPhoneCode()}>{counter > 0 ? secondsToMMSS(counter) : '获取验证码'}</Button>\r\n};\r\n\r\nexport default PhoneCodeButton;\r\n","import React from 'react';\r\nimport { Form, DatePicker, TimePicker, Input, Select, InputNumber, Row, Col } from \"antd\";\r\n// import \"./index.css\";\r\nimport CitySelect from \"../antdFormContent/citySelect\";\r\n// import GameRole from \"../antdFormContent/gameRole\";\r\nimport UploadDragger from \"../antdFormContent/uploadDragger\";\r\nimport PhoneCodeButton from \"./phoneCodeButton\";\r\n\r\nconst AntdFormContent = (item, index, form) => {\r\n switch (Number(item.type)) {\r\n /* date input */\r\n case 1:\r\n return <Form.Item\r\n key={index}\r\n name={index}\r\n label={item.name}\r\n rules={[{ required: item.required, message: '请选择日期' }]}\r\n >\r\n <DatePicker placeholder={item.desc} inputReadOnly={true} style={{ width: '100%' }} />\r\n </Form.Item>\r\n /* date + time */\r\n case 2:\r\n return <Form.Item\r\n key={index}\r\n label={item.name}\r\n required={item.required}\r\n >\r\n <Row gutter={[16, 16]}>\r\n <Col span={12} >\r\n <Form.Item\r\n name={[index, 'date']}\r\n rules={[{ required: item.required, message: '请选择日期' }]}\r\n >\r\n <DatePicker placeholder={\"日期\"} inputReadOnly={true} style={{ width: '100%' }} />\r\n </Form.Item>\r\n </Col>\r\n <Col span={12}>\r\n <Form.Item\r\n name={[index, 'time']}\r\n rules={[{ required: item.required, message: '请选择时间' }]}\r\n >\r\n <TimePicker placeholder={\"时间\"} inputReadOnly={true} style={{ width: '100%' }} />\r\n </Form.Item>\r\n </Col>\r\n </Row>\r\n </Form.Item>\r\n /* multi line text input */\r\n case 3:\r\n return <Form.Item\r\n key={index}\r\n name={index}\r\n label={item.name}\r\n rules={[{ required: item.required, message: '请输入信息' }]}\r\n >\r\n <Input.TextArea autoSize={{ minRows: 3 }} placeholder={item.desc} />\r\n </Form.Item>\r\n /* single line text input */\r\n case 4:\r\n return <Form.Item\r\n key={index}\r\n name={index}\r\n label={item.name}\r\n rules={[{ required: item.required, message: '请输入信息' }]}\r\n >\r\n <Input placeholder={item.desc} />\r\n </Form.Item>\r\n /* number input */\r\n case 5:\r\n return <Form.Item\r\n key={index}\r\n name={index}\r\n label={item.name}\r\n rules={[{ required: item.required, message: '请输入信息' }]}\r\n >\r\n <InputNumber placeholder={item.desc} style={{ width: '100%' }} />\r\n </Form.Item>\r\n /* drop down list */\r\n case 6:\r\n return <Form.Item\r\n key={index}\r\n name={index}\r\n label={item.name}\r\n rules={[{ required: item.required, message: '请选择内容' }]}\r\n >\r\n <Select placeholder={item.desc}>\r\n {JSON.parse(item.content).map((item, index) => {\r\n return <Select.Option key={index} value={item.label}>{item.label}</Select.Option>\r\n })}\r\n </Select>\r\n </Form.Item>\r\n /* 身份证 ()*/\r\n case 20:\r\n return <Form.Item\r\n key={index}\r\n label={item.name}\r\n required={item.required}\r\n >\r\n <Row gutter={[16, 16]}>\r\n <Col span={16} >\r\n <Form.Item\r\n name={[index, 'ic']}\r\n rules={[{ required: item.required, message: '请输入身份证号码' }, { len: 18, message: '请输入18位身份证号码' }]}\r\n >\r\n <Input placeholder={'身份证号码'} />\r\n </Form.Item>\r\n </Col>\r\n <Col span={8}>\r\n <Form.Item\r\n name={[index, 'name']}\r\n rules={[{ required: item.required, message: '请输入身份证姓名' }]}\r\n >\r\n <Input placeholder={'身份证姓名'} />\r\n </Form.Item>\r\n </Col>\r\n </Row>\r\n </Form.Item>\r\n /* 生日 */\r\n case 21:\r\n return <Form.Item\r\n key={index}\r\n name={index}\r\n label={item.name}\r\n rules={[{ required: item.required, message: '请选择日期' }]}\r\n >\r\n <DatePicker placeholder={item.desc} inputReadOnly={true} style={{ width: '100%' }} />\r\n </Form.Item>\r\n /* 标题 */\r\n case 22:\r\n return <Form.Item\r\n key={index}\r\n name={index}\r\n label={item.name}\r\n rules={[{ required: item.required, message: '请输入信息' }]}\r\n >\r\n <Input placeholder={item.desc} />\r\n </Form.Item>\r\n /* 内容 */\r\n case 23:\r\n return <Form.Item\r\n key={index}\r\n name={index}\r\n label={item.name}\r\n rules={[{ required: item.required, message: '请输入信息' }]}\r\n >\r\n <Input.TextArea autoSize={{ minRows: 3 }} placeholder={item.desc} />\r\n </Form.Item>\r\n /* video link */\r\n case 24:\r\n return <Form.Item\r\n key={index}\r\n name={index}\r\n label={item.name}\r\n rules={[{ required: item.required, message: '请上传视频' }]}\r\n valuePropName=\"fileList\"\r\n getValueFromEvent={(e) => {\r\n if (Array.isArray(e)) { return e; }\r\n return e && e.fileList;\r\n }}\r\n >\r\n <UploadDragger accept=\"video/*\" maxCount={1} placeholder=\"上传视频,最大不超过20M,格式mp4,avi,mov\" />\r\n </Form.Item>\r\n /* image file */\r\n case 25:\r\n return <Form.Item\r\n key={'1' + index}\r\n name={index}\r\n label={item.name}\r\n rules={[{ required: item.required, message: '请上传图片' }]}\r\n valuePropName=\"fileList\"\r\n getValueFromEvent={(e) => {\r\n console.log(e)\r\n if (Array.isArray(e)) { return e; }\r\n return e && e.fileList;\r\n }}\r\n >\r\n <UploadDragger accept=\"image/*\" listType=\"picture\" maxCount={3} placeholder=\"上传图片,最大不能超过20M,格式png,jpg,gif\" />\r\n </Form.Item>\r\n /* game role, platform + server + role_id */\r\n case 26:\r\n return <Form.Item\r\n key={index}\r\n name={index}\r\n label={item.name}\r\n rules={[{ required: item.required, message: '请输入信息' }]}\r\n >\r\n {/* <GameRole placeholder={item.desc} /> */}\r\n <Input placeholder={item.desc} />\r\n </Form.Item>\r\n /* email */\r\n case 27:\r\n return <Form.Item\r\n key={index}\r\n name={index}\r\n label={item.name}\r\n rules={[{ required: item.required, message: '请输入邮箱' }, { type: 'email', message: '请输入正确的邮箱地址' }]}\r\n >\r\n <Input placeholder={item.desc} />\r\n </Form.Item>\r\n /* province + city */\r\n case 28:\r\n return <Form.Item\r\n key={index}\r\n name={index}\r\n label={item.name}\r\n rules={[{ required: item.required, message: '请选择地址' }]}\r\n >\r\n <CitySelect placeholder={item.desc} />\r\n </Form.Item>\r\n /* IM contact */\r\n case 29:\r\n return <Form.Item\r\n key={index}\r\n name={index}\r\n label={item.name}\r\n rules={[{ required: item.required, message: '请输入信息' }]}\r\n >\r\n <Input placeholder={item.desc} />\r\n </Form.Item>\r\n /* phone number */\r\n case 30:\r\n return <Form.Item\r\n key={index}\r\n label={item.name}\r\n required={item.required}\r\n >\r\n <Row gutter={[16, 16]}>\r\n <Col span={24} >\r\n <Form.Item\r\n name={[index, 'phone']}\r\n rules={[\r\n { required: item.required, message: '缺少手机号码' },\r\n { pattern: /^[1](([3][0-9])|([4][5-9])|([5][0-3,5-9])|([6][5,6])|([7][0-8])|([8][0-9])|([9][1,8,9]))[0-9]{8}$/, message: '手机号格式错误,请重新输入' }]}\r\n >\r\n <InputNumber min={1} precision={0} placeholder={'手机号码'} style={{ width: '100%' }} />\r\n </Form.Item>\r\n </Col>\r\n <Col span={12}>\r\n <Form.Item\r\n name={[index, 'code']}\r\n rules={[{ required: item.required, message: '缺少验证码' }]}\r\n >\r\n <Input placeholder={'验证码'} />\r\n </Form.Item>\r\n </Col>\r\n <Col span={12}>\r\n <PhoneCodeButton formName={[index, 'phone']} form={form} />\r\n </Col>\r\n </Row>\r\n </Form.Item>\r\n default:\r\n return null\r\n }\r\n}\r\n\r\nexport default AntdFormContent;\r\n","import moment from 'moment';\r\n\r\nconst CreateTicketFormFields = (fieldsList, values) => {\r\n const fieldsContent = (item, index) => {\r\n const data = values[index]\r\n switch (Number(item.type)) {\r\n /* date input */\r\n case 1:\r\n return {\r\n content: data ? data.startOf('day').unix() : \"\",\r\n content_value: data ? data.startOf('day').format('YYYY-MM-DD HH:mm:ss') : \"\"\r\n }\r\n /* date + time */\r\n case 2:\r\n if (data.date && data.time) {\r\n const date = data.date.format('YYYY-MM-DD');\r\n const time = data.time.format('HH:mm:ss')\r\n const allTime = moment(`${date} ${time}`, \"YYYY-MM-DD HH:mm:ss\")\r\n return {\r\n content: allTime.unix(),\r\n content_value: allTime.format('YYYY-MM-DD HH:mm:ss')\r\n }\r\n } else {\r\n return {\r\n content: \"\",\r\n content_value: \"\"\r\n }\r\n }\r\n /* multi line text input */\r\n case 3:\r\n return {\r\n content: JSON.stringify(data),\r\n content_value: data\r\n }\r\n /* single line text input */\r\n case 4:\r\n return {\r\n content: JSON.stringify(data),\r\n content_value: data\r\n }\r\n /* number input */\r\n case 5:\r\n return {\r\n content: JSON.stringify(data),\r\n content_value: data\r\n }\r\n /* drop down list */\r\n case 6:\r\n if (item.content) {\r\n return {\r\n content: JSON.stringify({\r\n key: JSON.parse(item.content).find(i => data === i.label).key,\r\n label: data || \"\",\r\n }),\r\n content_value: data || \"\"\r\n }\r\n } else {\r\n return {\r\n content: JSON.stringify({\r\n key: data || \"\",\r\n label: data || \"\",\r\n }),\r\n content_value: data || \"\"\r\n }\r\n }\r\n /* 身份证 */\r\n case 20:\r\n if (data.name) {\r\n return {\r\n content: JSON.stringify({\r\n ic: data.ic,\r\n name: data.name,\r\n }),\r\n content_value: data.ic\r\n }\r\n } else {\r\n return {\r\n content: JSON.stringify({\r\n ic: '',\r\n name: '',\r\n }),\r\n content_value: ''\r\n }\r\n }\r\n /* 生日 */\r\n case 21:\r\n return {\r\n content: data ? data.startOf('day').unix() : \"\",\r\n content_value: data ? data.startOf('day').format('YYYY-MM-DD HH:mm:ss') : \"\"\r\n }\r\n /* 标题 */\r\n case 22:\r\n return {\r\n content: JSON.stringify(data),\r\n content_value: data\r\n }\r\n /* 内容 */\r\n case 23:\r\n return {\r\n content: JSON.stringify(data),\r\n content_value: data\r\n }\r\n /* video link */\r\n case 24:\r\n if (data) {\r\n const fileList = data.filter(i => i.response && i.response.code === 0).map(i => { return { ch: i.name, url: i.response.data.url } })\r\n return {\r\n content: JSON.stringify(fileList),\r\n content_value: JSON.stringify(fileList.map(i => i.url)[0])\r\n }\r\n } else {\r\n return {\r\n content: JSON.stringify([]),\r\n content_value: \"\"\r\n }\r\n }\r\n /* image file */\r\n case 25:\r\n if (data) {\r\n const fileList = data.filter(i => i.response && i.response.code === 0).map(i => { return { ch: i.name, url: i.response.data.url } })\r\n return {\r\n content: JSON.stringify(fileList.map(i => i.url)),\r\n content_value: JSON.stringify(fileList.map(i => i.url))\r\n }\r\n } else {\r\n return {\r\n content: JSON.stringify([]),\r\n content_value: JSON.stringify([])\r\n }\r\n }\r\n /* game role, platform + server + role_id */\r\n case 26:\r\n return {\r\n content: JSON.stringify({\r\n \"operator_id\": \"\",\r\n \"operator_name\": \"\",\r\n \"server_id\": \"\",\r\n \"server_name\": \"\",\r\n \"role_id\": \"\",\r\n \"role_name\": data\r\n }),\r\n content_value: data\r\n }\r\n /* email */\r\n case 27:\r\n return {\r\n content: JSON.stringify(data),\r\n content_value: data\r\n }\r\n /* province + city */\r\n case 28:\r\n if (data && data.length > 0) {\r\n return {\r\n content: JSON.stringify({\r\n province: data[0],\r\n city: data[1]\r\n }),\r\n content_value: data.join(' ')\r\n }\r\n } else {\r\n return {\r\n content: JSON.stringify({\r\n province: '',\r\n city: ''\r\n }),\r\n content_value: ''\r\n }\r\n }\r\n /* IM contact */\r\n case 29:\r\n /* 区分验证类型与账户 */\r\n return {\r\n content: JSON.stringify([{ ch: 'qq', account: data }]),\r\n content_value: data\r\n }\r\n /* phone number */\r\n case 30:\r\n return {\r\n content: JSON.stringify({\r\n code: data.code,\r\n phone: data.phone\r\n }),\r\n content_value: data.phone\r\n }\r\n default:\r\n /* 图形验证码 */\r\n return {\r\n content: '',\r\n content_value: ''\r\n }\r\n };\r\n }\r\n\r\n return fieldsList.map((item, index) => {\r\n return {\r\n type: Number(item.type),\r\n field_uid: Number(item.uid),\r\n field_order: 0,\r\n field_name: item.name,\r\n required: item.required ? true : false,\r\n ...fieldsContent(item, index)\r\n }\r\n })\r\n}\r\n\r\nexport default CreateTicketFormFields;\r\n","/* eslint-disable */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { Text, Button, Flex, toast } from '@chatui/core';\r\nimport { Form, ConfigProvider } from \"antd\";\r\nimport HeadeNavbar from '../components/headeNavbar'\r\nimport AntdFormContent from '../components/template/antdFormContent'\r\nimport CreateTicketFormFields from '../components/template/createTicketFormFields'\r\nimport { getTemplate, createTicket } from '../services/ticket';\r\nimport { searchObj } from '../utils/util';\r\nimport moment from 'moment';\r\nimport { parse, stringify } from 'lossless-json';\r\nimport 'moment/locale/zh-cn';\r\nimport zhCN from 'antd/lib/locale/zh_CN';\r\nmoment.locale('zh-cn');\r\n// window.less.modifyVars({ '@primary-color': '#ffe092' })\r\n\r\nconst WorkOrderSubmit = props => {\r\n const [form] = Form.useForm();\r\n const [template, setTemplate] = useState({});\r\n const search = searchObj(props.location.search);\r\n\r\n useEffect(() => {\r\n if (search && search.game_id && search.account) {\r\n if (!props.location?.query?.tplId) {\r\n props.history.push({ pathname: '/workOrderList', search: props.location.search })\r\n } else {\r\n getTemplate({ tplId: props.location.query.tplId })\r\n .then(res => {\r\n if (res.code === 0 && res.data.code === 0) {\r\n setTemplate(res.data.data)\r\n }\r\n })\r\n }\r\n } else {\r\n window.location.replace(`${window.location.origin}/closeWin`)\r\n }\r\n }, []);\r\n\r\n let fieldsList = [];\r\n try {\r\n if (template.fields) {\r\n fieldsList = parse(template.fields)\r\n }\r\n } catch (err) {\r\n }\r\n\r\n const submit = () => {\r\n form\r\n .validateFields()\r\n .then((values) => {\r\n let expand = {}\r\n if (search.expand) {\r\n try {\r\n expand = parse(decodeURIComponent(search.expand));\r\n } catch (err) {\r\n }\r\n }\r\n const ticketForm = CreateTicketFormFields(fieldsList, values)\r\n let createTicketForm = {\r\n \"entity_id\": Number(search.entity_id) || 1, // 主体\r\n \"account\": search.account, // 内部账号\r\n \"username\": '', // 外部账号 $.cookie('uuzu_external_account')\r\n \"level\": Number(template.level),\r\n \"game_id\": Number(template.game_id),\r\n \"classify\": Number(template.classify),\r\n \"cat_id\": Number(template.cat_id),// 工单分类ID\r\n \"tpl_id\": Number(template.id), // 工单模版ID\r\n \"fields\": stringify(\r\n ticketForm.concat([{\r\n content: stringify({\r\n \"operator_id\": search.op_id,\r\n \"operator_name\": \"\",\r\n \"server_id\": expand.serverID || \"\",\r\n \"server_name\": expand.serverName || \"\",\r\n \"role_id\": expand.roleID || \"\",\r\n \"role_name\": expand.roleName || \"\"\r\n }),\r\n content_value: expand.roleName || \"\",\r\n field_name: \"角色名称\",\r\n field_order: 0,\r\n field_uid: fieldsList.length,\r\n required: false,\r\n type: 26\r\n }]),\r\n ),\r\n \"extendsValid\": { // 新增字段用于提交表单校验(内容包含:身份证名称,身份证号,手机号,手机验证码,图形验证码,后台发现为空则不校验)\r\n \"IDENTITY_NAME\": \"\",//身份证名称 ticketForm\r\n \"IDENTITY_CARD\": \"\",//身份证号\r\n \"PHONE_NUMBER\": \"\",//手机号\r\n \"PHONE_CODE\": \"\",//手机验证码\r\n \"GRAPHIC_CODE\": \"\",//图形验证码\r\n }\r\n }\r\n if (ticketForm.find(i => i.type === 20)) {\r\n const icJson = parse(ticketForm.find(i => i.type === 20).content);\r\n createTicketForm.extendsValid.IDENTITY_NAME = icJson.name;\r\n createTicketForm.extendsValid.IDENTITY_CARD = icJson.ic;\r\n }\r\n if (ticketForm.find(i => i.type === 30)) {\r\n const phoneJson = parse(ticketForm.find(i => i.type === 30).content);\r\n createTicketForm.extendsValid.PHONE_NUMBER = phoneJson.phone;\r\n createTicketForm.extendsValid.PHONE_CODE = phoneJson.code;\r\n }\r\n createTicket(createTicketForm)\r\n .then(res => {\r\n if (res.data.code === 0) {\r\n form.resetFields();\r\n toast.success('提交成功')\r\n props.history.push({ pathname: '/myWorkOrder', search: props.location.search })\r\n //跳转\r\n } else if (res.data.code === 2001) {\r\n toast.fail('同一个问题的事件未结束,不可再次提交事件')\r\n } else {\r\n toast.show(res.data.message || res.msg)\r\n }\r\n })\r\n })\r\n }\r\n\r\n return (\r\n <HeadeNavbar title={\"提交问题\"}>\r\n <ConfigProvider locale={zhCN}>\r\n <div style={{ padding: '1em 2em' }}>\r\n <Text>{template.desc}</Text><br />\r\n <Form\r\n layout='vertical'\r\n form={form}\r\n >\r\n {fieldsList.map((item, index) => {\r\n return AntdFormContent(item, index, form)\r\n })}\r\n </Form>\r\n <Flex >\r\n <p style={{ color: \"var(--brand-1)\" }}>提示:同一个问题的事件未结束,不可再次提交事件。</p>\r\n </Flex>\r\n <Flex center style={{ paddingTop: \"20px\" }}>\r\n <Button color=\"primary\" style={{ maxWidth: '400px', width: '100%' }} onClick={submit}>提交</Button>\r\n </Flex>\r\n </div>\r\n </ConfigProvider>\r\n </HeadeNavbar >\r\n );\r\n};\r\n\r\nexport default WorkOrderSubmit;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Card, CardTitle, ScrollView, CardText, CardActions, Button, Flex, Text } from '@chatui/core';\r\nimport HeadeNavbar from '../components/headeNavbar'\r\nimport { getTicketList } from '../services/ticket';\r\nimport { searchObj } from '../utils/util';\r\n\r\nconst MyWorkOrder = props => {\r\n const [ticketList, setTicketList] = useState([]);\r\n\r\n useEffect(() => {\r\n const search = searchObj(props.location.search);\r\n if (search && search.account) {\r\n getTicketList({ account: search.account })\r\n .then(res => {\r\n if (res.code === 0 && res.data.code === 0) {\r\n setTicketList(res.data.data.list)\r\n }\r\n })\r\n } else {\r\n window.location.replace(`${window.location.origin}/closeWin`)\r\n }\r\n }, [props.location, props.history]);\r\n\r\n const tag = (status) => {\r\n switch (Number(status)) {\r\n case 0:\r\n return <Text style={{ fontSize: '18px', color: \"var(--yellow)\" }}>待处理</Text>\r\n case 1:\r\n return <Text style={{ fontSize: '18px', color: \"var(--yellow)\" }}>处理中</Text>\r\n case 2:\r\n return <Text style={{ fontSize: '18px', color: \"var(--yellow)\" }}>新回复</Text>\r\n case 3:\r\n return <Text style={{ fontSize: '18px', color: \"#c6d466\" }}>待评价</Text>\r\n case 4:\r\n return <Text style={{ fontSize: '18px', color: \"#c6d466\" }}>已处理</Text>\r\n default:\r\n return <Text></Text>\r\n }\r\n }\r\n\r\n // function checkDirect() {\r\n // if (document.documentElement.clientWidth >= document.documentElement.clientHeight) {\r\n // return \"landscape\"; //横屏\r\n // } else {\r\n // return \"portrait\"; //竖屏\r\n // }\r\n // }\r\n if (document.documentElement.clientWidth >= document.documentElement.clientHeight) {\r\n return (\r\n <HeadeNavbar title={\"我的反馈\"} listButton>\r\n <div style={{ padding: '30px 1em 0 2em' }}>\r\n <ScrollView\r\n data={ticketList}\r\n renderItem={(item, index) => {\r\n return <Card key={index} fluid style={{ margin: '15px 15px 3px 0px', borderStyle: 'solid none none none', borderColor: \"var(--brand-1)\", borderWidth: '4px', width: '210px', minWidth: ' 210px', height: document.documentElement.clientHeight - 117, maxHeight: '260px' }}>\r\n <div style={{ padding: '24px 16px' }}>\r\n <Flex justifyContent='space-between' >\r\n <Text style={{ fontSize: '18px', fontWeight: 600, color: \"var(--brand-1)\" }}>单号:{item.id}</Text>{tag(item.fronted_status)}\r\n </Flex>\r\n </div>\r\n <div style={{ padding: '14px 16px 0px 16px', height: '112px' }}>\r\n <Text style={{ fontSize: '15px' }}><span style={{ fontWeight: 600 }}>游戏:</span>{item.gameNickName}</Text><br />\r\n <Text style={{ fontSize: '15px' }} truncate={2} breakWord><span style={{ fontWeight: 600 }}>问题类型:</span>{item.classifyName}</Text>\r\n </div>\r\n <CardActions style={{position: 'absolute',bottom: '16px',width: '80%',left: '7%',padding: '0 16px'}} >\r\n <Button\r\n color=\"primary\"\r\n onClick={() => { props.history.push({ pathname: '/myWorkOrderInfo', search: props.location.search, query: { ticketId: item.id } }) }}\r\n >查询详情</Button>\r\n </CardActions>\r\n </Card>\r\n }}\r\n />\r\n </div>\r\n </HeadeNavbar>\r\n );\r\n } else {\r\n return (\r\n <HeadeNavbar title={\"我的反馈\"} listButton>\r\n <div style={{ padding: '1em 2em' }}>\r\n {ticketList.map((item, index) => {\r\n return <Card key={index} fluid style={{ margin: '12px 0px', borderStyle: 'solid none none none', borderColor: \"var(--brand-1)\", borderWidth: '4px', width: '100%' }}>\r\n <CardTitle>\r\n <Flex justifyContent='space-between' >\r\n <Text style={{ fontSize: '18px', color: \"var(--brand-1)\" }}>单号:{item.id}</Text>{tag(item.fronted_status)}\r\n </Flex>\r\n </CardTitle>\r\n <CardText>\r\n <Text style={{ fontSize: '15px' }}><span style={{ fontWeight: 600 }}>游戏:</span>{item.gameNickName}</Text>\r\n <Text style={{ fontSize: '15px' }} truncate={2}><span style={{ fontWeight: 600 }}>问题类型:</span>{item.classifyName}</Text>\r\n </CardText>\r\n <CardActions>\r\n <Button\r\n color=\"primary\"\r\n onClick={() => { props.history.push({ pathname: '/myWorkOrderInfo', search: props.location.search, query: { ticketId: item.id } }) }}\r\n >查询详情</Button>\r\n </CardActions>\r\n </Card>\r\n })}\r\n </div>\r\n </HeadeNavbar>\r\n );\r\n }\r\n};\r\n\r\nexport default MyWorkOrder;\r\n","import React from 'react';\r\nimport { Form, Input } from \"antd\";\r\nimport { Video, Image } from '@chatui/core';\r\n\r\nconst AntdFormContent = (item, index) => {\r\n switch (Number(item.type)) {\r\n /* date input */\r\n case 1:\r\n return <Form.Item\r\n key={index}\r\n label={item.field_name}\r\n required={item.required}\r\n >\r\n <Input value={item.content_value} disabled />\r\n </Form.Item>\r\n /* date + time */\r\n case 2:\r\n return <Form.Item\r\n key={index}\r\n label={item.field_name}\r\n required={item.required}\r\n >\r\n <Input value={item.content_value} disabled />\r\n </Form.Item>\r\n /* multi line text input */\r\n case 3:\r\n return <Form.Item\r\n key={index}\r\n label={item.field_name}\r\n required={item.required}\r\n >\r\n <Input.TextArea autoSize={{ minRows: 3 }} value={item.content_value} disabled />\r\n </Form.Item>\r\n /* single line text input */\r\n case 4:\r\n return <Form.Item\r\n key={index}\r\n label={item.field_name}\r\n required={item.required}\r\n >\r\n <Input value={item.content_value} disabled />\r\n </Form.Item>\r\n /* number input */\r\n case 5:\r\n return <Form.Item\r\n key={index}\r\n label={item.field_name}\r\n required={item.required}\r\n >\r\n <Input value={item.content_value} disabled />\r\n </Form.Item>\r\n /* drop down list */\r\n case 6:\r\n return <Form.Item\r\n key={index}\r\n label={item.field_name}\r\n required={item.required}\r\n >\r\n <Input value={item.content_value} disabled />\r\n </Form.Item>\r\n /* 身份证 ()*/\r\n case 20:\r\n return <Form.Item\r\n key={index}\r\n label={item.field_name}\r\n required={item.required}\r\n >\r\n <Input value={item.content_value} disabled />\r\n </Form.Item>\r\n /* 生日 */\r\n case 21:\r\n return <Form.Item\r\n key={index}\r\n label={item.field_name}\r\n required={item.required}\r\n >\r\n <Input value={item.content_value} disabled />\r\n </Form.Item>\r\n /* 标题 */\r\n case 22:\r\n return <Form.Item\r\n key={index}\r\n label={item.field_name}\r\n required={item.required}\r\n >\r\n <Input value={item.content_value} disabled />\r\n </Form.Item>\r\n /* 内容 */\r\n case 23:\r\n return <Form.Item\r\n key={index}\r\n label={item.field_name}\r\n required={item.required}\r\n >\r\n <Input.TextArea autoSize={{ minRows: 3 }} value={item.content_value} disabled />\r\n </Form.Item>\r\n /* video link */\r\n case 24:\r\n let videoArr = []\r\n if (item.content_value) {\r\n const videoSrc = JSON.parse(item.content_value);\r\n if (Array.isArray(videoSrc)) {\r\n videoArr = videoSrc\r\n } else {\r\n videoArr = [videoSrc]\r\n }\r\n }\r\n return <Form.Item\r\n key={index}\r\n label={item.field_name}\r\n required={item.required}\r\n >\r\n <div style={{ display: 'flex' }}>\r\n {videoArr.map((item, index) => {\r\n return <Video key={index} src={item} />\r\n })}\r\n </div>\r\n </Form.Item>\r\n /* image file */\r\n case 25:\r\n let imageArr = []\r\n if (item.content_value && Array.isArray(JSON.parse(item.content_value))) {\r\n const imageSrc = JSON.parse(item.content_value);\r\n if (Array.isArray(imageSrc)) {\r\n imageArr = imageSrc\r\n } else {\r\n imageArr = [imageSrc]\r\n }\r\n }\r\n return <Form.Item\r\n key={index}\r\n label={item.field_name}\r\n required={item.required}\r\n >\r\n <div style={{ display: 'flex' }}>\r\n {imageArr.map((item, index) => {\r\n return <Image key={index} src={item} alt={index} fluid />\r\n })}\r\n </div>\r\n </Form.Item>\r\n /* game role, platform + server + role_id */\r\n case 26:\r\n return <Form.Item\r\n key={index}\r\n label={item.field_name}\r\n required={item.required}\r\n >\r\n <Input value={item.content_value} disabled />\r\n </Form.Item>\r\n /* email */\r\n case 27:\r\n return <Form.Item\r\n key={index}\r\n label={item.field_name}\r\n required={item.required}\r\n >\r\n <Input value={item.content_value} disabled />\r\n </Form.Item>\r\n /* province + city */\r\n case 28:\r\n return <Form.Item\r\n key={index}\r\n label={item.field_name}\r\n required={item.required}\r\n >\r\n <Input value={item.content_value} disabled />\r\n </Form.Item>\r\n /* IM contact */\r\n case 29:\r\n return <Form.Item\r\n key={index}\r\n label={item.field_name}\r\n required={item.required}\r\n >\r\n <Input value={item.content_value} disabled />\r\n </Form.Item>\r\n /* phone number */\r\n case 30:\r\n return <Form.Item\r\n key={index}\r\n label={item.field_name}\r\n required={item.required}\r\n >\r\n <Input value={item.content_value} disabled />\r\n </Form.Item>\r\n default:\r\n return null\r\n }\r\n}\r\n\r\nexport default AntdFormContent;\r\n","import React from 'react';\r\nimport { Form, Input } from \"antd\";\r\nimport { Flex, Button, toast, RadioGroup, FlexItem } from '@chatui/core';\r\nimport UploadDragger from \"../antdFormContent/uploadDragger\";\r\nimport { ticketInfoReply, updateTicketSatisfaction } from '../../services/ticket';\r\n\r\nconst UserTicketTicketReply = props => {\r\n const { ticketData, getTicketInfoList } = props\r\n const [form] = Form.useForm();\r\n\r\n const submit = () => {\r\n form\r\n .validateFields()\r\n .then((values) => {\r\n console.log(values)\r\n let file_url = \"\";\r\n if (values.file) {\r\n const fileList = values.file.filter(i => i.response && i.response.code === 0).map(i => { return i.response.data.url })\r\n if (fileList.length > 0) {\r\n file_url = fileList[0]\r\n }\r\n }\r\n \r\n ticketInfoReply({\r\n id: ticketData.id,\r\n content: values.content,\r\n file_url: file_url,\r\n account: ticketData.account,\r\n })\r\n .then(res => {\r\n if (res.code === 0 && res.data.code === 0) {\r\n form.resetFields();\r\n toast.success(\"回复成功\")\r\n getTicketInfoList()\r\n } else {\r\n toast.show(res.data.message || res.msg)\r\n }\r\n })\r\n })\r\n }\r\n\r\n return <Form form={form}>\r\n <Form.Item\r\n name={'content'}\r\n rules={[{ required: true, message: '请输入回复信息' }]}\r\n >\r\n <Input placeholder={'输入回复信息'} />\r\n </Form.Item>\r\n <Form.Item\r\n name={'file'}\r\n valuePropName=\"fileList\"\r\n getValueFromEvent={(e) => {\r\n if (Array.isArray(e)) { return e; }\r\n return e && e.fileList;\r\n }}\r\n >\r\n <UploadDragger accept=\"image/*\" listType=\"picture\" maxCount={1} placeholder=\"上传图片,格式png,jpg,gif\" />\r\n </Form.Item>\r\n <Flex center style={{ paddingTop: \"20px\" }}>\r\n <Button color=\"primary\" style={{ maxWidth: '400px', width: '100%' }} onClick={submit}>提交回复</Button>\r\n </Flex>\r\n </Form>\r\n}\r\n\r\nconst UserTicketSatisfaction = (props) => {\r\n const { ticketData, getTicket } = props;\r\n const [form] = Form.useForm();\r\n\r\n const submit = () => {\r\n form\r\n .validateFields()\r\n .then((values) => {\r\n updateTicketSatisfaction({\r\n id: ticketData.id,\r\n csi: values.csi,\r\n resolved: values.resolved,\r\n account: ticketData.account,\r\n })\r\n .then(res => {\r\n if (res.code === 0 && res.data.code === 0) {\r\n form.resetFields();\r\n toast.success(\"评价成功\")\r\n getTicket()\r\n } else {\r\n toast.show(res.data.message || res.msg)\r\n }\r\n })\r\n })\r\n }\r\n\r\n const resolvedOptions = [\r\n { label: '已解决', value: 1 },\r\n { label: '未解决', value: 0 },\r\n ];\r\n const csiOptions = [\r\n { label: '非常满意', value: 5 },\r\n { label: '满意', value: 4 },\r\n { label: '一般', value: 3 },\r\n { label: '不满意', value: 2 },\r\n { label: '非常不满意', value: 1 },\r\n ];\r\n\r\n return <Form form={form}>\r\n <Form.Item\r\n label=\"本次事件处理是否解决了您的问题\"\r\n name={'resolved'}\r\n rules={[{ required: true, message: '请选择处理反馈' }]}\r\n >\r\n <RadioGroup options={resolvedOptions} />\r\n </Form.Item>\r\n <Form.Item\r\n label=\"请问您对本次服务是否满意\"\r\n name={'csi'}\r\n rules={[{ required: true, message: '请选择满意度' }]}\r\n >\r\n <RadioGroup options={csiOptions} />\r\n </Form.Item>\r\n <Flex center style={{ paddingTop: \"20px\" }}>\r\n <Button color=\"primary\" style={{ maxWidth: '400px', width: '100%' }} onClick={submit}>提交</Button>\r\n </Flex>\r\n </Form>\r\n}\r\n\r\nconst TicketFeedback = (ticketData, getTicket, getTicketInfoList) => {\r\n const status = Number(ticketData.status);\r\n if (status === 0 || status === 1) { // 0待处理 1处理中\r\n return <>\r\n <FlexItem style={{ marginLeft: '0.75em', marginTop: '1em', paddingLeft: '12px', borderStyle: 'none none none solid', borderColor: \"var(--brand-1)\", borderWidth: '4px' }}>信息反馈</FlexItem>\r\n <FlexItem style={{ marginLeft: '0.75em', marginTop: '1em', paddingLeft: '12px', }}>\r\n <UserTicketTicketReply ticketData={ticketData} getTicketInfoList={getTicketInfoList} />\r\n </FlexItem>\r\n </>\r\n } else if (status === 2) { // 2待评价\r\n return <>\r\n <FlexItem style={{ marginLeft: '0.75em', marginTop: '1em', paddingLeft: '12px', borderStyle: 'none none none solid', borderColor: \"var(--brand-1)\", borderWidth: '4px' }}>提交评价</FlexItem>\r\n <FlexItem style={{ marginLeft: '0.75em', marginTop: '1em', paddingLeft: '12px', }}>\r\n <UserTicketSatisfaction ticketData={ticketData} getTicket={getTicket} />\r\n </FlexItem>\r\n </>\r\n } else { // 3已结单\r\n return null\r\n }\r\n}\r\n\r\nexport default TicketFeedback;\r\n","/* eslint-disable */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { RichText, Flex, FlexItem, toast } from '@chatui/core';// 引入样式\r\nimport { Form } from \"antd\";\r\nimport HeadeNavbar from '../components/headeNavbar'\r\nimport AntdFormToValues from '../components/template/antdFormToValues'\r\nimport TicketFeedback from '../components/template/ticketFeedback'\r\nimport { getOneTicket, ticketInfoList, ticketInfoRead } from '../services/ticket';\r\nimport { main, islocation } from '../utils/entity';\r\n\r\nconst MyWorkOrderInfo = props => {\r\n const [template, setTemplate] = useState({});\r\n const [chatList, setChatList] = useState([]);\r\n\r\n const getTicketInfoList = () => {\r\n ticketInfoList({ ticketId: props.location.query.ticketId })\r\n .then(res2 => {\r\n if (res2.code === 0 && res2.data.code === 0) {\r\n setChatList(res2.data.data)\r\n } else {\r\n toast.show(res2.data.message || res2.msg)\r\n }\r\n })\r\n }\r\n\r\n const getTicket = () => {\r\n getOneTicket({ ticketId: props.location.query.ticketId })\r\n .then(res => {\r\n if (res.code === 0 && res.data.code === 0) {\r\n setTemplate(res.data.data)\r\n getTicketInfoList()\r\n ticketInfoRead({ ticketId: props.location.query.ticketId })\r\n }\r\n })\r\n }\r\n useEffect(() => {\r\n if (!props.location?.query?.ticketId) {\r\n props.history.push({ pathname: '/workOrderList', search: props.location.search })\r\n } else {\r\n getTicket()\r\n }\r\n }, []);\r\n\r\n const escapeHtml = (value) => {\r\n if (typeof value !== 'string') {\r\n return value\r\n }\r\n return value.replace(/[&<>`\"'\\/]/g, function (result) {\r\n return {\r\n '&': '&',\r\n '<': '<',\r\n '>': '>',\r\n '`': '`',\r\n '\"': '"',\r\n \"'\": ''',\r\n '/': '/',\r\n }[result]\r\n })\r\n };\r\n\r\n return (\r\n <HeadeNavbar title={\"反馈详情\"}>\r\n <Flex direction='column' style={{ padding: '1em 2em' }}>\r\n <FlexItem style={{ marginLeft: '0.75em', marginTop: '1em', paddingLeft: '12px', borderStyle: 'none none none solid', borderColor: \"var(--brand-1)\", borderWidth: '4px' }}>工单详情</FlexItem>\r\n <FlexItem style={{ marginLeft: '0.75em', marginTop: '1em', paddingLeft: '12px', }}>\r\n <Form\r\n layout='vertical'\r\n >\r\n {(template.fields || []).map((item, index) => {\r\n return AntdFormToValues(item, index)\r\n })}\r\n </Form>\r\n </FlexItem>\r\n <FlexItem style={{ marginLeft: '0.75em', marginTop: '1em', paddingLeft: '12px', borderStyle: 'none none none solid', borderColor: \"var(--brand-1)\", borderWidth: '4px' }}>处理记录</FlexItem>\r\n <FlexItem style={{ marginLeft: '0.75em', marginTop: '1em', paddingLeft: '12px', }}>\r\n {(chatList || []).map((item, index) => {\r\n let type = '',\r\n displayName = '',\r\n file_url = '';\r\n switch (item.reply_role) {\r\n case '1':\r\n type = '客服'\r\n displayName = islocation(main.name) ? '游族客服' : '游戏客服'\r\n break;\r\n case '2':\r\n type = '用户'\r\n displayName = escapeHtml(item.account)\r\n break;\r\n case '3':\r\n type = '系统'\r\n displayName = '系统消息'\r\n break;\r\n default:\r\n break;\r\n }\r\n if (item.file_url) {\r\n file_url = '<img class=\"ticket-img-preview\" src=\"' + escapeHtml(item.file_url) + '\">'\r\n }\r\n\r\n return <div key={index}>\r\n <p>\r\n <span style={{ color: \"var(--brand-1)\", fontSize: '18px', paddingRight: '5px' }}>{type}</span>\r\n <span style={{ fontSize: '18px', paddingRight: '10px' }}>{displayName}</span>\r\n <span>{item.created_at}</span>\r\n </p>\r\n {item.reply_content && <RichText content={item.reply_content} />}\r\n {item.file_url && <RichText content={file_url} />}\r\n </div>\r\n })}\r\n </FlexItem>\r\n {TicketFeedback(template, getTicket, getTicketInfoList)}\r\n </Flex>\r\n </HeadeNavbar>\r\n );\r\n};\r\n\r\nexport default MyWorkOrderInfo;\r\n","import React from 'react';\r\nimport { Empty } from '@chatui/core';\r\nconst closeWin = () => {\r\n return (\r\n <Empty type=\"error\" tip=\"关闭页面。如果无法自动关闭,请点击手机回退键操作\">\r\n </Empty>\r\n );\r\n};\r\n\r\nexport default closeWin;\r\n","import React from 'react'\r\nimport { BrowserRouter, Redirect, Route, Switch } from 'react-router-dom'\r\nimport CustomerService from './pages/customerService'\r\nimport WorkOrderList from './pages/workOrderList'\r\nimport WorkOrderSubmit from './pages/workOrderSubmit'\r\nimport MyWorkOrder from './pages/myWorkOrder'\r\nimport MyWorkOrderInfo from './pages/myWorkOrderInfo'\r\nimport CloseWin from './pages/closeWin'\r\nimport '@chatui/core/es/styles/index.less';\r\nimport \"./App.css\"\r\nimport './iconfont/iconfont.css'\r\nimport locales from './locales/'\r\nimport { newEntityList, islocation } from './utils/entity';\r\nimport { IntlProvider } from 'react-intl'; /* react-intl imports */\r\n\r\nconst route = () => {\r\n if (newEntityList.findIndex(item => { return islocation(item.name) }) > -1) {\r\n return (\r\n <IntlProvider\r\n locale='zh'\r\n messages={locales.zh}\r\n >\r\n <BrowserRouter >\r\n <Switch>\r\n <Route exact path=\"/workOrderList\" component={WorkOrderList} />\r\n <Route exact path=\"/workOrderSubmit\" component={WorkOrderSubmit} />\r\n <Route exact path=\"/myWorkOrder\" component={MyWorkOrder} />\r\n <Route exact path=\"/myWorkOrderInfo\" component={MyWorkOrderInfo} />\r\n <Route exact path=\"/closeWin\" component={CloseWin} />\r\n <Redirect to={{\r\n pathname: '/workOrderList',\r\n search: `${window.location.search}`,\r\n }} />\r\n </Switch>\r\n </BrowserRouter >\r\n </IntlProvider>\r\n );\r\n } else {\r\n return (\r\n <IntlProvider\r\n locale='zh'\r\n messages={locales.zh}\r\n >\r\n <BrowserRouter >\r\n <Switch>\r\n <Route exact path=\"/\" component={CustomerService} />\r\n <Route exact path=\"/workOrderList\" component={WorkOrderList} />\r\n <Route exact path=\"/workOrderSubmit\" component={WorkOrderSubmit} />\r\n <Route exact path=\"/myWorkOrder\" component={MyWorkOrder} />\r\n <Route exact path=\"/myWorkOrderInfo\" component={MyWorkOrderInfo} />\r\n <Route exact path=\"/closeWin\" component={CloseWin} />\r\n <Redirect to={{\r\n pathname: '/',\r\n search: `${window.location.search}`,\r\n }} />\r\n </Switch>\r\n </BrowserRouter >\r\n </IntlProvider>\r\n );\r\n }\r\n};\r\n\r\nexport default route;\r\n","const reportWebVitals = onPerfEntry => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport reportWebVitals from './reportWebVitals';\r\nimport { searchObj } from './utils/util'\r\nimport { newEntityList, islocation } from './utils/entity';\r\nconst searchProps = searchObj(window.location.search);\r\n// 小语种直接跳转海外工单\r\nif (searchProps.lang) {\r\n if (!['zh_cn', 'en'].includes(searchProps.lang) && newEntityList.findIndex(item => { return islocation(item.name) }) === -1) {\r\n if (window.location.hostname.indexOf('prv') > -1) {\r\n console.log(\"开始跳转\", \"http://qamsupport.gtarcade.com/default/verify\" + window.location.search)\r\n window.location.href = \"https://qamsupport.gtarcade.com/default/verify\" + window.location.search\r\n } else {\r\n window.location.href = \"https://msupport.gtarcade.com/default/verify\" + window.location.search\r\n }\r\n }\r\n}\r\n\r\nReactDOM.render(\r\n <App />,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}