{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/icons/svg/setting.svg","webpack:///./src/components/page-footer.vue?05ed","webpack:///./src/icons/svg/imagefile.svg","webpack:///./src/icons/svg/attention.svg","webpack:///./src/icons/svg/recorder.svg","webpack:///./src/icons/svg/audiofile.svg","webpack:///./src/views/commentBtn.vue?a07c","webpack:///./src/img/logo/white/sok_index_cn.png","webpack:///./src/img/logo/white/audio.png","webpack:///./src/img/logo/white/image.png","webpack:///./src/icons/svg sync nonrecursive \\.svg$","webpack:///./src/views/login.vue?1e47","webpack:///./src/App.vue?19e4","webpack:///./src/App.vue","webpack:///./src/App.vue?38ee","webpack:///./src/App.vue?cc58","webpack:///./src/utils/jsFn.js","webpack:///./src/utils/profile.js","webpack:///./src/api/http.js","webpack:///./src/lang/en.js","webpack:///./src/lang/tw.js","webpack:///./src/lang/cn.js","webpack:///./src/lang/index.js","webpack:///./src/api/coreApi.js","webpack:///./src/api/channeleApi.js","webpack:///./src/api/sokplatform.js","webpack:///./src/api/index.js","webpack:///./src/store/index.js","webpack:///./src/views/login.vue?b297","webpack:///./src/components/page-footer.vue?3578","webpack:///./src/components/page-footer.vue","webpack:///./src/components/page-footer.vue?f5d3","webpack:///./src/components/page-footer.vue?dcff","webpack:///./src/components/tool/securityCode.vue?bc54","webpack:///./src/components/tool/securityCode.vue","webpack:///./src/components/tool/securityCode.vue?3c99","webpack:///./src/components/tool/securityCode.vue?4eab","webpack:///./src/views/login.vue","webpack:///./src/views/login.vue?503d","webpack:///./src/views/login.vue?2766","webpack:///./src/views/crtPointBtn.vue?1b82","webpack:///./src/views/crtPointBtn.vue","webpack:///./src/views/crtPointBtn.vue?0731","webpack:///./src/views/crtPointBtn.vue?93aa","webpack:///./src/views/commentBtn.vue?e05a","webpack:///./src/views/commentBtn.vue","webpack:///./src/views/commentBtn.vue?76ad","webpack:///./src/views/commentBtn.vue?0054","webpack:///./src/views/chgWebview.vue?7c76","webpack:///./src/views/chgWebview.vue","webpack:///./src/views/chgWebview.vue?3004","webpack:///./src/views/chgWebview.vue?22bc","webpack:///./src/router/routes.js","webpack:///./src/router/index.js","webpack:///./src/components/icon/svgIcon.vue?cb45","webpack:///./src/components/icon/svgIcon.vue","webpack:///./src/components/icon/svgIcon.vue?f735","webpack:///./src/components/icon/svgIcon.vue?349b","webpack:///./src/icons/index.js","webpack:///./src/quasar.js","webpack:///./src/main.js","webpack:///./src/icons/svg/exit.svg","webpack:///./src/img/svg/uparrow.svg","webpack:///./src/views/login.vue?2832","webpack:///./src/icons/svg/tmdring.svg","webpack:///./src/views/commentBtn.vue?95d2","webpack:///./src/icons/svg/sending.svg","webpack:///./src/img/logo/white/video.png","webpack:///./src/img/logo/white/sok_index_en.png","webpack:///./src/icons/svg/camera.svg","webpack:///./src/icons/svg/video.svg","webpack:///./src/img/svg/white/recstop.svg","webpack:///./src/icons/svg/reset.svg","webpack:///./src/components/tool/securityCode.vue?f101","webpack:///./src/img/svg/white/recording.svg","webpack:///./src/icons/svg/edit.svg","webpack:///./src/icons/svg/certification.svg","webpack:///./src/icons/svg/history.svg","webpack:///./src/views/crtPointBtn.vue?d254","webpack:///./src/icons/svg/add.svg","webpack:///./src/views/crtPointBtn.vue?1517","webpack:///./src/icons/svg/trash.svg","webpack:///./src/img/logo/white/sok_index_tw.png","webpack:///./src/components/icon/svgIcon.vue?cabf","webpack:///./src/icons/svg/preview.svg","webpack:///./src/img/svg/white/accessory.svg","webpack:///./src/icons/svg/check.svg","webpack:///./src/icons/svg/videofile.svg"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","symbol","add","map","webpackContext","req","id","webpackContextResolve","e","Error","code","keys","resolve","_vm","this","_h","$createElement","_c","_self","staticStyle","attrs","isWebView","staticRenderFns","created","ua","navigator","userAgent","toLowerCase","indexOf","component","IsEmpty","val","undefined","yyyymmdd","str","date","Date","mm","getMonth","dd","getDate","getFullYear","join","isCN","hostname","location","substr","getUUID","now","performance","replace","Math","random","floor","toString","jwtDecode","jwt","convertHHMMSS","parseInt","toLocaleTimeString","hour","minute","second","converDrawerTime","timestamp","temp","monthArr","mounth","getLang","lang","localStorage","getItem","language","browserLanguage","convertToMp3","channelData","Promise","mp3enc","lamejs","Mp3Encoder","buffer","leftData","left","Int16Array","byteLength","rightData","right","remaining","maxSamples","subarray","mp3buf","encodeBuffer","enc","flush","Blob","type","getDateDiffByTimestamp","strTime","endTime","mss","hours","minutes","seconds","jsFn","apiUrl","global","cn","globalrc","cnrc","sokplatform","sokplatformcn","sokplatformrc","sokplatformcnrc","clientID","tmdUrl","serverLocation","refreshing","checkToken","nowTime","cT","parse","eT","oT","btw","refreshToken","axios","post","profile","grant_type","client_id","access_token","then","res","setItem","expires_in","err","console","log","corePost","url","reject","flag","headers","response","channelPost","channelInfo","channelLink","JSON","decodeURIComponent","user_id","channel","config","catch","defaults","timeout","baseURL","interceptors","request","use","error","status","basicInfo","loginClass","changeClass","sendPoint","loginTeamModel","teamModelID","groupNum","pinCode","socrates","err01","err02","err03","err04","err05","err06","err07","err08","err09","err10","err11","logOut","ok","cancel","expertTitle","teacherTitle","selectCharacter","selectYourCharacter","groupQRCode","PIN","selectModel","saySomething","uploadIMG","selectONE","sendSucces","selectExpert_1","selectExpert_2","modelRoot_1","modelRoot_2","modelRoot_3","ENTER","TOPIC","history","historyEditTitle1","historyEditTitle2","historyEditCont","copySuccess","directions","comment","endClass","copy","guest","login","guestLogin","or","leaveComment","iknow","modeltext1","modeltext2","teacher","joinPeoples","logintext_1","modelRoot_4","classTeacher","LabelManagement","ClassroomSetting","save","crtPoint_1","crtPoint_2","crtPoint_3","crtPoint_4","crtPoint_5","crtPoint_6","crtPoint_7","crtPoint_8","crtPoint_9","crtPoint_11","crtPoint_12","basicLabel","channelLabel","myLabel","copyText","clickBtn","mode_ready","mode_quiz_single","mode_quiz_multiple","mode_quiz_judge","mode_quiz_complete","mode_quiz_subjective","mode_quiz_compose","mode_buzzin","mode_competition_single","mode_competition_multiple","mode_competition_judge","mode_competition_complete","mode_competition_subjective","mode_selfpace_start","mode_selfpace_end","mode_attend","mode_collate","mode_close","myCatagory","changeTable","warning","warn_text1","warn_text2","warn_text3","warn_text4","warn_text5","setting","chgLang","editCustomTags","delete","updsuccess","delsuccess","settingRemark","weitStarClass","version","webviewmsg1","webviewmsg2","ios","android","webviewmsg3","notSokMode","devTimeDialog","advertiseInfo1","Vue","VueI18n","i18n","locale","messages","tw","en","loginTMD","redirectUri","response_type","nonce","setTimeout","state","redirect_uri","origin","href","codeLogin","getUserInfo","nonceStr","id_token","initUserTags","product","tags","typeId","typeName","customize","tagList","updUserTags","joinChannel","imData","client_name","pin","getServiceUnixTimeMilliseconds","sendChannelInfo","user","payload","action","clientType","sender","deviceId","waitReturn","target","arguments","connectionId","to","groupname","text","stringify","sendSKBinding","memberID","api_Version","deviceID","memberName","getUserComments","getSkMarkTemplate","leave","accept","userinfo","isGuest","expertType","params","pin_code","Authorization","hostBlobUrl","blobSAS_read","sas","blobSAS_write","bindingNum","binding_number","getInfo","getTags","getAccessToken","coreApi","channeleApi","signalR","require","Vuex","PAGE_LANG","LOGOUT","SETUSERINFO","SETUSERTAGS","SETHISTORYS","SETCHANNELLINK","SETCHANNELINFO","SETCOMMENTBTNSETTING","SETCOMMENTSDATA","loginFlag","userInfo","userTags","tmdTags","schoolTags","Expert","Teacher","historys","isStrClass","className","pageID","isSokActivity","duration","deltaTime","blobConfig","isDevTimeAbnormal","commentBtnSetting","pointsByTypeId","table","detailType","detail","signalPayload","isSignalLink","baseFileUrl","signalConnection","commentsData","userId","getters","historysReverse","sort","a","b","obsStart","forEach","array","points","item","topic","classTName","pointer","point","langFormat","conet","desc","tagName","teachTypeNum","content","exercise","mutations","sessionStorage","encodeURIComponent","info","userTagsData","urlParams","URLSearchParams","search","myParam","logoutUrl","document","clear","actions","setPageLang","commit","setUserInfo","sessionUserInfo","localUserInfo","setChannelLink","setChannelInfo","setUserTags","setHistorys","context","obj","taday","getTime","datatemp","difference","abs","setCommentsData","api","dispatch","channel_rest_api","leaveChannel","isNotLeave","reset","stop","removeItem","setCommentBtnSetting","joinSokPlatform","resFlag","getPlatformInfo","tableType","types","initSignal","setSkMarkTeamplat","skMarkTemplate","options","accessTokenFactory","HubConnectionBuilder","withUrl","channel_url","withAutomaticReconnect","nextRetryDelayInMilliseconds","retryContext","elapsedMilliseconds","configureLogging","LogLevel","Information","build","on","message","targetmsg","Text","nTime","heartbeatTime","diffMin","rand","toFixed","announce","hostName","pincode","hostSoftwareVersion","classState","classStartTime","bindingData","errorCode","activityRecordNumber","blobSAS_Read","blobSAS_Write","blobSAS","Message","closable","router","path","ConnectionId","UserId","onclose","start","Store","staticClass","class","loging","_v","_s","$t","logoImgList","_e","ref","loginForm","loginRule","nativeOn","$event","preventDefault","model","callback","$$v","$set","expression","isCanEnterClass","submitClass","signout","loginTeamModelID","guestForm","guestRule","pageLang","langChange","$i18n","methods","mapActions","_l","index","placeholder","directives","rawName","number","domProps","handleInput","composing","props","Number","default","String","focus","Boolean","computed","numberAry","hideKeyboard","activeElement","blur","$refs","input","handleSubmit","$emit","init","mounted","components","PageFooter","securityCode","validateChannel","rule","trim","test","validatePinCode","validator","trigger","required","mapGetters","domain","$tools","$route","query","Base64","decode","gn","$store","validate","valid","$Spin","show","$router","$Message","finally","hide","sub","backPage","commentsTime","setTypeForm","tag","setTagForm","description","cancelTypeForm","categoryModel","slot","typeForm","operating","saveTypeName","delCatagory","tagModel","tagForm","saveLabel","quit","delTag","remark","orgName","getDateDiff","setInterval","_this","$Modal","confirm","title","okText","cancelText","onOk","crtTime","go","drawerflag","settingFlag","showSetting","expertPoint","inputFocus","inputFocusFlag","uploadFile","recordFlag","chageFile","fileType","previewFile","preview","cancelFile","minRows","maxRows","disabled","restNowTimestamp","qrcode_url","setLang","_f","chgGroup","showInfo1","info1Link","$te","teachType","chgTableFlag","setPointBtn","strClassElapsedMin","nowTimestamp","star","starRec","style","width","closeRecord","isRecing","recStarTime","recStar","restDrawer","select","drawerPaneId","selDrawerPane","converTime","pkey","fileUrl","setEditHistoryForm","setDetail","checkPoint","toCustomTags","previewModal","historyEditFlag","editHistoryForm","editHistorys","isPlay","recTemp","recorder","maxSec","recEndTime","paneId","langSet","groupPeoples","contentTypes","corvering","hIndex","pIndex","minutesTemp","publicTimer","publicState","isObsStartSame","sortCommentBtnSettingDetail","order","watch","old","filters","uppercase","toUpperCase","strClasstime","classPassedTime","uploadToBlob","file","fileName","blobAuth","saveAddres","blobServiceClient","BlobServiceClient","containerClient","getContainerClient","blockBlobClient","getBlockBlobClient","uploadBrowserData","blobHTTPHeaders","blobContentType","uploadToBlobByPut","updloadUrl","fetch","method","body","sendData","expPointType","expPointTypeName","expPointTypeId","time","imageList","videoList","recList","_fileUrl","imgData","successCount","createImage","orgFile","dataURLtoFile","orgFileName","ImgSrc","preFile","preFileName","ImgPre","blob","lastModifiedDate","isExistIndex","unshift","clearInterval","crtQRCode","generateQR","QRCode","toDataURL","margin","files","URL","createObjectURL","size","parseFloat","revokeObjectURL","Recorder","getPermission","sampleBits","sampleRate","numChannels","onprogress","nowSec","tmp","round","onplayend","getChannelData","saveRec","play","destroy","moreMsg","parentElement","classList","contains","remove","createCanvas","canvas","getElementById","canvasTag","createElement","setAttribute","appendChild","isPre","reader","FileReader","img","Image","getContext","onload","EXIF","getData","getAllTags","originWidth","originHeight","height","maxWidth","maxHeight","targetWidth","targetHeight","drawImage","dataURL","clearRect","src","readAsDataURL","dataurl","filename","arr","split","mime","match","bstr","atob","u8arr","Uint8Array","charCodeAt","File","setTable","filter","isLeaveClass","leaveFlag","diffTime","clipboard","ClipboardJS","encode","_m","webviewStr","routes","Login","isWebview","ChgWebview","display","meta","requiresAuth","CommentBtn","CrtPointBtn","redirect","VueRouter","originalPush","beforeEach","from","next","sokrateslang","store","matched","some","record","onClick","svgClass","iconName","SvgIcon","requireAll","requireContext","Quasar","plugins","iconSet","productionTip","iView","VueHead","$http","$api","sync","render","h","App","$mount"],"mappings":"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","file":"js/app.ac444438.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"setting\",\n \"use\": \"setting-usage\",\n \"viewBox\": \"0 0 128 128\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./page-footer.vue?vue&type=style&index=0&lang=less&\"","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"imagefile\",\n \"use\": \"imagefile-usage\",\n \"viewBox\": \"0 0 128 128\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"attention\",\n \"use\": \"attention-usage\",\n \"viewBox\": \"0 0 128 128\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"recorder\",\n \"use\": \"recorder-usage\",\n \"viewBox\": \"0 0 128 128\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"audiofile\",\n \"use\": \"audiofile-usage\",\n \"viewBox\": \"0 0 128 128\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./commentBtn.vue?vue&type=style&index=0&lang=less&\"","module.exports = __webpack_public_path__ + \"img/sok_index_cn.23c9652f.png\";","module.exports = __webpack_public_path__ + \"img/audio.a8bc81be.png\";","module.exports = __webpack_public_path__ + \"img/image.9c4a1137.png\";","var map = {\n\t\"./add.svg\": \"c2a3\",\n\t\"./attention.svg\": \"2bde\",\n\t\"./audiofile.svg\": \"35ea\",\n\t\"./camera.svg\": \"8ce0\",\n\t\"./certification.svg\": \"b62e\",\n\t\"./check.svg\": \"f75a\",\n\t\"./edit.svg\": \"aa46\",\n\t\"./exit.svg\": \"5dbb\",\n\t\"./history.svg\": \"c023\",\n\t\"./imagefile.svg\": \"2635\",\n\t\"./preview.svg\": \"e6c2\",\n\t\"./recorder.svg\": \"34c7\",\n\t\"./reset.svg\": \"9b4b\",\n\t\"./sending.svg\": \"7a96\",\n\t\"./setting.svg\": \"05ff\",\n\t\"./tmdring.svg\": \"74fa\",\n\t\"./trash.svg\": \"ce30\",\n\t\"./video.svg\": \"8f2b\",\n\t\"./videofile.svg\": \"fa3a\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"51ff\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./login.vue?vue&type=style&index=0&lang=less&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"100%\"},attrs:{\"id\":\"app\"}},[_c('transition',{attrs:{\"name\":\"page\",\"mode\":\"out-in\"}},[(!_vm.isWebView)?_c('router-view'):_c('router-view',{attrs:{\"name\":\"isWebview\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nexport default {\r\n data() {\r\n return {\r\n isWebView: false\r\n }\r\n },\r\n created() {\r\n const ua = navigator.userAgent.toLowerCase()\r\n // 如果在微信請使用者跳出瀏覽器\r\n if(ua.indexOf('micromessenger') !== -1 || ua.indexOf('alipayclient') !== -1) {\r\n this.isWebView = true\r\n }\r\n }\r\n}\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../node_modules/cache-loader/dist/cjs.js??ref--0-1!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../node_modules/cache-loader/dist/cjs.js??ref--0-1!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=e6501070&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import jwt from 'jwt-decode'\r\nimport lamejs from 'lamejs'\r\n\r\n// 是否為空值\r\nfunction IsEmpty(val) {\r\n if (val === '' || val === undefined || val === null || val === false || val === '' || val === 'null') {\r\n return true\r\n } else {\r\n return false\r\n }\r\n}\r\nfunction yyyymmdd(str) {\r\n if(this.IsEmpty(str)) str = ''\r\n let date = new Date()\r\n var mm = date.getMonth() + 1 // getMonth() is zero-based\r\n var dd = date.getDate()\r\n\r\n return [date.getFullYear(),\r\n (mm > 9 ? '' : '0') + mm,\r\n (dd > 9 ? '' : '0') + dd\r\n ].join(str)\r\n}\r\n// 檢查是否為大陸站\r\nfunction isCN() {\r\n let hostname = window.location.hostname\r\n return hostname.substr(hostname.length - 3) === '.cn'\r\n}\r\n// 取得UUID\r\nfunction getUUID() {\r\n var d = Date.now()\r\n if (typeof performance !== 'undefined' && typeof performance.now === 'function') {\r\n d += performance.now()\r\n }\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r\n var r = (d + Math.random() * 16) % 16 | 0\r\n d = Math.floor(d / 16)\r\n return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16)\r\n })\r\n}\r\n// JWT 解碼\r\nfunction jwtDecode(val) {\r\n return jwt(val)\r\n}\r\n\r\n// HHMMSS\r\nfunction convertHHMMSS(val) {\r\n return val ? new Date(parseInt(val)).toLocaleTimeString('it-IT', {hour: '2-digit', minute: '2-digit', second: '2-digit'}) : ''\r\n}\r\n\r\n// 抽屜的標題時間格式\r\nfunction converDrawerTime(timestamp) {\r\n let temp = parseInt(timestamp)\r\n let data = new Date(temp)\r\n let monthArr = ['JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC']\r\n let mounth = monthArr[data.getMonth()]\r\n return data.getFullYear() + ' ' + mounth + '.' + data.getDate() + ' - ' + data.toLocaleTimeString('it-IT', {hour: '2-digit', minute: '2-digit', second: '2-digit'})\r\n}\r\n\r\n// 取得現在的語系\r\nfunction getLang() {\r\n // 預設抓取瀏覽器的語系\r\n let lang = !IsEmpty(localStorage.getItem('lang')) ? localStorage.getItem('lang').toLowerCase() : (navigator.language || navigator.browserLanguage).toLowerCase()\r\n // 預設為英文版\r\n if (lang === 'zh-tw' && lang === 'zh-cn') { lang = 'en-us' }\r\n return lang\r\n}\r\n\r\n// pcm(wav) to mp3\r\nfunction convertToMp3(channelData) {\r\n return new Promise((resolve) => {\r\n // 获取wav头信息\r\n // const wav = lamejs.WavHeader.readHeader(wavDataView); // 此处其实可以不用去读wav头信息,毕竟有对应的config配置\r\n // const { channels, sampleRate } = wav;\r\n const mp3enc = new lamejs.Mp3Encoder(1, 48000, 128)\r\n // 获取左右通道数据\r\n const result = channelData\r\n const buffer = []\r\n\r\n const leftData = result.left && new Int16Array(result.left.buffer, 0, result.left.byteLength / 2)\r\n const rightData = result.right && new Int16Array(result.right.buffer, 0, result.right.byteLength / 2)\r\n const remaining = leftData.length + (rightData ? rightData.length : 0)\r\n\r\n const maxSamples = 1152\r\n for (let i = 0; i < remaining; i += maxSamples) {\r\n const left = leftData.subarray(i, i + maxSamples)\r\n let mp3buf = null\r\n\r\n mp3buf = mp3enc.encodeBuffer(left)\r\n\r\n if (mp3buf.length > 0) {\r\n buffer.push(mp3buf)\r\n }\r\n }\r\n\r\n const enc = mp3enc.flush()\r\n\r\n if (enc.length > 0) {\r\n buffer.push(enc)\r\n }\r\n\r\n resolve(new Blob(buffer, { type: 'audio/mp3' }))\r\n })\r\n}\r\n\r\nfunction getDateDiffByTimestamp(strTime, endTime) {\r\n var mss = endTime - strTime\r\n var hours = parseInt((mss % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60))\r\n var minutes = parseInt((mss % (1000 * 60 * 60)) / (1000 * 60))\r\n var seconds = parseInt((mss % (1000 * 60)) / 1000)\r\n hours = hours < 10 ? ('0' + hours) : hours\r\n minutes = minutes < 10 ? ('0' + minutes) : minutes\r\n seconds = seconds < 10 ? ('0' + seconds) : seconds < 0 ? 0 : seconds\r\n return hours + ':' + minutes + ':' + seconds\r\n}\r\n\r\nexport const jsFn = {\r\n isCN,\r\n yyyymmdd,\r\n IsEmpty,\r\n getUUID,\r\n jwtDecode,\r\n converDrawerTime,\r\n getLang,\r\n convertHHMMSS,\r\n convertToMp3,\r\n getDateDiffByTimestamp\r\n}\r\n","export default {\r\n apiUrl: {\r\n global: 'https://api2.teammodel.net',\r\n cn: 'https://api2.teammodel.cn',\r\n globalrc: 'https://api2-rc.teammodel.net',\r\n cnrc: 'https://api2-rc.teammodel.cn',\r\n sokplatform: 'https://sokratesmgr.teammodel.org',\r\n sokplatformcn: 'https://sokratesmgr.teammodel.cn',\r\n sokplatformrc: 'https://sokratesmgr.teammodel.org',\r\n sokplatformcnrc: 'https://sokratesmgr.teammodel.cn'\r\n },\r\n clientID: {\r\n global: '626c7285-15aa-4abe-8c0d-2c5ff1381538',\r\n cn: '5bcc16a5-7d20-4cc4-b5c2-8ed0416f32b6',\r\n globalrc: '626c7285-15aa-4abe-8c0d-2c5ff1381538',\r\n cnrc: '5bcc16a5-7d20-4cc4-b5c2-8ed0416f32b6'\r\n },\r\n tmdUrl: {\r\n global: 'https://account.teammodel.net',\r\n cn: 'https://account.teammodel.cn',\r\n globalrc: 'https://account-rc.teammodel.net',\r\n cnrc: 'https://account-rc.teammodel.cn'\r\n }\r\n}\r\n","import axios from 'axios'\r\nimport { jsFn } from '@/utils/jsFn'\r\nimport profile from '@/utils/profile'\r\nlet hostname = window.location.hostname\r\nvar serverLocation = jsFn.isCN() ? 'cn' : 'global'\r\nif(hostname.indexOf('-rc') > 0) {\r\n serverLocation += 'rc'\r\n}\r\nif(hostname.indexOf('localhost') === 0) {\r\n serverLocation = 'globalrc'\r\n}\r\nlet refreshing = false\r\naxios.defaults.timeout = 30000 // 设置超时时长\r\naxios.defaults.baseURL = ''\r\n// http request 拦截器\r\naxios.interceptors.request.use(\r\n (config) => {\r\n return config\r\n },\r\n error => {\r\n return Promise.reject(error)\r\n }\r\n)\r\n\r\n// http response 拦截器\r\naxios.interceptors.response.use(\r\n response => {\r\n return response\r\n },\r\n error => {\r\n if (error && error.response) {\r\n switch (error.response.status) {\r\n case 404:\r\n console.log('找不到該頁面')\r\n break\r\n case 500:\r\n console.log('伺服器出錯')\r\n break\r\n case 503:\r\n console.log('服務失效')\r\n break\r\n default:\r\n console.log(`連接錯誤${error.response.status}`)\r\n }\r\n } else {\r\n console.log('連接到服務器失敗')\r\n }\r\n return Promise.reject(error.response)\r\n }\r\n)\r\n\r\n/** 檢查Token是否快過期 */\r\nfunction checkToken() {\r\n if (!localStorage.getItem('expires_in') || localStorage.getItem('expires_in') === undefined) return false\r\n var nowTime = new Date()\r\n let cT = Date.parse(nowTime)\r\n let eT = Date.parse(localStorage.getItem('expires_in'))\r\n let oT = 0\r\n let btw = eT - oT - cT\r\n if (btw > 10 * 60 * 1000) {\r\n return false\r\n } else {\r\n return true\r\n }\r\n}\r\n\r\n/** 刷新token */\r\nasync function refreshToken() {\r\n refreshing = true\r\n await axios.post(profile.apiUrl[serverLocation] + '/oauth2/token', {\r\n grant_type: 'refresh_token',\r\n client_id: profile.clientID[serverLocation],\r\n access_token: localStorage.getItem('access_token')\r\n }).then(\r\n res => {\r\n localStorage.setItem('access_token', res.data.access_token)\r\n localStorage.setItem('expires_in', res.data.expires_in)\r\n refreshing = false\r\n }, (err) => {\r\n console.log(err)\r\n refreshing = false\r\n }\r\n )\r\n}\r\n\r\n/**\r\n * 封装get方法\r\n * @param url\r\n * @param data\r\n * @returns {Promise}\r\n */\r\nexport function fetch(url, params = {}) {\r\n return new Promise((resolve, reject) => {\r\n axios.get(url, {\r\n params: params\r\n })\r\n .then(response => {\r\n resolve(response.data)\r\n })\r\n .catch(err => {\r\n reject(err)\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * 封装corePost请求\r\n * @param url\r\n * @param data\r\n * @returns {Promise}\r\n */\r\n\r\n export function corePost(url, data = {}) {\r\n return new Promise(async(resolve, reject) => {\r\n if(url.indexOf(profile.apiUrl[serverLocation]) >= 0) {\r\n let flag = checkToken()\r\n if (flag) {\r\n if (!refreshing) {\r\n if (localStorage.getItem('access_token')) {\r\n await refreshToken()\r\n }\r\n }\r\n }\r\n }\r\n\r\n let headers = ''\r\n if (localStorage.getItem('access_token')) {\r\n headers = {\r\n headers:{\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + localStorage.getItem('access_token')\r\n }\r\n }\r\n }\r\n axios.post(url, data, headers).then(\r\n response => {\r\n resolve(response.data)\r\n },\r\n err => {\r\n reject(err)\r\n }\r\n )\r\n })\r\n}\r\n\r\n/**\r\n * 封装channelPost请求\r\n * @param url\r\n * @param data\r\n * @returns {Promise}\r\n */\r\n export function channelPost(url, data, channelInfo) {\r\n return new Promise((resolve, reject) => {\r\n let headers = ''\r\n if(localStorage.channelLink !== undefined) {\r\n let channelLink = JSON.parse(decodeURIComponent(localStorage.channelLink,'utf-8'))\r\n headers =\r\n {\r\n headers:{\r\n 'Content-Type': 'application/json',\r\n 'X-Auth-UserID': channelInfo.user_id,\r\n 'X-Auth-Channel': channelInfo.channel,\r\n 'Authorization': 'Bearer ' + channelLink.access_token\r\n }\r\n }\r\n }\r\n axios.post(url, data, headers).then(\r\n response => {\r\n resolve(response.data)\r\n },\r\n err => {\r\n reject(err)\r\n }\r\n )\r\n })\r\n}\r\n\r\n/**\r\n * GET\r\n * @param url\r\n * @returns {Promise}\r\n */\r\nexport function get(url, config = {}) {\r\n return new Promise((resolve, reject) => {\r\n axios.get(url, config).then(\r\n res => {\r\n resolve(res.data)\r\n },\r\n err => {\r\n reject(err)\r\n }\r\n ).catch(e => {\r\n reject(e)\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * POST\r\n * @param url\r\n * @returns {Promise}\r\n */\r\n export function post(url, data = {}, config = {}) {\r\n return new Promise((resolve, reject) => {\r\n axios.post(url, data, config).then(\r\n res => {\r\n resolve(res.data)\r\n },\r\n err => {\r\n reject(err)\r\n }\r\n ).catch(e => {\r\n reject(e)\r\n })\r\n })\r\n}\r\n","export default {\r\n basicInfo: 'Basic information',\r\n loginClass: 'Enter classroom',\r\n changeClass: 'Leave classroom',\r\n sendPoint: 'Send',\r\n loginTeamModel: 'TEAM Model ID login',\r\n teamModelID: 'TEAM Model ID',\r\n name: 'Observer name',\r\n groupNum: 'HiTeach Cloud Classroom NO.',\r\n pinCode: 'PIN NO.',\r\n socrates: 'Sokrates',\r\n err01: 'This field must not be left blank.',\r\n err02: 'Enter alphanumeric characters (a~z , 0~9).',\r\n err03: 'Please log in and try again.',\r\n err04: 'This classs is over.',\r\n err05: 'Login failed ',\r\n err06:'Classroom number or verification code is wrong',\r\n err07:'The number of participants is full, please try again later. ',\r\n err08:'Your file exceeds 10MB, the recommended recording format is below 720P',\r\n err09: 'The host has reset the number of participants in this observation, if you still want to join, please scan QR code again to log in.',\r\n err10: 'Please use TEAM Model ID to join.',\r\n err11: 'File upload failed',\r\n logOut: 'Logout',\r\n ok: 'OK',\r\n cancel: 'Cancel',\r\n expertTitle: 'Expert',\r\n teacherTitle: 'Teacher',\r\n selectCharacter: 'Select role',\r\n selectYourCharacter: 'Select your role',\r\n groupQRCode: 'QR Code',\r\n PIN: 'PIN',\r\n selectModel: 'Choose your mode.',\r\n saySomething: 'Please give your feedback here.',\r\n uploadIMG: 'Please upload a picture.',\r\n selectONE: 'Choose at least one option',\r\n sendSucces: 'Successfully sent!',\r\n selectExpert_1: 'Please enter Verification Code.',\r\n selectExpert_2: 'Wrong Verification Code entered.',\r\n modelRoot_1:'Starting time',\r\n modelRoot_2:'min',\r\n modelRoot_3:'Observation starting time',\r\n ENTER: 'ENTER',\r\n TOPIC:'Course',\r\n history:'Observation records',\r\n historyEditTitle1:'Modify comment',\r\n historyEditTitle2:'Delete tag',\r\n historyEditCont:'Are you sure you want to delete this tag? ',\r\n copySuccess: 'Copy To clipboard',\r\n directions: 'directions',\r\n comment: 'Comment',\r\n endClass: 'Lesson has ended',\r\n copy: 'Copy',\r\n guest: 'Guest',\r\n login: 'Login',\r\n guestLogin: 'or login as a guest',\r\n or: 'OR',\r\n leaveComment: 'Would you like to leave?',\r\n iknow: 'I know.',\r\n modeltext1: 'The new lesson has started,',\r\n modeltext2: 'Your comments will be saved and recorded continuously',\r\n teacher: 'Observer Name',\r\n joinPeoples: 'Participant observers',\r\n logintext_1: 'Guest name...',\r\n modelRoot_4: 'Lesson has not started',\r\n classTeacher: 'Teacher',\r\n 'lang-zh-cn': '簡',\r\n 'lang-zh-tw': '繁',\r\n 'lang-en-us': 'EN',\r\n LabelManagement: 'Custom Tags',\r\n ClassroomSetting: 'Sokrates Observation App',\r\n save: 'Save',\r\n crtPoint_1: 'Create category',\r\n crtPoint_2: 'Category edit',\r\n crtPoint_3: 'Create tag',\r\n crtPoint_4: 'Tag edit',\r\n crtPoint_5: 'Catagory name',\r\n crtPoint_6: 'Remark',\r\n crtPoint_7: 'Create new tag',\r\n crtPoint_8:'Please fill in the category name',\r\n crtPoint_9:'New category exceeds capacity limit',\r\n crtPoint_11:'Please fill in the tag',\r\n crtPoint_12: 'Tag Name',\r\n lang: 'Language',\r\n basicLabel: 'TEAM Model category',\r\n channelLabel: 'School category',\r\n myLabel: 'Custom category',\r\n copyText: 'Copy',\r\n clickBtn: 'Select a tag for marking',\r\n mode_ready: 'Ready',\r\n mode_quiz_single: 'Multiple choice',\r\n mode_quiz_multiple: 'Multiple answers',\r\n mode_quiz_judge: 'True of flase',\r\n mode_quiz_complete: 'Fill in the blank',\r\n mode_quiz_subjective: 'Essay',\r\n mode_quiz_compose: 'Group Qs',\r\n mode_buzzin: 'Buzz-in',\r\n mode_competition_single: 'Multiple choice',\r\n mode_competition_multiple: 'Multiple answers',\r\n mode_competition_judge: 'True of flase',\r\n mode_competition_complete: 'Fill in the blank',\r\n mode_competition_subjective: 'Essay',\r\n mode_selfpace_start: 'Selfpace quiz',\r\n mode_selfpace_end: 'End of quiz',\r\n mode_attend: 'Attend',\r\n mode_collate: 'Task collection',\r\n mode_close: 'End of lesson',\r\n myCatagory: 'My category {value}',\r\n changeTable: 'Change category',\r\n warning: 'Warning',\r\n warn_text1: 'If you change the category, your comments and attachments will be lost ! ! ',\r\n warn_text2: 'If you delete {value}, the following tags will be deleted together ! ! ',\r\n warn_text3: 'You cannot undo after deleting this tag. Do you want to delete it ? ',\r\n warn_text4: 'You have not given permission to record or the browser microphone function is not turned on.',\r\n warn_text5: 'This lesson has ended, you may lose the marked content if you haven\\'t sent it yet, please submit it ASAP!',\r\n setting: 'Setting',\r\n chgLang: 'Change language',\r\n editCustomTags: 'Edit custom tags',\r\n delete: 'Delete',\r\n updsuccess:'Modified successfully',\r\n delsuccess:'Delete successfully',\r\n settingRemark: 'Share this QR Code to other experts and teachers.',\r\n weitStarClass: 'You have successfully joined this observation event, the lesson has not officially started yet, please wait',\r\n version: 'Version',\r\n webviewmsg1: '1. Please click the upper right button',\r\n webviewmsg2: {\r\n ios: '2. Select \"Open in Safari\"',\r\n android: '2. Select \"Open in Browser\"'\r\n },\r\n webviewmsg3: '3. Then you can use Sokrates Classroom Observation',\r\n notSokMode: 'Not Applicable',\r\n devTimeDialog: 'Please check your system clock is set to the current date and time.',\r\n advertiseInfo1: 'Further understanding of AI Sokrates.'\r\n}\r\n","export default {\r\n basicInfo: '基本資料',\r\n loginClass: '進入教室',\r\n changeClass: '離開教室',\r\n sendPoint: '送出',\r\n loginTeamModel: '醍摩豆帳號登入',\r\n teamModelID: '醍摩豆帳號',\r\n name: '觀課者',\r\n groupNum: 'HiTeach雲端教室編號',\r\n pinCode: '驗證碼',\r\n socrates: '蘇格拉底',\r\n err01: '此欄位必填',\r\n err02: '只能輸入英數字',\r\n err03: '請重新登入再試一次',\r\n err04: '課程已結束',\r\n err05: '登入失敗',\r\n err06: '教室編號或驗證碼錯誤',\r\n err07: '參與觀議課人數已滿,請稍後再試。 ',\r\n err08: '您的檔案超過10MB,建議錄影格式720P以下',\r\n err09: '授課者已重設本次參與觀議課人數,若仍想加入,請再次掃碼登入',\r\n err10: '請使用醍摩豆帳號加入',\r\n err11: '檔案上傳失敗',\r\n logOut: '登出',\r\n ok: '確 定',\r\n cancel: '取 消',\r\n expertTitle: '專家',\r\n teacherTitle: '教師',\r\n selectCharacter: '選擇角色',\r\n selectYourCharacter: '選擇你的身分',\r\n groupQRCode: '二維碼',\r\n PIN: '驗證碼',\r\n selectModel: '選擇您的模式',\r\n saySomething: '請在這裡填寫想法',\r\n uploadIMG: '請上傳圖片',\r\n selectONE: '請點選一個想法',\r\n sendSucces: '發送成功',\r\n selectExpert_1: '請輸入驗證碼',\r\n selectExpert_2: '驗證碼錯誤',\r\n modelRoot_1:'加入課堂時間',\r\n modelRoot_2:'分鐘',\r\n modelRoot_3:'開始議課時間',\r\n ENTER: 'ENTER',\r\n TOPIC:'課程名稱',\r\n history: '觀議課紀錄',\r\n historyEditTitle1: '修改標記內容',\r\n historyEditTitle2: '刪除標記',\r\n historyEditCont: '您確定要刪除此標記嗎?',\r\n copySuccess: '複製成功',\r\n directions: '說明',\r\n comment: '標記',\r\n endClass: '目前課程已結束',\r\n copy: '複製',\r\n copyText: '複製所有記錄',\r\n guest: '訪客',\r\n login: '登入',\r\n guestLogin: '或以訪客身分登入',\r\n or: '或',\r\n leaveComment: '請問要離開嗎?',\r\n iknow: '我知道了',\r\n modeltext1: '新的課程已開啟,',\r\n modeltext2: '您的歷史訊息將會保留並接續記錄',\r\n teacher: '觀課者',\r\n joinPeoples: '參與觀議課人數',\r\n logintext_1: '暱稱...',\r\n modelRoot_4: '觀議課尚未開始',\r\n classTeacher: '授課教師',\r\n 'lang-zh-cn': '簡',\r\n 'lang-zh-tw': '繁',\r\n 'lang-en-us': 'EN',\r\n LabelManagement: '自定標記',\r\n ClassroomSetting: '蘇格拉底觀議課',\r\n save: '儲 存',\r\n crtPoint_1: '新增焦點類型',\r\n crtPoint_2: '編輯焦點類型',\r\n crtPoint_3: '新增標記',\r\n crtPoint_4: '編輯標記',\r\n crtPoint_5: '焦點類型名稱',\r\n crtPoint_6: '備註',\r\n crtPoint_7: '增加標記',\r\n crtPoint_8: '請填寫焦點類型名稱',\r\n crtPoint_9: '新建焦點類型已達上限',\r\n crtPoint_11: '請填寫標記',\r\n crtPoint_12: '標記名稱',\r\n lang: '語系',\r\n basicLabel: '醍摩豆焦點類型',\r\n channelLabel: '學校焦點類型',\r\n myLabel: '自定焦點類型',\r\n clickBtn: '請選擇一個標記按鈕',\r\n mode_ready: '上課中',\r\n mode_quiz_single: '單選',\r\n mode_quiz_multiple: '複選',\r\n mode_quiz_judge: '是非',\r\n mode_quiz_complete: '填充',\r\n mode_quiz_subjective: '簡答',\r\n mode_quiz_compose: '題組',\r\n mode_buzzin: '搶權',\r\n mode_competition_single: '單選搶答',\r\n mode_competition_multiple: '複選搶答',\r\n mode_competition_judge: '是非搶答',\r\n mode_competition_complete: '填充搶答',\r\n mode_competition_subjective: '簡答搶答',\r\n mode_selfpace_start: '課堂測驗',\r\n mode_selfpace_end: '測驗結束',\r\n mode_attend: '點名',\r\n mode_collate: '作品收集任務',\r\n mode_close: '課堂已結束',\r\n myCatagory: '我的焦點類型 {value}',\r\n changeTable: '更換焦點類型',\r\n warning: '警告',\r\n warn_text1: '如果更換焦點類型,您的標記內容或附件將會遺失!!',\r\n warn_text2: '如果刪除 {value},以下的標記將會一起刪除!!',\r\n warn_text3: '刪除標記後將無法回复,是否刪除?',\r\n warn_text4: '您未給予錄音權限或未開啟瀏覽器的麥克風功能',\r\n warn_text5: '本課堂已經結束, 您尚未送出標記內容可能會遺失, 請趕快送出!',\r\n setting: '設 定',\r\n chgLang: '變更語言',\r\n editCustomTags: '編輯自定標記',\r\n delete: '刪除',\r\n updsuccess: '修改成功',\r\n delsuccess: '刪除成功',\r\n settingRemark: '將此QR Code分享給其他專家和老師',\r\n weitStarClass: '您已經成功加入本次觀議課, 目前課堂尚未正式開始, 請稍候',\r\n version: '版本',\r\n webviewmsg1: '1. 請點右上方按鈕',\r\n webviewmsg2: {\r\n ios: '2. 選擇 \"在預設瀏覽器開啟\"',\r\n android: '2. 選擇 \"在默認瀏覽器中開啟\"'\r\n },\r\n webviewmsg3: '3. 這樣就能使用蘇格拉底數位觀議課APP了',\r\n notSokMode: '非議課模式',\r\n devTimeDialog: '請確認您的手機或電腦系統時間設置是否正常。',\r\n advertiseInfo1: '進一步了解AI 蘇格拉底'\r\n}\r\n","export default {\r\n basicInfo: '基本信息',\r\n loginClass: '进入教室',\r\n changeClass: '离开教室',\r\n sendPoint: '送出',\r\n loginTeamModel: '醍摩豆账号登录',\r\n teamModelID: '醍摩豆账号',\r\n name: '观课者',\r\n groupNum: 'HiTeach云端教室编号',\r\n pinCode: '验证码',\r\n socrates: '苏格拉底',\r\n err01: '此栏位必填',\r\n err02: '只能输入英数字',\r\n err03: '请重新登录再试一次',\r\n err04: '课程已结束',\r\n err05: '登入失败',\r\n err06: '教室编号或验证码错误',\r\n err07: '参与观议课人数已满,请稍后再试。 ',\r\n err08: '您的文件超过10MB,建议录制格式720P以下',\r\n err09: '授课者已重置本次观议课参与人数,如您仍想加入,请再次扫描二维码登录',\r\n err10: '请使用醍摩豆帐号加入',\r\n err11: '档案上传失败',\r\n logOut: '注 销',\r\n ok: '确 定',\r\n cancel: '取 消',\r\n expertTitle: '专家',\r\n teacherTitle: '教师',\r\n selectCharacter: '选择角色',\r\n selectYourCharacter: '选择你的身分',\r\n groupQRCode: '二维码',\r\n PIN: '验证码',\r\n selectModel: '选择您的模式',\r\n saySomething: '请在这里填写想法',\r\n uploadIMG: '请上传图片',\r\n selectONE: '请点选一个标记',\r\n sendSucces: '发送成功',\r\n selectExpert_1: '请输入验证码',\r\n selectExpert_2: '验证码错误',\r\n modelRoot_1:'加入课堂时间',\r\n modelRoot_2:'分钟',\r\n modelRoot_3:'开始观议课时间',\r\n ENTER: 'ENTER',\r\n TOPIC:'课程名称',\r\n history: '观议课纪录',\r\n historyEditTitle1: '修改标记内容',\r\n historyEditTitle2: '删除标记',\r\n historyEditCont: '您确定要删除此标记吗?',\r\n copySuccess: '复制成功',\r\n directions: '说明',\r\n comment: '标记',\r\n endClass: '目前课程已结束',\r\n copy: '复制',\r\n copyText: '复制所有记录',\r\n guest: '访客',\r\n login: '登入',\r\n guestLogin: '或以访客身分登入',\r\n or: '或',\r\n leaveComment: '请问要离开吗?',\r\n iknow: '我知道了',\r\n modeltext1: '新的课程已开启,',\r\n modeltext2: '您的历史讯息将会保留并接续记录',\r\n teacher: '观课者',\r\n joinPeoples: '参与观议课人数',\r\n logintext_1: '昵称...',\r\n modelRoot_4: '观议课尚未开始',\r\n classTeacher: '授课教师',\r\n 'lang-zh-cn': '简',\r\n 'lang-zh-tw': '繁',\r\n 'lang-en-us': 'EN',\r\n LabelManagement: '自定标记',\r\n ClassroomSetting: '苏格拉底观议课',\r\n save: '储 存',\r\n crtPoint_1: '新增焦点类型',\r\n crtPoint_2: '编辑焦点类型',\r\n crtPoint_3: '新增标记',\r\n crtPoint_4: '编辑标记',\r\n crtPoint_5: '焦点类型名称',\r\n crtPoint_6: '备注',\r\n crtPoint_7: '增加标记',\r\n crtPoint_8: '请填写焦点类型名称',\r\n crtPoint_9: '新建焦点类型已达上限',\r\n crtPoint_11: '请填写标记',\r\n crtPoint_12: '标记名称',\r\n lang: '语系',\r\n basicLabel: '醍摩豆焦点类型',\r\n channelLabel: '学校焦点类型',\r\n myLabel: '自定焦点类型',\r\n clickBtn: '请选择一个标记按钮',\r\n mode_ready: '上课中',\r\n mode_quiz_single: '单选',\r\n mode_quiz_multiple: '复选',\r\n mode_quiz_judge: '判断',\r\n mode_quiz_complete: '填空',\r\n mode_quiz_subjective: '问答',\r\n mode_quiz_compose: '题组',\r\n mode_buzzin: '抢权',\r\n mode_competition_single: '单选抢答',\r\n mode_competition_multiple: '复选抢答',\r\n mode_competition_judge: '判断抢答',\r\n mode_competition_complete: '填空抢答',\r\n mode_competition_subjective: '问答抢答',\r\n mode_selfpace_start: '课堂测验',\r\n mode_selfpace_end: '测验结束',\r\n mode_attend: '点名',\r\n mode_collate: '作品收集任务',\r\n mode_close: '课堂已结束',\r\n myCatagory: '我的焦点类型 {value}',\r\n changeTable: '更换焦点类型',\r\n warning: '警告',\r\n warn_text1: '如果更换焦点类型,您的标记内容或附件将会遗失!!',\r\n warn_text2: '如果删除 {value},以下的标记将会一起删除!!',\r\n warn_text3: '删除标记后将无法回复,是否删除?',\r\n warn_text4: '您未给予录音权限或未开启浏览器的麦克风功能',\r\n warn_text5: '本课堂已经结束, 您尚未送出标记内容可能会遗失, 请赶快提交!',\r\n setting: '设 定',\r\n chgLang: '变更语言',\r\n editCustomTags: '编辑自定标记',\r\n delete: '删除',\r\n updsuccess: '修改成功',\r\n delsuccess: '删除成功',\r\n settingRemark: '将此二维码分享给其他专家和老师',\r\n weitStarClass: '您已经成功加入本次观议课, 目前课堂尚未正式开始, 请稍候',\r\n version: '版本',\r\n webviewmsg1: '1. 请点击右上角按钮',\r\n webviewmsg2: {\r\n ios: '2. 选择 \"在预设浏览器打开\"',\r\n android: '2. 选择 \"在默认浏览器中打开\"'\r\n },\r\n webviewmsg3: '3. 这样就能使用苏格拉底数位观议课APP了',\r\n notSokMode: '非议课模式',\r\n devTimeDialog: '请确认您的手机或电脑系统时间设置是否正常。 ',\r\n advertiseInfo1: '进一步了解AI 苏格拉底'\r\n}\r\n","import Vue from 'vue'\r\nimport VueI18n from 'vue-i18n'\r\nimport { jsFn } from '@/utils/jsFn'\r\n\r\n// i18n\r\nimport en from './en.js'\r\nimport tw from './tw.js'\r\nimport cn from './cn.js'\r\n\r\nVue.use(VueI18n)\r\n\r\nconst i18n = new VueI18n({\r\n locale: jsFn.getLang(),\r\n messages: {\r\n 'zh-tw': tw,\r\n 'zh-cn': cn,\r\n 'en-us': en\r\n }\r\n})\r\n\r\nexport default i18n\r\n","import { corePost, get } from '@/api/http'\r\nimport { jsFn } from '@/utils/jsFn'\r\nimport profile from '@/utils/profile'\r\nimport i18n from '@/lang'\r\n// let hostname = window.location.hostname\r\nvar serverLocation = jsFn.isCN() ? 'cn' : 'global'\r\n// if(hostname.indexOf('-rc') > 0) {\r\n// serverLocation += 'rc'\r\n// }\r\n// if(hostname.indexOf('localhost') === 0) {\r\n// serverLocation = 'globalrc'\r\n// }\r\n\r\nvar clientID = profile.clientID[serverLocation]\r\nvar apiUrl = profile.apiUrl[serverLocation]\r\nvar tmdUrl = profile.tmdUrl[serverLocation]\r\nexport default {\r\n loginTMD: function(redirectUri) {\r\n let data = {\r\n response_type: 'code',\r\n client_id: clientID,\r\n nonce: jsFn.getUUID()\r\n }\r\n setTimeout(function() {\r\n data.state = jsFn.getUUID()\r\n data.redirect_uri = window.location.origin\r\n if(redirectUri !== null) {\r\n data.redirect_uri += '?s=' + redirectUri.s\r\n }\r\n window.location.href = tmdUrl + '/oauth2/authorize?response_type=' + data.response_type + '&client_id=' + data.client_id + '&state=' + data.state + '&nonce=' + data.nonce + '&redirect_uri=' + data.redirect_uri\r\n },1000)\r\n },\r\n // 大雲快速登入\r\n codeLogin: function(code) {\r\n return new Promise((resolve, reject) => {\r\n let data = {\r\n client_id: clientID,\r\n grant_type: 'authorization_code',\r\n code: code\r\n }\r\n corePost(apiUrl + '/oauth2/token', data).then(res => {\r\n if (res.error) {\r\n reject(res)\r\n } else {\r\n resolve(res)\r\n }\r\n }, err => {\r\n reject(err)\r\n })\r\n })\r\n },\r\n // 取得詳細使用者資訊\r\n getUserInfo: function() {\r\n return new Promise((resolve, reject) => {\r\n let nonceStr = jsFn.getUUID()\r\n let data = {\r\n grant_type: 'get',\r\n client_id: clientID,\r\n id_token: localStorage.getItem('id_token'),\r\n nonce: nonceStr\r\n }\r\n corePost(apiUrl + '/oauth2/profile', data).then(res => {\r\n if (res.error) {\r\n reject(new Error(res))\r\n } else {\r\n if (nonceStr === jsFn.jwtDecode(res.id_token).nonce) {\r\n resolve(res)\r\n } else {\r\n resolve({\r\n error: 'nonce'\r\n })\r\n }\r\n }\r\n }, err => {\r\n reject(err)\r\n })\r\n })\r\n },\r\n // 取得個人的按鈕設定檔\r\n initUserTags: function() {\r\n return new Promise((resolve, reject) => {\r\n let data = {\r\n grant_type: 'get',\r\n product: 'sokapp',\r\n id_token: localStorage.getItem('id_token')\r\n }\r\n corePost(apiUrl + '/oauth2/UserSetting', data).then(res => {\r\n if (res.error) {\r\n reject(new Error(res))\r\n } else {\r\n if (res === '') {\r\n let tags = [\r\n {\r\n typeId: jsFn.getUUID(),\r\n typeName: {\r\n customize: i18n.t('myCatagory', {value: 1}),\r\n cn: null,\r\n en: null,\r\n tw: null\r\n },\r\n tagList:[\r\n ]\r\n }\r\n ]\r\n\r\n resolve({error: 0, data: tags})\r\n } else {\r\n resolve({error: 0, data: res.tags})\r\n }\r\n }\r\n }, err => {\r\n reject(err)\r\n })\r\n })\r\n },\r\n // 設定個人標籤\r\n updUserTags: function(tags) {\r\n return new Promise((resolve, reject) => {\r\n let data = {\r\n grant_type: 'update',\r\n id_token: localStorage.getItem('id_token'),\r\n data: {'tags': tags}\r\n }\r\n corePost(apiUrl + '/oauth2/UserSetting', data).then(res => {\r\n if (res.error) {\r\n reject(new Error(res))\r\n } else {\r\n resolve(true)\r\n }\r\n }, err => {\r\n reject(err)\r\n })\r\n })\r\n },\r\n // IM 頻道登入\r\n joinChannel: function(data) {\r\n return new Promise((resolve, reject) => {\r\n let imData = {\r\n client_name: 'sokAPP',\r\n user_id: data.user_id,\r\n channel: data.channel,\r\n pin: data.pin\r\n }\r\n corePost(apiUrl + '/channel/join', imData).then(res => {\r\n if (res.error) {\r\n reject(new Error(res))\r\n } else {\r\n resolve(res)\r\n }\r\n }, err => {\r\n reject(err)\r\n })\r\n })\r\n },\r\n // 取得 azure 伺服器時間\r\n getServiceUnixTimeMilliseconds: function(data) {\r\n return new Promise((resolve, reject) => {\r\n get(apiUrl + '/service/UnixTimeMilliseconds').then(res => {\r\n if (res.error) {\r\n reject(res)\r\n } else {\r\n resolve(res)\r\n }\r\n }, err => {\r\n reject(err)\r\n })\r\n })\r\n }\r\n}\r\n","import { channelPost, get } from '@/api/http'\r\nexport default {\r\n // 詢問取得頻道詳細資訊(return 在監聽中收到)\r\n sendChannelInfo: function(url, channel, user) {\r\n return new Promise((resolve, reject) => {\r\n let payload = {\r\n action: 'Announce.Ask',\r\n clientType: 'SK',\r\n sender: user.deviceId,\r\n timestamp: Math.floor(Date.now()),\r\n waitReturn: false,\r\n payload: ''\r\n }\r\n let data = {\r\n target: 'onMessage',\r\n arguments: [{\r\n connectionId: null,\r\n to: null,\r\n groupname: null,\r\n sender: user.deviceId,\r\n text: JSON.stringify(payload)\r\n }]\r\n }\r\n channelPost(url, data, channel).then(res => {\r\n resolve(true)\r\n }, err => {\r\n reject(err)\r\n })\r\n })\r\n },\r\n // 詢問取得頻道綁定資訊(return 在監聽中收到)\r\n sendSKBinding: function(url, channel, user) {\r\n return new Promise((resolve, reject) => {\r\n let payload = {\r\n action: 'MemberBinding',\r\n clientType: 'SK',\r\n sender: user.deviceId,\r\n timestamp: Math.floor(Date.now()),\r\n waitReturn: false,\r\n payload: {\r\n memberID: user.id,\r\n api_Version: 5,\r\n deviceID: user.deviceId,\r\n clientType: 'SK',\r\n memberName: user.name\r\n }\r\n }\r\n let data = {\r\n target: 'onMessage',\r\n arguments: [{\r\n connectionId: null,\r\n to: null,\r\n groupname: null,\r\n sender: user.deviceId,\r\n text: JSON.stringify(payload)\r\n }]\r\n }\r\n channelPost(url, data, channel).then(res => {\r\n if (res.error) {\r\n reject(res)\r\n } else {\r\n resolve(res)\r\n }\r\n }, err => {\r\n reject(err)\r\n })\r\n })\r\n },\r\n // 取得使用者個人打點Data\r\n getUserComments: function(url) {\r\n return new Promise((resolve, reject) => {\r\n get(url).then(res => {\r\n if (res.error) {\r\n reject(res)\r\n } else {\r\n resolve(res)\r\n }\r\n }, err => {\r\n reject(err)\r\n })\r\n })\r\n },\r\n // 取得焦點內容\r\n getSkMarkTemplate: function(url) {\r\n return new Promise((resolve, reject) => {\r\n get(url).then(res => {\r\n if (res.error) {\r\n reject(res)\r\n } else {\r\n resolve(res)\r\n }\r\n }, err => {\r\n reject(err)\r\n })\r\n })\r\n },\r\n // 離開教室\r\n leave: function(url, channel, user) {\r\n return new Promise((resolve, reject) => {\r\n let payload = {\r\n action: 'Leave',\r\n clientType: 'SK',\r\n sender: user.deviceId,\r\n timestamp: Math.floor(Date.now()),\r\n waitReturn: true,\r\n payload: {}\r\n }\r\n let data = {\r\n target: 'onMessage',\r\n arguments: [{\r\n connectionId: null,\r\n to: null,\r\n groupname: null,\r\n sender: user.deviceId,\r\n text: JSON.stringify(payload)\r\n }]\r\n }\r\n channelPost(url, data, channel).then(res => {\r\n resolve(true)\r\n }, err => {\r\n reject(err)\r\n })\r\n })\r\n }\r\n}\r\n","import { get, post } from '@/api/http'\r\nimport profile from '@/utils/profile'\r\nimport { jsFn } from '@/utils/jsFn'\r\n\r\nlet hostname = window.location.hostname\r\nvar serverLocation = jsFn.isCN() ? 'sokplatformcn' : 'sokplatform'\r\nif(hostname.indexOf('-rc') > 0) {\r\n serverLocation += 'rc'\r\n}\r\nif(hostname.indexOf('localhost') === 0) {\r\n serverLocation = 'sokplatformrc'\r\n}\r\nvar accept = 'application/vnd.sokradeo.v1+json'\r\nvar clientID = 3\r\nvar apiUrl = profile.apiUrl[serverLocation]\r\n\r\nexport default {\r\n // 登入教室\r\n join: function(data, userinfo) {\r\n return new Promise((resolve, reject) => {\r\n let isGuest = userinfo.expertType === 'Guest'\r\n let url = apiUrl + '/api/school/observation/class/' + (isGuest ? 'guest/' : '') + data.channel\r\n let config = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Application': 'c1e3deb8-9c20-49b3-9508-109911e5b984',\r\n 'Accept': accept\r\n },\r\n params: {\r\n pin_code: data.pin\r\n }\r\n }\r\n\r\n if(isGuest) {\r\n config.params.guest = userinfo.id\r\n config.headers.Authorization = 'Bearer ' + localStorage.getItem('sokplatform_access_token')\r\n } else {\r\n config.headers.Authorization = 'Bearer ' + localStorage.getItem('id_token')\r\n }\r\n\r\n get(url, config).then(res => {\r\n resolve({\r\n status: res.status, // API 狀態\r\n hostBlobUrl: res.url, // blob位置\r\n blobSAS_read: res.sas,\r\n blobSAS_write: res.sas,\r\n bindingNum: res.binding_number // activityRecordNumber 就是bindingNum\r\n })\r\n }, err => {\r\n reject(err)\r\n })\r\n })\r\n },\r\n // 詢問教室資訊\r\n getInfo: function(url) {\r\n return new Promise((resolve, reject) => {\r\n get(url).then(res => {\r\n resolve(res)\r\n }, err => {\r\n reject(err)\r\n })\r\n })\r\n },\r\n // 取得打點標記\r\n getTags: function(url) {\r\n return new Promise((resolve, reject) => {\r\n get(url).then(res => {\r\n resolve(res)\r\n }, err => {\r\n reject(err)\r\n })\r\n })\r\n },\r\n // 取得AccessToken\r\n getAccessToken: function() {\r\n return new Promise((resolve, reject) => {\r\n let config = {\r\n headers: {\r\n 'Accept': accept\r\n }\r\n }\r\n let data = {\r\n 'grant_type': 'client_credentials',\r\n 'client_id': clientID,\r\n 'client_secret': '9lIRxFY03Br2R5ymBbP8z30UksjbV72WpxD22pBS'\r\n }\r\n post(apiUrl + '/oauth/token', data, config).then(res => {\r\n resolve(res)\r\n }, err => {\r\n reject(err)\r\n })\r\n })\r\n }\r\n}\r\n","import coreApi from './coreApi'\r\nimport channeleApi from './channeleApi'\r\nimport sokplatform from './sokplatform'\r\n\r\nexport default {\r\n coreApi,\r\n channeleApi,\r\n sokplatform\r\n}\r\n","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nimport api from '@/api'\r\nimport i18n from '@/lang'\r\nimport router from '@/router'\r\nimport { jsFn } from '@/utils/jsFn'\r\nimport profile from '@/utils/profile'\r\nimport {Message} from 'view-design'\r\nconst signalR = require('@microsoft/signalr')\r\nlet hostname = window.location.hostname\r\nvar serverLocation = jsFn.isCN() ? 'cn' : 'global'\r\nif(hostname.indexOf('-rc') > 0) {\r\n serverLocation += 'rc'\r\n}\r\nif(hostname.indexOf('localhost') === 0) {\r\n serverLocation = 'globalrc'\r\n}\r\nvar clientID = profile.clientID[serverLocation]\r\nvar tmdUrl = profile.tmdUrl[serverLocation]\r\nVue.use(Vuex)\r\n\r\n// TYPES\r\nconst PAGE_LANG = 'PAGE_LANG'\r\nconst LOGOUT = 'LOGOUT'\r\nconst SETUSERINFO = 'SETUSERINFO'\r\nconst SETUSERTAGS = 'SETUSERTAGS'\r\nconst SETHISTORYS = 'SETHISTORYS'\r\nconst SETCHANNELLINK = 'SETCHANNELLINK'\r\nconst SETCHANNELINFO = 'SETCHANNELINFO'\r\nconst SETCOMMENTBTNSETTING = 'SETCOMMENTBTNSETTING'\r\nconst SETCOMMENTSDATA = 'SETCOMMENTSDATA'\r\n\r\n// STATE\r\nconst state = {\r\n lang: '',\r\n loginFlag: false,\r\n userInfo: {\r\n id: '',\r\n name: '',\r\n expertType: ''\r\n },\r\n userTags: [], // 個人焦點標記\r\n tmdTags: [], // 醍摩豆焦點標記\r\n schoolTags: [], // 學校焦點標記\r\n // 打點身分\r\n expertType: {\r\n // 專家\r\n Expert : { id: 'A005F', type: 'Expert' },\r\n // 觀課\r\n Teacher: { id: 'A0060', type: 'Teacher' }\r\n },\r\n historys: [],\r\n channelLink:{}, // access_token, channel_api, channel_rest_api, channel_url, user_id\r\n channelInfo:{\r\n isStrClass: null, // 是否上課中\r\n channel: '', // 教室號碼\r\n pin: '', // Pin code\r\n className: '', // 上課名稱\r\n classTeacher: '', // 上課老師\r\n timestamp: 0, // 開課時間\r\n pageID: '', // 現在頁面的pageID\r\n isSokActivity: false, // 能否議課\r\n duration: 0, // 通用議課用 判斷一堂課預計上多久 0 則不計算\r\n deltaTime: 0, // 用來補正 Hiteach 如果時間錯誤的問題\r\n blobConfig: {\r\n hostBlobUrl: '', // blob位置\r\n bindingNum: '', // activityRecordNumber 就是bindingNum\r\n blobSAS_read: '', // 只能讀的\r\n blobSAS_write: '' // 只能寫入\r\n },\r\n isDevTimeAbnormal: false // 裝置時間異常\r\n },\r\n commentBtnSetting:{ // 打點目前使用的標記\r\n pointsByTypeId: '', // 目前使用的打點類別id\r\n table: {}, // 目前使用的打點按鈕List\r\n detailType: '', // 目前使用的菜盤 basic, school, myself\r\n detail: [] // 目前類別下可選的List\r\n },\r\n signalPayload: '',\r\n isSignalLink: false, // 是不是使用signal\r\n // courseMode: '',\r\n // exerciseType: '',\r\n baseFileUrl: '',\r\n version: 'v2.1.20241127',\r\n signalConnection: null,\r\n commentsData:{\r\n userId: '',\r\n bindingNum:'', // activityRecordNumber 就是bindingNum\r\n data:[]\r\n }\r\n}\r\n\r\n// Getters\r\nconst getters = {\r\n loginFlag: state => state.loginFlag,\r\n expertType: state => state.expertType,\r\n lang: state => state.lang,\r\n userTags: state => state.userTags,\r\n tmdTags: state => state.tmdTags,\r\n schoolTags: state => state.schoolTags,\r\n historys: state => state.historys,\r\n commentsData: state => state.commentsData,\r\n copyText: function(state) {\r\n let text = ''\r\n if(state.historys.length > 0) {\r\n // 處理VUE的深拷貝問題\r\n let historysReverse = JSON.stringify(state.historys)\r\n historysReverse = JSON.parse(historysReverse)\r\n historysReverse.sort(function(a, b) {\r\n return a.obsStart - b.obsStart\r\n })\r\n historysReverse.forEach((i, key, array) => {\r\n i.points.sort(function(a, b) {\r\n return a.timestamp - b.timestamp\r\n })\r\n })\r\n historysReverse.forEach((item) => {\r\n if(item.topic) {\r\n text += i18n.t('TOPIC') + ': ' + item.topic + '\\n'\r\n }\r\n if(item.classTName) {\r\n text += i18n.t('classTeacher') + ': ' + item.classTName + '\\n'\r\n }\r\n text += i18n.t('teacher') + ': ' + item.pointer + '\\n'\r\n text += i18n.t('modelRoot_3') + ': ' + jsFn.converDrawerTime(item.obsStart) + '\\n'\r\n // text += i18n.t('joinPeoples') + ': ' + item.joinPpo + '\\n'\r\n if(item.points.length > 0) {\r\n item.points.forEach((point) => {\r\n let conet = ''\r\n if(point.desc) {\r\n conet = ', ' + i18n.t('directions') + ':' + point.desc\r\n }\r\n let langFormat\r\n switch (state.lang) {\r\n case 'zh-tw':\r\n langFormat = 'tw'\r\n break\r\n case 'zh-cn':\r\n langFormat = 'cn'\r\n break\r\n case 'en-us':\r\n langFormat = 'en'\r\n break\r\n }\r\n text += jsFn.getDateDiffByTimestamp(item.obsStart, point.timestamp) + ' ' + i18n.t('comment') + ': ' + (point.tagName.customize ? point.tagName.customize : point.tagName[langFormat]) + conet + '\\n'\r\n })\r\n }\r\n text += '----------' + '\\n'\r\n })\r\n }\r\n return text\r\n },\r\n channelLink: state => state.channelLink,\r\n channelInfo: state => state.channelInfo,\r\n userInfo: state => state.userInfo,\r\n commentBtnSetting: state => state.commentBtnSetting,\r\n version: state => state.version,\r\n teachTypeNum: function(state) {\r\n let data = -1\r\n if (state.channelInfo.isStrClass !== null && state.channelInfo.isStrClass) {\r\n if(!state.isSignalLink) {\r\n data = 0\r\n } else {\r\n switch (state.signalPayload.mode) {\r\n case 'Quiz':\r\n case 'Quiz_Competition':\r\n switch (state.signalPayload.content.exercise.type) {\r\n case 'Multiple':\r\n data = state.signalPayload.mode === 'Quiz' ? 2 : 8\r\n break\r\n case 'Single':\r\n data = state.signalPayload.mode === 'Quiz' ? 1 : 7\r\n break\r\n case 'Judge':\r\n data = state.signalPayload.mode === 'Quiz' ? 3 : 9\r\n break\r\n case 'Complete':\r\n data = state.signalPayload.mode === 'Quiz' ? 4 : 10\r\n break\r\n case 'Subjective':\r\n data = state.signalPayload.mode === 'Quiz' ? 5 : 11\r\n break\r\n case 'Compose':\r\n data = 6\r\n break\r\n }\r\n break\r\n case 'Quiz_Buzz':\r\n data = 16\r\n break\r\n case 'SelfPace_Start':\r\n data = 12\r\n break\r\n case 'SelfPace_End':\r\n data = 13\r\n break\r\n case 'SelfPace_Check':\r\n data = 12\r\n break\r\n case 'Close':\r\n data = 17\r\n break\r\n case 'Collate_Start':\r\n data = 15\r\n break\r\n case 'Normal':\r\n data = 0\r\n break\r\n default:\r\n data = -1\r\n }\r\n }\r\n } else if (state.channelInfo.isStrClass !== null && !state.channelInfo.isStrClass) {\r\n data = 17\r\n }\r\n return data\r\n },\r\n baseFileUrl: state => state.baseFileUrl,\r\n isSignalLink: state => state.isSignalLink\r\n}\r\n\r\n// MUTATIONS\r\nconst mutations = {\r\n [PAGE_LANG](state, lang) {\r\n state.lang = lang\r\n localStorage.lang = lang\r\n },\r\n [SETUSERINFO](state, userInfo) {\r\n state.userInfo = userInfo\r\n state.loginFlag = true\r\n if(userInfo.expertType === 'Guest') {\r\n sessionStorage.setItem('userInfo', encodeURIComponent(JSON.stringify(userInfo), 'utf-8'))\r\n } else {\r\n localStorage.setItem('userInfo', encodeURIComponent(JSON.stringify(userInfo), 'utf-8'))\r\n }\r\n },\r\n [SETCHANNELLINK](state, info) {\r\n localStorage.channelLink = encodeURIComponent(JSON.stringify(info), 'utf-8')\r\n state.channelLink = info\r\n },\r\n [SETCHANNELINFO](state, info) {\r\n localStorage.channelInfo = encodeURIComponent(JSON.stringify(info), 'utf-8')\r\n state.channelInfo = info\r\n },\r\n [SETUSERTAGS](state, info) {\r\n localStorage.userTagsData = encodeURIComponent(JSON.stringify(info), 'utf-8')\r\n state.userTags = info\r\n },\r\n [LOGOUT](state) {\r\n const urlParams = new URLSearchParams(window.location.search)\r\n const myParam = urlParams.get('s')\r\n let logoutUrl = tmdUrl + '/logout?client_id=' + clientID + '&id=' + state.userInfo.id + '&callback=' + document.location.origin\r\n if(!jsFn.IsEmpty(myParam)) {\r\n logoutUrl += '?s=' + myParam\r\n }\r\n state.loginFlag = false\r\n state.userInfo = {}\r\n // 保留 historys\r\n let historys = localStorage.getItem('historys')\r\n localStorage.clear()\r\n sessionStorage.clear()\r\n localStorage.setItem('historys', historys)\r\n window.location.href = logoutUrl\r\n },\r\n [SETHISTORYS](state, data) {\r\n let historys = !jsFn.IsEmpty(localStorage.getItem('historys')) ? JSON.parse(decodeURIComponent(localStorage.getItem('historys'), 'utf-8')) : {}\r\n historys[state.userInfo.id.toString()] = data\r\n localStorage.historys = encodeURIComponent(JSON.stringify(historys), 'utf-8')\r\n state.historys = data\r\n },\r\n [SETCOMMENTBTNSETTING](state, data) {\r\n state.commentBtnSetting.pointsByTypeId = data.pointsByTypeId\r\n state.commentBtnSetting.table = data.table\r\n state.commentBtnSetting.detailType = data.detailType\r\n state.commentBtnSetting.detail = data.detail\r\n localStorage.commentBtnSetting = encodeURIComponent(JSON.stringify(state.commentBtnSetting), 'utf-8')\r\n },\r\n [SETCOMMENTSDATA](state, data) {\r\n localStorage.commentsData = encodeURIComponent(JSON.stringify(data), 'utf-8')\r\n state.commentsData = data\r\n }\r\n}\r\n\r\n// ACTIONS\r\nconst actions = ({\r\n // 設定語系\r\n setPageLang({ commit }, lang) {\r\n commit(PAGE_LANG, lang)\r\n },\r\n // 設定基本資訊\r\n setUserInfo({ commit }, info) {\r\n if(!jsFn.IsEmpty(info)) {\r\n commit(SETUSERINFO, info)\r\n } else if(!jsFn.IsEmpty(localStorage.getItem('userInfo'))) {\r\n let localUserInfo = JSON.parse(decodeURIComponent(localStorage.userInfo, 'utf-8'))\r\n commit(SETUSERINFO, localUserInfo)\r\n } else if(!jsFn.IsEmpty(sessionStorage.getItem('userInfo'))) {\r\n let sessionUserInfo = JSON.parse(decodeURIComponent(sessionStorage.userInfo, 'utf-8'))\r\n commit(SETUSERINFO, sessionUserInfo)\r\n }\r\n },\r\n // 設定頻道連線資訊\r\n setChannelLink({ commit }, info) {\r\n if(!jsFn.IsEmpty(info)) {\r\n commit(SETCHANNELLINK, info)\r\n } else if(!jsFn.IsEmpty(localStorage.channelLink)) {\r\n let data = JSON.parse(decodeURIComponent(localStorage.channelLink,'utf-8'))\r\n commit(SETCHANNELLINK, data)\r\n }\r\n },\r\n // 設定頻道基本資訊\r\n setChannelInfo({ commit }, info) {\r\n if(!jsFn.IsEmpty(info)) {\r\n commit(SETCHANNELINFO, info)\r\n } else if(!jsFn.IsEmpty(localStorage.channelInfo)) {\r\n let data = JSON.parse(decodeURIComponent(localStorage.channelInfo,'utf-8'))\r\n commit(SETCHANNELINFO, data)\r\n }\r\n },\r\n // 設定教師標籤\r\n setUserTags({ commit }, info) {\r\n if(!jsFn.IsEmpty(info)) {\r\n commit(SETUSERTAGS, info)\r\n } else if (!jsFn.IsEmpty(localStorage.userTagsData)) {\r\n let data = JSON.parse(decodeURIComponent(localStorage.userTagsData,'utf-8'))\r\n commit(SETUSERTAGS, data)\r\n }\r\n },\r\n // 設定打點紀錄(取得一筆 存到陣列)\r\n setHistorys(context, obj) {\r\n let data = []\r\n if(!jsFn.IsEmpty(obj)) {\r\n data = obj\r\n } else if(!jsFn.IsEmpty(localStorage.historys)) {\r\n data = JSON.parse(decodeURIComponent(localStorage.historys, 'utf-8'))\r\n data = data[context.state.userInfo.id]\r\n }\r\n if(!jsFn.IsEmpty(data)) {\r\n let taday = new Date().getTime()\r\n let datatemp = []\r\n data.forEach((item) => {\r\n // 只留下沒超過一天的\r\n let difference = parseInt(Math.abs(taday - parseInt(item.obsStart)) / (1000 * 60 * 60 * 24))\r\n if(difference === 0 && !jsFn.IsEmpty(item.points) && item.points.length > 0) {\r\n datatemp.push(item)\r\n }\r\n })\r\n\r\n context.commit(SETHISTORYS, datatemp)\r\n }\r\n },\r\n // 設定Blob打點紀錄\r\n setCommentsData({commit}, obj) {\r\n if(!jsFn.IsEmpty(obj)) {\r\n commit(SETCOMMENTSDATA, obj)\r\n } else if (!jsFn.IsEmpty(localStorage.commentsData)) {\r\n let data = JSON.parse(decodeURIComponent(localStorage.commentsData,'utf-8'))\r\n commit(SETCOMMENTSDATA, data)\r\n }\r\n },\r\n // 登出\r\n logOut(context) {\r\n context.commit(LOGOUT)\r\n },\r\n loginTMD(context, redirectUri) {\r\n api.coreApi.loginTMD(redirectUri)\r\n },\r\n codeLogin(context, code) {\r\n return new Promise((resolve, reject) => {\r\n api.coreApi.codeLogin(code).then(res => {\r\n localStorage.setItem('id_token', res.id_token)\r\n localStorage.setItem('access_token', res.access_token)\r\n localStorage.setItem('expires_in', res.expires_in)\r\n resolve(true)\r\n }).catch(err => {\r\n reject(err)\r\n })\r\n })\r\n },\r\n // 初始化使用者自訂標籤\r\n initUserTags(context, item) {\r\n return new Promise((resolve, reject) => {\r\n api.coreApi.initUserTags().then(res => {\r\n context.dispatch('setUserTags', res.data)\r\n resolve(true)\r\n }).catch(err => {\r\n reject(err)\r\n })\r\n })\r\n },\r\n // 更新教師自訂標籤\r\n updUserTags(context) {\r\n return new Promise((resolve, reject) => {\r\n api.coreApi.updUserTags(context.state.userTags).then(res => {\r\n context.dispatch('setUserTags', context.state.userTags)\r\n context.dispatch('setCommentBtnSetting', context.state.commentBtnSetting)\r\n resolve(true)\r\n }).catch(err => {\r\n reject(err)\r\n })\r\n })\r\n },\r\n // 加入頻道\r\n joinChannel(context, data) {\r\n return new Promise((resolve, reject) => {\r\n api.coreApi.joinChannel(data).then(res => {\r\n context.state.channelInfo.channel = data.channel\r\n context.state.channelInfo.pin = data.pin\r\n context.dispatch('setChannelInfo', context.state.channelInfo)\r\n context.dispatch('setChannelLink', res)\r\n resolve(true)\r\n }).catch(err => {\r\n reject(err)\r\n })\r\n })\r\n },\r\n // 發送詢問頻道詳細內容\r\n sendChannelInfo(context) {\r\n return new Promise((resolve, reject) => {\r\n api.channeleApi.sendChannelInfo(\r\n context.state.channelLink.channel_rest_api,\r\n context.state.channelInfo,\r\n context.state.userInfo\r\n ).then(res => {\r\n resolve(true)\r\n }).catch(err => {\r\n reject(err)\r\n })\r\n })\r\n },\r\n // 發送Binding\r\n sendSKBinding(context) {\r\n return new Promise((resolve, reject) => {\r\n api.channeleApi.sendSKBinding(\r\n context.state.channelLink.channel_rest_api,\r\n context.state.channelInfo,\r\n context.state.userInfo).then(() => {\r\n resolve(true)\r\n }).catch(err => {\r\n reject(err)\r\n })\r\n })\r\n },\r\n // 離開教室\r\n leaveChannel(context, isNotLeave) {\r\n return new Promise((resolve) => {\r\n function reset() {\r\n if(context.state.isSignalLink) {\r\n context.state.signalConnection.stop()\r\n }\r\n\r\n localStorage.removeItem('channelInfo')\r\n localStorage.removeItem('commentBtnSetting')\r\n // 清空signal\r\n context.state.signalConnection = null\r\n\r\n // 清空當下選擇的打點\r\n context.state.commentBtnSetting = {\r\n pointsByTypeId: '',\r\n table: {},\r\n detailType: '',\r\n detail: []\r\n }\r\n\r\n let channelInfo = {\r\n isStrClass: null, // 是否上課中\r\n channel: '', // 教室號碼\r\n pin: '', // Pin code\r\n className: '', // 上課名稱\r\n classTeacher: '', // 上課老師\r\n timestamp: 0, // 開課時間\r\n pageID: '', // 現在頁面的pageID\r\n isSokActivity: false, // 能否議課\r\n duration: 0, // 通用議課用 判斷一堂課預計上多久 0 則不計算\r\n blobConfig: {\r\n hostBlobUrl: '', // blob位置\r\n bindingNum: '', // activityRecordNumber 就是bindingNum\r\n blobSAS_read: '', // 只能讀的\r\n blobSAS_write: '' // 只能寫入\r\n }\r\n }\r\n context.commit(SETCHANNELINFO, channelInfo)\r\n }\r\n if(isNotLeave) {\r\n reset()\r\n resolve(true)\r\n } else {\r\n api.channeleApi.leave(\r\n context.state.channelLink.channel_rest_api,\r\n context.state.channelInfo,\r\n context.state.userInfo\r\n ).then(() => {\r\n reset()\r\n resolve(true)\r\n }).catch(() => {\r\n reset()\r\n resolve(true)\r\n })\r\n }\r\n })\r\n },\r\n // 取得使用者個人打點Data\r\n getUserComments(context) {\r\n return new Promise((resolve) => {\r\n let url = context.state.channelInfo.blobConfig.hostBlobUrl + '/' + context.state.baseFileUrl + 'comments.json?' + context.state.channelInfo.blobConfig.blobSAS_read\r\n api.channeleApi.getUserComments(url).then(res => {\r\n resolve(res)\r\n }).catch(() => {\r\n resolve(null)\r\n })\r\n })\r\n },\r\n // 保持議課打點的按鈕\r\n setCommentBtnSetting(context, info) {\r\n if(!jsFn.IsEmpty(info)) {\r\n context.commit(SETCOMMENTBTNSETTING, info)\r\n } else if (!jsFn.IsEmpty(localStorage.commentBtnSetting)) {\r\n let data = JSON.parse(decodeURIComponent(localStorage.commentBtnSetting,'utf-8'))\r\n context.commit(SETCOMMENTBTNSETTING, data)\r\n }\r\n },\r\n // 加入通用教研教室\r\n joinSokPlatform(context, data) {\r\n return new Promise(async(resolve, reject) => {\r\n if(context.state.userInfo.expertType === 'Guest') {\r\n await api.sokplatform.getAccessToken().then(res => {\r\n localStorage.setItem('sokplatform_access_token', res.access_token)\r\n })\r\n }\r\n\r\n api.sokplatform.join(data, context.state.userInfo).then(res => {\r\n let resFlag = false\r\n if(res.status === 0) {\r\n resFlag = true\r\n context.state.channelInfo.channel = data.channel\r\n context.state.channelInfo.pin = data.pin\r\n context.state.channelInfo.blobConfig.hostBlobUrl = res.hostBlobUrl\r\n context.state.channelInfo.blobConfig.bindingNum = res.bindingNum\r\n context.state.channelInfo.blobConfig.blobSAS_read = res.blobSAS_read\r\n context.state.channelInfo.blobConfig.blobSAS_write = res.blobSAS_write\r\n context.dispatch('setChannelInfo', context.state.channelInfo)\r\n }\r\n resolve(resFlag)\r\n }).catch(err => {\r\n reject(err)\r\n })\r\n })\r\n },\r\n // 取得通用教研教室\r\n getPlatformInfo(context) {\r\n return new Promise((resolve) => {\r\n let url = context.state.channelInfo.blobConfig.hostBlobUrl + '/' + context.state.channelInfo.blobConfig.bindingNum + '/observation.json?' + context.state.channelInfo.blobConfig.blobSAS_read\r\n api.sokplatform.getInfo(url).then(res => {\r\n let channelInfo = context.state.channelInfo\r\n switch (res.status) {\r\n case 'R':\r\n channelInfo.isStrClass = null\r\n break\r\n case 'E':\r\n channelInfo.isStrClass = false\r\n break\r\n case 'S':\r\n channelInfo.isStrClass = true\r\n channelInfo.isSokActivity = true\r\n break\r\n }\r\n channelInfo.duration = res.duration * 1000 // 調整格式到毫秒\r\n channelInfo.timestamp = jsFn.IsEmpty(res.timestamp) ? res.timestamp : res.timestamp * 1000 // 調整格式到毫秒\r\n channelInfo.className = res.className\r\n channelInfo.classTeacher = res.classTeacher\r\n\r\n context.state.baseFileUrl = context.state.channelInfo.blobConfig.bindingNum + '/Sokrates/' + context.state.userInfo.id + '/'\r\n let nowTime = new Date().getTime()\r\n let endTime = channelInfo.timestamp + channelInfo.duration\r\n if(!jsFn.IsEmpty(channelInfo.timestamp) && nowTime >= endTime) { // 已到達指定下課時間\r\n channelInfo.isStrClass = false\r\n }\r\n\r\n // 如果現在時間與上課時間已經超過課堂限制時間,回報時間異常\r\n // let diffTime = Math.abs(channelInfo.timestamp - nowTime)\r\n // // console.log('diffTime', diffTime)\r\n // if(diffTime > channelInfo.duration) {\r\n // context.state.channelInfo.isDevTimeAbnormal = true\r\n // } else {\r\n // context.state.channelInfo.isDevTimeAbnormal = false\r\n // }\r\n\r\n context.dispatch('setChannelInfo', channelInfo)\r\n resolve(true)\r\n }).catch(() => {\r\n resolve(null)\r\n })\r\n })\r\n },\r\n // 取得焦點標記\r\n getSkMarkTemplate(context) {\r\n return new Promise((resolve) => {\r\n let url = context.state.channelInfo.blobConfig.hostBlobUrl + '/' + context.state.channelInfo.blobConfig.bindingNum + '/observation_tags.json?' + context.state.channelInfo.blobConfig.blobSAS_read\r\n api.sokplatform.getTags(url).then(res => {\r\n res.forEach(function(item) {\r\n if (item.tableType === 'school') {\r\n context.state.schoolTags = item.types\r\n } else if (item.tableType === 'tmd') {\r\n context.state.tmdTags = item.types\r\n // 預設議課目前的打點選項\r\n if (context.state.commentBtnSetting.detail.length <= 0) {\r\n context.dispatch('setCommentBtnSetting', {table: context.state.tmdTags[0], detail: context.state.tmdTags, pointsByTypeId: context.state.tmdTags[0].typeId, detailType: 'tmd'})\r\n }\r\n }\r\n })\r\n resolve(true)\r\n }).catch(() => {\r\n resolve(null)\r\n })\r\n })\r\n },\r\n initSignal(context) {\r\n function setSkMarkTeamplat(skMarkTemplate) {\r\n skMarkTemplate.forEach(function(item) {\r\n if (item.tableType === 'school') {\r\n context.state.schoolTags = item.types\r\n } else if (item.tableType === 'tmd') {\r\n context.state.tmdTags = item.types\r\n // 預設議課目前的打點選項\r\n if (context.state.commentBtnSetting.detail.length <= 0) {\r\n context.dispatch('setCommentBtnSetting', {table: context.state.tmdTags[0], detail: context.state.tmdTags, pointsByTypeId: context.state.tmdTags[0].typeId, detailType: 'tmd'})\r\n }\r\n }\r\n })\r\n }\r\n const options = {\r\n accessTokenFactory: () => context.state.channelLink.access_token\r\n }\r\n context.state.signalConnection = new signalR.HubConnectionBuilder()\r\n .withUrl(context.state.channelLink.channel_url, options)\r\n .withAutomaticReconnect({\r\n nextRetryDelayInMilliseconds: (retryContext) => {\r\n // 累計測試未超過30秒繼續重新連線\r\n if (retryContext.elapsedMilliseconds < 30000) {\r\n return 10000 // 等10秒後重新連線\r\n } else {\r\n return null // 中斷連線\r\n }\r\n }\r\n }).configureLogging(signalR.LogLevel.Information).build()\r\n\r\n context.state.signalConnection.on('onMessage', function(message) {\r\n let targetmsg = null\r\n\r\n if (message.Text) targetmsg = JSON.parse(message.Text)\r\n else if (message.text) targetmsg = JSON.parse(message.text)\r\n\r\n if(targetmsg.sender === context.state.channelLink.user_id) {\r\n switch (targetmsg.action) {\r\n case 'State':\r\n context.state.signalPayload = targetmsg.payload\r\n // context.state.courseMode = targetmsg.payload.mode\r\n // context.state.exerciseType = targetmsg.payload.content.exercise.type\r\n\r\n context.state.channelInfo.pageID = targetmsg.payload.pageID\r\n context.state.channelInfo.isSokActivity = targetmsg.payload.isSokActivity\r\n // let now = new Date().getTime()\r\n // context.state.channelInfo.deltaTime = targetmsg.timestamp - now // 暫時註解矯正值\r\n\r\n // 裝置時間異常檢查\r\n // console.log('targetmsg.timestamp', targetmsg.timestamp)\r\n // console.log('now.timestamp', new Date().getTime())\r\n let nTime = Math.floor(new Date().getTime() / 1000)\r\n let heartbeatTime = Math.floor(targetmsg.timestamp / 1000)\r\n let diffMin = Math.floor(Math.abs(heartbeatTime - nTime) / 60)\r\n\r\n // 差距10分鐘顯示裝置時間異常\r\n if(diffMin > 10) {\r\n context.state.channelInfo.isDevTimeAbnormal = true\r\n } else {\r\n context.state.channelInfo.isDevTimeAbnormal = false\r\n }\r\n\r\n context.dispatch('setChannelInfo', context.state.channelInfo)\r\n break\r\n case 'Class.Start':\r\n console.log('開始上課-Class.Start-詢問課堂狀態...')\r\n let rand = Math.random().toFixed(1)\r\n setTimeout(function() {\r\n console.log('等待' + rand + '秒')\r\n context.dispatch('sendChannelInfo').then(() => {\r\n console.log('sendChannelInfo OK')\r\n }).catch((err) => {\r\n console.log(err, 'sendChannelInfo-err')\r\n })\r\n }, (1000 * rand))\r\n console.log('------------------------')\r\n break\r\n case 'Class.Close':\r\n context.state.channelInfo.isStrClass = false\r\n context.dispatch('setChannelInfo', context.state.channelInfo)\r\n console.log('結束上課')\r\n break\r\n case 'Announce.Push':\r\n let announce = targetmsg.payload.announce\r\n console.log('取得課堂狀態...')\r\n context.state.channelInfo.className = announce.className\r\n context.state.channelInfo.classTeacher = announce.hostName\r\n context.state.channelInfo.pin = announce.pincode\r\n\r\n if(!jsFn.IsEmpty(announce.hostSoftwareVersion) && announce.hostSoftwareVersion.toString() !== '0') {\r\n console.log('------508-開始Binding--------')\r\n console.log('詢問教室設置...')\r\n rand = Math.random().toFixed(1)\r\n setTimeout(function() {\r\n console.log('等待' + rand + '秒')\r\n context.dispatch('sendSKBinding').then(() => {\r\n console.log('sendSKBinding OK')\r\n }).catch((err) => {\r\n console.log(err, 'sendSKBinding-err')\r\n })\r\n }, (1000 * rand))\r\n }\r\n\r\n switch (announce.classState) {\r\n case 'Preparing': // (準備中)\r\n context.state.channelInfo.isStrClass = null\r\n break\r\n case 'Finished': // (已完成)\r\n context.state.channelInfo.isStrClass = false\r\n // _this.teachTypeNum = 17\r\n break\r\n case 'InProcess': // (進行中)\r\n context.state.channelInfo.isStrClass = true\r\n context.state.channelInfo.timestamp = announce.classStartTime\r\n\r\n // 詢問課堂BLOB\r\n if(jsFn.IsEmpty(announce.hostSoftwareVersion) || announce.hostSoftwareVersion.toString() === '0') {\r\n console.log('詢問教室設置...')\r\n let rand = Math.random().toFixed(1)\r\n setTimeout(function() {\r\n console.log('等待' + rand + '秒')\r\n context.dispatch('sendSKBinding').then(() => {\r\n console.log('sendSKBinding OK')\r\n }).catch((err) => {\r\n console.log(err, 'sendSKBinding-err')\r\n })\r\n }, (1000 * rand))\r\n }\r\n break\r\n }\r\n context.dispatch('setChannelInfo', context.state.channelInfo)\r\n console.log('取得完成...')\r\n break\r\n case 'BindingResult':\r\n console.log('取得教室設置...')\r\n let bindingData = targetmsg.payload\r\n // console.log(bindingData, 'bindingData')\r\n if (bindingData.errorCode === 0) {\r\n let bindingData = targetmsg.payload\r\n\r\n context.state.channelInfo.blobConfig = {\r\n hostBlobUrl: bindingData.hostBlobUrl, // blob位置\r\n bindingNum: bindingData.activityRecordNumber // activityRecordNumber 就是bindingNum\r\n }\r\n // 配合版本調整的\r\n if (jsFn.IsEmpty(bindingData.blobSAS_Read) || jsFn.IsEmpty(bindingData.blobSAS_Write)) {\r\n context.state.channelInfo.blobConfig.blobSAS_read = bindingData.blobSAS // 只能讀的\r\n context.state.channelInfo.blobConfig.blobSAS_write = bindingData.blobSAS // 只能寫入\r\n } else {\r\n context.state.channelInfo.blobConfig.blobSAS_read = bindingData.blobSAS_Read // 只能讀的\r\n context.state.channelInfo.blobConfig.blobSAS_write = bindingData.blobSAS_Write // 只能寫入\r\n }\r\n console.log('取得完成...')\r\n context.state.baseFileUrl = 'records/' + context.state.channelInfo.blobConfig.bindingNum + '/Sokrates/' + context.state.userInfo.id + '/'\r\n context.dispatch('setChannelInfo', context.state.channelInfo)\r\n if(bindingData.skMarkTemplate) {\r\n console.log('從bindingData拿')\r\n let skMarkTemplate = JSON.parse(bindingData.skMarkTemplate)\r\n setSkMarkTeamplat(skMarkTemplate)\r\n } else {\r\n console.log('從blob拿')\r\n let url = `${context.state.channelInfo.blobConfig.hostBlobUrl}/records/${context.state.channelInfo.blobConfig.bindingNum}/SkMarkTemplate.json?${context.state.channelInfo.blobConfig.blobSAS_read}`\r\n api.channeleApi.getSkMarkTemplate(url).then(res => {\r\n setSkMarkTeamplat(res)\r\n }).catch((e) => {\r\n console.log(e)\r\n })\r\n }\r\n } else {\r\n console.log('取得失敗...')\r\n Message.info({\r\n content: i18n.t('err07'),\r\n duration: 3,\r\n closable: true\r\n })\r\n context.dispatch('leaveChannel', true).then(() => {\r\n router.push({path: '/login'})\r\n })\r\n }\r\n break\r\n case 'FuckOff':\r\n Message.info({\r\n content: i18n.t('err09'),\r\n duration: 10,\r\n closable: true\r\n })\r\n context.dispatch('leaveChannel').then(() => {\r\n router.push({path: '/login'})\r\n })\r\n break\r\n }\r\n }\r\n })\r\n context.state.signalConnection.on('onDisconnected', function(message) {\r\n if(message.ConnectionId === context.state.channelLink.user_id) {\r\n console.log(message)\r\n }\r\n })\r\n context.state.signalConnection.on('onConnected', function(message) {\r\n console.log('onConnected-詢問課堂狀態...')\r\n if(context.state.userInfo.deviceId === message.UserId) {\r\n let rand = Math.random().toFixed(1)\r\n setTimeout(function() {\r\n console.log('等待' + rand + '秒')\r\n context.dispatch('sendChannelInfo').then(() => {\r\n console.log('sendChannelInfo OK')\r\n }).catch((err) => {\r\n console.log(err, 'sendChannelInfo-err')\r\n })\r\n }, (1000 * rand))\r\n }\r\n })\r\n\r\n context.state.signalConnection.onclose(() => {\r\n console.log('close connection')\r\n context.state.isSignalLink = false\r\n context.state.signalConnection\r\n .start()\r\n .then(() => console.log('re-connection!'))\r\n .catch(setTimeout(() => context.state.signalConnection.start(), 2000))\r\n })\r\n\r\n console.log('connecting...')\r\n context.state.signalConnection.start()\r\n .then(() => {\r\n context.state.isSignalLink = true\r\n console.log('Start connect OK!')\r\n }).catch(() => {\r\n console.log('Start connect fail!!')\r\n context.dispatch('leaveChannel', true).then(() => {\r\n router.push({path: '/login'})\r\n })\r\n })\r\n },\r\n // 取得伺服器現在時間\r\n getServiceUnixTimeMilliseconds(context) {\r\n return new Promise((resolve) => {\r\n api.coreApi.getServiceUnixTimeMilliseconds().then(res => {\r\n resolve(res)\r\n }).catch(() => {\r\n resolve(null)\r\n })\r\n })\r\n }\r\n})\r\n\r\nexport default new Vuex.Store({\r\n state,\r\n getters,\r\n mutations,\r\n actions\r\n})\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"login\",class:{loging: !_vm.loginFlag},attrs:{\"id\":\"login\"}},[(_vm.loginFlag)?_c('div',{staticClass:\"sky\"},[_vm._v(_vm._s(_vm.$t('ClassroomSetting')))]):_c('img',{staticStyle:{\"position\":\"absolute\",\"top\":\"0px\",\"left\":\"0\",\"width\":\"100%\"},attrs:{\"src\":_vm.logoImgList[_vm.lang]}}),(!_vm.loginFlag)?_c('div',{staticStyle:{\"height\":\"300px\",\"max-width\":\"560px\",\"width\":\"100%\"}}):_vm._e(),_c('div',{staticClass:\"box\"},[(_vm.loginFlag)?_c('Form',{ref:\"loginForm\",staticClass:\"text-center loginForm\",attrs:{\"model\":_vm.loginForm,\"rules\":_vm.loginRule},nativeOn:{\"submit\":function($event){$event.preventDefault();}}},[_c('FormItem',{staticClass:\"nameItem\"},[_c('span',{staticClass:\"welcome\"},[_vm._v(_vm._s('WELCOME'))]),_c('div',{staticClass:\"nameBox\"},[_c('h3',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.userInfo.name))]),_c('div',{staticClass:\"icon\"},[_c('SokIcon',{attrs:{\"type\":\"certification\",\"size\":\"15\"}})],1)])]),_c('FormItem',{staticClass:\"channel\",attrs:{\"prop\":\"channel\"}},[_c('span',[_vm._v(_vm._s(_vm.$t('groupNum')))]),_c('security-code',{staticClass:\"input-channel\",attrs:{\"focus\":true,\"number\":6},model:{value:(_vm.loginForm.channel),callback:function ($$v) {_vm.$set(_vm.loginForm, \"channel\", $$v)},expression:\"loginForm.channel\"}})],1),_c('FormItem',{staticClass:\"pin\",attrs:{\"prop\":\"pinCode\"}},[_c('span',[_vm._v(_vm._s(_vm.$t('pinCode')))]),_c('div',[_c('Input',{staticClass:\"sok-btn pincode\",staticStyle:{\"width\":\"150px\"},attrs:{\"element-id\":\"pinCode\",\"type\":\"tel\"},model:{value:(_vm.loginForm.pinCode),callback:function ($$v) {_vm.$set(_vm.loginForm, \"pinCode\", $$v)},expression:\"loginForm.pinCode\"}})],1)]),_c('FormItem',{staticStyle:{\"margin-bottom\":\"7px\"}},[_c('Button',{staticClass:\"sok-btn\",attrs:{\"disabled\":_vm.isCanEnterClass,\"long\":\"\"},on:{\"click\":function($event){return _vm.submitClass('loginForm')}}},[_vm._v(_vm._s(_vm.$t('loginClass')))])],1),_c('FormItem',[_c('Button',{staticClass:\"sok-btn\",attrs:{\"long\":\"\"},on:{\"click\":function($event){return _vm.signout()}}},[_vm._v(_vm._s(_vm.$t('logOut')))])],1),(_vm.userInfo.expertType !== 'Guest')?_c('FormItem',{staticStyle:{\"margin-top\":\"27px\"}},[_c('Button',{staticClass:\"sok-btn\",attrs:{\"to\":\"/crtpointbtn\",\"long\":\"\"}},[_vm._v(_vm._s(_vm.$t('LabelManagement')))])],1):_vm._e()],1):_c('div',{staticClass:\"logoPage\"},[_c('div',{staticClass:\"tmdLogin\"},[_c('Button',{staticClass:\"sok-btn\",attrs:{\"long\":\"\"},on:{\"click\":function($event){return _vm.loginTeamModelID()}}},[_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"center\"}},[_c('SokIcon',{staticClass:\"icon\",attrs:{\"type\":\"tmdring\",\"size\":\"20\"}}),_c('span',{staticStyle:{\"vertical-align\":\"middle\"}},[_vm._v(_vm._s(_vm.$t('loginTeamModel')))])],1)])],1),_c('div',{staticClass:\"guestLogin\"},[_c('Form',{ref:\"guestForm\",staticClass:\"guestForm\",staticStyle:{\"max-width\":\"380px\",\"margin\":\"auto\"},attrs:{\"model\":_vm.guestForm,\"rules\":_vm.guestRule},nativeOn:{\"submit\":function($event){$event.preventDefault();}}},[_c('p',[_vm._v(_vm._s(_vm.$t('guestLogin')))]),_c('FormItem',{staticStyle:{\"padding\":\"0\"},attrs:{\"prop\":\"name\"}},[_c('Row',{attrs:{\"type\":\"flex\",\"justify\":\"space-between\"}},[_c('Col',{attrs:{\"span\":\"17\"}},[_c('Input',{staticClass:\"sok-btn tuning\",attrs:{\"placeholder\":_vm.$t('logintext_1')},model:{value:(_vm.guestForm.name),callback:function ($$v) {_vm.$set(_vm.guestForm, \"name\", $$v)},expression:\"guestForm.name\"}})],1),_c('Col',{attrs:{\"span\":\"6\"}},[_c('Button',{staticClass:\"sok-btn\",attrs:{\"long\":\"\"},on:{\"click\":function($event){return _vm.guestLogin('guestForm')}}},[_vm._v(_vm._s(_vm.$t('login')))])],1)],1)],1)],1)],1)])],1),_c('div',{staticClass:\"login-footer\"},[_c('page-footer'),_c('div',{staticClass:\"intellectual\"},[(_vm.isCN)?_c('span',[_c('a',{attrs:{\"href\":\"http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=51010402000615\"}},[_vm._v(\"蜀ICP备18027363号\")]),_vm._v(\" | \")]):_vm._e(),_c('span',[_vm._v(\"HABOOK.Group © | \"+_vm._s(_vm.version))])])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"footer\",attrs:{\"id\":\"page-footer\"}},[_c('div',{staticClass:\"detail\"},[_c('a',{staticClass:\"lang\",class:{'select':_vm.pageLang=='zh-tw'},attrs:{\"type\":\"text\"},on:{\"click\":function($event){return _vm.langChange('zh-tw')}}},[_vm._v(\"中文(繁體)‎\")]),_vm._v(\" | \"),_c('a',{staticClass:\"lang\",class:{'select':_vm.pageLang=='zh-cn'},attrs:{\"type\":\"text\"},on:{\"click\":function($event){return _vm.langChange('zh-cn')}}},[_vm._v(\"中文(简体)‎‎‎\")]),_vm._v(\" | \"),_c('a',{staticClass:\"lang\",class:{'select':_vm.pageLang=='en-us'},attrs:{\"type\":\"text\"},on:{\"click\":function($event){return _vm.langChange('en-us')}}},[_vm._v(\"English\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport { mapActions } from 'vuex'\r\nexport default {\r\n name: 'page-footer',\r\n data() {\r\n return {\r\n pageLang: this.$i18n.locale\r\n }\r\n },\r\n created: function() {\r\n },\r\n methods: {\r\n ...mapActions(['setPageLang']),\r\n langChange(val) {\r\n this.pageLang = val\r\n this.$i18n.locale = val\r\n this.setPageLang(val)\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./page-footer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./page-footer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./page-footer.vue?vue&type=template&id=58e65945&\"\nimport script from \"./page-footer.vue?vue&type=script&lang=js&\"\nexport * from \"./page-footer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./page-footer.vue?vue&type=style&index=0&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"security-code-wrap\"},[_c('label',{attrs:{\"for\":\"code\"}},[_c('ul',{staticClass:\"security-code-container\"},_vm._l((_vm.numberAry),function(item,index){return _c('li',{key:index,staticClass:\"field-wrap\"},[_c('i',{staticClass:\"char-field\"},[_vm._v(_vm._s(item || _vm.placeholder))])])}),0)]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value),expression:\"value\"}],ref:\"input\",staticClass:\"input-code\",attrs:{\"id\":\"code\",\"name\":\"code\",\"type\":\"tel\",\"maxlength\":_vm.number,\"autocorrect\":\"off\",\"autocomplete\":\"off\",\"autocapitalize\":\"off\"},domProps:{\"value\":(_vm.value)},on:{\"keyup\":function($event){return _vm.handleInput($event)},\"input\":function($event){if($event.target.composing){ return; }_vm.value=$event.target.value}}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nexport default {\r\n name: 'SecurityCode',\r\n props: {\r\n number: {\r\n type: Number,\r\n default: 4\r\n },\r\n placeholder: {\r\n type: String,\r\n default: '-'\r\n },\r\n focus: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n computed:{\r\n numberAry() {\r\n let array = []\r\n for (var i = 0; i < this.number; i++) {\r\n array.push(this.value.substr(i, 1))\r\n }\r\n return array\r\n }\r\n },\r\n data() {\r\n return {\r\n value: ''\r\n }\r\n },\r\n methods: {\r\n hideKeyboard() {\r\n // 輸入完成隱藏鍵盤\r\n document.activeElement.blur() // ios隱藏鍵盤\r\n this.$refs.input.blur() // android隱藏鍵盤\r\n },\r\n handleSubmit() {\r\n this.$emit('input', this.value)\r\n },\r\n handleInput(e) {\r\n this.$refs.input.value = this.value\r\n if (this.value.length >= this.number) {\r\n // this.hideKeyboard()\r\n }\r\n this.handleSubmit()\r\n },\r\n init() {\r\n if(this.focus) {\r\n this.$refs.input.focus()\r\n }\r\n }\r\n },\r\n mounted() {\r\n this.init()\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./securityCode.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./securityCode.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./securityCode.vue?vue&type=template&id=1d47e3ee&scoped=true&\"\nimport script from \"./securityCode.vue?vue&type=script&lang=js&\"\nexport * from \"./securityCode.vue?vue&type=script&lang=js&\"\nimport style0 from \"./securityCode.vue?vue&type=style&index=0&id=1d47e3ee&scoped=true&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1d47e3ee\",\n null\n \n)\n\nexport default component.exports","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nimport { mapActions, mapGetters } from 'vuex'\nimport PageFooter from '@/components/page-footer'\nimport securityCode from '@/components/tool/securityCode'\nimport { jsFn } from '@/utils/jsFn'\nimport { Base64 } from 'js-base64'\n\nexport default {\n name: 'login',\n components:{\n 'page-footer': PageFooter,\n 'security-code': securityCode\n },\n data() {\n var validateChannel = (rule, value, callback) => {\n if (value.trim() === '') {\n callback(new Error(this.$t('err01')))\n } else if (!(/^[A-Za-z0-9 ]+$/.test(value))) {\n callback(new Error(this.$t('err02')))\n } else {\n callback()\n }\n }\n var validatePinCode = (rule, value, callback) => {\n if (value.trim() === '') {\n callback(new Error(this.$t('err01')))\n } else if (!(/^[A-Za-z0-9 ]+$/.test(value))) {\n callback(new Error(this.$t('err02')))\n } else {\n callback()\n }\n }\n return {\n logoImgList: {\n 'zh-tw': require('@/img/logo/white/sok_index_tw.png'),\n 'zh-cn': require('@/img/logo/white/sok_index_cn.png'),\n 'en-us': require('@/img/logo/white/sok_index_en.png')\n },\n callback: '',\n loginForm: {\n channel: '',\n pinCode: ''\n },\n loginRule: {\n channel: [\n { validator: validateChannel, trigger: 'blur' }\n ],\n pinCode: [\n { validator: validatePinCode, trigger: 'blur' }\n ]\n },\n guestForm: {\n name: ''\n },\n guestRule: {\n name: [\n { required: true, message: this.$t('err01'), trigger: 'change' }\n ]\n }\n }\n },\n computed: {\n ...mapGetters([\n 'loginFlag',\n 'userInfo',\n 'lang',\n 'version'\n ]),\n isCN: function() {\n let domain = document.domain\n if (domain.indexOf('.cn') >= 0) {\n return true\n } else {\n return false\n }\n },\n isCanEnterClass: function() {\n let flag = true\n if(this.loginForm.channel.length === 6 && this.loginForm.pinCode !== '') flag = false\n return flag\n }\n },\n async created() {\n let s = this.$tools.IsEmpty(this.$route.query.s) ? '' : this.$route.query.s\n if (s !== '') {\n s = JSON.parse(Base64.decode(decodeURIComponent(s, 'utf-8')))\n this.loginForm.channel = this.$tools.IsEmpty(s.gn) ? '' : s.gn\n this.loginForm.pinCode = this.$tools.IsEmpty(s.pin) ? '' : s.pin\n }\n let code = this.$tools.IsEmpty(this.$route.query.code) ? '' : this.$route.query.code\n if (!this.$tools.IsEmpty(this.$route.query.code)) {\n await this.codeLogin(code)\n }\n\n if (this.loginFlag) {\n let localUserInfo = !this.$tools.IsEmpty(localStorage.userInfo) ? JSON.parse(decodeURIComponent(localStorage.userInfo, 'utf-8')) : null\n // 如果已在登入中且身分在localstorage裡面是訪客就登出,因為之後的訪客資訊只會存在在session\n if(!this.$tools.IsEmpty(localUserInfo) && localUserInfo.expertType === 'Guest') {\n this.logOut()\n } else {\n // 如果已在登入中重新取得焦點\n if (this.userInfo.expertType !== 'Guest') {\n this.$store.dispatch('initUserTags')\n }\n\n // 如果已在登入中,並且URL有教室ID,執行登入教室\n if (!this.$tools.IsEmpty(this.loginForm.channel) && !this.$tools.IsEmpty(this.loginForm.pinCode)) {\n this.loginClass()\n }\n }\n }\n },\n methods: {\n ...mapActions([\n 'setUserInfo',\n 'logOut'\n ]),\n submitClass(name) { // 登入教室表單檢查\n this.$refs[name].validate((valid) => {\n if (valid) {\n this.loginClass()\n }\n })\n },\n loginTeamModelID() { // 登入TeamModelID\n // 回調網址\n let redirectUri = null\n let s = this.$tools.IsEmpty(this.$route.query.s) ? '' : this.$route.query.s\n if(!this.$tools.IsEmpty(s)) {\n redirectUri = {s: s}\n }\n\n this.$store.dispatch('loginTMD', redirectUri)\n },\n async loginClass() { // 登入教室\n if (this.$tools.IsEmpty(this.loginForm.channel) || this.$tools.IsEmpty(this.loginForm.pinCode)) {\n return false\n } else {\n this.$Spin.show() // 開啟加載畫面\n let channelData = {\n user_id: this.userInfo.deviceId,\n channel: this.loginForm.channel,\n pin: this.loginForm.pinCode\n }\n\n // 如果是0或9開頭的channel就是通用議課\n if (channelData.channel.indexOf(0) === 0 || channelData.channel.indexOf(9) === 0) {\n // 呼叫API取得Blob位置\n await this.$store.dispatch('joinSokPlatform', channelData).then((res) => {\n if(res) {\n this.$router.push({ path: '/commentbtn' })\n } else {\n this.$Message.warning({ content: this.$t('err07', {channel: this.loginForm.channel, pin: this.loginForm.pinCode}), duration: 3,closable: true })\n }\n }).catch(() => {\n this.$Message.warning({ content: this.$t('err06', {channel: this.loginForm.channel, pin: this.loginForm.pinCode}), duration: 3,closable: true })\n }).finally(() => {\n this.$Spin.hide() // 開啟加載畫面\n })\n } else {\n await this.$store.dispatch('joinChannel', channelData).then(() => {\n this.$router.push({ path: '/commentbtn' })\n }).catch(() => {\n this.$Message.warning({ content: this.$t('err06', {channel: this.loginForm.channel, pin: this.loginForm.pinCode}), duration: 3,closable: true })\n }).finally(() => {\n this.$Spin.hide() // 開啟加載畫面\n })\n }\n }\n },\n signout() {\n this.$Spin.show() // 關閉加載畫面\n this.logOut()\n },\n // 票券登入檢查\n async codeLogin(code) {\n this.$Spin.show() // 開啟加載畫面\n await this.$store.dispatch('codeLogin', code).then(\n res => {\n let user = jsFn.jwtDecode(localStorage.getItem('id_token'))\n let info = { id: user.sub, expertType: 'Teacher', name: user.name, deviceId: jsFn.getUUID() }\n this.$store.dispatch('setUserInfo', info)\n this.$store.dispatch('initUserTags')\n this.loginClass()\n },\n () => {\n this.$Message.warning({ content: this.$t('err05'), duration: 3, closable: true })\n }\n ).finally(() => {\n this.$Spin.hide() // 關閉加載畫面\n })\n },\n // 訪客登入\n guestLogin(name) {\n this.$refs[name].validate((valid) => {\n if (valid) {\n let info = { id: jsFn.getUUID(), expertType: 'Guest', name: this.guestForm.name, deviceId: jsFn.getUUID() }\n this.$store.dispatch('setUserInfo', info)\n this.loginClass()\n }\n })\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./login.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./login.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./login.vue?vue&type=template&id=e03935d6&scoped=true&\"\nimport script from \"./login.vue?vue&type=script&lang=js&\"\nexport * from \"./login.vue?vue&type=script&lang=js&\"\nimport style0 from \"./login.vue?vue&type=style&index=0&lang=less&\"\nimport style1 from \"./login.vue?vue&type=style&index=1&id=e03935d6&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e03935d6\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"crtPointBtn\",attrs:{\"id\":\"crtPointBtn\"}},[_c('div',{staticClass:\"box\"},[_c('div',{staticClass:\"sky\"},[_c('Icon',{staticClass:\"backPage\",attrs:{\"size\":\"25\",\"type\":\"ios-arrow-back\"},on:{\"click\":function($event){return _vm.backPage()}}}),_c('div',{staticClass:\"sky-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('LabelManagement'))+\" \"),_c('span',{staticClass:\"time\"},[_vm._v(_vm._s(_vm.commentsTime))])]),_c('SokIcon',{staticClass:\"addClass\",attrs:{\"type\":\"add\",\"size\":\"25\"},on:{\"on-click\":function($event){return _vm.setTypeForm('crt')}}})],1),_c('div',{staticClass:\"scrollstyle tagBox\"},_vm._l((_vm.userTags),function(data,key){return _c('div',{key:key,staticClass:\"type\"},[_c('div',{staticClass:\"title\"},[_c('span',[_vm._v(_vm._s(data.typeName.customize))]),_c('SokIcon',{staticClass:\"icon\",attrs:{\"type\":\"edit\",\"size\":\"15\"},on:{\"on-click\":function($event){return _vm.setTypeForm('upd', data.typeId, data.typeName.customize)}}})],1),_c('div',{staticClass:\"cont\"},[_vm._l((data.tagList),function(tag,index){return _c('div',{key:index,staticClass:\"tags\",on:{\"click\":function($event){return _vm.setTagForm('upd' ,data.typeId, tag.id, tag.name.customize, tag.description)}}},[_c('span',{staticClass:\"tags-cont\"},[_vm._v(_vm._s(tag.name.customize))]),_c('div',{staticClass:\"tags-info scrollstyle\"},[_c('span',[_vm._v(_vm._s(tag.description ? tag.description.customize : ''))])]),_c('div',{staticClass:\"box-triangle\"})])}),_c('div',{staticClass:\"tags crtTag\",on:{\"click\":function($event){return _vm.setTagForm('crt' ,data.typeId)}}},[_c('SokIcon',{staticClass:\"icon\",attrs:{\"type\":\"add\",\"size\":\"25\"}}),_vm._v(\" \"+_vm._s(_vm.$t('crtPoint_7'))+\" \")],1)],2)])}),0)]),_c('Modal',{attrs:{\"mask-closable\":false,\"width\":\"300\",\"class-name\":\"titleSetting\"},on:{\"on-cancel\":function($event){return _vm.cancelTypeForm()}},model:{value:(_vm.categoryModel),callback:function ($$v) {_vm.categoryModel=$$v},expression:\"categoryModel\"}},[_c('p',{staticClass:\"title\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_vm._v(\" \"+_vm._s(_vm.typeForm.operating === 'crt' ? _vm.$t('crtPoint_1') : _vm.$t('crtPoint_2'))+\" \")]),_c('div',{staticClass:\"body\"},[_c('Input',{staticClass:\"sok-btn\",attrs:{\"placeholder\":_vm.$t('crtPoint_5')+'...'},model:{value:(_vm.typeForm.name),callback:function ($$v) {_vm.$set(_vm.typeForm, \"name\", $$v)},expression:\"typeForm.name\"}})],1),_c('div',{staticStyle:{\"display\":\"flex\"},attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('Button',{staticClass:\"sok-btn\",attrs:{\"long\":\"\",\"disabled\":_vm.$tools.IsEmpty(_vm.typeForm.name)},on:{\"click\":function($event){return _vm.saveTypeName()}}},[_vm._v(_vm._s(_vm.$t('save')))]),(_vm.typeForm.operating === 'crt')?_c('Button',{staticClass:\"sok-btn\",attrs:{\"long\":\"\"},on:{\"click\":function($event){return _vm.cancelTypeForm()}}},[_vm._v(_vm._s(_vm.$t('cancel')))]):(_vm.typeForm.operating === 'upd')?_c('Button',{staticClass:\"sok-btn\",attrs:{\"long\":\"\"},on:{\"click\":function($event){return _vm.delCatagory()}}},[_vm._v(_vm._s(_vm.$t('delete')))]):_vm._e()],1)]),_c('Modal',{attrs:{\"mask-closable\":false,\"width\":\"300\",\"class-name\":\"crtTagBox\"},on:{\"on-cancel\":function($event){return _vm.cancelTypeForm()}},model:{value:(_vm.tagModel),callback:function ($$v) {_vm.tagModel=$$v},expression:\"tagModel\"}},[_c('p',{staticClass:\"title\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_vm._v(\" \"+_vm._s(_vm.tagForm.operating === 'crt' ? _vm.$t('crtPoint_3') : _vm.$t('crtPoint_4'))+\" \")]),_c('div',{staticClass:\"body\"},[_c('Input',{staticClass:\"sok-btn\",staticStyle:{\"margin-bottom\":\"14px\"},attrs:{\"placeholder\":_vm.$t('crtPoint_12') +'...'},model:{value:(_vm.tagForm.name),callback:function ($$v) {_vm.$set(_vm.tagForm, \"name\", $$v)},expression:\"tagForm.name\"}}),_c('Input',{staticStyle:{\"margin-bottom\":\"14px\"},attrs:{\"type\":\"textarea\",\"rows\":4,\"placeholder\":_vm.$t('crtPoint_6')},model:{value:(_vm.tagForm.remark),callback:function ($$v) {_vm.$set(_vm.tagForm, \"remark\", $$v)},expression:\"tagForm.remark\"}})],1),_c('div',{staticStyle:{\"display\":\"flex\"},attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('Button',{staticClass:\"sok-btn\",attrs:{\"long\":\"\",\"disabled\":_vm.$tools.IsEmpty(_vm.tagForm.name)},on:{\"click\":function($event){return _vm.saveLabel()}}},[_vm._v(_vm._s(_vm.$t('save')))]),(_vm.tagForm.operating === 'crt')?_c('Button',{staticClass:\"sok-btn\",attrs:{\"long\":\"\"},on:{\"click\":function($event){return _vm.quit()}}},[_vm._v(_vm._s(_vm.$t('cancel')))]):(_vm.tagForm.operating === 'upd')?_c('Button',{staticClass:\"sok-btn\",attrs:{\"long\":\"\"},on:{\"click\":function($event){return _vm.delTag()}}},[_vm._v(_vm._s(_vm.$t('delete')))]):_vm._e()],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nimport {mapGetters} from 'vuex'\nimport { jsFn } from '@/utils/jsFn'\nexport default {\n name: 'crtPointBtn',\n data() {\n return {\n categoryModel: false,\n tagModel: false,\n tagForm: {\n operating: '',\n typeId: 0,\n id: '',\n name: '',\n remark: '' // 備註\n },\n typeForm:{\n operating: '',\n id: '',\n name: '',\n orgName: ''\n },\n commentsTime: '' // 上課經過時間\n }\n },\n computed: {\n ...mapGetters([\n 'userTags',\n 'userInfo',\n 'channelInfo'\n ])\n },\n created: function() {\n console.log(this.userTags)\n // 顯示時間-計算相差時間\n this.getDateDiff()\n setInterval(() => {\n this.getDateDiff()\n }, 1000)\n },\n methods: {\n // 開啟修改類別標題\n setTypeForm(operating, id, name) {\n this.typeForm.operating = operating\n this.typeForm.id = id\n this.typeForm.name = name\n this.typeForm.orgName = name\n this.categoryModel = true\n },\n // 離開修改標題\n cancelTypeForm() {\n this.typeForm = {\n operating: '',\n id:'',\n name: '',\n orgName: ''\n }\n this.categoryModel = false\n },\n // 儲存標題\n saveTypeName() {\n if(this.$tools.IsEmpty(this.typeForm.name)) {\n this.$Message.warning({ content: this.$t('crtPoint_8'), duration: 5,closable: true })\n } else {\n this.$Spin.show() // 開啟加載畫面\n let _this = this\n if(this.typeForm.operating === 'upd') {\n this.userTags.forEach(item => {\n if(item.typeId === _this.typeForm.id) {\n item.typeName.customize = _this.typeForm.name\n }\n })\n } else {\n if(_this.userTags.length >= 5) {\n this.$Message.warning({ content: this.$t('crtPoint_9'), duration: 5,closable: true })\n } else {\n this.userTags.push({\n typeId: jsFn.getUUID(),\n typeName: {\n customize: _this.typeForm.name,\n cn: null,\n en: null,\n tw: null\n },\n tagList:[]\n })\n }\n }\n this.$store.dispatch('updUserTags').then(() => {\n this.cancelTypeForm()\n this.$Spin.hide() // 關閉加載畫面\n })\n }\n },\n // 刪除類別\n delCatagory() {\n let _this = this\n this.$Modal.confirm({\n title: this.$t('warning'),\n content: '

' + this.$t('warn_text2', {value: this.typeForm.orgName}) + '

',\n okText: this.$t('ok'),\n cancelText: this.$t('cancel'),\n onOk: () => {\n this.$Spin.show() // 開啟加載畫面\n this.userTags.forEach((item, index, array) => {\n if(item.typeId === _this.typeForm.id) {\n array.splice(index, 1)\n }\n })\n if(this.userTags.length === 0) {\n let _this = this\n this.userTags.push({\n typeId: jsFn.getUUID(),\n typeName: {\n customize: _this.$t('myCatagory', {value: 1}),\n cn: null,\n en: null,\n tw: null\n },\n tagList:[\n ]\n })\n }\n console.log(this.userTags, 'this.userTags')\n _this.$store.dispatch('updUserTags').then(() => {\n _this.cancelTypeForm()\n this.$Spin.hide() // 關閉加載畫面\n })\n }\n })\n },\n // 開啟修改標籤\n setTagForm(operating, typeId, id, name, remark) {\n if(!this.$tools.IsEmpty(remark)) {\n remark = remark.customize\n }\n this.tagForm.operating = operating\n this.tagForm.typeId = typeId\n this.tagForm.id = id\n this.tagForm.name = name\n this.tagForm.remark = remark\n this.tagModel = true\n },\n // 儲存標籤\n saveLabel() {\n if(this.$tools.IsEmpty(this.tagForm.name)) {\n this.$Message.warning({ content: this.$t('crtPoint_10'), duration: 5, closable: true })\n } else {\n this.$Spin.show() // 開啟加載畫面\n let _this = this\n if(this.tagForm.operating === 'crt') {\n this.userTags.forEach(item => {\n if(item.typeId === _this.tagForm.typeId) {\n item.tagList.push({\n id: jsFn.getUUID(),\n name: {\n customize: _this.tagForm.name,\n cn: null,\n en: null,\n tw: null\n },\n description: {\n customize: _this.tagForm.remark ? _this.tagForm.remark : '',\n cn: null,\n en: null,\n tw: null\n },\n crtTime: _this.$tools.yyyymmdd('-')\n })\n }\n })\n } else {\n this.userTags.forEach(item => {\n if(item.typeId === _this.tagForm.typeId) {\n item.tagList.forEach(tag => {\n if(tag.id === _this.tagForm.id) {\n tag.name.customize = _this.tagForm.name\n tag.description = {customize : _this.tagForm.remark ? _this.tagForm.remark : ''}\n tag.crtTime = _this.$tools.yyyymmdd('-')\n }\n })\n }\n })\n }\n this.$store.dispatch('updUserTags').then(() => {\n this.quit()\n this.$Spin.hide() // 關閉加載畫面\n })\n }\n },\n // 刪除標籤\n delTag() {\n let _this = this\n this.$Modal.confirm({\n title: this.$t('warning'),\n content: '

' + this.$t('warn_text3') + '

',\n okText: this.$t('ok'),\n cancelText: this.$t('cancel'),\n onOk: () => {\n this.$Spin.show() // 開啟加載畫面\n this.userTags.forEach((item) => {\n if(item.typeId === _this.tagForm.typeId) {\n item.tagList.forEach((tag, index, array) => {\n if(tag.id === _this.tagForm.id) {\n array.splice(index, 1)\n }\n })\n }\n })\n _this.$store.dispatch('updUserTags').then(() => {\n _this.quit()\n this.$Spin.hide() // 關閉加載畫面\n })\n }\n })\n },\n // 離開標籤\n quit() {\n this.tagModel = false\n this.tagForm = {\n operating: '',\n typeId: 0,\n id: '',\n name: '',\n remark: ''\n }\n },\n backPage() {\n this.$router.go(-1)\n },\n getDateDiff: function() {\n if(this.channelInfo.isStrClass && parseInt(this.channelInfo.timestamp)) {\n // var now = new Date().getTime() + this.channelInfo.deltaTime // 增加校正值 (暫時註解矯正值)\n var now = new Date().getTime()\n var mss = now - parseInt(this.channelInfo.timestamp)\n var hours = parseInt((mss % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60))\n var minutes = parseInt((mss % (1000 * 60 * 60)) / (1000 * 60))\n var seconds = parseInt((mss % (1000 * 60)) / 1000)\n hours = hours < 10 ? ('0' + hours) : hours\n minutes = minutes < 10 ? ('0' + minutes) : minutes\n seconds = seconds < 10 ? ('0' + seconds) : seconds < 0 ? 0 : seconds\n this.commentsTime = hours + ':' + minutes + ':' + seconds\n } else {\n this.commentsTime = ''\n }\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./crtPointBtn.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./crtPointBtn.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./crtPointBtn.vue?vue&type=template&id=8fcb6842&scoped=true&\"\nimport script from \"./crtPointBtn.vue?vue&type=script&lang=js&\"\nexport * from \"./crtPointBtn.vue?vue&type=script&lang=js&\"\nimport style0 from \"./crtPointBtn.vue?vue&type=style&index=0&lang=less&\"\nimport style1 from \"./crtPointBtn.vue?vue&type=style&index=1&id=8fcb6842&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8fcb6842\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"commentBtn\",attrs:{\"id\":\"commentBtn\"}},[_c('div',{staticClass:\"sky\"},[_c('div',{staticClass:\"sky-icon\",on:{\"click\":function($event){_vm.drawerflag = true}}},[_c('SokIcon',{staticClass:\"icon\",attrs:{\"type\":\"history\",\"size\":\"18\"}})],1),_c('div',{staticClass:\"sky-middle\"},[_c('div',{staticClass:\"sky-middle-cont ellipsis\"},[(_vm.channelInfo.isStrClass && !_vm.channelInfo.isSokActivity)?_c('span',{staticStyle:{\"color\":\"#07B8FB\",\"font-weight\":\"600\"}},[_vm._v(_vm._s(_vm.$t('notSokMode')))]):[_vm._v(\" \"+_vm._s(!_vm.settingFlag ? _vm.channelInfo.className : _vm.$t('setting'))+\" \")]],2)]),_c('div',{staticClass:\"sky-icon\",on:{\"click\":function($event){return _vm.showSetting()}}},[(!_vm.settingFlag)?_c('SokIcon',{staticClass:\"icon\",attrs:{\"type\":\"setting\",\"size\":\"18\"}}):_c('SokIcon',{staticClass:\"icon\",attrs:{\"type\":\"exit\",\"size\":\"18\"}})],1)]),(!_vm.settingFlag)?_c('div',{staticClass:\"footer\"},[(!_vm.expertPoint.id)?_c('div',{staticClass:\"noPoint\"},[_c('SokIcon',{staticClass:\"attention\",attrs:{\"type\":\"attention\",\"size\":\"20\"},on:{\"on-click\":_vm.restNowTimestamp}}),_vm._v(\" \"+_vm._s(_vm.$t('clickBtn'))+\" \")],1):[_c('div',{staticClass:\"footer-icon flex-grow-2\",class:{inputFocus: _vm.inputFocusFlag}},[(_vm.uploadFile == null)?[_c('label',{attrs:{\"for\":\"film\"}},[_c('SokIcon',{attrs:{\"type\":\"video\",\"size\":\"25\"}})],1),_c('label',[_c('SokIcon',{attrs:{\"type\":\"recorder\",\"size\":\"25\"},on:{\"on-click\":function($event){_vm.recordFlag = true}}})],1),_c('label',{attrs:{\"for\":\"image\"}},[_c('SokIcon',{attrs:{\"type\":\"camera\",\"size\":\"25\"}})],1),_c('input',{staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\",\"accept\":\"video/mp4, video/x-m4v, video/*\",\"capture\":\"camcorder\",\"id\":\"film\"},on:{\"change\":_vm.chageFile}}),_c('input',{staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\",\"accept\":\"image/png, image/jpeg, image/gif, image/jpg\",\"id\":\"image\"},on:{\"change\":_vm.chageFile}})]:[_c('div',{staticClass:\"fileBorder\",attrs:{\"id\":\"fileBorder\"}},[(_vm.fileType == 'image')?_c('label',{on:{\"click\":function($event){return _vm.previewFile(_vm.fileType, _vm.preview)}}},[_c('img',{staticStyle:{\"width\":\"25px\"},attrs:{\"src\":this.preview}})]):(_vm.fileType == 'audio')?_c('label',[_c('SokIcon',{staticClass:\"file\",attrs:{\"type\":\"recorder\",\"size\":\"25\"}})],1):_c('label',[_c('SokIcon',{staticClass:\"file\",attrs:{\"type\":\"video\",\"size\":\"25\"}})],1),_c('label',{on:{\"click\":function($event){return _vm.previewFile(_vm.fileType, _vm.preview)}}},[_c('SokIcon',{staticClass:\"crtBtn\",attrs:{\"type\":\"preview\",\"size\":\"25\"}})],1),_c('label',{on:{\"click\":function($event){return _vm.cancelFile()}}},[_c('SokIcon',{staticClass:\"crtBtn\",attrs:{\"type\":\"trash\",\"size\":\"25\"}})],1)])]],2),_c('div',{staticClass:\"footer-middle\",class:{inputFocus: _vm.inputFocusFlag}},[(_vm.inputFocusFlag)?_c('Icon',{staticStyle:{\"margin\":\"0 10px\"},attrs:{\"size\":\"30\",\"type\":\"ios-arrow-forward\"},on:{\"click\":function($event){_vm.inputFocusFlag=false}}}):_vm._e(),_c('Input',{attrs:{\"type\":\"textarea\",\"autosize\":{minRows: 2,maxRows: 5}},on:{\"on-focus\":function($event){_vm.inputFocusFlag = true},\"on-blur\":function($event){_vm.inputFocusFlag = false}},model:{value:(_vm.expertPoint.desc),callback:function ($$v) {_vm.$set(_vm.expertPoint, \"desc\", $$v)},expression:\"expertPoint.desc\"}})],1),_c('div',{staticClass:\"footer-icon\",class:{disabled: !_vm.channelInfo.isSokActivity}},[_c('SokIcon',{staticClass:\"sending\",attrs:{\"type\":\"sending\",\"size\":\"25\"},on:{\"on-click\":function($event){return _vm.sendPoint()}}})],1)]],2):_vm._e(),(!_vm.settingFlag)?_c('div',{staticClass:\"box\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.channelInfo.isDevTimeAbnormal || _vm.isDevTimeAbnormal),expression:\"channelInfo.isDevTimeAbnormal || isDevTimeAbnormal\"}],staticClass:\"statusBox\"},[_c('span',{staticClass:\"cont\"},[_vm._v(_vm._s(_vm.$t('devTimeDialog')))]),_c('SokIcon',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.channelInfo.isDevTimeAbnormal),expression:\"!channelInfo.isDevTimeAbnormal\"}],staticClass:\"icon\",attrs:{\"type\":\"exit\",\"size\":\"13\"},on:{\"on-click\":function($event){_vm.isDevTimeAbnormal = false}}})],1),(_vm.teachTypeNum == 17 && _vm.showInfo1)?_c('div',{staticClass:\"statusBox info\"},[_c('a',{staticClass:\"cont\",attrs:{\"target\":\"_blank\",\"href\":_vm.info1Link[_vm.lang]}},[_vm._v(\" \"+_vm._s(_vm.$t('advertiseInfo1'))+\" \"),_c('Icon',{attrs:{\"color\":\"#ffffff\",\"type\":\"md-arrow-forward\"}})],1),_c('SokIcon',{staticClass:\"icon\",attrs:{\"type\":\"exit\",\"size\":\"13\"},on:{\"on-click\":function($event){_vm.showInfo1 = false}}})],1):_vm._e(),_c('div',{staticClass:\"selectBox\"},[_vm._v(\" \"+_vm._s(_vm.commentsTime)+_vm._s(_vm.$te(_vm.teachType[_vm.teachTypeNum]) ? ' - ' + _vm.$t(_vm.teachType[_vm.teachTypeNum]) + '...' : '')+\" \")]),(_vm.channelInfo.isStrClass != null && _vm.commentBtnSetting.detail.length > 0)?_c('div',{staticClass:\"point\"},[_c('div',{staticClass:\"accordion\"},[_c('div',{staticClass:\"pane\"},[_c('div',{staticClass:\"pane-title\"},[_vm._v(\" \"+_vm._s(_vm.commentBtnSetting.table.typeName.customize ? _vm.commentBtnSetting.table.typeName.customize : _vm.commentBtnSetting.table.typeName[_vm.langFormat])+\" \"),_c('Button',{staticClass:\"chgBtn\",attrs:{\"type\":\"text\"},on:{\"click\":function($event){_vm.chgTableFlag=true}}},[_vm._v(_vm._s(_vm.$t('changeTable')))])],1),_c('div',{staticClass:\"pane-cont scrollstyle\"},_vm._l((_vm.commentBtnSetting.table.tagList),function(tags,key){return _c('div',{key:key,staticClass:\"cont-box\",class:{'select': _vm.expertPoint.id == tags.id},on:{\"click\":function($event){return _vm.setPointBtn(_vm.commentBtnSetting.table.typeId, _vm.commentBtnSetting.table.typeName, tags.id, tags.name, _vm.commentBtnSetting.detailType)}}},[_c('div',{staticClass:\"box-title\"},[_vm._v(_vm._s(tags.name.customize ? tags.name.customize : tags.name[_vm.langFormat]))]),_c('div',{staticClass:\"box-subTitle scrollstyle\"},[_vm._v(_vm._s(tags.description ? tags.description.customize ? tags.description.customize : tags.description[_vm.langFormat] : ''))]),_c('div',{staticClass:\"box-pointTime\"},[_c('span',[_vm._v(_vm._s(_vm.strClassElapsedMin(_vm.channelInfo.timestamp, _vm.nowTimestamp)))])]),_c('SokIcon',{staticClass:\"box-reset\",attrs:{\"type\":\"reset\",\"size\":\"20\"},on:{\"on-click\":_vm.restNowTimestamp}}),_c('div',{staticClass:\"box-triangle\"})],1)}),0)])])]):_c('div',{staticClass:\"point\",staticStyle:{\"display\":\"flex\",\"justify-content\":\"center\",\"align-items\":\"center\",\"font-size\":\"25px\",\"font-weight\":\"700\",\"flex-direction\":\"column\"}},[_c('div',{staticStyle:{\"font-size\":\"30px\",\"border-bottom\":\"2px solid #515a6e\"}},[_vm._v(_vm._s(_vm.userInfo.name))]),_c('hr'),_c('div',{staticStyle:{\"width\":\"300px\",\"max-width\":\"100%\",\"padding\":\"10px\",\"font-size\":\"17px\",\"margin-bottom\":\"150px\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('weitStarClass')+'...')}})])]):_c('div',{staticClass:\"setting\"},[_c('div',{staticClass:\"marginTop personInfo\"},[_c('div',{staticClass:\"info\"},[_c('div',[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t('groupNum')))]),_c('div',{staticClass:\"cont \"},[_vm._v(_vm._s(_vm.channelInfo.channel))])]),_c('div',[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t('TOPIC')))]),_c('div',{staticClass:\"cont\"},[_vm._v(_vm._s(_vm.channelInfo.className))])]),_c('div',{staticClass:\"remark\"},[_vm._v(_vm._s(_vm.$t('settingRemark')))])]),_c('div',{staticClass:\"qrcode\"},[_c('img',{attrs:{\"src\":_vm.qrcode_url}})])]),_c('div',{staticClass:\"marginTop\"},[_c('div',{staticClass:\"block\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t('name')))]),_c('span',{staticClass:\"cont \"},[_vm._v(_vm._s(_vm.userInfo.name))])]),_c('div',{staticClass:\"block\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t('teamModelID')))]),_c('span',{staticClass:\"cont\"},[_vm._v(_vm._s(_vm.userInfo.expertType == 'Guest' ? _vm.$t('guest') : _vm.userInfo.id))])])]),_c('div',{staticClass:\"marginTop\"},[_c('div',{staticClass:\"block\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t('groupNum')))]),_c('span',{staticClass:\"cont\"},[_vm._v(_vm._s(_vm.channelInfo.channel))])]),_c('div',{staticClass:\"block\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t('PIN')))]),_c('span',{staticClass:\"cont \"},[_vm._v(_vm._s(_vm.channelInfo.pin))])]),_c('div',{staticClass:\"block\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t('TOPIC')))]),_c('span',{staticClass:\"cont \"},[_vm._v(_vm._s(_vm.channelInfo.className))])]),_c('div',{staticClass:\"block\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t('classTeacher')))]),_c('span',{staticClass:\"cont \"},[_vm._v(_vm._s(_vm.channelInfo.classTeacher))])])]),_c('Dropdown',{staticStyle:{\"width\":\"100%\"},attrs:{\"trigger\":\"click\",\"placement\":\"bottom-end\",\"transfer\":true,\"transfer-class-name\":\"menuSty\"},on:{\"on-click\":_vm.setLang}},[_c('div',{staticClass:\"block marginTop\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t('lang'))+\" / \"+_vm._s(_vm._f(\"uppercase\")(_vm.langFormat)))]),_c('span',{staticClass:\"cont lang\"},[_vm._v(_vm._s(_vm.$t('chgLang')))])]),_c('DropdownMenu',{attrs:{\"slot\":\"list\"},slot:\"list\"},_vm._l((_vm.langSet),function(item){return _c('DropdownItem',{key:item,attrs:{\"name\":item}},[_vm._v(_vm._s(_vm.$t('lang-' + item)))])}),1)],1),_c('div',{staticClass:\"block marginTop\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t('version')))]),_c('span',{staticClass:\"cont\"},[_vm._v(_vm._s(_vm.version))])]),_c('div',{staticClass:\"btnGroup\",staticStyle:{\"display\":\"flex\",\"margin-top\":\"10px\",\"justify-content\":\"space-around\"}},[(_vm.userInfo.expertType !== 'Guest')?_c('Button',{staticClass:\"sok-btn btnGroup-btn\",attrs:{\"to\":\"/crtpointbtn\"}},[_vm._v(_vm._s(_vm.$t('LabelManagement')))]):_vm._e(),_c('Button',{staticClass:\"sok-btn btnGroup-btn\",class:{'noMargin': _vm.userInfo.expertType == 'Guest'},on:{\"click\":function($event){return _vm.chgGroup()}}},[_vm._v(_vm._s(_vm.$t('changeClass')))])],1)],1),_c('div',{staticClass:\"record\",class:{show: _vm.recordFlag}},[_c('div',{staticClass:\"recBox\"},[_c('div',{staticClass:\"graph\",class:{star: _vm.starRec},style:({width: _vm.duration})}),_vm._v(\" \"),_c('SokIcon',{staticClass:\"quit\",attrs:{\"type\":\"exit\",\"size\":\"18\"},on:{\"on-click\":_vm.closeRecord}}),_vm._v(\" \"),_c('div',{staticClass:\"recCtrl\"},[(_vm.corvering)?_c('Spin',{attrs:{\"fix\":\"\"}}):_vm._e(),(!_vm.isRecing)?_c('img',{staticClass:\"recCtrl-icon\",attrs:{\"src\":require(\"@/img/svg/white/recording.svg\")},on:{\"click\":_vm.recStar}}):[_c('img',{staticClass:\"recCtrl-icon\",attrs:{\"src\":require(\"@/img/svg/white/recstop.svg\")},on:{\"click\":_vm.stop}}),_c('span',[_vm._v(_vm._s(_vm.recStarTime))])]],2)],1)]),_c('Drawer',{staticClass:\"drawerBox\",attrs:{\"class-name\":\"drawerClass\",\"width\":\"90%\",\"title\":_vm.$t('history'),\"scrollable\":true,\"placement\":\"left\",\"closable\":true,\"inner\":true,\"transfer\":false},on:{\"on-visible-change\":_vm.restDrawer},model:{value:(_vm.drawerflag),callback:function ($$v) {_vm.drawerflag=$$v},expression:\"drawerflag\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"padding-top\":\"16px\"},attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('p',[_vm._v(_vm._s(_vm.$t('history')))]),(_vm.copyText)?_c('Button',{staticClass:\"sok-btn recordList\",staticStyle:{\"font-size\":\"12px\",\"height\":\"25px\",\"box-shadow\":\"none\"},attrs:{\"data-clipboard-text\":_vm.copyText}},[_vm._v(_vm._s(_vm.$t('copyText')))]):_vm._e()],1),_vm._l((_vm.historys),function(item,key){return _c('div',{key:key,staticClass:\"pane\",class:{select: _vm.drawerPaneId === key}},[_c('div',{staticClass:\"pane-title\",on:{\"click\":function($event){return _vm.selDrawerPane(key)}}},[_vm._v(\" \"+_vm._s(_vm.converTime(item.obsStart))+\" \"),_c('Icon',{attrs:{\"size\":\"20\",\"type\":\"ios-arrow-down\"}})],1),_c('div',{staticClass:\"pane-cont\"},_vm._l((item.points),function(point,pkey){return _c('div',{key:pkey,staticClass:\"pointMsg\"},[_c('div',{staticClass:\"msg\"},[_c('div',{staticClass:\"msg-time\"},[_vm._v(\" \"+_vm._s(_vm.$tools.getDateDiffByTimestamp(item.obsStart, point.timestamp))+\" \")]),_c('div',{staticClass:\"msg-title\"},[_vm._v(\" \"+_vm._s(point.tagName.customize ? point.tagName.customize : point.tagName[_vm.langFormat])+\" \"),(point.fileUrl)?_c('img',{attrs:{\"src\":require(\"@/img/svg/white/accessory.svg\")}}):_vm._e()]),_c('div',{staticClass:\"msg-msg\"},[_vm._v(_vm._s(point.desc))]),(point.fileType == 'image')?_c('img',{staticClass:\"msg-preview\",attrs:{\"src\":require(\"@/img/logo/white/image.png\")},on:{\"click\":function($event){return _vm.previewFile(point.fileType, point.fileUrl)}}}):(point.fileType == 'audio')?_c('img',{staticClass:\"msg-preview\",attrs:{\"src\":require(\"@/img/logo/white/audio.png\")},on:{\"click\":function($event){return _vm.previewFile(point.fileType, point.fileUrl)}}}):(point.fileType == 'video')?_c('img',{staticClass:\"msg-preview\",attrs:{\"src\":require(\"@/img/logo/white/video.png\")},on:{\"click\":function($event){return _vm.previewFile(point.fileType, point.fileUrl)}}}):_vm._e()]),_c('div',{staticClass:\"tool\"},[(_vm.channelInfo.isStrClass && _vm.channelInfo.timestamp === item.obsStart)?[_c('SokIcon',{staticClass:\"crtBtn\",attrs:{\"type\":\"trash\",\"size\":\"16\"},on:{\"on-click\":function($event){return _vm.setEditHistoryForm('del', _vm.userInfo.id, point.timestamp, key, pkey)}}}),_c('SokIcon',{staticClass:\"crtBtn\",attrs:{\"type\":\"edit\",\"size\":\"16\"},on:{\"on-click\":function($event){return _vm.setEditHistoryForm('upd', _vm.userInfo.id, point.timestamp, key, pkey, point.desc)}}})]:_vm._e()],2)])}),0)])})],2),_c('Drawer',{attrs:{\"class-name\":\"chgTable\",\"placement\":\"bottom\",\"height\":\"49%\",\"closable\":false,\"inner\":true,\"transfer\":false,\"scrollable\":true},model:{value:(_vm.chgTableFlag),callback:function ($$v) {_vm.chgTableFlag=$$v},expression:\"chgTableFlag\"}},[_c('Tabs',{staticClass:\"chgBox\",attrs:{\"value\":_vm.commentBtnSetting.detailType,\"animated\":false},on:{\"on-click\":_vm.setDetail}},[(_vm.tmdTags.length > 0)?_c('TabPane',{attrs:{\"index\":1,\"label\":_vm.$t('basicLabel'),\"name\":\"tmd\"}},_vm._l((_vm.sortCommentBtnSettingDetail),function(item,key){return _c('div',{key:key,staticClass:\"detail-title\",class:{'select': _vm.commentBtnSetting.pointsByTypeId === item.typeId},on:{\"click\":function($event){return _vm.checkPoint(item.typeId, 'tmd')}}},[_vm._v(_vm._s(item.typeName.customize ? item.typeName.customize : item.typeName[_vm.langFormat])),_c('SokIcon',{staticClass:\"check\",attrs:{\"type\":\"check\",\"size\":\"15\"}})],1)}),0):_vm._e(),(_vm.schoolTags.length > 0)?_c('TabPane',{attrs:{\"index\":2,\"label\":_vm.$t('channelLabel'),\"name\":\"school\"}},_vm._l((_vm.sortCommentBtnSettingDetail),function(item,key){return _c('div',{key:key,staticClass:\"detail-title\",class:{'select': _vm.commentBtnSetting.pointsByTypeId === item.typeId},on:{\"click\":function($event){return _vm.checkPoint(item.typeId, 'school')}}},[_vm._v(_vm._s(item.typeName.customize ? item.typeName.customize : item.typeName[_vm.langFormat])),_c('SokIcon',{staticClass:\"check\",attrs:{\"type\":\"check\",\"size\":\"15\"}})],1)}),0):_vm._e(),(_vm.userInfo.expertType !== 'Guest' && _vm.userTags.length > 0)?_c('TabPane',{attrs:{\"index\":3,\"label\":_vm.$t('myLabel'),\"name\":\"person\"}},[_vm._l((_vm.sortCommentBtnSettingDetail),function(item,key){return _c('div',{key:key,staticClass:\"detail-title\",class:{'select': _vm.commentBtnSetting.pointsByTypeId === item.typeId},on:{\"click\":function($event){return _vm.checkPoint(item.typeId, 'person')}}},[_vm._v(_vm._s(item.typeName.customize ? item.typeName.customize : item.typeName[_vm.langFormat])),_c('SokIcon',{staticClass:\"check\",attrs:{\"type\":\"check\",\"size\":\"15\"}})],1)}),_c('div',{staticClass:\"detail-title editTags\",on:{\"click\":function($event){return _vm.toCustomTags()}}},[_c('SokIcon',{staticClass:\"edit\",attrs:{\"type\":\"edit\",\"size\":\"15\"}}),_vm._v(\" \"+_vm._s(_vm.$t('editCustomTags'))+\" \")],1)],2):_vm._e()],1)],1),_c('Modal',{attrs:{\"closable\":false,\"footer-hide\":true,\"width\":\"320\",\"class-name\":\"previewMoal\"},model:{value:(_vm.previewModal.flag),callback:function ($$v) {_vm.$set(_vm.previewModal, \"flag\", $$v)},expression:\"previewModal.flag\"}},[_c('div',{staticStyle:{\"text-align\":\"center\"}},[(_vm.previewModal.type == 'image')?_c('img',{staticStyle:{\"width\":\"100%\",\"max-width\":\"300px\"},attrs:{\"src\":_vm.previewModal.url}}):(_vm.previewModal.type == 'audio')?_c('audio',{staticStyle:{\"width\":\"100%\",\"max-width\":\"300px\"},attrs:{\"src\":_vm.previewModal.url,\"controls\":\"\"}}):_c('video',{staticStyle:{\"width\":\"100%\",\"max-width\":\"300px\"},attrs:{\"src\":_vm.previewModal.url,\"controls\":\"controls\"}})])]),_c('Modal',{attrs:{\"mask-closable\":false,\"width\":\"300\"},model:{value:(_vm.historyEditFlag),callback:function ($$v) {_vm.historyEditFlag=$$v},expression:\"historyEditFlag\"}},[_c('p',{staticStyle:{\"text-align\":\"center\"},attrs:{\"slot\":\"header\"},slot:\"header\"},[_vm._v(\" \"+_vm._s(_vm.editHistoryForm.type === 'upd' ? _vm.$t('historyEditTitle1') : _vm.$t('historyEditTitle2'))+\" \")]),_c('div',{staticStyle:{\"text-align\":\"center\"}},[(_vm.editHistoryForm.type === 'upd')?[_c('Input',{attrs:{\"type\":\"textarea\",\"autosize\":{minRows: 3,maxRows: 5}},model:{value:(_vm.editHistoryForm.desc),callback:function ($$v) {_vm.$set(_vm.editHistoryForm, \"desc\", $$v)},expression:\"editHistoryForm.desc\"}})]:[_vm._v(\" \"+_vm._s(_vm.$t('historyEditCont'))+\" \")]],2),_c('div',{staticStyle:{\"display\":\"flex\"},attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('Button',{staticClass:\"sok-btn\",attrs:{\"long\":\"\"},on:{\"click\":function($event){return _vm.editHistorys()}}},[_vm._v(_vm._s(_vm.$t('ok')))]),_c('Button',{staticClass:\"sok-btn\",attrs:{\"long\":\"\"},on:{\"click\":function($event){_vm.historyEditFlag=false}}},[_vm._v(_vm._s(_vm.$t('cancel')))])],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nimport { mapActions, mapGetters } from 'vuex'\nimport { BlobServiceClient } from'@azure/storage-blob'\nimport QRCode from 'qrcode'\nimport Recorder from 'js-audio-recorder'\nimport ClipboardJS from 'clipboard'\nimport { jsFn } from '@/utils/jsFn'\nimport EXIF from 'exif-js'\nimport { Base64 } from 'js-base64'\n\nexport default {\n name: 'commentBtn',\n data() {\n return {\n previewModal: { // 歷史訊息預覽畫面\n flag: false,\n type: '',\n url:''\n },\n isPlay: false, // 播放中\n starRec: false, // 開始錄音\n preview: '', // 打點檔案預覽\n recTemp: null, // 錄音檔完成暫存檔案\n recorder: null, // 錄音物件喧染\n duration: 0, // 錄音進度條\n fileType: '', // 檔案類型 audio, image, video\n uploadFile: null, // 要上傳的檔案\n isRecing: false, // 開始錄音與否\n recordFlag: false, // 錄音介面開關\n maxSec: 60, // 上限秒數\n recStarTime: '00:00', // 錄音開始秒數\n recEndTime: '00:00', // 錄音結束秒數\n paneId: '', // 現在被開啟的標籤pane\n drawerPaneId: '', // 現在被開啟的抽屜pane\n nowTimestamp:'', // 現在的打點時間\n qrcode_url: '', // qrcode URL\n langSet: [], // 語系\n groupPeoples: 0, // 現在加入教室的人\n settingFlag: false, // 開啟設定資訊\n drawerflag: false, // 抽屜Flag\n chgTableFlag: false, // 更換Table Flag\n commentsTime: '00:00:00', // 開課時間\n contentTypes: { // 上傳檔案類型\n 'image/jpeg': '.jpeg',\n 'image/png': '.png',\n 'video/mp4': '.mp4',\n 'video/3gpp': '.3gp',\n 'video/x-msvideo': '.avi',\n 'audio/wav': '.wav',\n 'video/quicktime': '.mov'\n },\n expertPoint: { // 打點資訊\n type: '',\n typeName: '',\n id: '',\n tagName: '',\n desc: '',\n tableType: '' // 標籤性質: 個人:person, 學校: school, 醍摩豆: tmd\n },\n teachType: [\n 'mode_ready', // 0\n 'mode_quiz_single', // 1\n 'mode_quiz_multiple', // 2\n 'mode_quiz_judge', // 3\n 'mode_quiz_complete', // 4\n 'mode_quiz_subjective', // 5\n 'mode_quiz_compose', // 6\n 'mode_competition_single', // 7\n 'mode_competition_multiple', // 8\n 'mode_competition_judge', // 9\n 'mode_competition_complete', // 10\n 'mode_competition_subjective', // 11\n 'mode_selfpace_start', // 12\n 'mode_selfpace_end', // 13\n 'mode_attend', // 14\n 'mode_collate', // 15\n 'mode_buzzin', // 16\n 'mode_close' // 17\n ],\n pageID: '', // Hiteach page id\n corvering: false, // mp3 轉型中\n historyEditFlag: false, // 歷史紀錄Modal\n editHistoryForm:{\n type: '', // 修改類型 upd, del\n userId: '', // 使用者id\n timestamp: '', // 打點時間\n hIndex: '', // hIndex\n pIndex: '', // pIndex\n desc: '' // 修改打點內容\n },\n minutesTemp: '00:00:00', // 經過時間的暫存\n inputFocusFlag: false, // 隱藏按鈕與否\n publicTimer: null, // 通用議課Timer\n publicState: '', // 通用議課狀態\n isDevTimeAbnormal: false, // 裝置時間是否與伺服器時間有差距10分鐘以上\n showInfo1: false,\n info1Link: {\n 'zh-tw': 'https://www.habook.com/zh-tw/product.php?act=view&id=32',\n 'zh-cn': 'https://www.habook.com.cn/cloud.php?act=view&id=23',\n 'en-us': 'https://www.habook.com/en/product.php?act=view&id=32'\n }\n }\n },\n computed: {\n ...mapGetters([\n 'userTags',\n 'historys',\n 'copyText',\n 'channelInfo',\n 'channelLink',\n 'userInfo',\n 'lang',\n 'commentBtnSetting',\n 'version',\n 'teachTypeNum',\n 'tmdTags',\n 'schoolTags',\n 'baseFileUrl',\n 'isSignalLink',\n 'commentsData'\n ]),\n langFormat: function() {\n let res\n switch (this.lang) {\n case 'zh-tw':\n res = 'tw'\n break\n case 'zh-cn':\n res = 'cn'\n break\n case 'en-us':\n res = 'en'\n break\n }\n return res\n },\n isObsStartSame: function() {\n return this.historys.length > 0 && this.historys[0].obsStart === this.channelInfo.timestamp\n },\n sortCommentBtnSettingDetail: function() {\n let data = this.commentBtnSetting.detail\n data.sort(\n function(a,b) {\n return a.order - b.order\n }\n )\n return data\n }\n },\n watch: {\n 'channelInfo.isStrClass': function(val, old) {\n if(this.isSignalLink && val !== null && !val) { // 下課\n if(!jsFn.IsEmpty(this.expertPoint.id)) {\n this.$Message.warning({\n content: this.$t('warn_text5'),\n duration: 15,\n closable: true\n })\n } else {\n this.drawerflag = true\n this.showInfo1 = true\n }\n }\n\n if(!old && val) { // 重新上課\n // 清空打點\n this.expertPoint.type = ''\n this.expertPoint.typeName = ''\n this.expertPoint.id = ''\n this.expertPoint.tagName = ''\n this.expertPoint.desc = ''\n this.expertPoint.tableType = ''\n this.nowTimestamp = ''\n this.fileType = ''\n this.uploadFile = null\n }\n }\n },\n filters: {\n uppercase: function(val) {\n return val.toUpperCase()\n },\n convertHHMMSS(val) {\n return val ? new Date(parseInt(val)).toLocaleTimeString('it-IT', {hour: '2-digit', minute: '2-digit', second: '2-digit'}) : ''\n }\n },\n methods: {\n ...mapActions(['setPageLang', 'logOut']),\n strClassElapsedMin: function(strClasstime, timestamp) {\n if(this.channelInfo.isStrClass && timestamp > strClasstime) {\n this.minutesTemp = jsFn.getDateDiffByTimestamp(strClasstime, timestamp)\n }\n return this.minutesTemp\n },\n classPassedTime: function() {\n if(this.channelInfo.isStrClass) {\n let strTime = parseInt(this.channelInfo.timestamp)\n // let endTime = new Date().getTime() + this.channelInfo.deltaTime // 增加校正值(暫時註解矯正值)\n let endTime = new Date().getTime()\n this.commentsTime = jsFn.getDateDiffByTimestamp(strTime, endTime)\n } else {\n this.commentsTime = '00:00:00'\n }\n },\n converTime: function(timestamp) {\n return jsFn.converDrawerTime(timestamp)\n },\n uploadToBlob: function(file, fileName, fileType = '') {\n return new Promise((resolve, reject) => {\n let blobAuth = this.channelInfo.blobConfig.hostBlobUrl + '?' + this.channelInfo.blobConfig.blobSAS_write\n let saveAddres = this.baseFileUrl + fileName\n const blobServiceClient = new BlobServiceClient(blobAuth)\n const containerClient = blobServiceClient.getContainerClient('')\n let blockBlobClient = containerClient.getBlockBlobClient(saveAddres)\n fileType = fileType !== '' ? fileType : file.type\n blockBlobClient.uploadBrowserData(file, {\n blobHTTPHeaders: { blobContentType: fileType }\n // onProgress: function(e) {\n // console.log(e, '123') // 可以用來跑上傳百分比\n // }\n }).then(\n () => {\n resolve({error:0})\n },\n () => {\n reject(new Error({error: 1}))\n }\n )\n })\n },\n uploadToBlobByPut: function(file, fileName, fileType = '') {\n return new Promise(async(resolve, reject) => {\n let updloadUrl = `${this.channelInfo.blobConfig.hostBlobUrl}/${this.baseFileUrl}${fileName}?${this.channelInfo.blobConfig.blobSAS_write}`\n fileType = fileType !== '' ? fileType : file.type\n\n let response\n try {\n response = await fetch(updloadUrl, {\n method: 'PUT',\n headers: {\n 'x-ms-blob-type': 'BlockBlob',\n 'Content-Type': fileType\n },\n body: file\n })\n\n if (response.ok) {\n resolve({error:0})\n console.log('檔案上傳成功')\n } else {\n reject(new Error({error: response.status}))\n console.error('上傳失敗:', response.status, await response.text())\n this.$Message.warning({\n content: `${this.$t('err11')}(${response.status})(${fileType})`,\n duration: 10,\n closable: true\n })\n }\n } catch (e) {\n reject(new Error({error: response.status}))\n console.error('上傳過程中出現錯誤:', e)\n this.$Message.warning({\n content: `${this.$t('err11')}(${response.status})(${fileType})`,\n duration: 10,\n closable: true\n })\n }\n })\n },\n sendPoint: async function() {\n if(!this.channelInfo.isSokActivity) {\n this.$Message.info({\n content: this.$t('modelRoot_4'),\n duration: 3,\n closable: true\n })\n } else {\n let _this = this\n this.$Spin.show() // 開啟加載畫面\n\n let sendData = {\n timestamp: this.nowTimestamp, // 打點時間\n id: this.userInfo.id, // 使用者ID\n name: this.userInfo.name, // 使用者Name\n expertType: this.userInfo.expertType, // 使用者身份 Guest: 訪客, Teacher: 老師\n desc: this.expertPoint.desc.trim(), // 講解資訊\n tableType: this.expertPoint.tableType, // 標籤來源\n expPointType: this.expertPoint.type, // 標籤Type\n expPointTypeName: this.expertPoint.typeName, // 標籤Type name {}\n expPointTypeId: this.expertPoint.id, // 標籤id\n tagName: this.expertPoint.tagName, // 標籤Name 是一個{}\n time: (this.nowTimestamp - this.channelInfo.timestamp) / 1000, // 相隔時間\n imageList: null, // 圖片上傳\n videoList: null, // 影片上傳\n recList: null, // 錄音上傳\n pageID: this.pageID // 頁面ID\n }\n\n let _fileUrl = this.baseFileUrl\n if(this.uploadFile != null) {\n let fileName = Date.now()\n switch (this.fileType) {\n case 'image':\n // 如果是圖片要再壓縮一張 100 X 100的縮圖\n let orgFile\n let preFile\n let imgData = {}\n let successCount = 0\n // 原圖\n await this.createImage(this.uploadFile, false).then(e => {\n orgFile = _this.dataURLtoFile(e, fileName)\n })\n let orgFileName = fileName + '.jpeg'\n await this.uploadToBlobByPut(orgFile, orgFileName, 'image/jpeg').then(res => {\n if(res.error === 0) {\n imgData.ImgSrc = orgFileName\n successCount++\n } else {\n console.log('orgFile 上傳失敗')\n }\n }).catch(err => {\n console.log(err)\n })\n // 縮圖\n await this.createImage(this.uploadFile, true).then(e => {\n preFile = _this.dataURLtoFile(e, fileName)\n })\n let preFileName = fileName + '_pre' + '.jpeg'\n await this.uploadToBlobByPut(preFile, preFileName, 'image/jpeg').then(res => {\n if(res.error === 0) {\n imgData.ImgPre = preFileName\n successCount++\n } else {\n console.log('preFile 上傳失敗')\n }\n }).catch(err => {\n console.log(err)\n })\n if(successCount === 2) {\n _fileUrl += orgFileName\n sendData.imageList = [imgData]\n }\n break\n case 'video':\n fileName = fileName + '.mp4'\n await this.uploadToBlobByPut(this.uploadFile, fileName, 'video/mp4').then(res => {\n if(res.error === 0) {\n _fileUrl += fileName\n sendData.videoList = [{'video':fileName}]\n } else {\n console.log('video 上傳失敗')\n }\n }).catch(err => {\n console.log(err)\n })\n break\n case 'audio':\n fileName = fileName + '.mp3'\n await this.uploadToBlobByPut(this.uploadFile, fileName).then(res => {\n if(res.error === 0) {\n _fileUrl += fileName\n sendData.recList = [{'rec':fileName}]\n } else {\n console.log('audio 上傳失敗')\n }\n }).catch(err => {\n console.log(err)\n })\n break\n }\n }\n\n if(this.commentsData.bindingNum === this.channelInfo.blobConfig.bindingNum && this.commentsData.userId === this.userInfo.id) {\n this.commentsData.data.push(sendData)\n } else {\n this.commentsData.bindingNum = this.channelInfo.blobConfig.bindingNum\n this.commentsData.userId = this.userInfo.id\n this.commentsData.data = [\n sendData\n ]\n }\n\n this.$store.dispatch('setCommentsData',this.commentsData) // 設定打點紀錄\n\n let fileName = 'comments.json'\n var blob = new Blob([JSON.stringify(this.commentsData.data)],{type:'application/json,charset=utf-8;'})\n blob.lastModifiedDate = new Date()\n blob.name = fileName\n await this.uploadToBlobByPut(blob, fileName).then(res => {\n this.$Message.info({\n content: this.$t('sendSucces'),\n duration: 3,\n closable: true\n })\n // 觀議課紀錄\n let isExistIndex = ''\n this.historys.forEach((item, index) => {\n if(parseInt(item.obsStart) === parseInt(_this.channelInfo.timestamp)) {\n isExistIndex = index\n }\n })\n\n if(isExistIndex !== '') {\n this.historys[isExistIndex].points.unshift({\n id: _this.expertPoint.id,\n tagName: _this.expertPoint.tagName,\n desc: _this.expertPoint.desc,\n timestamp: _this.nowTimestamp,\n fileUrl: _this.fileType ? _this.channelInfo.blobConfig.hostBlobUrl + '/' + _fileUrl + '?' + _this.channelInfo.blobConfig.blobSAS_read : '',\n fileType: _this.fileType\n })\n } else {\n this.historys.unshift({\n obsStart: _this.channelInfo.timestamp,\n topic: _this.channelInfo.className,\n classTName: _this.channelInfo.classTeacher,\n pointer: _this.userInfo.name,\n // joinPpo: _this.groupPeoples,\n points:[\n {\n id: _this.expertPoint.id,\n tagName: _this.expertPoint.tagName,\n desc: _this.expertPoint.desc,\n timestamp: _this.nowTimestamp,\n fileUrl: _this.fileType ? _this.channelInfo.blobConfig.hostBlobUrl + '/' + _fileUrl + '?' + _this.channelInfo.blobConfig.blobSAS_read : '',\n fileType: _this.fileType\n }\n ]\n })\n }\n\n this.$store.dispatch('setHistorys', this.historys) // 設定打點紀錄\n\n this.expertPoint.type = ''\n this.expertPoint.typeName = ''\n this.expertPoint.id = ''\n this.expertPoint.tagName = ''\n this.expertPoint.desc = ''\n this.expertPoint.tableType = ''\n this.nowTimestamp = ''\n this.fileType = ''\n this.uploadFile = null\n }).catch(err => {\n console.log(err)\n })\n this.$Spin.hide() // 關閉加載畫面\n }\n },\n showSetting: function() {\n this.settingFlag = !this.settingFlag\n },\n setLang: function(val) {\n this.$i18n.locale = val\n this.setPageLang(val)\n },\n chgGroup: function() {\n // 如果是通用議課則跳出以下資訊並停掉Timer\n if(!this.$tools.IsEmpty(this.publicTimer)) {\n clearInterval(this.publicTimer)\n }\n // 刪除教室資訊\n this.$store.dispatch('leaveChannel').then(() => {\n this.$router.push({path: '/login'})\n })\n },\n crtQRCode: function(text) {\n var generateQR = QRCode.toDataURL(text, { margin: 0 })\n return generateQR\n },\n selDrawerPane: function(index) {\n if(index === this.drawerPaneId) {\n this.drawerPaneId = ''\n } else {\n this.drawerPaneId = index\n }\n },\n setPointBtn: function(type, typeName, id, tagName, tableType) {\n this.expertPoint.type = type\n this.expertPoint.typeName = typeName\n this.expertPoint.id = id\n this.expertPoint.tagName = tagName\n this.expertPoint.tableType = tableType\n if(jsFn.IsEmpty(this.nowTimestamp)) {\n // this.nowTimestamp = (new Date().getTime() + this.channelInfo.deltaTime) // 暫時註解矯正值\n this.nowTimestamp = new Date().getTime()\n }\n },\n restNowTimestamp: function() {\n // if(this.channelInfo.isStrClass) this.nowTimestamp = (new Date().getTime() + this.channelInfo.deltaTime) // 暫時註解矯正值\n if(this.channelInfo.isStrClass) this.nowTimestamp = new Date().getTime()\n },\n chageFile: function(e) {\n this.uploadFile = e.target.files[0]\n this.preview = window.URL.createObjectURL(this.uploadFile) // 預覽功能\n if(this.uploadFile.type === 'image/jpeg' || this.uploadFile.type === 'image/png') {\n this.fileType = 'image'\n } else if (this.uploadFile.type === 'audio/mp3') {\n this.fileType = 'audio'\n } else {\n this.fileType = 'video'\n let size = parseFloat(this.uploadFile.size / 1000000).toFixed(1)\n if(size > 10) {\n this.cancelFile()\n this.$Message.info({\n content: this.$t('err08'),\n duration: 3,\n closable: true\n })\n }\n }\n window.URL.revokeObjectURL(this.uploadFile) // 預覽功能\n },\n recStar: function() {\n this.starRec = true\n let _this = this\n if(this.recorder == null) {\n Recorder.getPermission().then(() => {\n console.log('給權限了')\n }, () => {\n _this.$Modal.warning({\n title: _this.$t('warning'),\n content: '

' + _this.$t('warn_text4') + '

'\n })\n })\n this.recorder = new Recorder({\n sampleBits: 16, // 采样位数,支持 8 或 16,默认是16\n sampleRate: 44100, // 采样率,支持 11025、16000、22050、24000、44100、48000,根据浏览器默认值,我的chrome是48000\n numChannels: 1 // 声道,支持 1 或 2, 默认是1\n })\n }\n this.recorder.start().then(() => {\n // 开始录音\n _this.isRecing = true\n }, (error) => {\n // 出错了\n console.log(`${error.name} : ${error.message}`)\n })\n\n this.recorder.onprogress = function(params) {\n let nowSec = Math.floor(params.duration)\n if(_this.maxSec >= nowSec) {\n let tmp = _this.maxSec - nowSec\n _this.recStarTime = '00:' + (tmp < 10 ? ('0' + tmp) : tmp < 0 ? 0 : tmp)\n _this.recEndTime = '00:' + (nowSec < 10 ? ('0' + nowSec) : nowSec < 0 ? 0 : nowSec)\n _this.duration = (Math.round(nowSec / _this.maxSec * 10000) / 100.00) + '%'\n } else {\n _this.stop()\n }\n }\n this.recorder.onplayend = function() {\n _this.isPlay = false\n }\n },\n stop: function() {\n let _this = this\n this.corvering = true\n let temp = this.recorder.getChannelData()\n setTimeout(function() {\n jsFn.convertToMp3(temp).then(res => {\n _this.uploadFile = res\n _this.preview = window.URL.createObjectURL(_this.uploadFile) // 預覽功能\n window.URL.revokeObjectURL(_this.uploadFile) // 預覽功能\n _this.fileType = 'audio'\n _this.closeRecord()\n })\n }, 1000)\n },\n saveRec: function() {\n jsFn.convertToMp3(this.recorder.getChannelData(this.recTemp)).then(res => {\n this.uploadFile = res\n // this.preview = window.URL.createObjectURL(this.uploadFile) // 預覽功能\n // window.URL.revokeObjectURL(this.uploadFile) // 預覽功能\n this.fileType = 'audio'\n this.closeRecord()\n })\n },\n play: function() {\n if(!this.isPlay) {\n this.isPlay = true\n this.recorder.play()\n }\n },\n destroy: function() {\n let _this = this\n this.recorder.destroy().then(function() {\n _this.isRecing = false\n _this.recorder = null\n _this.duration = 0\n })\n },\n closeRecord: function() {\n this.corvering = false\n this.recordFlag = false\n this.isRecing = false\n this.starRec = false\n if(this.recorder != null) {\n let _this = this\n this.recorder.destroy().then(function() {\n _this.recorder = null\n _this.duration = 0\n })\n }\n },\n moreMsg: function(e) {\n if(!e.target.parentElement.parentElement.classList.contains('more')) {\n e.target.parentElement.parentElement.classList.add('more')\n } else {\n e.target.parentElement.parentElement.classList.remove('more')\n }\n },\n cancelFile: function() {\n this.preview = ''\n this.uploadFile = null\n this.fileType = ''\n },\n previewFile: function(type, url) {\n this.previewModal.flag = true\n this.previewModal.type = type\n this.previewModal.url = url\n },\n createCanvas: function() {\n var canvas = document.getElementById('canvas')\n if(!canvas) {\n var canvasTag = document.createElement('canvas')\n canvasTag.setAttribute('id','canvas')\n canvasTag.setAttribute('style','display:none')\n document.body.appendChild(canvasTag)\n canvas = document.getElementById('canvas')\n }\n return canvas\n },\n createImage: function(file, isPre = false) {\n return new Promise((resolve) => {\n var reader = new FileReader()\n var img = new Image()\n // 缩放图片需要的canvas\n var canvas = this.createCanvas()\n var context = canvas.getContext('2d')\n reader.onload = function() {\n var result = this.result\n img.onload = function() {\n EXIF.getData(img, function() {\n EXIF.getAllTags(this)\n\n // 图片原始尺寸\n var originWidth = this.width\n var originHeight = this.height\n // 最大尺寸限制\n var maxWidth = isPre ? 100 : 1024\n var maxHeight = isPre ? 100 : 1024\n // 目标尺寸\n var targetWidth = originWidth\n var targetHeight = originHeight\n\n // 图片尺寸超过限制\n if(originWidth > maxWidth || originHeight > maxHeight) {\n if(originWidth / originHeight > maxWidth / maxHeight) {\n // 更宽,按照宽度限定尺寸\n targetWidth = maxWidth\n targetHeight = Math.round(maxWidth * (originHeight / originWidth))\n } else {\n targetHeight = maxHeight\n targetWidth = Math.round(maxHeight * (originWidth / originHeight))\n }\n }\n\n // canvas对图片进行缩放\n canvas.width = targetWidth\n canvas.height = targetHeight\n\n // 图片压缩\n context.drawImage(img, 0, 0, targetWidth, targetHeight)\n var dataURL = canvas.toDataURL('image/jpeg', 0.8)\n // 清除画布\n context.clearRect(0, 0, targetWidth, targetHeight)\n resolve(dataURL)\n })\n }\n img.src = result\n }\n reader.readAsDataURL(file)\n })\n },\n dataURLtoFile(dataurl, filename) {\n let arr = dataurl.split(',')\n let mime = arr[0].match(/:(.*?);/)[1]\n let bstr = atob(arr[1])\n let n = bstr.length\n let u8arr = new Uint8Array(n)\n while(n--) {\n u8arr[n] = bstr.charCodeAt(n)\n }\n return new File([u8arr], filename, {type:mime})\n },\n restDrawer: function() {\n if(this.isObsStartSame) {\n this.drawerPaneId = 0\n }\n },\n setEditHistoryForm(type, userId, timestamp, hIndex, pIndex, desc) {\n this.editHistoryForm.type = type // 修改類型 upd, del\n this.editHistoryForm.userId = userId // 使用者id\n this.editHistoryForm.timestamp = timestamp // 打點時間\n this.editHistoryForm.hIndex = hIndex // hIndex\n this.editHistoryForm.pIndex = pIndex // pIndex\n this.editHistoryForm.desc = desc // 修改打點內容\n this.historyEditFlag = true\n },\n editHistorys: async function() {\n if(!this.channelInfo.isStrClass) {\n return\n }\n var blob\n let fileName = 'comments.json'\n let _this = this\n\n if(this.commentsData.data.length > 0) {\n switch (this.editHistoryForm.type) {\n case 'upd':\n // BLOB 內容的 Index\n this.commentsData.data.forEach(function(item, index, array) {\n if(item.id === _this.editHistoryForm.userId && item.timestamp === _this.editHistoryForm.timestamp) {\n item.desc = _this.editHistoryForm.desc\n }\n })\n // 上傳 commentsData\n blob = new Blob([JSON.stringify(this.commentsData.data)],{type:'application/json,charset=utf-8;'})\n blob.lastModifiedDate = new Date()\n blob.name = fileName\n await this.uploadToBlobByPut(blob, fileName).then(() => {\n this.$Message.info({\n content: this.$t('updsuccess'),\n duration: 3,\n closable: true\n })\n this.historys[_this.editHistoryForm.hIndex].points[_this.editHistoryForm.pIndex].desc = _this.editHistoryForm.desc\n this.$store.dispatch('setHistorys', this.historys) // 設定個人歷史紀錄\n this.$store.dispatch('setCommentsData',this.commentsData) // 設定Bolo內容\n }).catch(err => {\n console.log(err)\n })\n break\n case 'del':\n // BLOB 內容的 Index\n this.commentsData.data.forEach(function(item, index, array) {\n if(item.id === _this.editHistoryForm.userId && item.timestamp === _this.editHistoryForm.timestamp) {\n array.splice(index, 1)\n }\n })\n // 上傳 commentsData\n blob = new Blob([JSON.stringify(this.commentsData.data)],{type:'application/json,charset=utf-8;'})\n blob.lastModifiedDate = new Date()\n blob.name = fileName\n await this.uploadToBlobByPut(blob, fileName).then(() => {\n this.$Message.info({\n content: this.$t('delsuccess'),\n duration: 3,\n closable: true\n })\n this.historys[_this.editHistoryForm.hIndex].points.splice(_this.editHistoryForm.pIndex, 1)\n this.$store.dispatch('setHistorys', this.historys) // 設定打點紀錄\n this.$store.dispatch('setCommentsData',this.commentsData) // 設定Bolo內容\n }).catch(err => {\n console.log(err)\n })\n break\n }\n this.historyEditFlag = false\n }\n },\n setDetail: function(type) {\n switch (type) {\n case 'tmd':\n this.commentBtnSetting.detail = this.tmdTags\n break\n case 'school':\n this.commentBtnSetting.detail = this.schoolTags\n break\n case 'person':\n this.commentBtnSetting.detail = this.userTags // 個人標籤\n break\n }\n this.$store.dispatch('setCommentBtnSetting', this.commentBtnSetting)\n },\n checkPoint: function(typeId, detailType) {\n if(!jsFn.IsEmpty(this.expertPoint.desc) || !jsFn.IsEmpty(this.fileType)) {\n this.$Modal.confirm({\n title: this.$t('warning'),\n content: '

' + this.$t('warn_text1') + '

',\n okText: this.$t('ok'),\n cancelText: this.$t('cancel'),\n onOk: () => {\n this.setTable(typeId, detailType)\n }\n })\n } else {\n this.setTable(typeId, detailType)\n }\n },\n setTable: function(typeId, detailType) {\n this.commentBtnSetting.detailType = detailType\n this.commentBtnSetting.pointsByTypeId = typeId\n let temp = this.commentBtnSetting.detail.filter((item) => {\n return item.typeId === typeId\n })\n this.commentBtnSetting.table = temp[0]\n this.$store.dispatch('setCommentBtnSetting', this.commentBtnSetting)\n this.chgTableFlag = false\n\n // 清空打點\n this.expertPoint.type = ''\n this.expertPoint.typeName = ''\n this.expertPoint.id = ''\n this.expertPoint.tagName = ''\n this.expertPoint.desc = ''\n this.expertPoint.tableType = ''\n this.nowTimestamp = ''\n this.fileType = ''\n this.uploadFile = null\n },\n toCustomTags() {\n this.$router.push({path: 'crtpointbtn'})\n },\n isLeaveClass: function() { // 這個功能目前只給通用議課用\n let nowTime = new Date().getTime()\n let endTime = this.channelInfo.timestamp + this.channelInfo.duration\n let leaveFlag = false\n\n if(this.channelInfo.isStrClass != null) {\n if(this.expertPoint.id === '' && !this.drawerflag && this.publicState === 'EndClass') { // 沒有打點中 沒有開啟觀議課 並已有下課狀態\n if(!this.channelInfo.isStrClass) { // 已下課強迫離開教室\n leaveFlag = true\n } else if(nowTime >= endTime) { // 超過設定時間強迫下課\n leaveFlag = true\n }\n } else if(!this.channelInfo.isStrClass) { // 已下課給予下課狀態\n this.publicState = 'EndClass'\n this.drawerflag = true\n }\n }\n\n if(leaveFlag) {\n this.$Message.info({\n content: this.$t('mode_close'),\n duration: 15,\n closable: true\n })\n this.chgGroup()\n }\n }\n },\n created: function() {\n if(this.$tools.IsEmpty(this.channelInfo.channel) || this.$tools.IsEmpty(this.channelInfo.pin)) this.$router.push({path: '/'})\n console.log(this.commentsData, 'this.commentsData')\n console.log(this.channelInfo, 'this.channelInfo')\n console.log(this.userInfo, 'this.userInfo')\n console.log(this.channelLink, 'this.channelLink')\n console.log(this.userTags, 'this.userTags')\n\n // 分類是通用觀議課還是HiTeach開課\n if (this.channelInfo.channel.indexOf(0) === 0 || this.channelInfo.channel.indexOf(9) === 0) {\n this.$store.dispatch('getPlatformInfo')\n this.$store.dispatch('getSkMarkTemplate')\n this.publicTimer = setInterval(() => {\n this.$store.dispatch('getPlatformInfo').then(() => {\n this.isLeaveClass()\n })\n }, 10000)\n\n // 檢查時間是否正常\n this.$store.dispatch('getServiceUnixTimeMilliseconds').then(res => {\n let nowTime = new Date().getTime()\n let diffTime = Math.abs(res - nowTime)\n\n if(diffTime > 10 * 60 * 1000) {\n this.isDevTimeAbnormal = true\n }\n })\n } else {\n // signal 連線\n this.$store.dispatch('initSignal')\n }\n\n // init\n this.$store.dispatch('setHistorys') // 設定打點紀錄\n this.$store.dispatch('setCommentsData') // 設定上傳Blob的DATA內容\n\n if(this.isObsStartSame) {\n this.drawerPaneId = 0\n }\n const _this = this\n var clipboard = new ClipboardJS('.recordList')\n clipboard.on('success', function(e) {\n _this.$Message.info({\n content: _this.$t('copySuccess'),\n duration: 3,\n closable: true\n })\n })\n },\n async mounted() {\n let s = {gn: this.channelInfo.channel, pin: this.channelInfo.pin}\n s = Base64.encode(JSON.stringify(s))\n this.qrcode_url = await this.crtQRCode(document.location.origin + '?s=' + s)\n this.langSet = Object.keys(this.$i18n.messages)\n // 顯示時間-計算相差時間\n this.classPassedTime()\n setInterval(() => {\n this.classPassedTime()\n }, 1000)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./commentBtn.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./commentBtn.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./commentBtn.vue?vue&type=template&id=292524bc&scoped=true&\"\nimport script from \"./commentBtn.vue?vue&type=script&lang=js&\"\nexport * from \"./commentBtn.vue?vue&type=script&lang=js&\"\nimport style0 from \"./commentBtn.vue?vue&type=style&index=0&lang=less&\"\nimport style1 from \"./commentBtn.vue?vue&type=style&index=1&id=292524bc&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"292524bc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"chgWebview\",staticStyle:{\"width\":\"100%\"}},[_vm._m(0),_c('div',{staticStyle:{\"float\":\"right\",\"width\":\"100%\",\"display\":\"flex\",\"justify-content\":\"center\"}},[_c('div',{staticStyle:{\"font-weight\":\"bold\",\"font-size\":\"16px\",\"color\":\"rgb(11, 128, 248)\",\"white-space\":\"pre-wrap\"}},[_vm._v(\" \"+_vm._s(_vm.$t('webviewmsg1'))),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t('webviewmsg2' + '.' + _vm.webviewStr))),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t('webviewmsg3'))),_c('br')])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"type\":\"flex\",\"align\":\"right\"}},[_c('img',{staticStyle:{\"width\":\"30%\"},attrs:{\"src\":require(\"@/img/svg/uparrow.svg\")}})])}]\n\nexport { render, staticRenderFns }","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nexport default {\r\n name: 'chgWebview',\r\n data() {\r\n return {\r\n webviewStr: 'android'\r\n }\r\n },\r\n created() {\r\n const ua = navigator.userAgent.toLowerCase()\r\n if (ua.indexOf('ipad') !== -1) {\r\n this.webviewStr = 'ios'\r\n } else if (ua.indexOf('iphone') !== -1) {\r\n this.webviewStr = 'ios'\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chgWebview.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chgWebview.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./chgWebview.vue?vue&type=template&id=4166c8d0&\"\nimport script from \"./chgWebview.vue?vue&type=script&lang=js&\"\nexport * from \"./chgWebview.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Login from '@/views/login.vue'\r\nimport CrtPointBtn from '@/views/crtPointBtn.vue'\r\n// import RECORDTEST from '@/views/recordTEST'\r\n// import SelectExpert from '@/views/select-expert'\r\nimport CommentBtn from '@/views/commentBtn.vue'\r\nimport ChgWebview from '@/views/chgWebview.vue'\r\n\r\nexport const routes = [\r\n {\r\n path: '/',\r\n name:'Login',\r\n components: {\r\n default: Login,\r\n isWebview: ChgWebview\r\n },\r\n display: 'Login',\r\n meta: { requiresAuth: false }\r\n },\r\n {\r\n path: '/commentbtn',\r\n name: 'CommentBtn',\r\n components: {\r\n default: CommentBtn,\r\n isWebview: ChgWebview\r\n },\r\n display: 'commentBtn',\r\n meta: { requiresAuth: true }\r\n },\r\n {\r\n path: '/crtpointbtn',\r\n name: 'CrtPointBtn',\r\n components: {\r\n default: CrtPointBtn,\r\n isWebview: ChgWebview\r\n },\r\n display: 'crtPointBtn',\r\n meta: { requiresAuth: true }\r\n },\r\n // { path: '/selectexpert', component: SelectExpert, display: 'SelectExpert', meta: { requiresAuth: true }},\r\n // {path: '/recordtest', name:'recordtest', component: RECORDTEST, display: 'RECORDTEST', meta: { requiresAuth: false }},\r\n {path: '/*',redirect: '/'}\r\n]\r\n","import Vue from 'vue'\r\nimport VueRouter from 'vue-router'\r\nimport store from '@/store'\r\nimport { routes } from './routes'\r\nimport i18n from '@/lang'\r\n\r\nVue.use(VueRouter)\r\n\r\nlet router = new VueRouter({\r\n mode: 'history',\r\n routes\r\n})\r\n\r\n// 解决重复点击路由报错的BUG\r\nconst originalPush = VueRouter.prototype.push\r\nVueRouter.prototype.push = function push(location) {\r\n return originalPush.call(this, location).catch((err) => err)\r\n}\r\n\r\n// 登錄中間驗證,頁面需要登錄而沒有登錄的情況直接跳轉登錄\r\nrouter.beforeEach((to, from, next) => {\r\n // console.log('to=', to.fullPath, '| from=', from.fullPath)\r\n let sokrateslang = to.query.sokrateslang\r\n if(typeof sokrateslang !== 'undefined') {\r\n sokrateslang = sokrateslang.toLowerCase()\r\n if(sokrateslang !== 'zh-cn' && sokrateslang !== 'zh-tw') {\r\n sokrateslang = 'en-us'\r\n }\r\n i18n.locale = sokrateslang\r\n store.dispatch('setPageLang', sokrateslang)\r\n }\r\n\r\n if (to.matched.some(record => record.meta.requiresAuth)) {\r\n if (store.state.loginFlag) {\r\n next()\r\n } else {\r\n next({\r\n path: '/'\r\n // query: { redirect: to.fullPath }\r\n })\r\n }\r\n } else {\r\n next()\r\n }\r\n})\r\n\r\nexport default router\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('i',{staticStyle:{\"line-height\":\"0.5\"},on:{\"click\":_vm.onClick}},[_c('svg',{class:_vm.svgClass,style:({width: _vm.size + 'px', height: _vm.size + 'px'}),attrs:{\"aria-hidden\":\"true\"}},[_c('use',{attrs:{\"xlink:href\":_vm.iconName}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","//\n//\n//\n//\n//\n//\n//\n//\n\r\nexport default {\r\n name: 'SvgIcon',\r\n props: {\r\n type: {\r\n type: String,\r\n required: true\r\n },\r\n className: {\r\n type: String,\r\n default: ''\r\n },\r\n size: {\r\n type: String,\r\n default: '15'\r\n }\r\n },\r\n computed: {\r\n iconName() {\r\n return `#${this.type}`\r\n },\r\n svgClass() {\r\n if (this.className) {\r\n return 'svg-icon ' + this.className\r\n } else {\r\n return 'svg-icon'\r\n }\r\n }\r\n },\r\n methods: {\r\n onClick: function() {\r\n this.$emit('on-click')\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./svgIcon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./svgIcon.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./svgIcon.vue?vue&type=template&id=20cfcd60&\"\nimport script from \"./svgIcon.vue?vue&type=script&lang=js&\"\nexport * from \"./svgIcon.vue?vue&type=script&lang=js&\"\nimport style0 from \"./svgIcon.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport SvgIcon from '@/components/icon/svgIcon.vue'// svg component\r\n\r\n// register globally\r\nVue.component('SokIcon', SvgIcon)\r\n\r\nconst req = require.context('./svg', false, /\\.svg$/)\r\nconst requireAll = (requireContext) => requireContext.keys().map(requireContext)\r\nrequireAll(req)\r\n","import Vue from 'vue'\r\n\r\nimport './styles/quasar.sass'\r\nimport iconSet from 'quasar/icon-set/fontawesome-v5.js'\r\nimport '@quasar/extras/fontawesome-v5/fontawesome-v5.css'\r\nimport { Quasar } from 'quasar'\r\n\r\nVue.use(Quasar, {\r\n config: {},\r\n components: { /* not needed if importStrategy is not 'manual' */ },\r\n directives: { /* not needed if importStrategy is not 'manual' */ },\r\n plugins: {\r\n },\r\n iconSet: iconSet\r\n })\r\n","import Vue from 'vue'\r\nimport App from './App.vue'\r\nimport router from './router'\r\nimport store from './store'\r\nimport axios from 'vue-axios'\r\nimport 'view-design/dist/styles/iview.css'\r\nimport iView from 'view-design'\r\nimport './css/site.less'\r\nimport i18n from './lang'\r\nimport { sync } from 'vuex-router-sync'\r\nimport { jsFn } from '@/utils/jsFn'\r\nimport api from '@/api'\r\nimport VueHead from 'vue-head'\r\nimport '@/icons'\r\nimport './quasar'\r\n\r\nVue.config.productionTip = false\r\n\r\nVue.use(iView)\r\nVue.use(VueHead)\r\n\r\n// 全局API请求\r\nVue.prototype.$http = axios\r\nVue.prototype.$tools = jsFn\r\nVue.prototype.$api = api\r\n\r\nsync(store, router)\r\n\r\n// 处理刷新的时候vuex被清空但是用户已经登录的情况\r\nstore.dispatch('setPageLang', jsFn.getLang()) // 設定語系\r\nstore.dispatch('setUserInfo') // 設定個人資訊\r\nstore.dispatch('setUserTags') // 設定教師自訂標籤\r\nstore.dispatch('setChannelLink') // 設定頻道連線資訊\r\nstore.dispatch('setChannelInfo') // 設定頻道基本資訊\r\nstore.dispatch('setCommentBtnSetting') // 設定頻已選擇的打點類別\r\n\r\nnew Vue({\r\n router,\r\n store,\r\n i18n,\r\n VueHead,\r\n render: h => h(App)\r\n}).$mount('#app')\r\n","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"exit\",\n \"use\": \"exit-usage\",\n \"viewBox\": \"0 0 128 128\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","module.exports = __webpack_public_path__ + \"img/uparrow.07284e48.svg\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./login.vue?vue&type=style&index=1&id=e03935d6&lang=less&scoped=true&\"","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"tmdring\",\n \"use\": \"tmdring-usage\",\n \"viewBox\": \"0 0 128 128\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./commentBtn.vue?vue&type=style&index=1&id=292524bc&lang=less&scoped=true&\"","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"sending\",\n \"use\": \"sending-usage\",\n \"viewBox\": \"0 0 128 128\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","module.exports = __webpack_public_path__ + \"img/video.6635e7ab.png\";","module.exports = __webpack_public_path__ + \"img/sok_index_en.d67fa7d6.png\";","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"camera\",\n \"use\": \"camera-usage\",\n \"viewBox\": \"0 0 128 128\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"video\",\n \"use\": \"video-usage\",\n \"viewBox\": \"0 0 128 128\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","module.exports = __webpack_public_path__ + \"img/recstop.079ff256.svg\";","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"reset\",\n \"use\": \"reset-usage\",\n \"viewBox\": \"0 0 128 128\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./securityCode.vue?vue&type=style&index=0&id=1d47e3ee&scoped=true&lang=less&\"","module.exports = __webpack_public_path__ + \"img/recording.9e538206.svg\";","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"edit\",\n \"use\": \"edit-usage\",\n \"viewBox\": \"0 0 128 128\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"certification\",\n \"use\": \"certification-usage\",\n \"viewBox\": \"0 0 256 256\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"history\",\n \"use\": \"history-usage\",\n \"viewBox\": \"0 0 128 128\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./crtPointBtn.vue?vue&type=style&index=0&lang=less&\"","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"add\",\n \"use\": \"add-usage\",\n \"viewBox\": \"0 0 128 128\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./crtPointBtn.vue?vue&type=style&index=1&id=8fcb6842&lang=less&scoped=true&\"","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"trash\",\n \"use\": \"trash-usage\",\n \"viewBox\": \"0 0 128 128\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","module.exports = __webpack_public_path__ + \"img/sok_index_tw.061e1508.png\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/vue-cli-plugin-quasar/lib/loader.auto-import.js?kebab!../../../node_modules/cache-loader/dist/cjs.js??ref--0-1!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./svgIcon.vue?vue&type=style&index=0&lang=css&\"","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"preview\",\n \"use\": \"preview-usage\",\n \"viewBox\": \"0 0 128 128\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","module.exports = __webpack_public_path__ + \"img/accessory.2ac2952f.svg\";","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"check\",\n \"use\": \"check-usage\",\n \"viewBox\": \"0 0 128 128\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"videofile\",\n \"use\": \"videofile-usage\",\n \"viewBox\": \"0 0 128 128\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol"],"sourceRoot":""}