@palerock/exam-qa 1.0.6-patch2 → 1.0.6-patch20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/index.html +1 -1
  2. package/dist/static/css/app.4293d3540537974d843eca825dcda382.css +2 -0
  3. package/dist/static/css/app.4293d3540537974d843eca825dcda382.css.map +1 -0
  4. package/dist/static/js/app.e278f9557d317b4606b0.js +2 -0
  5. package/dist/static/js/app.e278f9557d317b4606b0.js.map +1 -0
  6. package/dist/static/js/manifest.3ad1d5771e9b13dbdad2.js.map +1 -1
  7. package/lib-json/Dev1/345/237/272/347/241/200/351/242/230.json +1407 -0
  8. package/lib-json/Dev1/346/250/241/346/213/237/345/215/267A.json +1538 -0
  9. package/lib-json/Dev1/346/250/241/346/213/237/345/215/267B.json +1534 -0
  10. package/lib-json/Dev1/346/265/201/347/250/213/350/207/252/345/212/250/345/214/226/344/270/216/351/200/273/350/276/2211.json +1587 -0
  11. package/lib-json/Dev1/346/265/201/347/250/213/350/207/252/345/212/250/345/214/226/344/270/216/351/200/273/350/276/2212.json +1042 -0
  12. package/lib-json/Dev1/346/265/213/350/257/225_/350/260/203/350/257/225_/351/203/250/347/275/262.json +928 -0
  13. package/lib-json/Dev1/347/224/250/346/210/267/347/225/214/351/235/242.json +1243 -0
  14. package/lib-json/[DEV2]Salesforce/345/237/272/347/241/200.json +375 -0
  15. package/lib-json/[DEV2]/346/200/247/350/203/275.json +728 -0
  16. package/lib-json/[DEV2]/346/250/241/346/213/237/345/215/267A.json +1403 -0
  17. package/lib-json/[DEV2]/346/250/241/346/213/237/345/215/267B.json +1387 -0
  18. package/lib-json/[DEV2]/346/265/213/350/257/225/344/270/216/351/203/250/347/275/262.json +828 -0
  19. package/lib-json/[DEV2]/347/224/250/346/210/267/347/225/214/351/235/2421.json +977 -0
  20. package/lib-json/[DEV2]/347/224/250/346/210/267/347/225/214/351/235/2422.json +667 -0
  21. package/lib-json/[DEV2]/351/200/273/350/276/221/343/200/201/346/265/201/347/250/213/350/207/252/345/212/250/345/214/226/345/222/214/351/233/206/346/210/2201.json +1387 -0
  22. package/lib-json/[DEV2]/351/200/273/350/276/221/343/200/201/346/265/201/347/250/213/350/207/252/345/212/250/345/214/226/345/222/214/351/233/206/346/210/2202.json +260 -0
  23. package/lib-json/[JS]/347/254/254/344/270/200/347/253/240 /345/217/230/351/207/217-/347/261/273/345/236/213-/351/233/206/345/220/210.json" +1048 -0
  24. package/lib-json/[JS]/347/254/254/344/270/203/347/253/240 /346/265/213/350/257/225.json" +356 -0
  25. package/lib-json/[JS]/347/254/254/344/270/211/347/253/240 /346/265/217/350/247/210/345/231/250/345/222/214/344/272/213/344/273/266.json" +851 -0
  26. package/lib-json/[JS]/347/254/254/344/272/214/347/253/240 /345/257/271/350/261/241-/345/207/275/346/225/260-/347/261/273.json" +1787 -0
  27. package/lib-json/[JS]/347/254/254/344/272/224/347/253/240 /345/274/202/346/255/245/347/274/226/347/250/213.json" +547 -0
  28. package/lib-json/[JS]/347/254/254/345/205/255/347/253/240 /346/234/215/345/212/241/345/231/250/347/253/257JavaScript.json" +613 -0
  29. package/lib-json/[JS]/347/254/254/345/233/233/347/253/240 /350/260/203/350/257/225/345/222/214/351/224/231/350/257/257/345/244/204/347/220/206.json" +525 -0
  30. package/lib-json/[/345/222/270/351/261/274]AppBuilder-1.json +977 -0
  31. package/lib-json/[/345/222/270/351/261/274]AppBuilder-2.json +941 -0
  32. package/lib-json/[/345/222/270/351/261/274]AppBuilder-3.json +973 -0
  33. package/lib-json/[/345/222/270/351/261/274]AppBuilder-4.json +981 -0
  34. package/lib-json/[/345/222/270/351/261/274]AppBuilder-5.json +771 -0
  35. package/lib-json/map.json +28 -43
  36. package/package.json +4 -2
  37. package/dist/static/css/app.d3e969a579969be885a3462a1e12e37f.css +0 -2
  38. package/dist/static/css/app.d3e969a579969be885a3462a1e12e37f.css.map +0 -1
  39. package/dist/static/js/app.53370ddfe5eba6a10565.js +0 -2
  40. package/dist/static/js/app.53370ddfe5eba6a10565.js.map +0 -1
  41. package/lib-json/Salesforce-Admin(302)-[Set-10].json +0 -321
  42. package/lib-json/Salesforce-Admin(302)-[Set-1].json +0 -301
  43. package/lib-json/Salesforce-Admin(302)-[Set-2].json +0 -325
  44. package/lib-json/Salesforce-Admin(302)-[Set-3].json +0 -305
  45. package/lib-json/Salesforce-Admin(302)-[Set-4].json +0 -325
  46. package/lib-json/Salesforce-Admin(302)-[Set-5].json +0 -329
  47. package/lib-json/Salesforce-Admin(302)-[Set-6].json +0 -322
  48. package/lib-json/Salesforce-Admin(302)-[Set-7].json +0 -321
  49. package/lib-json/Salesforce-Admin(302)-[Set-8].json +0 -321
  50. package/lib-json/Salesforce-Admin(302)-[Set-9].json +0 -325
  51. package/lib-json/Salesforce-Admin-201-[Set-10].json +0 -158
  52. package/lib-json/Salesforce-Admin-201-[Set-1].json +0 -604
  53. package/lib-json/Salesforce-Admin-201-[Set-2].json +0 -621
  54. package/lib-json/Salesforce-Admin-201-[Set-3].json +0 -650
  55. package/lib-json/Salesforce-Admin-201-[Set-4].json +0 -636
  56. package/lib-json/Salesforce-Admin-201-[Set-5].json +0 -640
  57. package/lib-json/Salesforce-Admin-201-[Set-6].json +0 -126
  58. package/lib-json/Salesforce-Admin-201-[Set-7].json +0 -126
  59. package/lib-json/Salesforce-Admin-201-[Set-8].json +0 -126
  60. package/lib-json/Salesforce-Admin-201-[Set-9].json +0 -126
  61. package/lib-json/Salesforce-Certified-Platform-Developer-1-[Set-1].json +0 -321
  62. package/lib-json/Salesforce-Certified-Platform-Developer-1-[Set-2].json +0 -325
  63. package/lib-json/Salesforce-Certified-Platform-Developer-1-[Set-3].json +0 -321
  64. package/lib-json/Salesforce-Certified-Platform-Developer-1-[Set-4].json +0 -337
  65. package/lib-json/Salesforce-Certified-Platform-Developer-1-[Set-5].json +0 -329
  66. package/lib-json/Salesforce-Certified-Platform-Developer-1-[Set-6].json +0 -325
  67. package/lib-json/Salesforce-Certified-Platform-Developer-1-[Set-7].json +0 -480
  68. package/lib-json/Salesforce-Sales-Cloud-Certification(81)-[Set-1].json +0 -305
  69. package/lib-json/Salesforce-Sales-Cloud-Certification(81)-[Set-2].json +0 -297
  70. package/lib-json/Salesforce-Sales-Cloud-Certification(81)-[Set-3].json +0 -269
  71. package/lib-json/Salesforce-Sales-Cloud-Certification(81)-[Set-4].json +0 -309
  72. package/lib-json/Salesforce-Sales-Cloud-Certification(81)-[Set-5].json +0 -515
  73. package/lib-json/app-builder-01.json +0 -1
  74. package/lib-json/app-builder-02.json +0 -1
  75. package/lib-json/app-builder-03.json +0 -1
  76. package/lib-json/app-builder-04.json +0 -1
  77. package/lib-json/app-builder-05.json +0 -1
  78. package/lib-json/app-builder-06.json +0 -1
  79. package/lib-json/app-builder-07.json +0 -1
  80. package/lib-json/app-builder-08.json +0 -1
  81. package/lib-json/app-builder-09.json +0 -1
  82. package/lib-json/app-builder-10.json +0 -1
  83. package/lib-json/app-builder-11.json +0 -311
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/App.vue?2b06","webpack:///./src/App.vue","webpack:///src/App.vue","webpack:///./src/utils/index.js","webpack:///./src/db/index.js","webpack:///./src/dao/index.js","webpack:///./src/config/index.js","webpack:///src/components/home-pages/HomeIndex.vue","webpack:///./src/components/home-pages/HomeIndex.vue?ecde","webpack:///./src/components/home-pages/HomeIndex.vue","webpack:///src/components/HelloWorld.vue","webpack:///./src/components/HelloWorld.vue?3534","webpack:///./src/components/HelloWorld.vue","webpack:///src/components/HomePage.vue","webpack:///./src/components/HomePage.vue?7fc5","webpack:///./src/components/HomePage.vue","webpack:///src/components/exam/DoExamPage.vue","webpack:///./src/components/exam/DoExamPage.vue?3d1a","webpack:///./src/components/exam/DoExamPage.vue","webpack:///./src/router/index.js","webpack:///./src/plugins/index.js","webpack:///./src/main.js"],"names":["selectortype_template_index_0_src_App","render","_h","this","$createElement","_c","_self","attrs","id","name","direction","staticClass","staticRenderFns","src_App","__webpack_require__","normalizeComponent","data","watch","$route","to","from","toDepth","path","split","length","fromDepth","ssrContext","utils","getHashCode","obj","getStrHashCode","getMessage","concat","getPropertyNames","join","_this","deep","arguments","undefined","includes","typeof_default","Date","flat","entries_default","map","_ref","_ref2","slicedToArray_default","key","value","filter","r","_this2","toString","keys_default","str","i","len","hash","charCodeAt","arr","Infinity","ret","dirty","forEach","item","is_array_default","push","apply","toConsumableArray_default","fromEntries","result","a","Array","storage","getItem","itemStr","localStorage","JSON","parse","e","console","log","setItem","stringify_default","removeItem","groupArray","groupedBy","_this3","array","hashCode","checkedMap","checkItem","Object","groupBy","_objectSpread","checkedHashCode","hashArr","find","values_default","duplicateRemoval","g","randomSort","sort","Math","random","dexieDB","Dexie","version","stores","config","question","bank","historyRecord","configDB","questionDB","bankDB","historyRecordDB","BaseDao","db","defaultEntry","classCallCheck_default","hook","primKey","createDate","now_default","modifyDate","changed","origin","dao__objectSpread","records","bulkPut","put","field","where","query","equals","first","keys","bulkDelete","delete","ConfigDao","possibleConstructorReturn_default","getPrototypeOf_default","call","QuestionDao","describe","type","BankDao","title","questions","HistoryRecordDao","rightTimes","errorTimes","maxTime","minTime","totalTime","hashCodeList","anyOf","toArray","configDao","questionDao","bankDao","historyRecordDao","vue_esm","use","loading","dialog","cell","cell_group","es_button","popup","grid","grid_item","es_checkbox","checkbox_group","existsMap","HomeIndex","isShowImporter","isShowOption","isFromOnline","onlineLibs","onlineSelects","questionLib","examList","currentCategory","categories","optionInfo","canReviewError","canDoExam","canClear","computed","selectedLibs","res","lib","HomeIndex__objectSpread","inCategory","methods","doExam","isReviewError","dao_bankDao","then","exam","promise_default","all","q","toArray_default","slice","$router","params","examConfig","alert","message","clearHistory","queryByHashCode","initExamList","showOption","hasHistoryError","selectLib","s","showImporter","importFromExist","_this4","fetchOnlineLib","catch","_fetchOnlineLib","asyncToGenerator_default","regenerator_default","mark","_callee","maps","promises","_this5","wrap","_context","prev","next","$http","get","t0","sent","exist","abrupt","stop","importLib","_importLib","_callee3","_this6","_context3","_ref3","_callee2","l","_context2","importSingleLib","_x","_importSingleLib","_callee4","_context4","upsert","_x2","intoCategory","_intoCategory","_callee5","category","_this7","_args5","_context5","notEqual","banks","sortBy","errorMap","record","relatedQuestion","times","b","_initExamList","_callee6","_this8","_context6","reduce","ac","syncDataToIndexDB","exams","questionSet","historyRecords","_ref4","_ref5","_ref5$","mounted","home_pages_HomeIndex","_vm","icon","clickable","on","click","$event","slot","_v","_l","_s","model","callback","$$v","expression","staticStyle","max-height","overflow-y","_e","text-align","padding","oi","label","placeholder","rows","size","block","position","components_home_pages_HomeIndex","HomeIndex_normalizeComponent","components_HelloWorld","HelloWorld_normalizeComponent","msg","nav_bar","tabbar","tabbar_item","HomePage","activeTabIndex","pages","api","activePage","components_HomePage","fixed","tag","color","width","page","src_components_HomePage","HomePage_normalizeComponent","row","col","radio_group","es_radio","defaultQuestionInfo","required","score","usingScore","answerOptions","isRight","defaultExamInfo","panel","DoExamPage","answers","questionNum","isShowResult","letterIndex","examInfo","hasSubmit","examHashCode","historyExams","showAcButtons","totalNum","historyErrorHashCodes","DoExamPage__objectSpread","active","questionsInfo","results","single","multi","apis","answer","orderNum","isMulti","opt","getQuestionTitle","getQuestionDesc","errorExam","totalTimes","toFixed","setAnswer","ai","toggleAnswer","checkResult","rightAnswers","option","isMistake","isAnswered","isChecked","isPass","turnTo","confirmSubmit","confirm","submit","answeredNum","requireAllDone","rightNum","rightRate","codeInfo","adaptExamConfig","checkNoAnswer","resultAnswers","checks","invalid","loadHistoryExamInfo","getOptionColor","isPractice","queryMany","swipe","evt","props","default","Boolean","isNew","plus","device","setWakelock","destroyed","exam_DoExamPage","directives","rawName","arg","left-arrow","right-text","click-left","back","click-right","stopPropagation","span","class","exam-right","exam-error","exam-current","style","dblclick","desc","$set","right-answer","error-answer","custom-title","checked-color","components_exam_DoExamPage","DoExamPage_normalizeComponent","Vue","Router","router","routes","component","AlloyFingerPlugin","AlloyFinger","prototype","axios","jsonp","Utils","define_property_default","enumerable","productionTip","el","components","App","template"],"mappings":"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","file":"static/js/app.53370ddfe5eba6a10565.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('transition',{attrs:{\"name\":_vm.direction}},[_c('router-view',{staticClass:\"appView\"})],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-70ce3a13\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-70ce3a13\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../node_modules/vue-loader/lib/selector?type=styles&index=0!./App.vue\")\n}\nvar normalizeComponent = require(\"!../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\nimport __vue_script__ from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\n/* template */\nimport __vue_template__ from \"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-70ce3a13\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/App.vue\n// module id = null\n// module chunks = ","<template>\n <div id=\"app\">\n <transition :name=\"direction\">\n <router-view class=\"appView\"/>\n </transition>\n </div>\n</template>\n\n<script>\n export default {\n name: 'App',\n data: () => ({\n direction: \"slide-right\"\n }),\n watch: {\n $route(to, from) {\n const toDepth = to.path.split(\"/\").length;\n const fromDepth = from.path.split(\"/\").length;\n if (to.path === \"/\") {\n this.direction = \"slide-right\";\n } else if (from.path === \"/\") {\n this.direction = \"slide-left\";\n } else {\n this.direction = toDepth < fromDepth ? \"slide-right\" : \"slide-left\";\n }\n }\n }\n }\n</script>\n\n<style>\n #app {\n font-family: 'Avenir', Helvetica, Arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n color: #2c3e50;\n margin-top: 60px;\n }\n\n .appView {\n position: absolute;\n width: 100%;\n transition: left .3s ease-out;\n left: 0;\n }\n\n .slide-left-enter {\n /*transform: translate(100%, 0);*/\n left: 100%;\n }\n\n .slide-left-leave-active {\n /*transform: translate(-50%, 0);*/\n left: -50%;\n }\n\n .slide-right-enter {\n /*transform: translate(-50%, 0);*/\n left: -50%;\n z-index: 20;\n }\n\n .slide-right-leave-active {\n /*transform: translate(100%, 0);*/\n left: 100%;\n z-index: 20;\n }\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/App.vue","export default {\n getHashCode(obj) {\n return this.getStrHashCode(this.getMessage(obj).concat(this.getPropertyNames(obj)).join(''));\n },\n getPropertyNames(_self, deep = 10) {\n if (deep <= 0) {\n return '';\n }\n if (!_self || ['string', 'number', 'boolean', 'function'].includes(typeof _self) || _self instanceof Date) {\n return '';\n }\n return this.flat(\n Object.entries(_self).map(([key, value]) => [key, this.getPropertyNames(value, deep--)])\n ).filter(r => r != null && r !== '')\n },\n getMessage(_self, deep) {\n deep == null && (deep = 10);\n if (deep <= 0) {\n return '';\n }\n if (!_self || ['string', 'number', 'boolean', 'function'].includes(typeof _self) || _self instanceof Date) {\n return [_self != null ? _self.toString() : ''];\n }\n return this.flat(\n Object.keys(_self).map(key => {\n return this.getMessage(_self[key], deep--);\n })\n ).filter(r => r != null && r !== '');\n },\n getStrHashCode(str) {\n let hash = 0, i, chr, len;\n if (str.length === 0) return hash;\n for (i = 0, len = str.length; i < len; i++) {\n chr = str.charCodeAt(i);\n hash = ((hash << 5) - hash) + chr;\n hash |= 0; // Convert to 32bit integer\n }\n return hash + '';\n },\n flat(arr, deep = Infinity) {\n let ret = [];\n let dirty = false;\n arr.forEach(item => {\n if (Array.isArray(item)) {\n dirty = true;\n ret.push(...item)\n } else {\n ret.push(item)\n }\n });\n return dirty && deep > 0 ? this.flat(ret, deep--) : ret\n },\n fromEntries(arr) {\n let result = {};\n arr.forEach(a => {\n if (a instanceof Array) {\n result[a[0]] = a[1];\n }\n });\n return result;\n },\n storage: {\n getItem(key) {\n let itemStr = localStorage.getItem('__exam_s0_' + key);\n let result = null;\n try {\n result = JSON.parse(itemStr);\n } catch (e) {\n console.log(`No valid item for key [${key}] to get in storage.`);\n }\n return result;\n },\n setItem(key, value) {\n let result = null;\n try {\n result = JSON.stringify(value);\n localStorage.setItem('__exam_s0_' + key, result);\n } catch (e) {\n console.log(`Not valid item for key [${key}] to set.`);\n }\n },\n removeItem(key) {\n localStorage.removeItem('__exam_s0_' + key);\n },\n },\n groupArray(arr, groupedBy) {\n let array = arr.map(a => ({hashCode: this.getHashCode(a), item: a}));\n if (!(groupedBy instanceof Array)) {\n groupedBy = [groupedBy];\n }\n let checkedArr = array.map(a => ({\n hashCode: a.hashCode,\n checkItem: Object.fromEntries(\n groupedBy.map(groupBy => [groupBy, (a.item || {})[groupBy]])\n )\n })).map(a => ({...a, checkedHashCode: this.getHashCode(a.checkItem)}));\n let checkedMap = {};\n checkedArr.forEach(a => {\n let hashArr = checkedMap[a.checkedHashCode];\n if (!hashArr) {\n hashArr = [];\n }\n hashArr.push(array.find(arr => arr.hashCode === a.hashCode).item);\n checkedMap[a.checkedHashCode] = hashArr;\n });\n return Object.values(checkedMap);\n },\n duplicateRemoval(arr) {\n let array = arr.map(a => ({item: a}));\n let grouped = this.groupArray(array, 'item');\n return grouped.map(g => g[0].item);\n },\n randomSort(arr) {\n return arr.sort(() => {\n return Math.random() - 0.5;\n })\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/utils/index.js","import Dexie from \"dexie\";\n\nconst dexieDB = new Dexie('_qa_db');\ndexieDB.version(1).stores({\n config: 'key, value, createDate, modifyDate',\n question: 'hashCode, describe, type, createDate, modifyDate',\n bank: 'hashCode, title, *questions, createDate, modifyDate',\n historyRecord: 'relatedQuestion, rightTimes, errorTimes, maxTime, minTime, totalTime, createDate, modifyDate'\n});\ndexieDB.version(2).stores({\n bank: 'hashCode, title, *questions, category, createDate, modifyDate',\n});\nconst configDB = dexieDB['config'];\nconst questionDB = dexieDB['question'];\nconst bankDB = dexieDB['bank'];\nconst historyRecordDB = dexieDB['historyRecord'];\n\nexport {dexieDB, configDB, questionDB, bankDB, historyRecordDB};\n\n\n// WEBPACK FOOTER //\n// ./src/db/index.js","import {dexieDB, configDB, questionDB, bankDB, historyRecordDB} from '../db';\n\nclass BaseDao {\n constructor(db, defaultEntry) {\n this.db = db;\n this.defaultEntry = defaultEntry || {};\n this.db.hook('creating', (primKey, obj) => {\n obj.createDate = Date.now();\n obj.modifyDate = Date.now();\n });\n this.db.hook('updating', (changed, key, origin) => {\n changed['modifiedDate'] = Date.now();\n if (!origin['createdDate']) {\n changed['createdDate'] = Date.now();\n }\n console.log({...changed});\n return changed;\n })\n }\n\n async upsert(records) {\n if (records instanceof Array) {\n return this.db.bulkPut(records.map(r => ({...this.defaultEntry, ...r})));\n }\n return this.db.put({...this.defaultEntry, ...records});\n }\n\n query(field) {\n return this.db.where(field);\n }\n\n queryByHashCode(hashCode) {\n return this.query('hashCode').equals(hashCode).first();\n }\n\n async delete(keys) {\n if (keys instanceof Array) {\n return this.db.bulkDelete(keys);\n }\n return this.db.delete(keys);\n }\n}\n\n\nclass ConfigDao extends BaseDao {\n constructor() {\n super(configDB, {value: null});\n }\n}\n\nclass QuestionDao extends BaseDao {\n constructor() {\n super(questionDB, {\n describe: '',\n type: 'picklist'\n });\n }\n}\n\nclass BankDao extends BaseDao {\n constructor() {\n super(bankDB, {\n title: '',\n questions: []\n });\n }\n}\n\nclass HistoryRecordDao extends BaseDao {\n constructor() {\n super(historyRecordDB, {\n rightTimes: 0, errorTimes: 0, maxTime: 0, minTime: 0, totalTime: 0\n });\n }\n\n queryByHashCode(hashCode) {\n return this.query('relatedQuestion').equals(hashCode).first();\n }\n\n queryMany(hashCodeList) {\n return this.query('relatedQuestion').anyOf(hashCodeList).toArray();\n }\n}\n\nconst configDao = new ConfigDao();\nconst questionDao = new QuestionDao();\nconst bankDao = new BankDao();\nconst historyRecordDao = new HistoryRecordDao();\n\nexport {configDao, questionDao, bankDao, historyRecordDao}\n\n\n// WEBPACK FOOTER //\n// ./src/dao/index.js","export default {\n version: '1.0.6-patch1',\n domain:'//palerock.cn',\n // domain:'//localhost'\n}\n\n\n// WEBPACK FOOTER //\n// ./src/config/index.js","<template>\n <div>\n <van-grid v-if=\"!inCategory\">\n <van-grid-item\n icon=\"notes-o\"\n clickable\n @click=\"showImporter\">\n <div slot=\"text\" class=\"van-grid-item__text text-align-center\">开始答题(导入)</div>\n </van-grid-item>\n <van-grid-item\n v-for=\"category in categories\"\n :key=\"category\"\n icon=\"notes-o\"\n clickable\n @click=\"intoCategory(category)\">\n <div slot=\"text\" class=\"van-grid-item__text text-align-center\">{{ category }}</div>\n </van-grid-item>\n </van-grid>\n <van-grid v-else>\n <van-grid-item\n icon=\"notes-o\"\n clickable\n @click=\"currentCategory = null\">\n <div slot=\"text\" class=\"van-grid-item__text text-align-center\">返回</div>\n </van-grid-item>\n <van-grid-item\n v-for=\"exam in examList\"\n :key=\"exam.hashCode\"\n icon=\"notes-o\"\n clickable\n @click=\"showOption(exam)\">\n <div slot=\"text\" class=\"van-grid-item__text text-align-center\">{{ exam.title }}</div>\n </van-grid-item>\n </van-grid>\n <van-popup v-model=\"isShowImporter\">\n <div class=\"exam-import-box\">\n <div v-if=\"isFromOnline\" style=\"max-height: 300px;overflow-y: auto;\">\n <div v-if=\"!onlineLibs || onlineLibs.length === 0\" style=\"text-align: center;padding: 10px\">\n <van-loading type=\"spinner\" />\n </div>\n <van-checkbox-group v-model=\"onlineSelects\">\n <van-cell-group>\n <van-cell v-for=\"(lib, oi) in onlineLibs\"\n clickable\n @click=\"selectLib(lib)\"\n :key=\"oi\">\n <template slot=\"title\">\n <span>{{ lib.title }}</span>\n </template>\n <van-checkbox slot=\"right-icon\" :name=\"lib.hashCode\"></van-checkbox>\n </van-cell>\n </van-cell-group>\n </van-checkbox-group>\n </div>\n <div v-if=\"!isFromOnline\">\n <van-cell-group>\n <van-field\n v-model=\"questionLib\"\n label=\"题库\"\n type=\"textarea\"\n placeholder=\"请输入题库\"\n rows=\"10\"></van-field>\n </van-cell-group>\n </div>\n <div>\n <van-button type=\"info\" size=\"small\" block @click=\"importLib\">导入题库</van-button>\n </div>\n <div class=\"exam-m-top-small\">\n <van-button type=\"primary\" size=\"small\" block @click=\"importFromExist\">获取在线题库</van-button>\n </div>\n </div>\n </van-popup>\n <van-popup v-model=\"isShowOption\" position=\"bottom\">\n <div class=\"\">\n <van-button type=\"primary\" block @click=\"doExam(optionInfo.hashCode)\">重新测试\n </van-button>\n <van-button type=\"info\" block @click=\"doExam(optionInfo.hashCode,true)\">复习错题\n </van-button>\n <van-button type=\"danger\" block @click=\"clearHistory(optionInfo.hashCode)\">清空错题\n </van-button>\n </div>\n </van-popup>\n </div>\n</template>\n\n<script>\nimport Vue from 'vue';\nimport {Grid, GridItem} from 'vant';\nimport {Popup} from 'vant';\nimport {Button} from 'vant';\nimport {Field} from 'vant';\nimport {Cell, CellGroup} from 'vant';\nimport utils from '../../utils';\nimport {questionDao, historyRecordDao, bankDao, configDao} from '../../dao';\nimport {Dialog} from 'vant';\nimport config from \"@/config\";\nimport {Checkbox, CheckboxGroup} from 'vant';\nimport { Loading } from 'vant';\n\nVue.use(Loading);\nVue.use(Dialog);\nVue.use(Field).use(Cell).use(CellGroup);\nVue.use(Button);\nVue.use(Popup);\nVue.use(Grid).use(GridItem);\nVue.use(Checkbox).use(CheckboxGroup);\n\nconst existsMap = 'https://unpkg.com/@palerock/exam-qa@latest/lib-json';\nexport default {\n name: \"HomeIndex\",\n data() {\n return {\n isShowImporter: false,\n isShowOption: false,\n isFromOnline: false,\n onlineLibs: [],\n onlineSelects: [],\n questionLib: '',\n examList: [],\n currentCategory: '',\n categories: [],\n optionInfo: {\n canReviewError: true,\n canDoExam: true,\n canClear: true,\n hashCode: ''\n }\n }\n },\n computed: {\n selectedLibs() {\n let res = this.onlineLibs.filter(lib => this.onlineSelects.includes(lib.hashCode)).map(lib => ({...lib}));\n res.forEach(r => {\n delete r.hashCode;\n });\n return res;\n },\n inCategory() {\n return !!this.currentCategory\n }\n },\n methods: {\n doExam(hashCode, isReviewError = false) {\n // let exam = utils.storage.getItem(hashCode);\n bankDao.query('hashCode').equals(hashCode).first()\n .then(exam => {\n return Promise.all([exam, ...exam.questions.map(q => questionDao.query('hashCode').equals(q).first())])\n })\n .then(([exam, ...questions]) => {\n exam.questions = questions;\n if (!exam) {\n Dialog.alert({message: '该题库已失效!'});\n return;\n }\n this.$router.push({\n name: 'DoExamPage',\n params: {\n examConfig: exam,\n isReviewError\n }\n })\n });\n },\n clearHistory(hashCode) {\n bankDao.queryByHashCode(hashCode)\n .then(bankDao => {\n bankDao = bankDao || {};\n return historyRecordDao.delete(bankDao.questions || []);\n }).then(() => {\n console.log('remove the history.');\n this.isShowOption = false;\n this.initExamList();\n }\n );\n },\n showOption(exam) {\n // console.log(exam.hashCode);\n if (exam.hasHistoryError) {\n this.optionInfo.hashCode = exam.hashCode;\n this.isShowOption = true;\n } else {\n this.doExam(exam.hashCode);\n }\n },\n selectLib(lib) {\n this.onlineSelects.includes(lib.hashCode) ? (this.onlineSelects = this.onlineSelects.filter(s => s !== lib.hashCode)) : (this.onlineSelects = [...this.onlineSelects, lib.hashCode])\n this.questionLib = JSON.stringify(this.selectedLibs);\n },\n showImporter() {\n this.isShowImporter = true;\n this.isFromOnline = false;\n },\n importFromExist() {\n this.isFromOnline = true;\n this.fetchOnlineLib().then(res => {\n this.onlineLibs = res.filter(r => r.data).map(r => ({\n ...r.data, hashCode: utils.getHashCode(r.data)\n }));\n }).catch(e => {\n console.log(e)\n alert('获取失败,请尝试自行录入');\n this.isShowImporter = false;\n })\n },\n async fetchOnlineLib() {\n const maps = (await this.$http.get(existsMap + \"/map.json\")).data || []\n const promises = maps.map(exist => this.$http.get(existsMap + \"/\" + exist));\n return Promise.all(promises);\n },\n async importLib() {\n try {\n let lib = JSON.parse(this.questionLib);\n if (lib instanceof Array) {\n await Promise.all(lib.map(async l => {\n await this.importSingleLib(l);\n }))\n } else {\n await this.importSingleLib(lib);\n }\n } catch (e) {\n alert(`题库格式错误:${utils.getMessage(e)}`)\n }\n await this.initExamList();\n this.isShowImporter = false;\n this.questionLib = ''\n },\n async importSingleLib(lib) {\n if (!lib.questions || lib.questions.length === 0) {\n return false;\n }\n lib.questions.forEach(q=>{\n q.hashCode = utils.getHashCode(q)\n })\n const bank = {\n ...lib,\n questions: lib.questions.map(q=>q.hashCode)\n }\n bank.hashCode = utils.getHashCode(bank)\n await questionDao.upsert(lib.questions)\n .then(()=>{\n return bankDao.upsert([bank]);\n })\n return true;\n },\n async intoCategory(category = 'default') {\n this.currentCategory = category\n this.examList = []\n await bankDao.query('hashCode').notEqual('').toArray().then(banks => {\n const promises = banks.map(bank => {\n return historyRecordDao.query('relatedQuestion').anyOf(bank.questions).sortBy('createDate')\n .then(records => {\n const errorMap = Object.fromEntries(records.map(record => [record.relatedQuestion, {\n ...record, times: record.errorTimes\n }]));\n const hasHistoryError = !!Object.values(errorMap).find(q => q.times > 0);\n return {...bank, errorMap, hasHistoryError}\n });\n });\n return Promise.all(promises);\n }).then(banks => {\n banks = banks.map(b => {\n b.category = b.category || 'default'\n return b\n })\n this.examList = banks.filter(b => b.category === category);\n })\n },\n async initExamList() {\n await bankDao.query('hashCode').notEqual('').toArray().then(banks => {\n banks = banks.map(b => {\n b.category = b.category || 'default'\n return b\n })\n this.categories = banks.reduce((ac, item) => {\n if (!ac.includes(item.category)) {\n ac.push(item.category)\n }\n return ac\n }, [])\n })\n if (this.currentCategory) {\n this.intoCategory(this.currentCategory)\n }\n },\n syncDataToIndexDB() {\n let exams = JSON.parse(JSON.stringify(this.examList))\n .map(e => ({...e, bank: utils.storage.getItem(e.hashCode)}))\n .map(e => ({\n ...e,\n questionSet: e.bank.questions,\n bank: {\n ...e.bank, hashCode: utils.getHashCode(e.bank),\n questions: e.bank.questions.map(q => utils.getHashCode(q))\n },\n historyRecords: Object.entries(e.errorMap)\n .map(([relatedQuestion, {times, rightTimes}]) => ({\n relatedQuestion, rightTimes, errorTimes: times\n }))\n }));\n questionDao.upsert(\n utils.flat(exams.map(e => e.questionSet.map(q => ({\n ...q,\n hashCode: utils.getHashCode(q),\n }))), 2)\n ).then(() => {\n return bankDao.upsert(exams.map(e => e.bank));\n }).then(() => {\n return historyRecordDao.upsert(utils.flat(exams.map(e => e.historyRecords), 2));\n }).then(() => {\n return configDao.upsert({key: 'hasSync', value: true});\n }).then(() => {\n console.log('sync success.');\n }).catch(e => {\n console.log(e);\n });\n // console.log(exams);\n }\n },\n mounted() {\n this.initExamList();\n // configDao.query('key').equals('hasSync').first()\n // .then(hasSync => {\n // hasSync = !!hasSync;\n // if (!hasSync) {\n // this.syncDataToIndexDB();\n // }\n // });\n }\n}\n</script>\n\n<style scoped>\n.exam-import-box {\n width: 20rem;\n padding: 1rem;\n}\n</style>\n\n\n// WEBPACK FOOTER //\n// src/components/home-pages/HomeIndex.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.inCategory)?_c('van-grid',[_c('van-grid-item',{attrs:{\"icon\":\"notes-o\",\"clickable\":\"\"},on:{\"click\":_vm.showImporter}},[_c('div',{staticClass:\"van-grid-item__text text-align-center\",attrs:{\"slot\":\"text\"},slot:\"text\"},[_vm._v(\"开始答题(导入)\")])]),_vm._v(\" \"),_vm._l((_vm.categories),function(category){return _c('van-grid-item',{key:category,attrs:{\"icon\":\"notes-o\",\"clickable\":\"\"},on:{\"click\":function($event){return _vm.intoCategory(category)}}},[_c('div',{staticClass:\"van-grid-item__text text-align-center\",attrs:{\"slot\":\"text\"},slot:\"text\"},[_vm._v(_vm._s(category))])])})],2):_c('van-grid',[_c('van-grid-item',{attrs:{\"icon\":\"notes-o\",\"clickable\":\"\"},on:{\"click\":function($event){_vm.currentCategory = null}}},[_c('div',{staticClass:\"van-grid-item__text text-align-center\",attrs:{\"slot\":\"text\"},slot:\"text\"},[_vm._v(\"返回\")])]),_vm._v(\" \"),_vm._l((_vm.examList),function(exam){return _c('van-grid-item',{key:exam.hashCode,attrs:{\"icon\":\"notes-o\",\"clickable\":\"\"},on:{\"click\":function($event){return _vm.showOption(exam)}}},[_c('div',{staticClass:\"van-grid-item__text text-align-center\",attrs:{\"slot\":\"text\"},slot:\"text\"},[_vm._v(_vm._s(exam.title))])])})],2),_vm._v(\" \"),_c('van-popup',{model:{value:(_vm.isShowImporter),callback:function ($$v) {_vm.isShowImporter=$$v},expression:\"isShowImporter\"}},[_c('div',{staticClass:\"exam-import-box\"},[(_vm.isFromOnline)?_c('div',{staticStyle:{\"max-height\":\"300px\",\"overflow-y\":\"auto\"}},[(!_vm.onlineLibs || _vm.onlineLibs.length === 0)?_c('div',{staticStyle:{\"text-align\":\"center\",\"padding\":\"10px\"}},[_c('van-loading',{attrs:{\"type\":\"spinner\"}})],1):_vm._e(),_vm._v(\" \"),_c('van-checkbox-group',{model:{value:(_vm.onlineSelects),callback:function ($$v) {_vm.onlineSelects=$$v},expression:\"onlineSelects\"}},[_c('van-cell-group',_vm._l((_vm.onlineLibs),function(lib,oi){return _c('van-cell',{key:oi,attrs:{\"clickable\":\"\"},on:{\"click\":function($event){return _vm.selectLib(lib)}}},[_c('template',{slot:\"title\"},[_c('span',[_vm._v(_vm._s(lib.title))])]),_vm._v(\" \"),_c('van-checkbox',{attrs:{\"slot\":\"right-icon\",\"name\":lib.hashCode},slot:\"right-icon\"})],2)}),1)],1)],1):_vm._e(),_vm._v(\" \"),(!_vm.isFromOnline)?_c('div',[_c('van-cell-group',[_c('van-field',{attrs:{\"label\":\"题库\",\"type\":\"textarea\",\"placeholder\":\"请输入题库\",\"rows\":\"10\"},model:{value:(_vm.questionLib),callback:function ($$v) {_vm.questionLib=$$v},expression:\"questionLib\"}})],1)],1):_vm._e(),_vm._v(\" \"),_c('div',[_c('van-button',{attrs:{\"type\":\"info\",\"size\":\"small\",\"block\":\"\"},on:{\"click\":_vm.importLib}},[_vm._v(\"导入题库\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"exam-m-top-small\"},[_c('van-button',{attrs:{\"type\":\"primary\",\"size\":\"small\",\"block\":\"\"},on:{\"click\":_vm.importFromExist}},[_vm._v(\"获取在线题库\")])],1)])]),_vm._v(\" \"),_c('van-popup',{attrs:{\"position\":\"bottom\"},model:{value:(_vm.isShowOption),callback:function ($$v) {_vm.isShowOption=$$v},expression:\"isShowOption\"}},[_c('div',{},[_c('van-button',{attrs:{\"type\":\"primary\",\"block\":\"\"},on:{\"click\":function($event){return _vm.doExam(_vm.optionInfo.hashCode)}}},[_vm._v(\"重新测试\\n \")]),_vm._v(\" \"),_c('van-button',{attrs:{\"type\":\"info\",\"block\":\"\"},on:{\"click\":function($event){return _vm.doExam(_vm.optionInfo.hashCode,true)}}},[_vm._v(\"复习错题\\n \")]),_vm._v(\" \"),_c('van-button',{attrs:{\"type\":\"danger\",\"block\":\"\"},on:{\"click\":function($event){return _vm.clearHistory(_vm.optionInfo.hashCode)}}},[_vm._v(\"清空错题\\n \")])],1)])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-5f2e3e18\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/home-pages/HomeIndex.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-5f2e3e18\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./HomeIndex.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./HomeIndex.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./HomeIndex.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5f2e3e18\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./HomeIndex.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-5f2e3e18\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/home-pages/HomeIndex.vue\n// module id = null\n// module chunks = ","<template>\n <div>\n <van-button type=\"default\">默认按钮</van-button>\n <van-button type=\"primary\">主要按钮</van-button>\n <van-button type=\"info\">信息按钮</van-button>\n <van-button type=\"warning\">警告按钮</van-button>\n <van-button type=\"danger\">危险按钮</van-button>\n </div>\n</template>\n\n<script>\n import Vue from 'vue';\n import { Button } from 'vant';\n\n Vue.use(Button);\n\n export default {\n name: 'HelloWorld',\n data() {\n return {\n msg: 'Welcome to Your Vue.js App'\n }\n }\n }\n</script>\n\n\n\n// WEBPACK FOOTER //\n// src/components/HelloWorld.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('van-button',{attrs:{\"type\":\"default\"}},[_vm._v(\"默认按钮\")]),_vm._v(\" \"),_c('van-button',{attrs:{\"type\":\"primary\"}},[_vm._v(\"主要按钮\")]),_vm._v(\" \"),_c('van-button',{attrs:{\"type\":\"info\"}},[_vm._v(\"信息按钮\")]),_vm._v(\" \"),_c('van-button',{attrs:{\"type\":\"warning\"}},[_vm._v(\"警告按钮\")]),_vm._v(\" \"),_c('van-button',{attrs:{\"type\":\"danger\"}},[_vm._v(\"危险按钮\")])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-a0448bfc\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/HelloWorld.vue\n// module id = null\n// module chunks = ","var normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./HelloWorld.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./HelloWorld.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-a0448bfc\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./HelloWorld.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/HelloWorld.vue\n// module id = null\n// module chunks = ","<template>\n <div>\n <van-nav-bar\n :title=\"activePage.label\"\n fixed\n ></van-nav-bar>\n <div class=\"is-relation\">\n <component :is=\"activePage.api\"></component>\n <p class=\"text-align-center is-absolute\" style=\"color: #efefef;width: 100%\">{{version}}</p>\n </div>\n <van-tabbar v-model=\"activeTabIndex\">\n <van-tabbar-item v-for=\"(page, i) in pages\" :key=\"i\" :icon=\"page.icon\">{{page.label}}</van-tabbar-item>\n </van-tabbar>\n </div>\n</template>\n\n<script>\n import Vue from 'vue';\n import {NavBar} from 'vant';\n import {Tabbar, TabbarItem} from 'vant';\n import HomeIndex from \"@/components/home-pages/HomeIndex\";\n import HelloWorld from \"@/components/HelloWorld\";\n import config from \"@/config\";\n\n Vue.use(NavBar).use(Tabbar).use(TabbarItem);\n\n export default {\n name: \"HomePage\",\n data() {\n return {\n activeTabIndex: 0,\n pages: [\n {title: '主页', label: 'Home', api: HomeIndex, icon: 'home-o'},\n // {title: '搜索', label: '搜索', api: HelloWorld, icon: 'search'},\n // {title: '朋友', label: '朋友', api: HomeIndex, icon: 'friends-o'},\n // {title: '设置', label: '设置', api: HomeIndex, icon: 'setting-o'},\n ],\n }\n },\n computed: {\n activePage() {\n return this.pages[this.activeTabIndex] || {};\n },\n version() {\n return config.version;\n }\n }\n }\n</script>\n\n<style scoped>\n\n</style>\n\n\n// WEBPACK FOOTER //\n// src/components/HomePage.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('van-nav-bar',{attrs:{\"title\":_vm.activePage.label,\"fixed\":\"\"}}),_vm._v(\" \"),_c('div',{staticClass:\"is-relation\"},[_c(_vm.activePage.api,{tag:\"component\"}),_vm._v(\" \"),_c('p',{staticClass:\"text-align-center is-absolute\",staticStyle:{\"color\":\"#efefef\",\"width\":\"100%\"}},[_vm._v(_vm._s(_vm.version))])],1),_vm._v(\" \"),_c('van-tabbar',{model:{value:(_vm.activeTabIndex),callback:function ($$v) {_vm.activeTabIndex=$$v},expression:\"activeTabIndex\"}},_vm._l((_vm.pages),function(page,i){return _c('van-tabbar-item',{key:i,attrs:{\"icon\":page.icon}},[_vm._v(_vm._s(page.label))])}),1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-5c9e76e7\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/HomePage.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-5c9e76e7\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./HomePage.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./HomePage.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./HomePage.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5c9e76e7\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./HomePage.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-5c9e76e7\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/HomePage.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"exam-root\" v-finger:swipe=\"swipe\">\n <van-nav-bar\n :title=\"examInfo.title\"\n fixed\n left-arrow\n right-text=\"目录\"\n @click-left=\"$router.back()\"\n @click-right=\"showAcButtons = !showAcButtons\"\n ></van-nav-bar>\n <div class=\"ac-qn-backdrop\" v-show=\"showAcButtons\" @click.stop=\"showAcButtons = false\">\n <div class=\"exam-p-around-small ac-qn\" @click.stop>\n <van-row>\n <van-col span=\"4\" v-for=\"(question,i) in questionsInfo\" :key=\"i\">\n <div class=\"exam-circle exam-done\" @click=\"turnTo(i)\"\n :class=\"{'exam-right':question.answer.isPass&&(isShowResult||(question.answer.isChecked&&isPractice)),'exam-error':question.answer.isMistake&&(isShowResult||(question.answer.isChecked&&isPractice)),'exam-current': questionNum === i}\">\n {{ i + 1 }}\n </div>\n </van-col>\n </van-row>\n </div>\n </div>\n <div class=\"question-box\" @dblclick.stop=\"showAcButtons = true\"\n :style=\"`width: ${totalNum*100}%;transform:translate(${-questionNum*100/totalNum}%,0)`\">\n <div class=\"question-item\" v-for=\"(question,i) in questionsInfo\" :key=\"question.hashCode\">\n <van-panel :title=\"getQuestionTitle(question)\" :desc=\"getQuestionDesc(question)\">\n <div v-if=\"question.isMulti\">\n <van-checkbox-group v-model=\"question.answer.multi.apis\" @click.stop @dblclick.stop>\n <van-cell-group>\n <van-cell v-for=\"(option, oi) in question.answerOptions\"\n clickable @click=\"toggleAnswer(i, option.api)\"\n :key=\"oi\">\n <template slot=\"title\">\n <span\n :class=\"{'right-answer':option.isRight&&isShowResult||(option.isRight&&question.answer.isChecked&&isPractice),'error-answer':!option.isRight&&isShowResult||(!option.isRight&&question.answer.isAnswered&&isPractice),'custom-title':true}\">{{\n letterIndex[oi] + '. ' + option.describe\n }}</span>\n </template>\n <van-checkbox slot=\"right-icon\" :name=\"option.api\"\n :checked-color=\"getOptionColor(question,option)\"></van-checkbox>\n </van-cell>\n </van-cell-group>\n </van-checkbox-group>\n </div>\n <div v-if=\"!question.isMulti\">\n <van-radio-group v-model=\"question.answer.single.api\">\n <van-cell-group>\n <van-cell v-for=\"(option, oi) in question.answerOptions\"\n clickable @click=\"setAnswer(i, [option.api])\"\n :key=\"oi\">\n <template slot=\"title\">\n <span\n :class=\"{'right-answer':option.isRight&&isShowResult||(option.isRight&&question.answer.isChecked&&isPractice),'error-answer':!option.isRight&&isShowResult||(!option.isRight&&question.answer.isAnswered&&isPractice),'custom-title':true}\">{{\n letterIndex[oi] + '. ' + option.describe\n }}</span>\n </template>\n <van-radio slot=\"right-icon\" :name=\"option.api\"\n :checked-color=\"getOptionColor(question,option)\"></van-radio>\n </van-cell>\n </van-cell-group>\n </van-radio-group>\n </div>\n </van-panel>\n </div>\n </div>\n <div class=\"text-align-center ac-buttons\" v-if=\"questionsInfo[questionNum]\">\n <van-button size=\"small\" v-if=\"questionNum>0\" @click=\"turnTo(questionNum-1)\">上一题</van-button>\n <van-button size=\"small\" type=\"info\" v-if=\"questionNum<totalNum-1\" @click=\"turnTo(questionNum+1)\">下一题\n </van-button>\n <van-button size=\"small\" type=\"warning\" v-if=\"isPractice&&!questionsInfo[questionNum].answer.isChecked\"\n @click=\"checkResult(questionNum)\">检查该题答案\n </van-button>\n <van-button size=\"small\" type=\"primary\" v-if=\"!hasSubmit\" @click=\"confirmSubmit\">提交\n </van-button>\n </div>\n\n </div>\n</template>\n\n<script>\nimport Vue from 'vue';\nimport {NavBar} from 'vant';\nimport {Panel} from 'vant';\nimport {Button} from 'vant';\nimport {Cell, CellGroup} from 'vant';\nimport {RadioGroup, Radio} from 'vant';\nimport {Checkbox, CheckboxGroup} from 'vant';\nimport {Dialog} from 'vant';\nimport {Row, Col} from 'vant';\nimport utils from '../../utils';\nimport {historyRecordDao, bankDao} from '../../dao'\n\nVue.use(Row).use(Col);\n// 全局注册\nVue.use(Dialog);\nVue.use(Checkbox).use(CheckboxGroup);\nVue.use(RadioGroup);\nVue.use(Radio);\nVue.use(Cell).use(CellGroup);\n\nconst defaultQuestionInfo = {\n required: true,\n score: 1,\n usingScore: false,\n type: 'option', // text, number\n describe: 'Do you love me?Do you love me?Do you love me?Do you love me?Do you love me?Do you love me?Do you love me?Do you love me?Do you love me?Do you love me?Do you love me?Do you love me?Do you love me?',\n answerOptions: [\n {api: 'A', describe: 'Yes', isRight: true},\n {api: 'B', describe: 'No'}\n ]\n};\n\nconst defaultExamInfo = {\n title: '试题测试',\n questions: [defaultQuestionInfo]\n};\n\nVue.use(NavBar).use(Panel).use(Button);\n\nexport default {\n name: \"DoExamPage\",\n data() {\n return {\n answers: [],\n questionNum: 0,\n isShowResult: false,\n letterIndex: [...'ABCDEFGHIJKLMNOPQRSTUVWXYZ'],\n examInfo: {},\n hasSubmit: false,\n examHashCode: 0,\n historyExams: [],\n showAcButtons: false\n }\n },\n computed: {\n totalNum() {\n return this.questions.length;\n },\n questions() {\n return (this.examInfo.questions || []).filter(\n q => this.isReviewError ? this.historyErrorHashCodes.includes(q.hashCode) : true\n ).map((q, i) => ({...q, active: i === this.questionNum}));\n },\n questionsInfo() {\n return this.questions.map(\n (q, i) => {\n if (!this.answers[i]) {\n this.answers[i] = {results: [{}], single: {}, multi: {apis: []}}\n }\n return {\n ...q,\n answer: this.answers[i] || {},\n orderNum: i + 1,\n isMulti: q.answerOptions.filter(opt => opt.isRight).length > 1\n }\n }\n )\n },\n historyErrorHashCodes() {\n return this.historyExams.filter(exam => exam.errorTimes > 0).map(exam => exam.hashCode);\n }\n },\n methods: {\n getQuestionTitle(question) {\n return [`(${this.questionNum + 1}/${this.totalNum})`, question.describe].join(' ');\n },\n getQuestionDesc(question) {\n let result = '';\n if (!question.required) {\n result += '(可选)'\n }\n if (question.type === 'option') {\n if (question.isMulti) {\n result += '多选题'\n } else {\n result += '单选题'\n }\n }\n let errorExam = this.historyExams.find(exam => exam.hashCode === question.hashCode);\n if (errorExam) {\n if (this.isReviewError) {\n if (errorExam.errorTimes) {\n result += ` (做错次数: ${errorExam.errorTimes})`;\n }\n }\n const totalTimes = errorExam.errorTimes + errorExam.rightTimes;\n if (totalTimes > 0) {\n result += `(历史正确率:${(errorExam.rightTimes / totalTimes * 100).toFixed(0)}%)`;\n }\n }\n return result;\n },\n /**\n * @param i\n * @param api {Array}\n */\n setAnswer(i, api) {\n this.answers = [...this.answers].map((answer, ai) => {\n if (ai === i) {\n answer.results = api.map(a => ({api: a}));\n answer.single.api = api[0];\n answer.multi.apis = api;\n }\n return answer;\n });\n },\n toggleAnswer(i, api) {\n let apis = this.answers[i].multi.apis;\n if (apis.includes(api)) {\n apis = apis.filter(a => a !== api);\n } else {\n apis.push(api);\n apis = [...apis];\n }\n this.setAnswer(i, apis);\n },\n checkResult(i) {\n this.answers = [...this.answers].map((answer, ai) => {\n if (i !== ai && i != null) {\n return answer;\n }\n let question = this.questions[ai];\n let rightAnswers = question.answerOptions.filter(option => option.isRight).map(option => option.api);\n answer.results.forEach(res => {\n res.isMistake = !rightAnswers.includes(res.api);\n });\n answer.isAnswered = answer.results.filter(res => res.api).length > 0;\n if (!answer.isChecked && answer.isAnswered) {\n answer.isMistake = answer.results.length !== rightAnswers.length || !!answer.results.find(res => res.isMistake);\n answer.isPass = answer.isAnswered && !answer.isMistake;\n answer.isChecked = true;\n }\n return answer;\n })\n },\n turnTo(i) {\n this.questionNum = i;\n },\n confirmSubmit() {\n Dialog.confirm({\n title: '提交答案',\n message: '确认提交?'\n }).then(() => {\n this.submit();\n }).catch(e => {\n console.log(e);\n });\n },\n submit() {\n this.checkResult();\n let answeredNum = this.questionsInfo.filter(q => q.answer.isAnswered).length;\n if (answeredNum < this.totalNum && this.requireAllDone) {\n Dialog.alert({message: '题目还没有答完:' + `${answeredNum}/${this.totalNum}`});\n return;\n }\n let rightNum = this.questionsInfo.filter(q => q.answer.isPass).length;\n let rightRate = (rightNum / this.totalNum) * 100 + '%';\n\n // 录入错误信息\n let checkedQuestion = this.questionsInfo.filter(q => q.answer.isChecked);\n checkedQuestion.forEach(question => {\n historyRecordDao.queryByHashCode(question.hashCode).then(\n codeInfo => {\n if (!codeInfo) {\n codeInfo = {relatedQuestion: question.hashCode, errorTimes: 0};\n }\n if (question.answer.isPass) {\n codeInfo.rightTimes++;\n } else {\n codeInfo.errorTimes++;\n }\n historyRecordDao.upsert(codeInfo)\n .then(() => {\n console.log('做题信息已保存');\n });\n }\n );\n });\n\n // 显示答题结果\n this.isShowResult = true;\n Dialog.alert({message: '答题结束,成绩如下:' + `正确:${rightNum}(总共:${this.totalNum})(正确率:${rightRate})`});\n this.hasSubmit = true;\n },\n adaptExamConfig() {\n let examInfo = {...defaultExamInfo, ...this.examConfig};\n examInfo.questions = examInfo.questions.map(q => ({\n ...defaultQuestionInfo, ...q, hashCode: q.hashCode,\n answerOptions: !q.answerOptions ? [] : q.answerOptions.map(a => ({\n ...a,\n api: utils.getHashCode(a) + ''\n }))\n })).filter(q => {\n if (!q.describe || q.answerOptions.length === 0) {\n console.log('错误的题目(无描述或无答案).', q);\n return false;\n }\n // 去掉无正确答案的问题\n const checkNoAnswer = utils.groupArray(q.answerOptions, 'isRight');\n if (checkNoAnswer.length === 1 && !checkNoAnswer[0][0].isRight) {\n console.log('错误的题目(无正确答案).', q);\n return false;\n }\n // 去掉问题中重复的答案\n const checkDuplicate = utils.groupArray(q.answerOptions, 'describe');\n const resultAnswers = checkDuplicate.map(checks => {\n if (checks.length > 1) {\n const result = {...checks[0]};\n if (utils.groupArray(checks, 'isRight').length !== checks.length) {\n result.invalid = true;\n }\n return result;\n }\n return checks[0];\n });\n // 去掉答案中有重复描述且对错不一的问题\n if (resultAnswers.find(r => r.invalid)) {\n console.log('错误的题目(答案中有重复描述且对错不一).', q);\n return false;\n }\n q.answerOptions = utils.randomSort(resultAnswers);\n return true;\n });\n examInfo.questions = utils.randomSort(examInfo.questions);\n\n this.examInfo = examInfo;\n this.examHashCode = this.examConfig.hashCode;\n this.loadHistoryExamInfo();\n },\n getOptionColor(question, option) {\n if (this.isShowResult || (this.isPractice && question.answer.isChecked)) {\n return question.answer.results.map(res => res.api).includes(option.api) && option.isRight ? '#44af11' : '#cd0000'\n }\n return '#1989fa';\n },\n loadHistoryExamInfo() {\n historyRecordDao.queryMany(this.examConfig.questions.map(q => q.hashCode))\n .then(records => {\n // console.log(records.map(r => r.relatedQuestion));\n this.historyExams = records.map(r => ({...r, hashCode: r.relatedQuestion}));\n // console.log(this.historyExams);\n });\n // const errorMapKey = 'errorMap_' + this.examHashCode;\n // let errorMap = utils.storage.getItem(errorMapKey);\n // if (errorMap) {\n // this.historyExams = Object.entries(errorMap).map(([key, value]) => ({hashCode: key, ...value}));\n // }\n },\n swipe: function (evt) {\n switch (evt.direction) {\n case 'Left':\n if (this.questionNum < this.totalNum - 1) {\n this.turnTo(this.questionNum + 1);\n }\n break;\n case 'Right':\n if (this.questionNum > 0) {\n this.turnTo(this.questionNum - 1);\n }\n break;\n case 'Up':\n this.showAcButtons = false\n break;\n case 'Down':\n this.showAcButtons = true\n break\n default:\n }\n }\n },\n props: {\n examConfig: {\n type: Object,\n default() {\n return defaultExamInfo;\n }\n },\n isReviewError: {\n type: Boolean,\n default: false\n },\n isNew: {\n type: Boolean,\n default: false\n },\n requireAllDone: {\n type: Boolean,\n default: false\n },\n isPractice: {\n type: Boolean,\n default: true\n }\n },\n watch: {\n examConfig() {\n this.adaptExamConfig();\n }\n },\n mounted() {\n this.adaptExamConfig();\n console.log('开始答题');\n try {\n plus.device.setWakelock(true);\n console.log('打开屏幕常亮');\n } catch (e) {\n // ignore\n }\n },\n destroyed() {\n console.log('结束答题');\n try {\n plus.device.setWakelock(false);\n console.log('关闭屏幕常亮');\n } catch (e) {\n // ignore\n }\n }\n}\n</script>\n\n<style scoped>\n.exam-root {\n overflow-x: hidden;\n top: 0;\n bottom: 0\n}\n\nspan.error-answer {\n color: #cd0000;\n}\n\nspan.right-answer {\n color: #44af11;\n}\n\nspan.custom-title {\n word-break: break-word;\n}\n\n.exam-circle {\n height: 2rem;\n width: 2rem;\n border: 1px solid #1989fa;\n border-radius: 50%;\n line-height: 2rem;\n text-align: center;\n color: #1989fa;\n cursor: pointer;\n margin-bottom: .5rem;\n}\n\n.exam-circle.exam-error {\n color: #cd0000;\n border-color: #cd0000;\n}\n\n.exam-circle.exam-right {\n color: #44af11;\n border-color: #44af11;\n}\n\n.exam-circle.exam-current {\n background-color: #1989fa;\n color: white;\n}\n\n.exam-circle.exam-error.exam-current {\n background-color: #cd0000;\n color: white;\n}\n\n.exam-circle.exam-right.exam-current {\n background-color: #44af11;\n color: white;\n}\n\n.question-box {\n position: relative;\n width: 100%;\n display: flex;\n transition: transform .35s;\n padding-bottom: 70px;\n padding-top: 46px;\n}\n\n.question-item {\n width: 100%;\n}\n\n.question-enter, .question-leave-to {\n opacity: 0;\n}\n\n.ac-buttons {\n position: fixed;\n bottom: 0;\n left: 0;\n width: 100%;\n padding: 20px;\n box-sizing: border-box;\n background: #fff;\n box-shadow: 0 -1px 5px 0 rgba(0, 0, 0, .1);\n}\n\n.ac-qn {\n z-index: 100;\n background: #fff;\n box-shadow: 0 1px 5px 0 rgba(0, 0, 0, .1);\n}\n\n.ac-qn-backdrop{\n position: fixed;\n top: 46px;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, .5);\n z-index: 1;\n}\n\n</style>\n\n\n// WEBPACK FOOTER //\n// src/components/exam/DoExamPage.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"finger\",rawName:\"v-finger:swipe\",value:(_vm.swipe),expression:\"swipe\",arg:\"swipe\"}],staticClass:\"exam-root\"},[_c('van-nav-bar',{attrs:{\"title\":_vm.examInfo.title,\"fixed\":\"\",\"left-arrow\":\"\",\"right-text\":\"目录\"},on:{\"click-left\":function($event){return _vm.$router.back()},\"click-right\":function($event){_vm.showAcButtons = !_vm.showAcButtons}}}),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showAcButtons),expression:\"showAcButtons\"}],staticClass:\"ac-qn-backdrop\",on:{\"click\":function($event){$event.stopPropagation();_vm.showAcButtons = false}}},[_c('div',{staticClass:\"exam-p-around-small ac-qn\",on:{\"click\":function($event){$event.stopPropagation();}}},[_c('van-row',_vm._l((_vm.questionsInfo),function(question,i){return _c('van-col',{key:i,attrs:{\"span\":\"4\"}},[_c('div',{staticClass:\"exam-circle exam-done\",class:{'exam-right':question.answer.isPass&&(_vm.isShowResult||(question.answer.isChecked&&_vm.isPractice)),'exam-error':question.answer.isMistake&&(_vm.isShowResult||(question.answer.isChecked&&_vm.isPractice)),'exam-current': _vm.questionNum === i},on:{\"click\":function($event){return _vm.turnTo(i)}}},[_vm._v(\"\\n \"+_vm._s(i + 1)+\"\\n \")])])}),1)],1)]),_vm._v(\" \"),_c('div',{staticClass:\"question-box\",style:((\"width: \" + (_vm.totalNum*100) + \"%;transform:translate(\" + (-_vm.questionNum*100/_vm.totalNum) + \"%,0)\")),on:{\"dblclick\":function($event){$event.stopPropagation();_vm.showAcButtons = true}}},_vm._l((_vm.questionsInfo),function(question,i){return _c('div',{key:question.hashCode,staticClass:\"question-item\"},[_c('van-panel',{attrs:{\"title\":_vm.getQuestionTitle(question),\"desc\":_vm.getQuestionDesc(question)}},[(question.isMulti)?_c('div',[_c('van-checkbox-group',{on:{\"click\":function($event){$event.stopPropagation();},\"dblclick\":function($event){$event.stopPropagation();}},model:{value:(question.answer.multi.apis),callback:function ($$v) {_vm.$set(question.answer.multi, \"apis\", $$v)},expression:\"question.answer.multi.apis\"}},[_c('van-cell-group',_vm._l((question.answerOptions),function(option,oi){return _c('van-cell',{key:oi,attrs:{\"clickable\":\"\"},on:{\"click\":function($event){return _vm.toggleAnswer(i, option.api)}}},[_c('template',{slot:\"title\"},[_c('span',{class:{'right-answer':option.isRight&&_vm.isShowResult||(option.isRight&&question.answer.isChecked&&_vm.isPractice),'error-answer':!option.isRight&&_vm.isShowResult||(!option.isRight&&question.answer.isAnswered&&_vm.isPractice),'custom-title':true}},[_vm._v(_vm._s(_vm.letterIndex[oi] + '. ' + option.describe))])]),_vm._v(\" \"),_c('van-checkbox',{attrs:{\"slot\":\"right-icon\",\"name\":option.api,\"checked-color\":_vm.getOptionColor(question,option)},slot:\"right-icon\"})],2)}),1)],1)],1):_vm._e(),_vm._v(\" \"),(!question.isMulti)?_c('div',[_c('van-radio-group',{model:{value:(question.answer.single.api),callback:function ($$v) {_vm.$set(question.answer.single, \"api\", $$v)},expression:\"question.answer.single.api\"}},[_c('van-cell-group',_vm._l((question.answerOptions),function(option,oi){return _c('van-cell',{key:oi,attrs:{\"clickable\":\"\"},on:{\"click\":function($event){return _vm.setAnswer(i, [option.api])}}},[_c('template',{slot:\"title\"},[_c('span',{class:{'right-answer':option.isRight&&_vm.isShowResult||(option.isRight&&question.answer.isChecked&&_vm.isPractice),'error-answer':!option.isRight&&_vm.isShowResult||(!option.isRight&&question.answer.isAnswered&&_vm.isPractice),'custom-title':true}},[_vm._v(_vm._s(_vm.letterIndex[oi] + '. ' + option.describe))])]),_vm._v(\" \"),_c('van-radio',{attrs:{\"slot\":\"right-icon\",\"name\":option.api,\"checked-color\":_vm.getOptionColor(question,option)},slot:\"right-icon\"})],2)}),1)],1)],1):_vm._e()])],1)}),0),_vm._v(\" \"),(_vm.questionsInfo[_vm.questionNum])?_c('div',{staticClass:\"text-align-center ac-buttons\"},[(_vm.questionNum>0)?_c('van-button',{attrs:{\"size\":\"small\"},on:{\"click\":function($event){return _vm.turnTo(_vm.questionNum-1)}}},[_vm._v(\"上一题\")]):_vm._e(),_vm._v(\" \"),(_vm.questionNum<_vm.totalNum-1)?_c('van-button',{attrs:{\"size\":\"small\",\"type\":\"info\"},on:{\"click\":function($event){return _vm.turnTo(_vm.questionNum+1)}}},[_vm._v(\"下一题\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.isPractice&&!_vm.questionsInfo[_vm.questionNum].answer.isChecked)?_c('van-button',{attrs:{\"size\":\"small\",\"type\":\"warning\"},on:{\"click\":function($event){return _vm.checkResult(_vm.questionNum)}}},[_vm._v(\"检查该题答案\\n \")]):_vm._e(),_vm._v(\" \"),(!_vm.hasSubmit)?_c('van-button',{attrs:{\"size\":\"small\",\"type\":\"primary\"},on:{\"click\":_vm.confirmSubmit}},[_vm._v(\"提交\\n \")]):_vm._e()],1):_vm._e()],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-4b469db2\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/exam/DoExamPage.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-4b469db2\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./DoExamPage.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./DoExamPage.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./DoExamPage.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4b469db2\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./DoExamPage.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-4b469db2\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/exam/DoExamPage.vue\n// module id = null\n// module chunks = ","import Vue from 'vue'\nimport Router from 'vue-router'\nimport HomePage from \"@/components/HomePage\";\nimport DoExamPage from \"@/components/exam/DoExamPage\";\n\nVue.use(Router);\n\nexport default new Router({\n routes: [\n {\n path: '/',\n name: 'HomePage',\n component: HomePage\n },\n {\n path: '/exam',\n name: 'DoExamPage',\n component: DoExamPage,\n props: true\n }\n ]\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/router/index.js","import Vue from 'vue'\nimport axios from 'axios'\nimport jsonp from 'jsonp'\nimport Utils from '../utils'\nimport AlloyFinger from 'alloyfinger'\nimport AlloyFingerPlugin from 'alloyfinger/vue/alloy_finger_vue'\n\nVue.use(AlloyFingerPlugin,{\n AlloyFinger\n});\n\nVue.prototype.$http = axios;\nVue.prototype.$http.jsonp = jsonp;\n\nif (!Object.fromEntries) {\n Object.fromEntries = Utils.fromEntries;\n}\n\nif (!Array.prototype.flat) {\n try {\n Object.defineProperty(Array.prototype, 'flat', {\n value: function (deep) {\n return Utils.flat(this, deep);\n },\n enumerable: false\n })\n } catch (e) {\n Array.prototype.flat = function (deep) {\n return Utils.flat(this, deep);\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/index.js","// The Vue build version to load with the `import` command\n// (runtime-only or standalone) has been set in webpack.base.conf with an alias.\nimport Vue from 'vue'\nimport App from './App'\nimport router from './router'\nimport './assets/common.css';\nimport './plugins';\n\nVue.config.productionTip = false;\n\n/* eslint-disable no-new */\nnew Vue({\n el: '#app',\n router,\n components: { App },\n template: '<App/>'\n});\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js"],"sourceRoot":""}
@@ -1,321 +0,0 @@
1
- {
2
- "title": "Salesforce-Admin(302)-[Set-10]",
3
- "category": "Salesforce Admin",
4
- "questions": [
5
- {
6
- "describe": "Which Salesforce feature should be used to disable access to all objects in a custom application?",
7
- "answerOptions": [
8
- {
9
- "isRight": true,
10
- "describe": "Profiles"
11
- },
12
- {
13
- "isRight": false,
14
- "describe": "Sharing"
15
- },
16
- {
17
- "isRight": false,
18
- "describe": "Web tabs"
19
- },
20
- {
21
- "isRight": false,
22
- "describe": "Page layouts"
23
- }
24
- ]
25
- },
26
- {
27
- "describe": "Which statement about multi‐day and all‐day events is TRUE",
28
- "answerOptions": [
29
- {
30
- "isRight": false,
31
- "describe": "All‐Day Events have a start and end time"
32
- },
33
- {
34
- "isRight": false,
35
- "describe": "Multi‐Day Event cannot be set as All‐Day Event"
36
- },
37
- {
38
- "isRight": false,
39
- "describe": "All‐Day Events have a check box for flagging as Multi‐Day Events"
40
- },
41
- {
42
- "isRight": true,
43
- "describe": "Multi‐Day Events have a start and end time"
44
- }
45
- ]
46
- },
47
- {
48
- "describe": "If the organization‐wide default on accounts is set to public read/write, what can be used to limit access to these records?",
49
- "answerOptions": [
50
- {
51
- "isRight": true,
52
- "describe": "Profile"
53
- },
54
- {
55
- "isRight": false,
56
- "describe": "List views"
57
- },
58
- {
59
- "isRight": false,
60
- "describe": "Public groups"
61
- },
62
- {
63
- "isRight": false,
64
- "describe": "Role hierarchy"
65
- }
66
- ]
67
- },
68
- {
69
- "describe": "Currencies are defined at which level?\n*Choose 3 answers*",
70
- "answerOptions": [
71
- {
72
- "isRight": false,
73
- "describe": "Record type"
74
- },
75
- {
76
- "isRight": true,
77
- "describe": "Organization profile"
78
- },
79
- {
80
- "isRight": true,
81
- "describe": "Opportunity (record)"
82
- },
83
- {
84
- "isRight": true,
85
- "describe": "User record (personal setup)"
86
- }
87
- ]
88
- },
89
- {
90
- "describe": "When a user with pending approval requests leaves an organization, what can administrator do with the pending requests?\n*Choose 2 answers*",
91
- "answerOptions": [
92
- {
93
- "isRight": false,
94
- "describe": "Mass approve pending requests"
95
- },
96
- {
97
- "isRight": true,
98
- "describe": "Mass remove pending requests"
99
- },
100
- {
101
- "isRight": true,
102
- "describe": "Mass transfer pending requests"
103
- },
104
- {
105
- "isRight": false,
106
- "describe": "Change the approval process routing steps"
107
- }
108
- ]
109
- },
110
- {
111
- "describe": "If a record has been manually shared with read/write access, the user will be able to do which of the following?",
112
- "answerOptions": [
113
- {
114
- "isRight": true,
115
- "describe": "Edit the record"
116
- },
117
- {
118
- "isRight": false,
119
- "describe": "Delete the record"
120
- },
121
- {
122
- "isRight": false,
123
- "describe": "Change the owner of the record"
124
- },
125
- {
126
- "isRight": false,
127
- "describe": "Share the record to another user with full access"
128
- }
129
- ]
130
- },
131
- {
132
- "describe": "Which item cannot be stored in a folder?",
133
- "answerOptions": [
134
- {
135
- "isRight": true,
136
- "describe": "Emails"
137
- },
138
- {
139
- "isRight": false,
140
- "describe": "Reports"
141
- },
142
- {
143
- "isRight": false,
144
- "describe": "Documents"
145
- },
146
- {
147
- "isRight": false,
148
- "describe": "Dashboards"
149
- }
150
- ]
151
- },
152
- {
153
- "describe": "If a record that matches the criteria of a workflow rule is created on July 1 and the close date is July 30, the time‐dependent action is scheduled for July 23. However, what happens if the opportunity is edited before July 23 and no longer meets the criteria?",
154
- "answerOptions": [
155
- {
156
- "isRight": false,
157
- "describe": "The time‐dependent action is put on hold"
158
- },
159
- {
160
- "isRight": false,
161
- "describe": "The time‐dependent action is sent on July 23"
162
- },
163
- {
164
- "isRight": false,
165
- "describe": "The time‐dependent action is sent on July 30"
166
- },
167
- {
168
- "isRight": true,
169
- "describe": "The time‐dependent action is automatically removed from the queue"
170
- }
171
- ]
172
- },
173
- {
174
- "describe": "Which UI component allows easy access to recent tags?",
175
- "answerOptions": [
176
- {
177
- "isRight": false,
178
- "describe": "Tag Browser"
179
- },
180
- {
181
- "isRight": false,
182
- "describe": "Edit Tags link"
183
- },
184
- {
185
- "isRight": false,
186
- "describe": "Tag links in the header"
187
- },
188
- {
189
- "isRight": true,
190
- "describe": "Sidebar Tag widget"
191
- }
192
- ]
193
- },
194
- {
195
- "describe": "Which statement is TRUE regarding record types?\n*Choose 2 answers*",
196
- "answerOptions": [
197
- {
198
- "isRight": true,
199
- "describe": "Record types can be hidden from users"
200
- },
201
- {
202
- "isRight": false,
203
- "describe": "Record types are controlled by the page layout"
204
- },
205
- {
206
- "isRight": false,
207
- "describe": "Record types can only be assigned to one profile at a time"
208
- },
209
- {
210
- "isRight": true,
211
- "describe": "Record types can be used to define different picklist values for different types of users"
212
- }
213
- ]
214
- },
215
- {
216
- "describe": "Charting is a report option that can be used on",
217
- "answerOptions": [
218
- {
219
- "isRight": false,
220
- "describe": "All reports"
221
- },
222
- {
223
- "isRight": false,
224
- "describe": "Dashboards and summary reports only"
225
- },
226
- {
227
- "isRight": false,
228
- "describe": "Matrix and custom report types only"
229
- },
230
- {
231
- "isRight": true,
232
- "describe": "Dashboards, summary and matrix reports"
233
- }
234
- ]
235
- },
236
- {
237
- "describe": "Once category browsing has been enabled for an organization which permission is needed to add a category to a solution record?",
238
- "answerOptions": [
239
- {
240
- "isRight": true,
241
- "describe": "Edit on solutions"
242
- },
243
- {
244
- "isRight": false,
245
- "describe": "Read on solution"
246
- },
247
- {
248
- "isRight": false,
249
- "describe": "Delete on solutions"
250
- },
251
- {
252
- "isRight": false,
253
- "describe": "Create on solution"
254
- }
255
- ]
256
- },
257
- {
258
- "describe": "Which function is available with standard fields?\n*Choose 2 answers*",
259
- "answerOptions": [
260
- {
261
- "isRight": true,
262
- "describe": "Adding context‐sensitive help"
263
- },
264
- {
265
- "isRight": false,
266
- "describe": "Deleting fields"
267
- },
268
- {
269
- "isRight": true,
270
- "describe": "Adding or removing non‐required fields from a page layout"
271
- },
272
- {
273
- "isRight": false,
274
- "describe": "Changing field labels"
275
- }
276
- ]
277
- },
278
- {
279
- "describe": "Lead assignment rules are used to\n*Choose 2 answers*",
280
- "answerOptions": [
281
- {
282
- "isRight": true,
283
- "describe": "Assign leads to lead queues"
284
- },
285
- {
286
- "isRight": true,
287
- "describe": "Assign leads to individuals that are users In Salesforce"
288
- },
289
- {
290
- "isRight": false,
291
- "describe": "Convert new leads to accounts and give assignments to appropriate users"
292
- },
293
- {
294
- "isRight": false,
295
- "describe": "Re‐assign leads if they have been neglected and reassign to individuals in Salesforce"
296
- }
297
- ]
298
- },
299
- {
300
- "describe": "Email templates (text, HTML with letterhead, and Custom HTML) may include which of the following?\n* Choose 3 answers*",
301
- "answerOptions": [
302
- {
303
- "isRight": true,
304
- "describe": "Text"
305
- },
306
- {
307
- "isRight": true,
308
- "describe": "Merge fields"
309
- },
310
- {
311
- "isRight": true,
312
- "describe": "Attached files"
313
- },
314
- {
315
- "isRight": false,
316
- "describe": "Macros"
317
- }
318
- ]
319
- }
320
- ]
321
- }