diff --git a/.gitignore b/.gitignore index beb5c81..2dabbd0 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,4 @@ testem.log .DS_Store Thumbs.db /unpackage +/unpackage/dist \ No newline at end of file diff --git a/components/tabbar.vue b/components/tabbar.vue index 46a67eb..fd52c81 100644 --- a/components/tabbar.vue +++ b/components/tabbar.vue @@ -23,7 +23,7 @@ isSupervisor: false, shenfen: '', color: "#333333", - selectedColor: "#333333", + selectedColor: "#317aff", list: [] } }, @@ -86,6 +86,7 @@ bottom: 0; left: 0; right: 0; + z-index: 999; height: 100rpx; background: white; display: flex; diff --git a/pages.json b/pages.json index 4a66b47..d3c48a0 100644 --- a/pages.json +++ b/pages.json @@ -18,7 +18,7 @@ "navigationBarTextStyle": "white" } }, - + { "path": "pages/changePassword/changePassword", "style": { @@ -117,33 +117,21 @@ "backgroundColor": "#F8F8F8" }, "tabBar": { - "custom": true, + "custom": true, "color": "#353535", "selectedColor": "#5187FF", "list": [{ "pagePath": "pages/index/index" - // "iconPath": "static/tab/43251.png", - // "selectedIconPath": "static/tab/4325.png", - // "text": "工作任务" }, { "pagePath": "pages/task/taskapply" - // "iconPath": "static/tab/43281.png", - // "selectedIconPath": "static/tab/4328.png", - // "text": "申请" }, { "pagePath": "pages/task/taskreceive" - // "iconPath": "static/tab/43281.png", - // "selectedIconPath": "static/tab/4328.png", - // "text": "领取" }, { "pagePath": "pages/user/user" - // "iconPath": "static/tab/user.png", - // "selectedIconPath": "static/tab/user1.png", - // "text": "我的" } ] } -} \ No newline at end of file +} diff --git a/pages/login/login.vue b/pages/login/login.vue index f88e8dd..a679d7d 100644 --- a/pages/login/login.vue +++ b/pages/login/login.vue @@ -14,7 +14,8 @@ 欢迎登录防消一体化综合治理平台 - + + 账号 @@ -22,7 +23,8 @@ - + + 密码 @@ -30,17 +32,21 @@ - - - + + --> - + - + + + + + @@ -81,7 +87,7 @@ this.$auth.login(this.form) return }, - + } } @@ -89,70 +95,68 @@ diff --git a/pages/rescue/index.vue b/pages/rescue/index.vue index e6c69e3..b4599d4 100644 --- a/pages/rescue/index.vue +++ b/pages/rescue/index.vue @@ -6,17 +6,20 @@ - + + + + - {{dates.year}} + {{dates.year}} - + - | - - {{today.month}}.{{dates.day}} + + + {{today.month}}.{{dates.day}} + + @@ -63,6 +67,7 @@ + @@ -382,6 +387,11 @@ \n","import mod from \"-!D:\\\\HBuilderX.3.4.7.20220422\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--6-oneOf-1-0!D:\\\\HBuilderX.3.4.7.20220422\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--6-oneOf-1-1!D:\\\\HBuilderX.3.4.7.20220422\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX.3.4.7.20220422\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--6-oneOf-1-2!D:\\\\HBuilderX.3.4.7.20220422\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--6-oneOf-1-3!D:\\\\HBuilderX.3.4.7.20220422\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX.3.4.7.20220422\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!D:\\\\HBuilderX.3.4.7.20220422\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--6-oneOf-1-0!D:\\\\HBuilderX.3.4.7.20220422\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--6-oneOf-1-1!D:\\\\HBuilderX.3.4.7.20220422\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX.3.4.7.20220422\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--6-oneOf-1-2!D:\\\\HBuilderX.3.4.7.20220422\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--6-oneOf-1-3!D:\\\\HBuilderX.3.4.7.20220422\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX.3.4.7.20220422\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./App.vue?vue&type=style&index=0&lang=css&\""],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["uni-app:///main.js",null,"webpack:///D:/项目/济南项目微信小程序/Jinan_app/App.vue?faa9","uni-app:///App.vue","webpack:///D:/项目/济南项目微信小程序/Jinan_app/App.vue?1cbd","webpack:///D:/项目/济南项目微信小程序/Jinan_app/App.vue?2799"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","uni","$http","baseUrl","Vue","config","productionTip","App","mpType","prototype","$auth","auth","$alert","alert","$request","request","$config","app","store","addInterceptor","invoke","args","data","method","getStorageSync","getToken","newData","qs","stringify","arrayFormat","console","log","url","success","fail","err","complete","res","$mount"],"mappings":";;;;;;;;;sDAAA,wCAA8E;AAC9E;AACA;AACA;AACA;AACA;AACA;;;;AAIA;;;;;AAKA,qE,wnCAfmBA,EAAE,CAACC,iCAAH,GAAuCC,mBAAvC;AAgBnBC,GAAG,CAACC,KAAJ,GAAYA,yBAAZ;AACAA,0BAAMC,OAAN,GAAgB,2BAAhB;AACAC,aAAIC,MAAJ,CAAWC,aAAX,GAA2B,KAA3B;AACAC,aAAIC,MAAJ,GAAa,KAAb;AACAJ,aAAIK,SAAJ,CAAcC,KAAd,GAAsBC,aAAtB;AACAP,aAAIK,SAAJ,CAAcG,MAAd,GAAuBC,cAAvB;AACAT,aAAIK,SAAJ,CAAcK,QAAd,GAAyBC,gBAAzB;AACAX,aAAIK,SAAJ,CAAcO,OAAd,GAAwBX,eAAxB;AACA,IAAMY,GAAG,GAAG,IAAIb,YAAJ;AACLG,YADK;AAEXW,OAAK,EAALA,cAFW,IAAZ;;;AAKAjB,GAAG,CAACkB,cAAJ,CAAmB,SAAnB,EAA8B;;AAE5BC,QAF4B,kBAErBC,IAFqB,EAEf;AACZ;AADY;;AAIXC,QAJW;;AAMRD,QANQ,CAIXC,IAJW,CAKXC,MALW,GAMRF,IANQ,CAKXE,MALW;AAOZ,QAAIA,MAAM,KAAK,KAAf,EAAsB;AACrB,UAAGtB,GAAG,CAACuB,cAAJ,CAAmB,OAAnB,CAAH,EAA+B;AAC9BT,yBAAQU,QAAR;AACA;AACD;AACA,UAAMC,OAAO,GAAGC,YAAGC,SAAH,CAAaN,IAAb,EAAmB;AAClCO,mBAAW,EAAE,QADqB,EAAnB,CAAhB;;AAGAC,aAAO,CAACC,GAAR,CAAYL,OAAZ,EAAoB,IAApB;AACA,aAAOL,IAAI,CAACC,IAAZ;AACAD,UAAI,CAACW,GAAL,aAAcX,IAAI,CAACW,GAAnB,cAA0BN,OAA1B;AACA;AACD,GArB2B;AAsB5BO,SAtB4B,mBAsBpBZ,IAtBoB,EAsBd,CAAE,CAtBY;AAuB5Ba,MAvB4B,gBAuBvBC,GAvBuB,EAuBlB,CAAE,CAvBgB;AAwB5BC,UAxB4B,oBAwBnBC,GAxBmB,EAwBd,CAAE,CAxBY,EAA9B;;;AA2BA,UAAApB,GAAG,EAACqB,MAAJ,G;;;;;;;;;;;;;;;;;ACxDA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACuD;AACL;AACa;;;AAG/D;AACuM;AACvM,gBAAgB,6MAAU;AAC1B,EAAE,yEAAM;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACe,gF;;;;;;;;;;;ACvBf;AAAA;AAAA;AAAA;AAAuwB,CAAgB,6wBAAG,EAAC,C;;;;;;;;;;;;ACC3xB;AACA;;AAEA;AACA,iDAHA,CAGA;AACA,GALA;AAMA;AACA;AACA,GARA;AASA;AACA;AACA,GAXA,E;;;;;;;;;;;ACDA;AAAA;AAAA;AAAA;AAA6lC,CAAgB,kkCAAG,EAAC,C;;;;;;;;;;ACAjnC;AACA,OAAO,KAAU,EAAE,kBAKd","file":"common/main.js","sourcesContent":["import 'uni-pages';wx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;import App from './App'\r\nimport auth from './libs/auth.js'\r\nimport alert from './libs/alert.js'\r\nimport request from './libs/request.js'\r\nimport config from './config.js'\r\nimport store from './store.js'\r\nimport qs from 'qs'\r\n\r\n\r\n\r\nimport {\r\n\t$http\r\n} from '@escook/request-miniprogram'\r\n\r\n\r\nimport Vue from 'vue'\r\nuni.$http = $http\r\n$http.baseUrl = 'https://121.36.37.70:8204'\r\nVue.config.productionTip = false\r\nApp.mpType = 'app'\r\nVue.prototype.$auth = auth\r\nVue.prototype.$alert = alert\r\nVue.prototype.$request = request\r\nVue.prototype.$config = config\r\nconst app = new Vue({\r\n ...App,\r\n\tstore\r\n})\r\n\r\nuni.addInterceptor('request', {\r\n\t\t\r\n\t\tinvoke(args) {\r\n\t\t\t// request 触发前拼接 url \r\n\t\t\t\r\n\t\t\tconst {\r\n\t\t\t\tdata,\r\n\t\t\t\tmethod,\r\n\t\t\t} = args;\r\n\t\t\tif (method === \"GET\") {\r\n\t\t\t\tif(uni.getStorageSync(\"token\")){\r\n\t\t\t\t\trequest.getToken()\r\n\t\t\t\t}\r\n\t\t\t\t// 如果是get请求,且params是数组类型如arr=[1,2],则转换成arr=1&arr=2\r\n\t\t\t\tconst newData = qs.stringify(data, {\r\n\t\t\t\t\tarrayFormat: \"repeat\"\r\n\t\t\t\t})\r\n\t\t\t\tconsole.log(newData,7777);\r\n\t\t\t\tdelete args.data;\r\n\t\t\t\targs.url = `${args.url}?${newData}`;\r\n\t\t\t}\r\n\t\t},\r\n\t\tsuccess(args) {},\r\n\t\tfail(err) {},\r\n\t\tcomplete(res) {}\r\n\t})\r\n\r\napp.$mount()","var render, staticRenderFns, recyclableRender, components\nvar renderjs\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\runtime\\\\componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"App.vue\"\nexport default component.exports","import mod from \"-!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./App.vue?vue&type=script&lang=js&\"","\r\n\r\n\n","import mod from \"-!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--6-oneOf-1-0!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--6-oneOf-1-1!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--6-oneOf-1-2!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--6-oneOf-1-3!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--6-oneOf-1-0!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--6-oneOf-1-1!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--6-oneOf-1-2!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--6-oneOf-1-3!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!C:\\\\Users\\\\admin\\\\Desktop\\\\HBuilderX\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./App.vue?vue&type=style&index=0&lang=css&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1663124198073\n var cssReload = require(\"C:/Users/admin/Desktop/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n "],"sourceRoot":""} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map index e1edbdd..d8e55fc 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map @@ -1 +1 @@ -{"version":3,"sources":["uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/webpack/bootstrap"],"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","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","global","oldJsonpFunction","slice"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAGnBC,EAAqB,CACxB,iBAAkB,GAMfjB,EAAkB,CACrB,iBAAkB,GAGfK,EAAkB,GAGtB,SAASa,EAAe7B,GACvB,OAAOyB,EAAoBK,EAAI,GAAK9B,EAAU,MAI/C,SAASyB,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAUgC,QAGnC,IAAIC,EAASL,EAAiB5B,GAAY,CACzCK,EAAGL,EACHkC,GAAG,EACHF,QAAS,IAUV,OANAlB,EAAQd,GAAUW,KAAKsB,EAAOD,QAASC,EAAQA,EAAOD,QAASN,GAG/DO,EAAOC,GAAI,EAGJD,EAAOD,QAKfN,EAAoBS,EAAI,SAAuBlC,GAC9C,IAAImC,EAAW,GAIXC,EAAY,CAAC,4EAA4E,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,gEAAgE,EAAE,yEAAyE,EAAE,gEAAgE,EAAE,gEAAgE,EAAE,gEAAgE,EAAE,gEAAgE,EAAE,gEAAgE,EAAE,uDAAuD,GAC9vBR,EAAmB5B,GAAUmC,EAASvB,KAAKgB,EAAmB5B,IACzB,IAAhC4B,EAAmB5B,IAAkBoC,EAAUpC,IACtDmC,EAASvB,KAAKgB,EAAmB5B,GAAW,IAAIqC,SAAQ,SAASC,EAASC,GAIzE,IAHA,IAAIC,GAAa,CAAC,4EAA4E,4EAA4E,oBAAoB,oBAAoB,sBAAsB,sBAAsB,0BAA0B,0BAA0B,0BAA0B,0BAA0B,qBAAqB,qBAAqB,qBAAqB,qBAAqB,gEAAgE,gEAAgE,oEAAoE,oEAAoE,yEAAyE,yEAAyE,gEAAgE,gEAAgE,gEAAgE,gEAAgE,gEAAgE,gEAAgE,gEAAgE,gEAAgE,gEAAgE,gEAAgE,uDAAuD,wDAAwDxC,IAAUA,GAAW,QACplDyC,EAAWhB,EAAoBK,EAAIU,EACnCE,EAAmBC,SAASC,qBAAqB,QAC7CxC,EAAI,EAAGA,EAAIsC,EAAiBpC,OAAQF,IAAK,CAChD,IAAIyC,EAAMH,EAAiBtC,GACvB0C,EAAWD,EAAIE,aAAa,cAAgBF,EAAIE,aAAa,QACjE,GAAe,eAAZF,EAAIG,MAAyBF,IAAaN,GAAQM,IAAaL,GAAW,OAAOH,IAErF,IAAIW,EAAoBN,SAASC,qBAAqB,SACtD,IAAQxC,EAAI,EAAGA,EAAI6C,EAAkB3C,OAAQF,IAAK,CAC7CyC,EAAMI,EAAkB7C,GACxB0C,EAAWD,EAAIE,aAAa,aAChC,GAAGD,IAAaN,GAAQM,IAAaL,EAAU,OAAOH,IAEvD,IAAIY,EAAUP,SAASQ,cAAc,QACrCD,EAAQF,IAAM,aACdE,EAAQE,KAAO,WACfF,EAAQG,OAASf,EACjBY,EAAQI,QAAU,SAASC,GAC1B,IAAIC,EAAUD,GAASA,EAAME,QAAUF,EAAME,OAAOC,KAAOjB,EACvDkB,EAAM,IAAIC,MAAM,qBAAuB5D,EAAU,cAAgBwD,EAAU,KAC/EG,EAAIE,KAAO,wBACXF,EAAIH,QAAUA,SACP5B,EAAmB5B,GAC1BkD,EAAQY,WAAWC,YAAYb,GAC/BX,EAAOoB,IAERT,EAAQV,KAAOC,EAEf,IAAIuB,EAAOrB,SAASC,qBAAqB,QAAQ,GACjDoB,EAAKC,YAAYf,MACfgB,MAAK,WACPtC,EAAmB5B,GAAW,MAMhC,IAAImE,EAAqBxD,EAAgBX,GACzC,GAA0B,IAAvBmE,EAGF,GAAGA,EACFhC,EAASvB,KAAKuD,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAI/B,SAAQ,SAASC,EAASC,GAC3C4B,EAAqBxD,EAAgBX,GAAW,CAACsC,EAASC,MAE3DJ,EAASvB,KAAKuD,EAAmB,GAAKC,GAGtC,IACIC,EADAC,EAAS3B,SAASQ,cAAc,UAGpCmB,EAAOC,QAAU,QACjBD,EAAOE,QAAU,IACb/C,EAAoBgD,IACvBH,EAAOI,aAAa,QAASjD,EAAoBgD,IAElDH,EAAOZ,IAAM7B,EAAe7B,GAG5B,IAAI2E,EAAQ,IAAIf,MAChBS,EAAmB,SAAUd,GAE5Be,EAAOhB,QAAUgB,EAAOjB,OAAS,KACjCuB,aAAaJ,GACb,IAAIK,EAAQlE,EAAgBX,GAC5B,GAAa,IAAV6E,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYvB,IAAyB,SAAfA,EAAMH,KAAkB,UAAYG,EAAMH,MAChE2B,EAAUxB,GAASA,EAAME,QAAUF,EAAME,OAAOC,IACpDiB,EAAMK,QAAU,iBAAmBhF,EAAU,cAAgB8E,EAAY,KAAOC,EAAU,IAC1FJ,EAAMM,KAAO,iBACbN,EAAMvB,KAAO0B,EACbH,EAAMnB,QAAUuB,EAChBF,EAAM,GAAGF,GAEVhE,EAAgBX,QAAWkF,IAG7B,IAAIV,EAAUW,YAAW,WACxBd,EAAiB,CAAEjB,KAAM,UAAWK,OAAQa,MAC1C,MACHA,EAAOhB,QAAUgB,EAAOjB,OAASgB,EACjC1B,SAASqB,KAAKC,YAAYK,GAG5B,OAAOjC,QAAQ+C,IAAIjD,IAIpBV,EAAoB4D,EAAIxE,EAGxBY,EAAoB6D,EAAI3D,EAGxBF,EAAoB8D,EAAI,SAASxD,EAASkD,EAAMO,GAC3C/D,EAAoBgE,EAAE1D,EAASkD,IAClC1E,OAAOmF,eAAe3D,EAASkD,EAAM,CAAEU,YAAY,EAAMC,IAAKJ,KAKhE/D,EAAoBoE,EAAI,SAAS9D,GACX,qBAAX+D,QAA0BA,OAAOC,aAC1CxF,OAAOmF,eAAe3D,EAAS+D,OAAOC,YAAa,CAAEC,MAAO,WAE7DzF,OAAOmF,eAAe3D,EAAS,aAAc,CAAEiE,OAAO,KAQvDvE,EAAoBwE,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQvE,EAAoBuE,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK7F,OAAO8F,OAAO,MAGvB,GAFA5E,EAAoBoE,EAAEO,GACtB7F,OAAOmF,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOvE,EAAoB8D,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR3E,EAAoB+E,EAAI,SAASxE,GAChC,IAAIwD,EAASxD,GAAUA,EAAOmE,WAC7B,WAAwB,OAAOnE,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAP,EAAoB8D,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR/D,EAAoBgE,EAAI,SAASgB,EAAQC,GAAY,OAAOnG,OAAOC,UAAUC,eAAeC,KAAK+F,EAAQC,IAGzGjF,EAAoBK,EAAI,IAGxBL,EAAoBkF,GAAK,SAAShD,GAA2B,MAApBiD,QAAQjC,MAAMhB,GAAYA,GAEnE,IAAIkD,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAWjG,KAAK2F,KAAKM,GAC5CA,EAAWjG,KAAOf,EAClBgH,EAAaA,EAAWG,QACxB,IAAI,IAAI5G,EAAI,EAAGA,EAAIyG,EAAWvG,OAAQF,IAAKP,EAAqBgH,EAAWzG,IAC3E,IAAIU,EAAsBiG,EAI1B7F,K","file":"common/runtime.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 CSS chunks\n \tvar installedCssChunks = {\n \t\t\"common/runtime\": 0\n \t}\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\"common/runtime\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + chunkId + \".js\"\n \t}\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts\":1,\"components/tabbar\":1,\"components/task/add\":1,\"components/task/details\":1,\"pages/dadui/index/index\":1,\"pages/rescue/index\":1,\"pages/zhidui/index\":1,\"uni_modules/qiun-data-charts/components/qiun-error/qiun-error\":1,\"uni_modules/superwei-combox/components/superwei-combox/superwei-combox\":1,\"uni_modules/qiun-data-charts/components/qiun-loading/loading1\":1,\"uni_modules/qiun-data-charts/components/qiun-loading/loading2\":1,\"uni_modules/qiun-data-charts/components/qiun-loading/loading3\":1,\"uni_modules/qiun-data-charts/components/qiun-loading/loading4\":1,\"uni_modules/qiun-data-charts/components/qiun-loading/loading5\":1,\"uni_modules/uni-icons/components/uni-icons/uni-icons\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"\" + ({\"uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts\":\"uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts\",\"components/tabbar\":\"components/tabbar\",\"components/task/add\":\"components/task/add\",\"components/task/details\":\"components/task/details\",\"pages/dadui/index/index\":\"pages/dadui/index/index\",\"pages/rescue/index\":\"pages/rescue/index\",\"pages/zhidui/index\":\"pages/zhidui/index\",\"uni_modules/qiun-data-charts/components/qiun-error/qiun-error\":\"uni_modules/qiun-data-charts/components/qiun-error/qiun-error\",\"uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading\":\"uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading\",\"uni_modules/superwei-combox/components/superwei-combox/superwei-combox\":\"uni_modules/superwei-combox/components/superwei-combox/superwei-combox\",\"uni_modules/qiun-data-charts/components/qiun-loading/loading1\":\"uni_modules/qiun-data-charts/components/qiun-loading/loading1\",\"uni_modules/qiun-data-charts/components/qiun-loading/loading2\":\"uni_modules/qiun-data-charts/components/qiun-loading/loading2\",\"uni_modules/qiun-data-charts/components/qiun-loading/loading3\":\"uni_modules/qiun-data-charts/components/qiun-loading/loading3\",\"uni_modules/qiun-data-charts/components/qiun-loading/loading4\":\"uni_modules/qiun-data-charts/components/qiun-loading/loading4\",\"uni_modules/qiun-data-charts/components/qiun-loading/loading5\":\"uni_modules/qiun-data-charts/components/qiun-loading/loading5\",\"uni_modules/uni-icons/components/uni-icons/uni-icons\":\"uni_modules/uni-icons/components/uni-icons/uni-icons\"}[chunkId]||chunkId) + \".wxss\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\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 \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = global[\"webpackJsonp\"] = global[\"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// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["uni-app:///C:/Users/admin/Desktop/HBuilderX/HBuilderX/plugins/uniapp-cli/webpack/bootstrap"],"names":[],"mappings":";QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;;;QAGA;QACA,oBAAoB;QACpB;QACA;QACA;QACA,uBAAuB,gjDAAgjD;QACvkD;QACA;QACA,mBAAmB,6BAA6B;QAChD;QACA;QACA;QACA;QACA;QACA,mBAAmB,8BAA8B;QACjD;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA,KAAK;QACL;QACA,KAAK;QACL;;QAEA;;QAEA;QACA,iCAAiC;;QAEjC;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,MAAM;QACN;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,wBAAwB,kCAAkC;QAC1D,MAAM;QACN;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA,0CAA0C,oBAAoB,WAAW;;QAEzE;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA","file":"common/runtime.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 CSS chunks\n \tvar installedCssChunks = {\n \t\t\"common/runtime\": 0\n \t}\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\"common/runtime\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + chunkId + \".js\"\n \t}\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts\":1,\"components/tabbar\":1,\"components/task/add\":1,\"components/task/details\":1,\"pages/dadui/index/index\":1,\"pages/rescue/index\":1,\"pages/zhidui/index\":1,\"uni_modules/qiun-data-charts/components/qiun-error/qiun-error\":1,\"uni_modules/superwei-combox/components/superwei-combox/superwei-combox\":1,\"uni_modules/qiun-data-charts/components/qiun-loading/loading1\":1,\"uni_modules/qiun-data-charts/components/qiun-loading/loading2\":1,\"uni_modules/qiun-data-charts/components/qiun-loading/loading3\":1,\"uni_modules/qiun-data-charts/components/qiun-loading/loading4\":1,\"uni_modules/qiun-data-charts/components/qiun-loading/loading5\":1,\"uni_modules/uni-icons/components/uni-icons/uni-icons\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"\" + ({\"uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts\":\"uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts\",\"components/tabbar\":\"components/tabbar\",\"components/task/add\":\"components/task/add\",\"components/task/details\":\"components/task/details\",\"pages/dadui/index/index\":\"pages/dadui/index/index\",\"pages/rescue/index\":\"pages/rescue/index\",\"pages/zhidui/index\":\"pages/zhidui/index\",\"uni_modules/qiun-data-charts/components/qiun-error/qiun-error\":\"uni_modules/qiun-data-charts/components/qiun-error/qiun-error\",\"uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading\":\"uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading\",\"uni_modules/superwei-combox/components/superwei-combox/superwei-combox\":\"uni_modules/superwei-combox/components/superwei-combox/superwei-combox\",\"uni_modules/qiun-data-charts/components/qiun-loading/loading1\":\"uni_modules/qiun-data-charts/components/qiun-loading/loading1\",\"uni_modules/qiun-data-charts/components/qiun-loading/loading2\":\"uni_modules/qiun-data-charts/components/qiun-loading/loading2\",\"uni_modules/qiun-data-charts/components/qiun-loading/loading3\":\"uni_modules/qiun-data-charts/components/qiun-loading/loading3\",\"uni_modules/qiun-data-charts/components/qiun-loading/loading4\":\"uni_modules/qiun-data-charts/components/qiun-loading/loading4\",\"uni_modules/qiun-data-charts/components/qiun-loading/loading5\":\"uni_modules/qiun-data-charts/components/qiun-loading/loading5\",\"uni_modules/uni-icons/components/uni-icons/uni-icons\":\"uni_modules/uni-icons/components/uni-icons/uni-icons\"}[chunkId]||chunkId) + \".wxss\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\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 \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = global[\"webpackJsonp\"] = global[\"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// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map index 82f0344..fa699a2 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map @@ -1 +1 @@ -{"version":3,"sources":["uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/uni-mp-weixin/dist/index.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js","webpack:///F:/项目2/Jinan_app/Jinan_app/static/091212.jpg?2964","uni-app:///libs/auth.js","uni-app:///store.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vuex3/dist/vuex.common.js","uni-app:///libs/request.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/uni-cloud/dist/index.js","uni-app:///pages.json","uni-app:///uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js","uni-app:///uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/regenerator/index.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/regenerator-runtime/runtime-module.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/regenerator-runtime/runtime.js","uni-app:///config.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/webpack/buildin/global.js","uni-app:///libs/alert.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/qs/lib/index.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/qs/lib/stringify.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/qs/lib/utils.js","uni-app:///uni_modules/uni-icons/components/uni-icons/icons.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/qs/lib/formats.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/qs/lib/parse.js","uni-app:///node_modules/@escook/request-miniprogram/miniprogram_dist/index.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js","webpack:///F:/项目2/Jinan_app/Jinan_app/static/login/banner.jpg?b0c7","webpack:///F:/项目2/Jinan_app/Jinan_app/static/login/title.png?927a","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js","webpack:///F:/项目2/Jinan_app/Jinan_app/static/logo.png?ced9","webpack:///F:/项目2/Jinan_app/Jinan_app/static/arrow.png?80f1","webpack:///F:/项目2/Jinan_app/Jinan_app/static/down.png?7ce8","webpack:///F:/项目2/Jinan_app/Jinan_app/static/4412.png?72e2","webpack:///F:/项目2/Jinan_app/Jinan_app/static/dadui/10.png?fc6d",null,"webpack:///F:/项目2/Jinan_app/Jinan_app/static/446.png?3c1a","webpack:///F:/项目2/Jinan_app/Jinan_app/static/zeren/4508.png?1030","webpack:///F:/项目2/Jinan_app/Jinan_app/static/zeren/4511.png?3d23"],"names":["realAtob","b64","b64re","b64DecodeUnicode","str","decodeURIComponent","split","map","c","charCodeAt","toString","slice","join","getCurrentUserInfo","userInfo","token","wx","getStorageSync","tokenArr","length","uid","role","permission","tokenExpired","JSON","parse","error","Error","message","exp","iat","uniIdMixin","Vue","prototype","uniIDHasRole","roleId","indexOf","uniIDHasPermission","permissionId","this","uniIDTokenValid","Date","now","atob","String","replace","test","bitmap","r1","r2","result","i","charAt","fromCharCode","_toString","Object","hasOwnProperty","isFn","fn","isStr","isPlainObject","obj","call","hasOwn","key","noop","cached","cache","create","hit","camelizeRE","camelize","_","toUpperCase","sortObject","sortObj","keys","sort","forEach","HOOKS","globalInterceptors","scopedInterceptors","mergeHook","parentVal","childVal","res","concat","Array","isArray","dedupeHooks","hooks","push","removeHook","hook","index","splice","mergeInterceptorHook","interceptor","option","removeInterceptorHook","addInterceptor","method","removeInterceptor","wrapperHook","data","isPromise","then","queue","promise","Promise","resolve","callback","wrapperOptions","options","name","oldCallback","wrapperReturnValue","returnValue","returnValueHooks","getApiInterceptorHooks","scopedInterceptor","invokeApi","api","params","invoke","promiseInterceptor","reject","SYNC_API_RE","CONTEXT_API_RE","CONTEXT_API_RE_EXC","ASYNC_API","CALLBACK_API_RE","isContextApi","isSyncApi","isCallbackApi","handlePromise","catch","err","shouldPromise","promisify","success","fail","complete","assign","finally","constructor","value","reason","EPS","BASE_DEVICE_WIDTH","isIOS","deviceWidth","deviceDPR","checkDeviceWidth","getSystemInfoSync","platform","pixelRatio","windowWidth","upx2px","number","newDeviceWidth","Number","Math","floor","locale","LOCALE_ZH_HANS","LOCALE_ZH_HANT","LOCALE_EN","LOCALE_FR","LOCALE_ES","messages","initI18nMessages","isEnableLocale","localeKeys","__uniConfig","locales","curMessages","userMessages","normalizeLocale","language","i18n","initVueI18n","t","mixin","beforeCreate","unwatch","watchLocale","$forceUpdate","$once","methods","$$t","values","setLocale","getLocale","initAppLocale","appVm","state","observable","localeWatchers","$watchLocale","defineProperty","get","set","v","watch","include","parts","find","part","startsWith","trim","toLowerCase","lang","getLocale$1","app","getApp","allowDefault","$vm","$locale","setLocale$1","oldLocale","onLocaleChangeCallbacks","onLocaleChange","global","interceptors","baseApi","freeze","__proto__","findExistsPageIndex","url","pages","getCurrentPages","len","page","$page","fullPath","deviceId","redirectTo","fromArgs","exists","delta","args","existsPageIndex","previewImage","currentIndex","parseInt","current","isNaN","urls","filter","item","indicator","loop","UUID_KEY","useDeviceId","random","setStorage","addSafeAreaInsets","safeArea","safeAreaInsets","top","left","right","bottom","screenHeight","populateParameters","brand","model","system","theme","version","fontSizeSetting","SDKVersion","deviceOrientation","osName","osVersion","hostVersion","deviceType","getGetDeviceType","deviceBrand","getDeviceBrand","_hostName","getHostName","_deviceOrientation","_devicePixelRatio","_SDKVersion","hostLanguage","parameters","appId","process","appName","appVersion","appVersionCode","appLanguage","getAppLanguage","uniCompileVersion","uniRuntimeVersion","uniPlatform","deviceModel","devicePixelRatio","toLocaleLowerCase","hostTheme","hostName","hostSDKVersion","hostFontSizeSetting","windowTop","windowBottom","osLanguage","undefined","osTheme","ua","hostPackageName","browserName","browserVersion","deviceTypeMaps","ipad","windows","mac","deviceTypeMapsKeys","_model","_m","defaultLanguage","_platform","environment","host","env","getSystemInfo","showActionSheet","alertText","title","getAppBaseInfo","getDeviceInfo","getWindowInfo","getAppAuthorizeSetting","locationReducedAccuracy","locationAccuracy","protocols","todos","canIUses","CALLBACKS","processCallback","methodName","processReturnValue","processArgs","argsOption","keepFromArgs","toArgs","keyOption","console","warn","keepReturnValue","wrapper","protocol","arg1","arg2","apply","todoApis","TODOS","createTodoApi","errMsg","providers","oauth","share","payment","getProvider","service","provider","extraApi","getEmitter","Emitter","ctx","$on","arguments","$off","$emit","cid","cidErrMsg","enabled","eventApi","tryCatch","e","getApiCallbacks","apiCallbacks","param","normalizePushMessage","invokePushCallback","type","invokeGetPushCidCallbacks","onPushMessageCallbacks","stopped","getPushCidCallbacks","getPushClientId","hasSuccess","hasFail","hasComplete","onPushMessage","offPushMessage","MPPage","Page","MPComponent","Component","customizeRE","customize","initTriggerEvent","mpInstance","oldTriggerEvent","triggerEvent","newTriggerEvent","event","_triggerEvent","initHook","isComponent","oldHook","__$wrappered","after","PAGE_EVENT_HOOKS","initMocks","vm","mocks","$mp","mpType","mock","hasHook","vueOptions","default","extendOptions","super","mixins","initHooks","mpOptions","__call_hook","initVueComponent","VueComponent","extend","initSlots","vueSlots","$slots","slotName","$scopedSlots","initVueIds","vueIds","_$vueId","_$vuePid","initData","context","VUE_APP_DEBUG","stringify","__lifecycle_hooks__","PROP_TYPES","Boolean","createObserver","newVal","oldVal","initBehaviors","initBehavior","vueBehaviors","behaviors","vueExtends","extends","vueMixins","vueProps","props","behavior","properties","initProperties","vueMixin","parsePropType","defaultValue","file","isBehavior","vueId","virtualHost","virtualHostStyle","virtualHostClass","scopedSlotsCompiler","observer","setData","opts","wrapper$1","mp","stopPropagation","preventDefault","target","detail","markerId","getExtraValue","dataPathsArray","dataPathArray","dataPath","vFor","propPath","valuePath","isInteger","substr","__get_value","vForItem","vForKey","processEventExtra","extra","extraObj","__args__","getObjByArray","arr","element","processEventArgs","isCustom","isCustomMPEvent","currentTarget","dataset","comType","ret","arg","ONCE","CUSTOM","isMatchEventType","eventType","optType","getContextVm","$parent","$options","generic","$scope","handleEvent","eventOpts","eventOpt","eventsArray","isOnce","eventArray","handlerCtx","handler","path","route","is","once","eventChannels","eventChannelStack","getEventChannel","id","eventChannel","shift","initEventChannel","getOpenerEventChannel","callHook","__id__","__eventChannel__","initScopedSlotsParams","center","parents","$hasScopedSlotsParams","has","$getScopedSlotsParams","object","$setScopedSlotsParams","propsData","destroyed","parseBaseApp","initRefs","store","$store","mpHost","$i18n","_i18n","appOptions","onLaunch","canIUse","globalData","_isMounted","findVmByVueId","vuePid","parentVm","$children","childVm","Behavior","isPage","initRelation","selectAllComponents","selector","$refs","components","component","ref","vueGeneric","scopedComponent","forComponents","handleLink","parent","parseApp","createApp","App","encodeReserveRE","encodeReserveReplacer","commaRE","encode","encodeURIComponent","stringifyQuery","encodeStr","val","val2","x","parseBaseComponent","vueComponentOptions","multipleSlots","addGlobalClass","componentOptions","__file","lifetimes","attached","$mount","ready","detached","$destroy","pageLifetimes","show","hide","resize","size","__l","__e","externalClasses","wxsCallMethods","callMethod","parseComponent","hooks$1","parseBasePage","vuePageOptions","pageOptions","onLoad","query","copyQuery","parsePage","createPage","createComponent","createSubpackageApp","onShow","onAppShow","onHide","onAppHide","getLaunchOptionsSync","createPlugin","todoApi","canIUseApi","apiName","uni","Proxy","uni$1","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","renderjs","unshift","__module","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","shadowRoot","_injectStyles","originalRender","h","existing","exports","module","login","checkAuth","log","getLocalUserInfo","askLogin","user","commit","noCase","alert","showError","setTimeout","switchTab","showModal","content","confirm","navigateTo","getUserProfile","that","desc","showLoading","code","request","post","wechatToken","username","password","hideLoading","status","setStorageSync","reLaunch","logout","clearStorage","use","Vuex","Store","people","tag","taskType","mutations","savePath","saveToken","savePeople","saveTaskType","actions","applyMixin","vuexInit","_init","init","window","devtoolHook","__VUE_DEVTOOLS_GLOBAL_HOOK__","devtoolPlugin","_devtoolHook","emit","on","targetState","replaceState","subscribe","mutation","prepend","subscribeAction","action","list","f","deepCopy","original","copy","forEachValue","isObject","assert","condition","msg","partial","Module","rawModule","runtime","_children","_rawModule","rawState","prototypeAccessors","namespaced","configurable","addChild","removeChild","getChild","hasChild","update","getters","forEachChild","forEachGetter","forEachAction","forEachMutation","defineProperties","ModuleCollection","rawRootModule","register","targetModule","newModule","assertRawModule","modules","reduce","root","getNamespace","namespace","this$1","rawChildModule","unregister","child","isRegistered","functionAssert","expected","objectAssert","assertTypes","assertOptions","makeAssertionMessage","buf","install","plugins","strict","_committing","_actions","_actionSubscribers","_mutations","_wrappedGetters","_modules","_modulesNamespaceMap","_subscribers","_watcherVM","_makeLocalGettersCache","dispatch","payload","installModule","resetStoreVM","plugin","useDevtools","devtools","config","prototypeAccessors$1","genericSubscribe","subs","resetStore","hot","oldVm","_vm","wrappedGetters","computed","enumerable","silent","$$state","enableStrictMode","_withCommit","_data","nextTick","rootState","isRoot","parentState","getNestedState","moduleName","local","makeLocalContext","namespacedType","registerMutation","registerAction","getter","registerGetter","noNamespace","_type","_payload","_options","unifyObjectStyle","makeLocalGetters","gettersProxy","splitPos","localType","entry","rootGetters","rawGetter","$watch","deep","sync","_Vue","sub","before","all","cb","registerModule","preserveState","unregisterModule","delete","hasModule","newOptions","committing","mapState","normalizeNamespace","states","isValidMap","normalizeMap","getModuleByNamespace","vuex","mapMutations","mapGetters","mapActions","createNamespacedHelpers","bind","helper","createLogger","collapsed","stateBefore","stateAfter","transformer","mutationTransformer","mut","actionFilter","actionTransformer","act","logMutations","logActions","logger","prevState","nextState","formattedTime","getFormattedTime","formattedMutation","startMessage","endMessage","formattedAction","groupCollapsed","group","groupEnd","time","pad","getHours","getMinutes","getSeconds","getMilliseconds","repeat","times","num","maxLength","index_cjs","getToken","refreshToken","uploadFile","filePath","domain","header","common","uploadFile2","formdata","lawyerInfo","formData","login_type","who","patch","get2","post2","n","__esModule","s","require","globalThis","self","o","lib","r","Base","mixIn","$super","clone","WordArray","words","sigBytes","clamp","ceil","a","enc","Hex","u","Latin1","l","Utf8","escape","unescape","BufferedBlockAlgorithm","reset","_nDataBytes","_append","_process","blockSize","max","_minBufferSize","min","_doProcessBlock","Hasher","cfg","_doReset","finalize","_doFinalize","_createHelper","_createHmacHelper","d","HMAC","algo","abs","sin","MD5","_hash","g","p","m","y","w","k","T","S","A","P","I","b","O","C","E","HmacMD5","_hasher","_oKey","_iKey","appid","_globalUniCloudObj","R","U","L","D","includes","q","N","F","isReady","initUniCloud","j","M","errCode","requestId","$","scene","channel","K","LOCALE","PLATFORM","OS","APPID","DEVICEID","X","B","sign","wrappedRequest","statusCode","H","removeStorageSync","clearStorageSync","W","en","fr","es","ja","z","V","endpoint","requestUrl","envType","accessTokenKey","spaceId","adapter","_getAccessTokenPromise","_getAccessTokenPromiseStatus","accessToken","requestWrapped","hasAccessToken","getAccessToken","rebuildRequest","clientSecret","timestamp","dataType","requestAuth","setupRequest","setAccessToken","functionTarget","functionArgs","fileType","onUploadProgress","onProgressUpdate","loaded","totalBytesSent","total","totalBytesExpectedToSend","cloudPath","getOSSUploadOptionsFromPath","filename","cdnDomain","ossPath","OSSAccessKeyId","accessKeyId","Signature","signature","policy","success_action_status","fileName","uploadFileToOSS","reportOSSUpload","fileID","fileList","tempFileURL","J","signInAnonymously","authorize","getLoginState","auth","customAuth","Y","location","none","session","te","G","Q","Z","ee","ne","isMatch","genAdapter","WEB","WX_MP","se","oe","re","tcbObject","ie","localStorage","sessionStorage","ae","_storage","_persistence","primaryStorage","persistence","accessTokenExpireKey","refreshTokenKey","anonymousUuidKey","loginTypeKey","userInfoKey","getItem","setItem","removeItem","ce","ue","le","he","de","fe","_listeners","_listens","ge","pe","fire","me","off","Se","ye","_e","we","ke","Te","ANONYMOUS","WECHAT","WECHAT_PUBLIC","WECHAT_OPEN","EMAIL","USERNAME","NULL","ve","Ae","Pe","headers","append","Ie","seqId","be","_reqClass","reqClass","timeout","timeoutMsg","restrictedMethods","_cache","_localCache","upload","download","_refreshAccessTokenPromise","_refreshAccessToken","_shouldRefreshAccessTokenHook","removeStore","getStore","refresh_token","send","anonymous_uuid","setRefreshToken","access_token","setStore","access_token_expire","accessTokenExpire","refreshAccessToken","dataVersion","FormData","inQuery","search","Oe","Ce","Ee","_request","setLocalUserInfo","Re","_envId","setUserInfo","ticket","signInWithRedirect","oldPassword","newPassword","newEmail","users","wxOpenId","wxPublicId","hasPrimaryUid","nickName","gender","avatarUrl","province","country","city","Ue","credential","loginType","xe","updatePersistence","uuid","_setAnonymousUUID","refresh","_clearAnonymousUUID","Le","refreshUserInfo","De","email","qe","Ne","_onAnonymousConverted","_onLoginTypeChanged","signIn","_anonymousAuthProvider","linkAndRetrieveDataWithTicket","hasLoginState","Fe","authorization","fileId","cosFileId","Me","$e","fileid_list","delete_list","je","fileid","max_age","maxAge","file_list","download_list","Ke","download_url","encodeURI","Be","function_name","request_data","response_data","He","We","ze","authObj","requestClient","Ve","Je","Ye","Xe","clear","Ge","useAdapters","Qe","Ze","et","tt","nt","st","ot","fileUrl","rt","it","clientInfo","uniIdToken","at","localAddress","localPort","aliyun","tencent","_originCallFunction","ct","rule","mode","ut","lt","RegExp","source","ht","dt","functionName","logPvd","debugLog","ft","callFunction","tcb","extraInfo","formatter","match","debugInfo","forceRemote","gt","Symbol","pt","_internalType","__ob__","mt","yt","_t","wt","$regexp","flags","$date","toISOString","kt","$method","Tt","prevStage","udb","_database","$db","reverse","$param","toJSON","_send","from","getAction","getCommand","_callCloudFunction","command","isAggregate","St","isCommand","vt","$newDb","At","multiCommand","queryList","setResult","dataList","_callback","_uniClient","systemInfo","level","_callbackAuth","prop","tips","uniClient","_authCallBacks","_dbCallBacks","isDefault","$env","Geo","serverDate","Pt","database","It","bt","Ot","TOKEN_INVALID_TOKEN_EXPIRED","TOKEN_INVALID_INVALID_CLIENTID","TOKEN_INVALID","TOKEN_INVALID_WRONG_TOKEN","TOKEN_INVALID_ANONYMOUS_USER","Ct","Et","Rt","needLogin","needLoginPage","notNeedLoginPage","Ut","some","pagePath","zt","xt","uniIdRouter","subPackages","tabBar","loginPage","resToLogin","routerNeedLogin","loginPageInTabBar","Lt","Dt","qt","Nt","Ft","Mt","$t","pop","jt","Kt","uniIdRedirectUrl","Bt","onResponse","Ht","onNeedLogin","offNeedLogin","needLoginInit","Wt","offResponse","onRefreshToken","offRefreshToken","Vt","Jt","Yt","Xt","tempFiles","substring","lastIndexOf","tempFilePaths","onChooseFile","tempFile","tempFilePath","initChooseAndUploadFile","count","sizeType","sourceType","extension","chooseImage","camera","compressed","maxDuration","chooseVideo","duration","height","width","chooseFile","chooseMessageFile","Gt","Qt","Zt","localdata","spaceInfo","collection","field","orderby","where","pageData","pageCurrent","pageSize","getcount","gettree","gettreepath","startwith","limitlevel","groupby","groupField","distinct","foreignKey","loadtime","manual","mixinDatacomLoading","mixinDatacomHasMore","mixinDatacomResData","mixinDatacomErrorMessage","mixinDatacomPage","created","onMixinDatacomPropsChange","mixinDatacomEasyGet","getone","mixinDatacomGet","groupBy","orderBy","getCount","limitLevel","startWith","getTree","getTreePath","skip","limit","customUI","loadingOptions","errorOptions","mask","retry","newToken","showToast","icon","showCancel","cancelText","confirmText","cancel","tn","nn","initUniCloudStatus","address","servePort","port","initialLaunchType","sn","navigator","userAgent","reInit","chooseAndUploadFile","importObject","uniCloud","yAxisWidth","xAxisHeight","xAxisTextPadding","padding","rotate","fontSize","fontColor","dataPointShape","color","linearColor","pieChartLinePadding","pieChartTextPadding","titleFontSize","subtitleFontSize","toolTipPadding","toolTipBackground","toolTipOpacity","toolTipLineHeight","radarLabelTextMargin","varArgs","TypeError","deepAssign","obj1","obj2","util","toFixed","isFloat","approximatelyEqual","num1","num2","isSameSign","isSameXCoordinateArea","p1","p2","isCollision","end","start","flag","hexToRgb","hexValue","opc","rgx","hex","rgb","exec","findRange","multiple","calCandleMA","dayArr","nameArr","colorArr","kdata","seriesTemp","seriesItem","sum","calValidDistance","distance","chartData","dataChartAreaWidth","area","dataChartWidth","eachSpacing","xAxisData","xAxisPoints","mount","widthRatio","validDistance","uevent","trigger","scrollOption","position","xAxis","scrollPosition","isInAngleRange","angle","startAngle","endAngle","adjust","PI","createCurveControlPoints","points","isNotMiddlePoint","isNotMiddlePointX","pAx","pAy","pBx","pBy","last","ctrA","ctrB","convertCoordinateOrigin","avoidCollision","fixPieSeries","series","pieSeriesArr","_pieSeries_","oldseries","fillSeries","linearIndex","pointShape","legendShape","fillCustomColor","linearType","customColor","newcolor","chazhi","getDataRange","minData","maxData","range","minRange","maxRange","measureText","text","setFontSize","dataCombine","dataCombineStack","getTouches","touches","clientX","pix","pageY","offsetTop","getSeriesDataItem","newSeries","indexIsArr","tempSeries","filterSeries","tmpindex","style","disableLegend","getMaxTextListLength","lengthList","getRadarCoordinateSeries","eachAngle","CoordinateSeries","getToolTipData","seriesData","categories","calPoints","filterPoints","textList","titleText","offset","round","getMixToolTipData","getCandleToolTipData","upColor","upFill","downColor","downFill","text1","text2","text3","text4","validCalPoints","findCurrentIndex","currentPoints","spacing","boundaryGap","isInExactChartArea","timePoints","pointValue","pointIndex","minValue","findBarChartCurrentIndex","yAxisPoints","findLegendIndex","legendData","gap","isInExactLegendArea","findRadarChartCurrentIndex","radarData","eachAngleArea","isInExactPieChartArea","radius","fixAngle","atan2","angleList","rangeStart","rangeEnd","findFunnelChartCurrentIndex","funnelData","funnelArea","findWordChartCurrentIndex","wordData","findMapChartCurrentIndex","cData","mapData","tmp","pointToCoordinate","bounds","scale","xoffset","yoffset","poi","geometry","coordinates","isPoiWithinPoly","mercator","findRoseChartCurrentIndex","pieData","getRoseDataPoints","_series_","rose","offsetAngle","_start_","_rose_proportion_","findPieChartCurrentIndex","getPieDataPoints","pie","ring","_proportion_","pow","splitPoints","eachSeries","newPoints","items","connectNulls","calLegendData","wholeWidth","wholeHeight","widthArr","heightArr","legend","margin","shapeWidth","shapeRight","lineHeight","legendList","widthCount","widthCountArr","currentRow","legendText","itemWidth","itemGap","legendWidth","float","maxHeight","lineNum","temp","maxWidth","calCategoriesData","categoriesTextLenth","xitem","maxTextLength","rotateLabel","rotateAngle","tempHeight","enableScroll","scrollShow","disabled","getXAxisTextList","stack","sorted","subitem","rangeSpan","eachRange","splitNumber","calXAxisData","columnstyle","bar","ranges","rangesFormat","xAxisScaleValues","getXAxisPoints","textLength","getRadarDataPoints","radarOption","radar","each","listItem","proportion","cos","_radius_","getFunnelDataPoints","minRadius","dataArr","radiusLength","getArcbarDataPoints","arcbarOption","totalAngle","getGaugeArcbarDataPoints","getGaugeAxisPoints","tempStartAngle","_startAngle_","_endAngle_","getGaugeDataPoints","gaugeOption","pointer","_oldAngle_","oldAngle","oldData","getPieTextMaxLength","textSize","fixColumeData","columnLen","seriesGap","categoryGap","mix","column","fixBarData","fixColumeMeterData","border","fixColumeStackData","indexn","fixBarStackData","spacingValid","dataCount","itemCount","startX","endX","getCandleDataPoints","validHeight","cPoints","indexs","point","getDataPoints","validWidth","xranges","xminRange","xmaxRange","getMountDataPoints","mountOption","mountWidth","getBarDataPoints","getStackDataPoints","seriesIndex","stackSeries","value0","height0","heightc","y0","getBarStackDataPoints","x0","getYAxisTextList","yData","dataRange","yAxis","calYAxisData","YLength","rangesArr","rangesFormatArr","yAxisWidthArr","unit","tofix","yAxisFontSizes","calibration","yAxisFontSize","calTooltipYAxisData","yAxisData","minAxis","maxVal","minVal","calMarkLineData","yAxisIndex","contextRotate","rotateLock","translate","_rotate_","drawPointShape","shape","beginPath","dataPointShapeType","setStrokeStyle","setFillStyle","background","setLineWidth","moveTo","lineTo","arc","rect","closePath","fill","stroke","drawRingTitle","titlefontSize","subtitlefontSize","subtitle","titleFontColor","subtitleFontColor","titleHeight","subtitleHeight","textWidth","offsetX","startY","offsetY","fillText","_textWidth","_startX","_startY","drawPointText","textOffset","textColor","formatVal","setTextAlign","drawMountPointText","drawBarPointText","drawGaugeLabel","centerPosition","labelOffset","splitAngle","splitLine","totalNumber","endNumber","startNumber","nowAngle","nowNumber","pos","labelText","labelColor","drawRadarLabel","labelPointShow","posPoint","posPointAxis","labelPointColor","labelPointRadius","posRelativeCanvas","drawPieText","lineRadius","textObjectCollection","lastTextObject","seriesConvert","labelShow","orginX1","orginY1","orginX2","orginY2","orginX3","orginY3","textObject","lineStart","lineEnd","lineStartPoistion","lineEndPoistion","textPosition","curveStartX","textStartX","quadraticCurveTo","drawToolTipSplitLine","toolTipOption","tooltip","gridType","dashLength","endY","setLineDash","gridColor","xAxisLabel","textX","textY","labelBgColor","labelBgOpacity","labelFontColor","drawMarkLine","markLineOption","markLine","lineColor","showLabel","labelAlign","labelOffsetX","labelOffsetY","bgWidth","bgStartX","bgStartY","drawToolTipHorizentalLine","yAxisLabel","tStartLeft","tStartRight","bgEndX","drawToolTipSplitArea","activeBgColor","activeBgOpacity","activeWidth","drawBarToolTipSplitArea","drawToolTip","showBox","showArrow","showCategory","bgColor","bgOpacity","borderColor","borderWidth","borderRadius","borderOpacity","legendMarginRight","arrowWidth","isOverRightBorder","toolTipWidth","toolTipHeight","_scrollDistance_","fillRect","drawColumnDataPoints","columnOption","meterBorder","meterFillColor","barBorderCircle","barBorderRadius","linearOpacity","colorStop","save","leftNum","rightNum","tooltipPoints","fillColor","strokeColor","grd","createLinearGradient","addColorStop","r0","r3","dataLabel","restore","drawMountDataPoints","bezierCurveTo","drawBarDataPoints","drawCandleDataPoints","seriesMA","candleOption","average","candle","upLine","downLine","day","leftSpace","rightSpace","splitPointList","startPoint","ctrlPoint","drawAreaDataPoints","areaOption","opacity","addLine","gradient","firstPoint","lastPoint","lineType","drawScatterDataPoints","scatter","drawBubbleDataPoints","bubbleOption","bubble","drawLineDataPoints","lineOption","line","drawMixDataPoints","columnIndex","columnLength","addPoint","drawToolTipBridge","horizentalLine","drawXAxis","scrollY","scrollScreenWidth","scrollTotalWidth","scrollWidth","scrollLeft","setLineCap","scrollBackgroundColor","scrollColor","disableGrid","gridEval","maxXAxisListLength","labelCount","ratio","newCategories","cgLength","xAxisFontSize","_xAxisTextAngle_","scrollHeight","axisLine","axisLineColor","drawYAxisGrid","xAxiseachSpacing","TotalWidth","drawYAxis","fillEndY","tStartCenter","textAlign","tmpstrat","gapwidth","showTitle","titleOffsetX","titleOffsetY","drawLegend","legendArea","backgroundColor","itemList","listIndex","hiddenColor","fontTrans","drawPieDataPoints","pieOption","activeOpacity","activeRadius","labelWidth","ringWidth","customRadius","centerColor","_pieTextMaxLength_","lineJoin","fillcolor","createCircularGradient","createRadialGradient","innerPieWidth","drawRoseDataPoints","roseOption","drawArcbarDataPoints","lineCap","arcbar","centerX","centerY","drawGaugeDataPoints","fixRadius","childNumber","childWidth","gauge","innerRadius","pieRadius","childAngle","proc","pointerRadius","gradient3","eachCategories","childendX","drawRadarDataPoints","axisLabel","axisLabelTofix","gridCount","coordinateAngle","xr","yr","_loop","startPos","radarDataPoints","stepLength","label","lonlat2mercator","longitude","latitude","tan","getBoundingBox","coords","xMin","xMax","yMin","yMax","coorda","coordinateToPoint","pointY","pointX","isRayIntersectsSegment","s_poi","e_poi","xseg","poly","sinsc","epoly","drawMapDataPoints","mapOption","fillOpacity","activeBorderColor","activeFillColor","activeFillOpacity","xScale","yScale","gaosi","centerPoint","centroid","draw","normalInt","iter","collisionNew","isIn","getWordCloudPoint","tHeight","tWidth","breaknum","Spin","isSpin","areav","drawWordCloudDataPoints","wordOption","autoColors","word","wordCloudData","strokeText","drawFunnelDataPoints","funnelOption","funnel","drawFunnelText","drawCanvas","Timing","easeIn","easeOut","easeInOut","linear","Animation","isStop","timing","delay","createAnimationFrame","step","timeStamp","requestAnimationFrame","animationFrame","startTimeStamp","_step","onProcess","onAnimationFinish","timingFunction","drawCharts","_this","animation","animationInstance","stop","_calLegendData","legendHeight","_calYAxisData","maxTitleHeight","rightIndex","leftIndex","_calCategoriesData","categoriesData","scrollAlign","offsetLeft","totalWidth","screenWidth","currentOffset","startTouchX","lastMoveTime","clearRect","_drawLineDataPoints","enableMarkLine","_drawScatterDataPoints","_drawBubbleDataPoints","_drawMixDataPoints","_drawColumnDataPoints","_drawMountDataPoints","_drawBarDataPoints","_drawAreaDataPoints","arcbarData","gaugeData","_drawCandleDataPoints","uChartsEvent","events","addEventListener","listener","delEventListener","_len","_key","uCharts","canvas2d","config$$1","tempWidth","strokeStyle","lineWidth","font","fillStyle","updateData","_getXAxisPoints0","zoom","centerLeft","MaxLeft","dobuleZoom","tcs","changedTouches","clientY","ntcs","xlength","moveCount","cts0","cts1","moveCurrent1","getCurrentDataIndex","moveCurrent2","currentEachSpacing","currentLeft","stopAnimation","_touches$","getLegendDataIndex","touchLegend","showToolTip","_getToolTipData","_getMixToolTipData","scrollStart","scroll","Limit","touchMoveLimit","currMoveTime","_distance","scrollEnd","_scrollOption","formatDateTime","returnType","date","setTime","getFullYear","getMonth","getDate","minute","second","cfu","category","Function","hadRuntime","regeneratorRuntime","getOwnPropertyNames","oldRuntime","Op","$Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","inModule","wrap","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","awrap","__await","defineIteratorMethods","AsyncIterator","async","innerFn","outerFn","tryLocsList","next","done","Context","skipTempReset","prev","sent","_sent","delegate","tryEntries","resetTryEntry","rootEntry","rootRecord","completion","rval","dispatchException","exception","handle","loc","caught","record","tryLoc","hasCatch","hasFinally","catchLoc","finallyLoc","abrupt","finallyEntry","afterLoc","finish","thrown","delegateYield","iterable","resultName","nextLoc","protoGenerator","generator","_invoke","makeInvokeMethod","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","doneResult","delegateResult","maybeInvokeDelegate","return","info","pushTryEntry","locs","iteratorMethod","devApi","devDomain","online","hideToast","showSuccess","showWarning","formats","utils","arrayPrefixGenerators","brackets","prefix","indices","toISO","defaults","delimiter","encoder","encodeValuesOnly","serializeDate","skipNulls","strictNullHandling","generateArrayPrefix","allowDots","isBuffer","keyValue","objKeys","format","formatters","arrayFormat","joined","addQueryPrefix","hexTable","array","compactQueue","compacted","arrayToObject","plainObjects","merge","allowPrototypes","mergeTarget","acc","decode","string","out","compact","refs","isRegExp","percentTwenties","RFC1738","RFC3986","arrayLimit","decoder","depth","parameterLimit","parseValues","cleanStr","ignoreQueryPrefix","Infinity","bracketEqualsPos","parseObject","chain","leaf","cleanRoot","parseArrays","parseKeys","givenKey","segment","tempObj","newObj","Request","baseUrl","beforeRequest","afterRequest","weixin","$http","defaultDelimiters","BaseFormatter","_caches","delimiters","tokens","compile","RE_TOKEN_LIST_VALUE","RE_TOKEN_NAMED_VALUE","startDelimiter","endDelimiter","char","isClosed","compiled","defaultFormatter","I18n","fallbackLocale","watcher","formater","watchers","override","interpolate","watchAppLocale","newLocale","getDefaultLocale","isWatchedAppLocale","isString","hasI18nJson","jsonObj","walkJsonObj","isI18nStr","parseI18nJson","compileStr","compileI18nJsonStr","jsonStr","localeValues","compileJsonObj","compileValue","valueLocales","localValue","walk","resolveLocale","resolveLocaleChain","emptyObject","isUndef","isDef","isTrue","isFalse","isPrimitive","toRawType","isValidArrayIndex","parseFloat","isFinite","toNumber","makeMap","expectsLowerCase","isBuiltInTag","isReservedAttribute","remove","capitalize","hyphenateRE","hyphenate","polyfillBind","boundFn","_length","nativeBind","toArray","to","_from","toObject","no","identity","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","every","getTime","keysA","keysB","looseIndexOf","called","ASSET_TYPES","LIFECYCLE_HOOKS","optionMergeStrategies","productionTip","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","_lifecycleHooks","unicodeRegExp","isReserved","def","writable","bailRE","parsePath","segments","_isServer","hasProto","inBrowser","inWeex","WXEnvironment","weexPlatform","UA","isIE","isEdge","nativeWatch","isServerRendering","VUE_ENV","isNative","Ctor","_Set","hasSymbol","Reflect","ownKeys","Set","tip","generateComponentTrace","formatComponentName","hasConsole","classifyRE","classify","trace","includeFile","_isVue","_componentTag","tree","currentRecursiveSequence","Dep","pushTarget","SharedObject","targetStack","popTarget","addSub","removeSub","depend","addDep","notify","VNode","children","elm","asyncFactory","ns","fnContext","fnOptions","fnScopeId","componentInstance","raw","isStatic","isRootInsert","isComment","isCloned","asyncMeta","isAsyncPlaceholder","createEmptyVNode","node","createTextVNode","cloneVNode","vnode","cloned","arrayProto","arrayMethods","methodsToPatch","inserted","ob","observeArray","dep","arrayKeys","shouldObserve","toggleObserving","Observer","vmCount","copyAugment","protoAugment","src","observe","asRootData","isExtensible","defineReactive$$1","customSetter","shallow","property","getOwnPropertyDescriptor","setter","childOb","dependArray","del","strats","mergeData","toVal","fromVal","mergeDataOrFn","instanceData","defaultData","mergeAssets","assertObjectType","el","defaultStrat","key$1","inject","provide","checkComponents","validateComponentName","normalizeProps","normalizeInject","normalized","normalizeDirectives","dirs","directives","def$$1","mergeOptions","_base","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","absent","booleanIndex","getTypeIndex","stringIndex","getPropDefaultValue","prevShouldObserve","assertProp","_props","getType","required","valid","expectedTypes","assertedType","assertType","expectedType","validator","getInvalidTypeMessage","simpleCheckRE","isSameType","receivedType","expectedValue","styleValue","receivedValue","isExplicable","isBoolean","explicitTypes","elem","handleError","cur","errorCaptured","capture","globalHandleError","invokeWithErrorHandling","_handled","logError","timerFunc","initProxy","callbacks","pending","flushCallbacks","copies","MutationObserver","setImmediate","counter","textNode","document","createTextNode","characterData","_resolve","allowedGlobals","warnNonPresent","warnReservedPrefix","hasProxy","isBuiltInModifier","hasHandler","isAllowed","$data","getHandler","handlers","_withStripped","_renderProxy","measure","seenObjects","traverse","_traverse","seen","isA","isFrozen","depId","perf","clearMarks","clearMeasures","startTag","endTag","normalizeEvent","passive","once$$1","createFnInvoker","fns","invoker","arguments$1","updateListeners","oldOn","remove$$1","createOnceHandler","old","extractPropertiesFromVNodeData","attrs","altKey","checkProp","extractPropsFromVNodeData","keyInLowerCase","hash","preserve","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","lastIndex","_isVList","initProvide","_provided","initInjections","resolveInject","provideKey","provideDefault","resolveSlots","slots","slot","name$1","isWhitespace","normalizeScopedSlots","normalSlots","prevSlots","hasNormalSlots","isStable","$stable","$key","_normalized","$hasNormal","normalizeScopedSlot","key$2","proxyNormalSlot","proxy","renderList","renderSlot","fallback","bindObject","nodes","scopedSlotFn","_i","$createElement","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","domProps","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","markStatic","markOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","prependModifier","symbol","installRenderHelpers","_o","_n","_s","_l","_q","_f","_k","_b","_v","_u","_g","_d","_p","FunctionalRenderContext","contextVm","_original","isCompiled","needNormalization","listeners","injections","scopedSlots","_c","createElement","createFunctionalComponent","mergeProps","renderContext","cloneAndMarkFunctionalResult","vnodes","devtoolsMeta","componentVNodeHooks","hydrating","_isDestroyed","keepAlive","mountedNode","prepatch","createComponentInstanceForVnode","activeInstance","oldVnode","updateChildComponent","insert","queueActivatedComponent","activateChildComponent","destroy","deactivateChildComponent","hooksToMerge","baseCtor","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","transformModel","nativeOn","abstract","installComponentHooks","_isComponent","_parentVnode","inlineTemplate","toMerge","_merged","mergeHook$1","f1","f2","merged","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","_createElement","pre","applyNS","registerDeepBindings","force","class","initRender","_vnode","parentVnode","_renderChildren","parentData","isUpdatingChildComponent","_parentListeners","currentRenderingInstance","renderMixin","$nextTick","_render","renderError","ensureCtor","comp","base","factory","errorComp","resolved","owner","owners","loading","loadingComp","timerLoading","timerTimeout","forceRender","renderCompleted","clearTimeout","getFirstComponentChild","initEvents","_events","_hasHookEvent","updateComponentListeners","remove$1","_target","onceHandler","oldListeners","eventsMixin","hookRE","i$1","cbs","lowerCaseEvent","setActiveInstance","prevActiveInstance","initLifecycle","_watcher","_inactive","_directInactive","_isBeingDestroyed","lifecycleMixin","_update","prevEl","$el","prevVnode","restoreActiveInstance","__patch__","__vue__","teardown","_watchers","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","$attrs","$listeners","propKeys","_propKeys","_$updateProperties","isInInactiveTree","direct","MAX_UPDATE_COUNT","activatedChildren","circular","waiting","flushing","resetSchedulerState","getNow","createEvent","flushSchedulerQueue","run","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","queueWatcher","uid$2","Watcher","expOrFn","isRenderWatcher","lazy","active","dirty","deps","newDeps","depIds","newDepIds","expression","cleanupDeps","oldValue","evaluate","sharedPropertyDefinition","sourceKey","initState","initProps","initMethods","initComputed","initWatch","propsOptions","_getFormData","__next_tick_pending","getData","computedWatcherOptions","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","stateMixin","dataDef","propsDef","$set","$delete","immediate","uid$3","initMixin","_uid","initInternalComponent","_self","_$fallback","_name","vnodeComponentOptions","superOptions","cachedSuperOptions","modifiedOptions","resolveModifiedOptions","modified","latest","sealed","sealedOptions","initUse","installedPlugins","_installedPlugins","initMixin$1","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","initProps$1","initComputed$1","Comp","initAssetRegisters","definition","getComponentName","matches","pattern","pruneCache","keepAliveInstance","cachedNode","pruneCacheEntry","cached$$1","patternTypes","KeepAlive","exclude","mounted","ref$1","builtInComponents","initGlobalAPI","configDef","defineReactive","ARRAYTYPE","OBJECTTYPE","diff","syncKeys","_diff","rootCurrentType","rootPreType","currentValue","preValue","currentType","preType","subKey","flushCallbacks$1","__next_tick_callbacks","hasRenderWatcher","nextTick$1","mpInstance$1","cloneWithData","dataKeys","compositionApiState","__composition_api_state__","__secret_vfa_state__","rawBindings","__webviewId__","mpData","diffData","$shouldDiffData","createEmptyRender","mountComponent$1","template","updateComponent","renderClass","staticClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","parseStyleText","cssText","listDelimiter","propertyDelimiter","normalizeStyleBinding","bindingStyle","MP_METHODS","getTarget","internalMixin","onError","oldEmit","my","createSelectorQuery","createIntersectionObserver","__init_provide","__init_injections","__set_model","modifiers","__set_sync","__get_orig","__get_class","__get_style","dynamicStyle","staticStyle","dynamicStyleObj","styleObj","__map","iteratee","LIFECYCLE_HOOKS$1","lifecycleMixin$1","oldExtend","strategies"],"mappings":"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","file":"common/vendor.js","sourcesContent":["import { initVueI18n } from '@dcloudio/uni-i18n';\r\nimport Vue from 'vue';\r\n\r\nlet realAtob;\r\n\r\nconst b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\nconst b64re = /^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;\r\n\r\nif (typeof atob !== 'function') {\r\n realAtob = function (str) {\r\n str = String(str).replace(/[\\t\\n\\f\\r ]+/g, '');\r\n if (!b64re.test(str)) { throw new Error(\"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.\") }\r\n\r\n // Adding the padding if missing, for semplicity\r\n str += '=='.slice(2 - (str.length & 3));\r\n var bitmap; var result = ''; var r1; var r2; var i = 0;\r\n for (; i < str.length;) {\r\n bitmap = b64.indexOf(str.charAt(i++)) << 18 | b64.indexOf(str.charAt(i++)) << 12 |\r\n (r1 = b64.indexOf(str.charAt(i++))) << 6 | (r2 = b64.indexOf(str.charAt(i++)));\r\n\r\n result += r1 === 64 ? String.fromCharCode(bitmap >> 16 & 255)\r\n : r2 === 64 ? String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255)\r\n : String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255, bitmap & 255);\r\n }\r\n return result\r\n };\r\n} else {\r\n // 注意atob只能在全局对象上调用,例如:`const Base64 = {atob};Base64.atob('xxxx')`是错误的用法\r\n realAtob = atob;\r\n}\r\n\r\nfunction b64DecodeUnicode (str) {\r\n return decodeURIComponent(realAtob(str).split('').map(function (c) {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)\r\n }).join(''))\r\n}\r\n\r\nfunction getCurrentUserInfo () {\r\n const token = ( wx).getStorageSync('uni_id_token') || '';\r\n const tokenArr = token.split('.');\r\n if (!token || tokenArr.length !== 3) {\r\n return {\r\n uid: null,\r\n role: [],\r\n permission: [],\r\n tokenExpired: 0\r\n }\r\n }\r\n let userInfo;\r\n try {\r\n userInfo = JSON.parse(b64DecodeUnicode(tokenArr[1]));\r\n } catch (error) {\r\n throw new Error('获取当前用户信息出错,详细错误信息为:' + error.message)\r\n }\r\n userInfo.tokenExpired = userInfo.exp * 1000;\r\n delete userInfo.exp;\r\n delete userInfo.iat;\r\n return userInfo\r\n}\r\n\r\nfunction uniIdMixin (Vue) {\r\n Vue.prototype.uniIDHasRole = function (roleId) {\r\n const {\r\n role\r\n } = getCurrentUserInfo();\r\n return role.indexOf(roleId) > -1\r\n };\r\n Vue.prototype.uniIDHasPermission = function (permissionId) {\r\n const {\r\n permission\r\n } = getCurrentUserInfo();\r\n return this.uniIDHasRole('admin') || permission.indexOf(permissionId) > -1\r\n };\r\n Vue.prototype.uniIDTokenValid = function () {\r\n const {\r\n tokenExpired\r\n } = getCurrentUserInfo();\r\n return tokenExpired > Date.now()\r\n };\r\n}\r\n\r\nconst _toString = Object.prototype.toString;\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\r\nfunction isFn (fn) {\r\n return typeof fn === 'function'\r\n}\r\n\r\nfunction isStr (str) {\r\n return typeof str === 'string'\r\n}\r\n\r\nfunction isPlainObject (obj) {\r\n return _toString.call(obj) === '[object Object]'\r\n}\r\n\r\nfunction hasOwn (obj, key) {\r\n return hasOwnProperty.call(obj, key)\r\n}\r\n\r\nfunction noop () { }\r\n\r\n/**\r\n * Create a cached version of a pure function.\r\n */\r\nfunction cached (fn) {\r\n const cache = Object.create(null);\r\n return function cachedFn (str) {\r\n const hit = cache[str];\r\n return hit || (cache[str] = fn(str))\r\n }\r\n}\r\n\r\n/**\r\n * Camelize a hyphen-delimited string.\r\n */\r\nconst camelizeRE = /-(\\w)/g;\r\nconst camelize = cached((str) => {\r\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')\r\n});\r\n\r\nfunction sortObject (obj) {\r\n const sortObj = {};\r\n if (isPlainObject(obj)) {\r\n Object.keys(obj).sort().forEach(key => {\r\n sortObj[key] = obj[key];\r\n });\r\n }\r\n return !Object.keys(sortObj) ? obj : sortObj\r\n}\r\n\r\nconst HOOKS = [\r\n 'invoke',\r\n 'success',\r\n 'fail',\r\n 'complete',\r\n 'returnValue'\r\n];\r\n\r\nconst globalInterceptors = {};\r\nconst scopedInterceptors = {};\r\n\r\nfunction mergeHook (parentVal, childVal) {\r\n const res = childVal\r\n ? parentVal\r\n ? parentVal.concat(childVal)\r\n : Array.isArray(childVal)\r\n ? childVal : [childVal]\r\n : parentVal;\r\n return res\r\n ? dedupeHooks(res)\r\n : res\r\n}\r\n\r\nfunction dedupeHooks (hooks) {\r\n const res = [];\r\n for (let i = 0; i < hooks.length; i++) {\r\n if (res.indexOf(hooks[i]) === -1) {\r\n res.push(hooks[i]);\r\n }\r\n }\r\n return res\r\n}\r\n\r\nfunction removeHook (hooks, hook) {\r\n const index = hooks.indexOf(hook);\r\n if (index !== -1) {\r\n hooks.splice(index, 1);\r\n }\r\n}\r\n\r\nfunction mergeInterceptorHook (interceptor, option) {\r\n Object.keys(option).forEach(hook => {\r\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\r\n interceptor[hook] = mergeHook(interceptor[hook], option[hook]);\r\n }\r\n });\r\n}\r\n\r\nfunction removeInterceptorHook (interceptor, option) {\r\n if (!interceptor || !option) {\r\n return\r\n }\r\n Object.keys(option).forEach(hook => {\r\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\r\n removeHook(interceptor[hook], option[hook]);\r\n }\r\n });\r\n}\r\n\r\nfunction addInterceptor (method, option) {\r\n if (typeof method === 'string' && isPlainObject(option)) {\r\n mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), option);\r\n } else if (isPlainObject(method)) {\r\n mergeInterceptorHook(globalInterceptors, method);\r\n }\r\n}\r\n\r\nfunction removeInterceptor (method, option) {\r\n if (typeof method === 'string') {\r\n if (isPlainObject(option)) {\r\n removeInterceptorHook(scopedInterceptors[method], option);\r\n } else {\r\n delete scopedInterceptors[method];\r\n }\r\n } else if (isPlainObject(method)) {\r\n removeInterceptorHook(globalInterceptors, method);\r\n }\r\n}\r\n\r\nfunction wrapperHook (hook) {\r\n return function (data) {\r\n return hook(data) || data\r\n }\r\n}\r\n\r\nfunction isPromise (obj) {\r\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'\r\n}\r\n\r\nfunction queue (hooks, data) {\r\n let promise = false;\r\n for (let i = 0; i < hooks.length; i++) {\r\n const hook = hooks[i];\r\n if (promise) {\r\n promise = Promise.resolve(wrapperHook(hook));\r\n } else {\r\n const res = hook(data);\r\n if (isPromise(res)) {\r\n promise = Promise.resolve(res);\r\n }\r\n if (res === false) {\r\n return {\r\n then () { }\r\n }\r\n }\r\n }\r\n }\r\n return promise || {\r\n then (callback) {\r\n return callback(data)\r\n }\r\n }\r\n}\r\n\r\nfunction wrapperOptions (interceptor, options = {}) {\r\n ['success', 'fail', 'complete'].forEach(name => {\r\n if (Array.isArray(interceptor[name])) {\r\n const oldCallback = options[name];\r\n options[name] = function callbackInterceptor (res) {\r\n queue(interceptor[name], res).then((res) => {\r\n /* eslint-disable no-mixed-operators */\r\n return isFn(oldCallback) && oldCallback(res) || res\r\n });\r\n };\r\n }\r\n });\r\n return options\r\n}\r\n\r\nfunction wrapperReturnValue (method, returnValue) {\r\n const returnValueHooks = [];\r\n if (Array.isArray(globalInterceptors.returnValue)) {\r\n returnValueHooks.push(...globalInterceptors.returnValue);\r\n }\r\n const interceptor = scopedInterceptors[method];\r\n if (interceptor && Array.isArray(interceptor.returnValue)) {\r\n returnValueHooks.push(...interceptor.returnValue);\r\n }\r\n returnValueHooks.forEach(hook => {\r\n returnValue = hook(returnValue) || returnValue;\r\n });\r\n return returnValue\r\n}\r\n\r\nfunction getApiInterceptorHooks (method) {\r\n const interceptor = Object.create(null);\r\n Object.keys(globalInterceptors).forEach(hook => {\r\n if (hook !== 'returnValue') {\r\n interceptor[hook] = globalInterceptors[hook].slice();\r\n }\r\n });\r\n const scopedInterceptor = scopedInterceptors[method];\r\n if (scopedInterceptor) {\r\n Object.keys(scopedInterceptor).forEach(hook => {\r\n if (hook !== 'returnValue') {\r\n interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);\r\n }\r\n });\r\n }\r\n return interceptor\r\n}\r\n\r\nfunction invokeApi (method, api, options, ...params) {\r\n const interceptor = getApiInterceptorHooks(method);\r\n if (interceptor && Object.keys(interceptor).length) {\r\n if (Array.isArray(interceptor.invoke)) {\r\n const res = queue(interceptor.invoke, options);\r\n return res.then((options) => {\r\n return api(wrapperOptions(interceptor, options), ...params)\r\n })\r\n } else {\r\n return api(wrapperOptions(interceptor, options), ...params)\r\n }\r\n }\r\n return api(options, ...params)\r\n}\r\n\r\nconst promiseInterceptor = {\r\n returnValue (res) {\r\n if (!isPromise(res)) {\r\n return res\r\n }\r\n return new Promise((resolve, reject) => {\r\n res.then(res => {\r\n if (res[0]) {\r\n reject(res[0]);\r\n } else {\r\n resolve(res[1]);\r\n }\r\n });\r\n })\r\n }\r\n};\r\n\r\nconst SYNC_API_RE =\r\n /^\\$|Window$|WindowStyle$|sendHostEvent|sendNativeEvent|restoreGlobal|requireGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64|getLocale|setLocale|invokePushCallback|getWindowInfo|getDeviceInfo|getAppBaseInfo|getSystemSetting|getAppAuthorizeSetting/;\r\n\r\nconst CONTEXT_API_RE = /^create|Manager$/;\r\n\r\n// Context例外情况\r\nconst CONTEXT_API_RE_EXC = ['createBLEConnection'];\r\n\r\n// 同步例外情况\r\nconst ASYNC_API = ['createBLEConnection', 'createPushMessage'];\r\n\r\nconst CALLBACK_API_RE = /^on|^off/;\r\n\r\nfunction isContextApi (name) {\r\n return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1\r\n}\r\nfunction isSyncApi (name) {\r\n return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1\r\n}\r\n\r\nfunction isCallbackApi (name) {\r\n return CALLBACK_API_RE.test(name) && name !== 'onPush'\r\n}\r\n\r\nfunction handlePromise (promise) {\r\n return promise.then(data => {\r\n return [null, data]\r\n })\r\n .catch(err => [err])\r\n}\r\n\r\nfunction shouldPromise (name) {\r\n if (\r\n isContextApi(name) ||\r\n isSyncApi(name) ||\r\n isCallbackApi(name)\r\n ) {\r\n return false\r\n }\r\n return true\r\n}\r\n\r\n/* eslint-disable no-extend-native */\r\nif (!Promise.prototype.finally) {\r\n Promise.prototype.finally = function (callback) {\r\n const promise = this.constructor;\r\n return this.then(\r\n value => promise.resolve(callback()).then(() => value),\r\n reason => promise.resolve(callback()).then(() => {\r\n throw reason\r\n })\r\n )\r\n };\r\n}\r\n\r\nfunction promisify (name, api) {\r\n if (!shouldPromise(name)) {\r\n return api\r\n }\r\n return function promiseApi (options = {}, ...params) {\r\n if (isFn(options.success) || isFn(options.fail) || isFn(options.complete)) {\r\n return wrapperReturnValue(name, invokeApi(name, api, options, ...params))\r\n }\r\n return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {\r\n invokeApi(name, api, Object.assign({}, options, {\r\n success: resolve,\r\n fail: reject\r\n }), ...params);\r\n })))\r\n }\r\n}\r\n\r\nconst EPS = 1e-4;\r\nconst BASE_DEVICE_WIDTH = 750;\r\nlet isIOS = false;\r\nlet deviceWidth = 0;\r\nlet deviceDPR = 0;\r\n\r\nfunction checkDeviceWidth () {\r\n const {\r\n platform,\r\n pixelRatio,\r\n windowWidth\r\n } = wx.getSystemInfoSync(); // uni=>wx runtime 编译目标是 uni 对象,内部不允许直接使用 uni\r\n\r\n deviceWidth = windowWidth;\r\n deviceDPR = pixelRatio;\r\n isIOS = platform === 'ios';\r\n}\r\n\r\nfunction upx2px (number, newDeviceWidth) {\r\n if (deviceWidth === 0) {\r\n checkDeviceWidth();\r\n }\r\n\r\n number = Number(number);\r\n if (number === 0) {\r\n return 0\r\n }\r\n let result = (number / BASE_DEVICE_WIDTH) * (newDeviceWidth || deviceWidth);\r\n if (result < 0) {\r\n result = -result;\r\n }\r\n result = Math.floor(result + EPS);\r\n if (result === 0) {\r\n if (deviceDPR === 1 || !isIOS) {\r\n result = 1;\r\n } else {\r\n result = 0.5;\r\n }\r\n }\r\n return number < 0 ? -result : result\r\n}\r\n\r\nconst LOCALE_ZH_HANS = 'zh-Hans';\r\nconst LOCALE_ZH_HANT = 'zh-Hant';\r\nconst LOCALE_EN = 'en';\r\nconst LOCALE_FR = 'fr';\r\nconst LOCALE_ES = 'es';\r\n\r\nconst messages = {};\r\n\r\nlet locale;\r\n\r\n{\r\n locale = normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN;\r\n}\r\n\r\nfunction initI18nMessages () {\r\n if (!isEnableLocale()) {\r\n return\r\n }\r\n const localeKeys = Object.keys(__uniConfig.locales);\r\n if (localeKeys.length) {\r\n localeKeys.forEach((locale) => {\r\n const curMessages = messages[locale];\r\n const userMessages = __uniConfig.locales[locale];\r\n if (curMessages) {\r\n Object.assign(curMessages, userMessages);\r\n } else {\r\n messages[locale] = userMessages;\r\n }\r\n });\r\n }\r\n}\r\n\r\ninitI18nMessages();\r\n\r\nconst i18n = initVueI18n(\r\n locale,\r\n {}\r\n);\r\nconst t = i18n.t;\r\nconst i18nMixin = (i18n.mixin = {\r\n beforeCreate () {\r\n const unwatch = i18n.i18n.watchLocale(() => {\r\n this.$forceUpdate();\r\n });\r\n this.$once('hook:beforeDestroy', function () {\r\n unwatch();\r\n });\r\n },\r\n methods: {\r\n $$t (key, values) {\r\n return t(key, values)\r\n }\r\n }\r\n});\r\nconst setLocale = i18n.setLocale;\r\nconst getLocale = i18n.getLocale;\r\n\r\nfunction initAppLocale (Vue, appVm, locale) {\r\n const state = Vue.observable({\r\n locale: locale || i18n.getLocale()\r\n });\r\n const localeWatchers = [];\r\n appVm.$watchLocale = fn => {\r\n localeWatchers.push(fn);\r\n };\r\n Object.defineProperty(appVm, '$locale', {\r\n get () {\r\n return state.locale\r\n },\r\n set (v) {\r\n state.locale = v;\r\n localeWatchers.forEach(watch => watch(v));\r\n }\r\n });\r\n}\r\n\r\nfunction isEnableLocale () {\r\n return typeof __uniConfig !== 'undefined' && __uniConfig.locales && !!Object.keys(__uniConfig.locales).length\r\n}\r\n\r\nfunction include (str, parts) {\r\n return !!parts.find((part) => str.indexOf(part) !== -1)\r\n}\r\n\r\nfunction startsWith (str, parts) {\r\n return parts.find((part) => str.indexOf(part) === 0)\r\n}\r\n\r\nfunction normalizeLocale (locale, messages) {\r\n if (!locale) {\r\n return\r\n }\r\n locale = locale.trim().replace(/_/g, '-');\r\n if (messages && messages[locale]) {\r\n return locale\r\n }\r\n locale = locale.toLowerCase();\r\n if (locale === 'chinese') {\r\n // 支付宝\r\n return LOCALE_ZH_HANS\r\n }\r\n if (locale.indexOf('zh') === 0) {\r\n if (locale.indexOf('-hans') > -1) {\r\n return LOCALE_ZH_HANS\r\n }\r\n if (locale.indexOf('-hant') > -1) {\r\n return LOCALE_ZH_HANT\r\n }\r\n if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {\r\n return LOCALE_ZH_HANT\r\n }\r\n return LOCALE_ZH_HANS\r\n }\r\n const lang = startsWith(locale, [LOCALE_EN, LOCALE_FR, LOCALE_ES]);\r\n if (lang) {\r\n return lang\r\n }\r\n}\r\n// export function initI18n() {\r\n// const localeKeys = Object.keys(__uniConfig.locales || {})\r\n// if (localeKeys.length) {\r\n// localeKeys.forEach((locale) =>\r\n// i18n.add(locale, __uniConfig.locales[locale])\r\n// )\r\n// }\r\n// }\r\n\r\nfunction getLocale$1 () {\r\n // 优先使用 $locale\r\n const app = getApp({\r\n allowDefault: true\r\n });\r\n if (app && app.$vm) {\r\n return app.$vm.$locale\r\n }\r\n return normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN\r\n}\r\n\r\nfunction setLocale$1 (locale) {\r\n const app = getApp();\r\n if (!app) {\r\n return false\r\n }\r\n const oldLocale = app.$vm.$locale;\r\n if (oldLocale !== locale) {\r\n app.$vm.$locale = locale;\r\n onLocaleChangeCallbacks.forEach((fn) => fn({\r\n locale\r\n }));\r\n return true\r\n }\r\n return false\r\n}\r\n\r\nconst onLocaleChangeCallbacks = [];\r\nfunction onLocaleChange (fn) {\r\n if (onLocaleChangeCallbacks.indexOf(fn) === -1) {\r\n onLocaleChangeCallbacks.push(fn);\r\n }\r\n}\r\n\r\nif (typeof global !== 'undefined') {\r\n global.getLocale = getLocale$1;\r\n}\r\n\r\nconst interceptors = {\r\n promiseInterceptor\r\n};\r\n\r\nvar baseApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n upx2px: upx2px,\r\n getLocale: getLocale$1,\r\n setLocale: setLocale$1,\r\n onLocaleChange: onLocaleChange,\r\n addInterceptor: addInterceptor,\r\n removeInterceptor: removeInterceptor,\r\n interceptors: interceptors\r\n});\r\n\r\nfunction findExistsPageIndex (url) {\r\n const pages = getCurrentPages();\r\n let len = pages.length;\r\n while (len--) {\r\n const page = pages[len];\r\n if (page.$page && page.$page.fullPath === url) {\r\n return len\r\n }\r\n }\r\n return -1\r\n}\r\n\r\nvar redirectTo = {\r\n name (fromArgs) {\r\n if (fromArgs.exists === 'back' && fromArgs.delta) {\r\n return 'navigateBack'\r\n }\r\n return 'redirectTo'\r\n },\r\n args (fromArgs) {\r\n if (fromArgs.exists === 'back' && fromArgs.url) {\r\n const existsPageIndex = findExistsPageIndex(fromArgs.url);\r\n if (existsPageIndex !== -1) {\r\n const delta = getCurrentPages().length - 1 - existsPageIndex;\r\n if (delta > 0) {\r\n fromArgs.delta = delta;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nvar previewImage = {\r\n args (fromArgs) {\r\n let currentIndex = parseInt(fromArgs.current);\r\n if (isNaN(currentIndex)) {\r\n return\r\n }\r\n const urls = fromArgs.urls;\r\n if (!Array.isArray(urls)) {\r\n return\r\n }\r\n const len = urls.length;\r\n if (!len) {\r\n return\r\n }\r\n if (currentIndex < 0) {\r\n currentIndex = 0;\r\n } else if (currentIndex >= len) {\r\n currentIndex = len - 1;\r\n }\r\n if (currentIndex > 0) {\r\n fromArgs.current = urls[currentIndex];\r\n fromArgs.urls = urls.filter(\r\n (item, index) => index < currentIndex ? item !== urls[currentIndex] : true\r\n );\r\n } else {\r\n fromArgs.current = urls[0];\r\n }\r\n return {\r\n indicator: false,\r\n loop: false\r\n }\r\n }\r\n};\r\n\r\nconst UUID_KEY = '__DC_STAT_UUID';\r\nlet deviceId;\r\nfunction useDeviceId (result) {\r\n deviceId = deviceId || wx.getStorageSync(UUID_KEY);\r\n if (!deviceId) {\r\n deviceId = Date.now() + '' + Math.floor(Math.random() * 1e7);\r\n wx.setStorage({\r\n key: UUID_KEY,\r\n data: deviceId\r\n });\r\n }\r\n result.deviceId = deviceId;\r\n}\r\n\r\nfunction addSafeAreaInsets (result) {\r\n if (result.safeArea) {\r\n const safeArea = result.safeArea;\r\n result.safeAreaInsets = {\r\n top: safeArea.top,\r\n left: safeArea.left,\r\n right: result.windowWidth - safeArea.right,\r\n bottom: result.screenHeight - safeArea.bottom\r\n };\r\n }\r\n}\r\n\r\nfunction populateParameters (result) {\r\n const {\r\n brand = '', model = '', system = '',\r\n language = '', theme, version,\r\n platform, fontSizeSetting,\r\n SDKVersion, pixelRatio, deviceOrientation\r\n } = result;\r\n // const isQuickApp = \"mp-weixin\".indexOf('quickapp-webview') !== -1\r\n\r\n // osName osVersion\r\n let osName = '';\r\n let osVersion = '';\r\n {\r\n osName = system.split(' ')[0] || '';\r\n osVersion = system.split(' ')[1] || '';\r\n }\r\n let hostVersion = version;\r\n\r\n // deviceType\r\n const deviceType = getGetDeviceType(result, model);\r\n\r\n // deviceModel\r\n const deviceBrand = getDeviceBrand(brand);\r\n\r\n // hostName\r\n const _hostName = getHostName(result);\r\n\r\n // deviceOrientation\r\n let _deviceOrientation = deviceOrientation; // 仅 微信 百度 支持\r\n\r\n // devicePixelRatio\r\n let _devicePixelRatio = pixelRatio;\r\n\r\n // SDKVersion\r\n let _SDKVersion = SDKVersion;\r\n\r\n // hostLanguage\r\n const hostLanguage = language.replace(/_/g, '-');\r\n\r\n // wx.getAccountInfoSync\r\n\r\n const parameters = {\r\n appId: process.env.UNI_APP_ID,\r\n appName: process.env.UNI_APP_NAME,\r\n appVersion: process.env.UNI_APP_VERSION_NAME,\r\n appVersionCode: process.env.UNI_APP_VERSION_CODE,\r\n appLanguage: getAppLanguage(hostLanguage),\r\n uniCompileVersion: process.env.UNI_COMPILER_VERSION,\r\n uniRuntimeVersion: process.env.UNI_COMPILER_VERSION,\r\n uniPlatform: process.env.UNI_SUB_PLATFORM || process.env.UNI_PLATFORM,\r\n deviceBrand,\r\n deviceModel: model,\r\n deviceType,\r\n devicePixelRatio: _devicePixelRatio,\r\n deviceOrientation: _deviceOrientation,\r\n osName: osName.toLocaleLowerCase(),\r\n osVersion,\r\n hostTheme: theme,\r\n hostVersion,\r\n hostLanguage,\r\n hostName: _hostName,\r\n hostSDKVersion: _SDKVersion,\r\n hostFontSizeSetting: fontSizeSetting,\r\n windowTop: 0,\r\n windowBottom: 0,\r\n // TODO\r\n osLanguage: undefined,\r\n osTheme: undefined,\r\n ua: undefined,\r\n hostPackageName: undefined,\r\n browserName: undefined,\r\n browserVersion: undefined\r\n };\r\n\r\n Object.assign(result, parameters);\r\n}\r\n\r\nfunction getGetDeviceType (result, model) {\r\n let deviceType = result.deviceType || 'phone';\r\n {\r\n const deviceTypeMaps = {\r\n ipad: 'pad',\r\n windows: 'pc',\r\n mac: 'pc'\r\n };\r\n const deviceTypeMapsKeys = Object.keys(deviceTypeMaps);\r\n const _model = model.toLocaleLowerCase();\r\n for (let index = 0; index < deviceTypeMapsKeys.length; index++) {\r\n const _m = deviceTypeMapsKeys[index];\r\n if (_model.indexOf(_m) !== -1) {\r\n deviceType = deviceTypeMaps[_m];\r\n break\r\n }\r\n }\r\n }\r\n return deviceType\r\n}\r\n\r\nfunction getDeviceBrand (brand) {\r\n let deviceBrand = brand;\r\n if (deviceBrand) {\r\n deviceBrand = brand.toLocaleLowerCase();\r\n }\r\n return deviceBrand\r\n}\r\n\r\nfunction getAppLanguage (defaultLanguage) {\r\n return getLocale$1\r\n ? getLocale$1()\r\n : defaultLanguage\r\n}\r\n\r\nfunction getHostName (result) {\r\n const _platform = 'WeChat' ;\r\n let _hostName = result.hostName || _platform; // mp-jd\r\n {\r\n if (result.environment) {\r\n _hostName = result.environment;\r\n } else if (result.host && result.host.env) {\r\n _hostName = result.host.env;\r\n }\r\n }\r\n\r\n return _hostName\r\n}\r\n\r\nvar getSystemInfo = {\r\n returnValue: function (result) {\r\n useDeviceId(result);\r\n addSafeAreaInsets(result);\r\n populateParameters(result);\r\n }\r\n};\r\n\r\nvar showActionSheet = {\r\n args (fromArgs) {\r\n if (typeof fromArgs === 'object') {\r\n fromArgs.alertText = fromArgs.title;\r\n }\r\n }\r\n};\r\n\r\nvar getAppBaseInfo = {\r\n returnValue: function (result) {\r\n const { version, language, SDKVersion, theme } = result;\r\n\r\n const _hostName = getHostName(result);\r\n\r\n const hostLanguage = language.replace('_', '-');\r\n\r\n result = sortObject(Object.assign(result, {\r\n appId: process.env.UNI_APP_ID,\r\n appName: process.env.UNI_APP_NAME,\r\n appVersion: process.env.UNI_APP_VERSION_NAME,\r\n appVersionCode: process.env.UNI_APP_VERSION_CODE,\r\n appLanguage: getAppLanguage(hostLanguage),\r\n hostVersion: version,\r\n hostLanguage,\r\n hostName: _hostName,\r\n hostSDKVersion: SDKVersion,\r\n hostTheme: theme\r\n }));\r\n }\r\n};\r\n\r\nvar getDeviceInfo = {\r\n returnValue: function (result) {\r\n const { brand, model } = result;\r\n const deviceType = getGetDeviceType(result, model);\r\n const deviceBrand = getDeviceBrand(brand);\r\n useDeviceId(result);\r\n\r\n result = sortObject(Object.assign(result, {\r\n deviceType,\r\n deviceBrand,\r\n deviceModel: model\r\n }));\r\n }\r\n};\r\n\r\nvar getWindowInfo = {\r\n returnValue: function (result) {\r\n addSafeAreaInsets(result);\r\n\r\n result = sortObject(Object.assign(result, {\r\n windowTop: 0,\r\n windowBottom: 0\r\n }));\r\n }\r\n};\r\n\r\nvar getAppAuthorizeSetting = {\r\n returnValue: function (result) {\r\n const { locationReducedAccuracy } = result;\r\n\r\n result.locationAccuracy = 'unsupported';\r\n if (locationReducedAccuracy === true) {\r\n result.locationAccuracy = 'reduced';\r\n } else if (locationReducedAccuracy === false) {\r\n result.locationAccuracy = 'full';\r\n }\r\n }\r\n};\r\n\r\n// import navigateTo from 'uni-helpers/navigate-to'\r\n\r\nconst protocols = {\r\n redirectTo,\r\n // navigateTo, // 由于在微信开发者工具的页面参数,会显示__id__参数,因此暂时关闭mp-weixin对于navigateTo的AOP\r\n previewImage,\r\n getSystemInfo,\r\n getSystemInfoSync: getSystemInfo,\r\n showActionSheet,\r\n getAppBaseInfo,\r\n getDeviceInfo,\r\n getWindowInfo,\r\n getAppAuthorizeSetting\r\n};\r\nconst todos = [\r\n 'vibrate',\r\n 'preloadPage',\r\n 'unPreloadPage',\r\n 'loadSubPackage'\r\n];\r\nconst canIUses = [];\r\n\r\nconst CALLBACKS = ['success', 'fail', 'cancel', 'complete'];\r\n\r\nfunction processCallback (methodName, method, returnValue) {\r\n return function (res) {\r\n return method(processReturnValue(methodName, res, returnValue))\r\n }\r\n}\r\n\r\nfunction processArgs (methodName, fromArgs, argsOption = {}, returnValue = {}, keepFromArgs = false) {\r\n if (isPlainObject(fromArgs)) { // 一般 api 的参数解析\r\n const toArgs = keepFromArgs === true ? fromArgs : {}; // returnValue 为 false 时,说明是格式化返回值,直接在返回值对象上修改赋值\r\n if (isFn(argsOption)) {\r\n argsOption = argsOption(fromArgs, toArgs) || {};\r\n }\r\n for (const key in fromArgs) {\r\n if (hasOwn(argsOption, key)) {\r\n let keyOption = argsOption[key];\r\n if (isFn(keyOption)) {\r\n keyOption = keyOption(fromArgs[key], fromArgs, toArgs);\r\n }\r\n if (!keyOption) { // 不支持的参数\r\n console.warn(`The '${methodName}' method of platform '微信小程序' does not support option '${key}'`);\r\n } else if (isStr(keyOption)) { // 重写参数 key\r\n toArgs[keyOption] = fromArgs[key];\r\n } else if (isPlainObject(keyOption)) { // {name:newName,value:value}可重新指定参数 key:value\r\n toArgs[keyOption.name ? keyOption.name : key] = keyOption.value;\r\n }\r\n } else if (CALLBACKS.indexOf(key) !== -1) {\r\n if (isFn(fromArgs[key])) {\r\n toArgs[key] = processCallback(methodName, fromArgs[key], returnValue);\r\n }\r\n } else {\r\n if (!keepFromArgs) {\r\n toArgs[key] = fromArgs[key];\r\n }\r\n }\r\n }\r\n return toArgs\r\n } else if (isFn(fromArgs)) {\r\n fromArgs = processCallback(methodName, fromArgs, returnValue);\r\n }\r\n return fromArgs\r\n}\r\n\r\nfunction processReturnValue (methodName, res, returnValue, keepReturnValue = false) {\r\n if (isFn(protocols.returnValue)) { // 处理通用 returnValue\r\n res = protocols.returnValue(methodName, res);\r\n }\r\n return processArgs(methodName, res, returnValue, {}, keepReturnValue)\r\n}\r\n\r\nfunction wrapper (methodName, method) {\r\n if (hasOwn(protocols, methodName)) {\r\n const protocol = protocols[methodName];\r\n if (!protocol) { // 暂不支持的 api\r\n return function () {\r\n console.error(`Platform '微信小程序' does not support '${methodName}'.`);\r\n }\r\n }\r\n return function (arg1, arg2) { // 目前 api 最多两个参数\r\n let options = protocol;\r\n if (isFn(protocol)) {\r\n options = protocol(arg1);\r\n }\r\n\r\n arg1 = processArgs(methodName, arg1, options.args, options.returnValue);\r\n\r\n const args = [arg1];\r\n if (typeof arg2 !== 'undefined') {\r\n args.push(arg2);\r\n }\r\n if (isFn(options.name)) {\r\n methodName = options.name(arg1);\r\n } else if (isStr(options.name)) {\r\n methodName = options.name;\r\n }\r\n const returnValue = wx[methodName].apply(wx, args);\r\n if (isSyncApi(methodName)) { // 同步 api\r\n return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName))\r\n }\r\n return returnValue\r\n }\r\n }\r\n return method\r\n}\r\n\r\nconst todoApis = Object.create(null);\r\n\r\nconst TODOS = [\r\n 'onTabBarMidButtonTap',\r\n 'subscribePush',\r\n 'unsubscribePush',\r\n 'onPush',\r\n 'offPush',\r\n 'share'\r\n];\r\n\r\nfunction createTodoApi (name) {\r\n return function todoApi ({\r\n fail,\r\n complete\r\n }) {\r\n const res = {\r\n errMsg: `${name}:fail method '${name}' not supported`\r\n };\r\n isFn(fail) && fail(res);\r\n isFn(complete) && complete(res);\r\n }\r\n}\r\n\r\nTODOS.forEach(function (name) {\r\n todoApis[name] = createTodoApi(name);\r\n});\r\n\r\nvar providers = {\r\n oauth: ['weixin'],\r\n share: ['weixin'],\r\n payment: ['wxpay'],\r\n push: ['weixin']\r\n};\r\n\r\nfunction getProvider ({\r\n service,\r\n success,\r\n fail,\r\n complete\r\n}) {\r\n let res = false;\r\n if (providers[service]) {\r\n res = {\r\n errMsg: 'getProvider:ok',\r\n service,\r\n provider: providers[service]\r\n };\r\n isFn(success) && success(res);\r\n } else {\r\n res = {\r\n errMsg: 'getProvider:fail service not found'\r\n };\r\n isFn(fail) && fail(res);\r\n }\r\n isFn(complete) && complete(res);\r\n}\r\n\r\nvar extraApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n getProvider: getProvider\r\n});\r\n\r\nconst getEmitter = (function () {\r\n let Emitter;\r\n return function getUniEmitter () {\r\n if (!Emitter) {\r\n Emitter = new Vue();\r\n }\r\n return Emitter\r\n }\r\n})();\r\n\r\nfunction apply (ctx, method, args) {\r\n return ctx[method].apply(ctx, args)\r\n}\r\n\r\nfunction $on () {\r\n return apply(getEmitter(), '$on', [...arguments])\r\n}\r\nfunction $off () {\r\n return apply(getEmitter(), '$off', [...arguments])\r\n}\r\nfunction $once () {\r\n return apply(getEmitter(), '$once', [...arguments])\r\n}\r\nfunction $emit () {\r\n return apply(getEmitter(), '$emit', [...arguments])\r\n}\r\n\r\nvar eventApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n $on: $on,\r\n $off: $off,\r\n $once: $once,\r\n $emit: $emit\r\n});\r\n\r\n/**\r\n * 框架内 try-catch\r\n */\r\n/**\r\n * 开发者 try-catch\r\n */\r\nfunction tryCatch (fn) {\r\n return function () {\r\n try {\r\n return fn.apply(fn, arguments)\r\n } catch (e) {\r\n // TODO\r\n console.error(e);\r\n }\r\n }\r\n}\r\n\r\nfunction getApiCallbacks (params) {\r\n const apiCallbacks = {};\r\n for (const name in params) {\r\n const param = params[name];\r\n if (isFn(param)) {\r\n apiCallbacks[name] = tryCatch(param);\r\n delete params[name];\r\n }\r\n }\r\n return apiCallbacks\r\n}\r\n\r\nlet cid;\r\nlet cidErrMsg;\r\nlet enabled;\r\n\r\nfunction normalizePushMessage (message) {\r\n try {\r\n return JSON.parse(message)\r\n } catch (e) {}\r\n return message\r\n}\r\n\r\nfunction invokePushCallback (\r\n args\r\n) {\r\n if (args.type === 'enabled') {\r\n enabled = true;\r\n } else if (args.type === 'clientId') {\r\n cid = args.cid;\r\n cidErrMsg = args.errMsg;\r\n invokeGetPushCidCallbacks(cid, args.errMsg);\r\n } else if (args.type === 'pushMsg') {\r\n const message = {\r\n type: 'receive',\r\n data: normalizePushMessage(args.message)\r\n };\r\n for (let i = 0; i < onPushMessageCallbacks.length; i++) {\r\n const callback = onPushMessageCallbacks[i];\r\n callback(message);\r\n // 该消息已被阻止\r\n if (message.stopped) {\r\n break\r\n }\r\n }\r\n } else if (args.type === 'click') {\r\n onPushMessageCallbacks.forEach((callback) => {\r\n callback({\r\n type: 'click',\r\n data: normalizePushMessage(args.message)\r\n });\r\n });\r\n }\r\n}\r\n\r\nconst getPushCidCallbacks = [];\r\n\r\nfunction invokeGetPushCidCallbacks (cid, errMsg) {\r\n getPushCidCallbacks.forEach((callback) => {\r\n callback(cid, errMsg);\r\n });\r\n getPushCidCallbacks.length = 0;\r\n}\r\n\r\nfunction getPushClientId (args) {\r\n if (!isPlainObject(args)) {\r\n args = {};\r\n }\r\n const {\r\n success,\r\n fail,\r\n complete\r\n } = getApiCallbacks(args);\r\n const hasSuccess = isFn(success);\r\n const hasFail = isFn(fail);\r\n const hasComplete = isFn(complete);\r\n Promise.resolve().then(() => {\r\n if (typeof enabled === 'undefined') {\r\n enabled = false;\r\n cid = '';\r\n cidErrMsg = 'unipush is not enabled';\r\n }\r\n getPushCidCallbacks.push((cid, errMsg) => {\r\n let res;\r\n if (cid) {\r\n res = {\r\n errMsg: 'getPushClientId:ok',\r\n cid\r\n };\r\n hasSuccess && success(res);\r\n } else {\r\n res = {\r\n errMsg: 'getPushClientId:fail' + (errMsg ? ' ' + errMsg : '')\r\n };\r\n hasFail && fail(res);\r\n }\r\n hasComplete && complete(res);\r\n });\r\n if (typeof cid !== 'undefined') {\r\n invokeGetPushCidCallbacks(cid, cidErrMsg);\r\n }\r\n });\r\n}\r\n\r\nconst onPushMessageCallbacks = [];\r\n// 不使用 defineOnApi 实现,是因为 defineOnApi 依赖 UniServiceJSBridge ,该对象目前在小程序上未提供,故简单实现\r\nconst onPushMessage = (fn) => {\r\n if (onPushMessageCallbacks.indexOf(fn) === -1) {\r\n onPushMessageCallbacks.push(fn);\r\n }\r\n};\r\n\r\nconst offPushMessage = (fn) => {\r\n if (!fn) {\r\n onPushMessageCallbacks.length = 0;\r\n } else {\r\n const index = onPushMessageCallbacks.indexOf(fn);\r\n if (index > -1) {\r\n onPushMessageCallbacks.splice(index, 1);\r\n }\r\n }\r\n};\r\n\r\nvar api = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n getPushClientId: getPushClientId,\r\n onPushMessage: onPushMessage,\r\n offPushMessage: offPushMessage,\r\n invokePushCallback: invokePushCallback\r\n});\r\n\r\nconst MPPage = Page;\r\nconst MPComponent = Component;\r\n\r\nconst customizeRE = /:/g;\r\n\r\nconst customize = cached((str) => {\r\n return camelize(str.replace(customizeRE, '-'))\r\n});\r\n\r\nfunction initTriggerEvent (mpInstance) {\r\n const oldTriggerEvent = mpInstance.triggerEvent;\r\n const newTriggerEvent = function (event, ...args) {\r\n return oldTriggerEvent.apply(mpInstance, [customize(event), ...args])\r\n };\r\n try {\r\n // 京东小程序 triggerEvent 为只读\r\n mpInstance.triggerEvent = newTriggerEvent;\r\n } catch (error) {\r\n mpInstance._triggerEvent = newTriggerEvent;\r\n }\r\n}\r\n\r\nfunction initHook (name, options, isComponent) {\r\n const oldHook = options[name];\r\n if (!oldHook) {\r\n options[name] = function () {\r\n initTriggerEvent(this);\r\n };\r\n } else {\r\n options[name] = function (...args) {\r\n initTriggerEvent(this);\r\n return oldHook.apply(this, args)\r\n };\r\n }\r\n}\r\nif (!MPPage.__$wrappered) {\r\n MPPage.__$wrappered = true;\r\n Page = function (options = {}) {\r\n initHook('onLoad', options);\r\n return MPPage(options)\r\n };\r\n Page.after = MPPage.after;\r\n\r\n Component = function (options = {}) {\r\n initHook('created', options);\r\n return MPComponent(options)\r\n };\r\n}\r\n\r\nconst PAGE_EVENT_HOOKS = [\r\n 'onPullDownRefresh',\r\n 'onReachBottom',\r\n 'onAddToFavorites',\r\n 'onShareTimeline',\r\n 'onShareAppMessage',\r\n 'onPageScroll',\r\n 'onResize',\r\n 'onTabItemTap'\r\n];\r\n\r\nfunction initMocks (vm, mocks) {\r\n const mpInstance = vm.$mp[vm.mpType];\r\n mocks.forEach(mock => {\r\n if (hasOwn(mpInstance, mock)) {\r\n vm[mock] = mpInstance[mock];\r\n }\r\n });\r\n}\r\n\r\nfunction hasHook (hook, vueOptions) {\r\n if (!vueOptions) {\r\n return true\r\n }\r\n\r\n if (Vue.options && Array.isArray(Vue.options[hook])) {\r\n return true\r\n }\r\n\r\n vueOptions = vueOptions.default || vueOptions;\r\n\r\n if (isFn(vueOptions)) {\r\n if (isFn(vueOptions.extendOptions[hook])) {\r\n return true\r\n }\r\n if (vueOptions.super &&\r\n vueOptions.super.options &&\r\n Array.isArray(vueOptions.super.options[hook])) {\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n if (isFn(vueOptions[hook])) {\r\n return true\r\n }\r\n const mixins = vueOptions.mixins;\r\n if (Array.isArray(mixins)) {\r\n return !!mixins.find(mixin => hasHook(hook, mixin))\r\n }\r\n}\r\n\r\nfunction initHooks (mpOptions, hooks, vueOptions) {\r\n hooks.forEach(hook => {\r\n if (hasHook(hook, vueOptions)) {\r\n mpOptions[hook] = function (args) {\r\n return this.$vm && this.$vm.__call_hook(hook, args)\r\n };\r\n }\r\n });\r\n}\r\n\r\nfunction initVueComponent (Vue, vueOptions) {\r\n vueOptions = vueOptions.default || vueOptions;\r\n let VueComponent;\r\n if (isFn(vueOptions)) {\r\n VueComponent = vueOptions;\r\n } else {\r\n VueComponent = Vue.extend(vueOptions);\r\n }\r\n vueOptions = VueComponent.options;\r\n return [VueComponent, vueOptions]\r\n}\r\n\r\nfunction initSlots (vm, vueSlots) {\r\n if (Array.isArray(vueSlots) && vueSlots.length) {\r\n const $slots = Object.create(null);\r\n vueSlots.forEach(slotName => {\r\n $slots[slotName] = true;\r\n });\r\n vm.$scopedSlots = vm.$slots = $slots;\r\n }\r\n}\r\n\r\nfunction initVueIds (vueIds, mpInstance) {\r\n vueIds = (vueIds || '').split(',');\r\n const len = vueIds.length;\r\n\r\n if (len === 1) {\r\n mpInstance._$vueId = vueIds[0];\r\n } else if (len === 2) {\r\n mpInstance._$vueId = vueIds[0];\r\n mpInstance._$vuePid = vueIds[1];\r\n }\r\n}\r\n\r\nfunction initData (vueOptions, context) {\r\n let data = vueOptions.data || {};\r\n const methods = vueOptions.methods || {};\r\n\r\n if (typeof data === 'function') {\r\n try {\r\n data = data.call(context); // 支持 Vue.prototype 上挂的数据\r\n } catch (e) {\r\n if (process.env.VUE_APP_DEBUG) {\r\n console.warn('根据 Vue 的 data 函数初始化小程序 data 失败,请尽量确保 data 函数中不访问 vm 对象,否则可能影响首次数据渲染速度。', data);\r\n }\r\n }\r\n } else {\r\n try {\r\n // 对 data 格式化\r\n data = JSON.parse(JSON.stringify(data));\r\n } catch (e) {}\r\n }\r\n\r\n if (!isPlainObject(data)) {\r\n data = {};\r\n }\r\n\r\n Object.keys(methods).forEach(methodName => {\r\n if (context.__lifecycle_hooks__.indexOf(methodName) === -1 && !hasOwn(data, methodName)) {\r\n data[methodName] = methods[methodName];\r\n }\r\n });\r\n\r\n return data\r\n}\r\n\r\nconst PROP_TYPES = [String, Number, Boolean, Object, Array, null];\r\n\r\nfunction createObserver (name) {\r\n return function observer (newVal, oldVal) {\r\n if (this.$vm) {\r\n this.$vm[name] = newVal; // 为了触发其他非 render watcher\r\n }\r\n }\r\n}\r\n\r\nfunction initBehaviors (vueOptions, initBehavior) {\r\n const vueBehaviors = vueOptions.behaviors;\r\n const vueExtends = vueOptions.extends;\r\n const vueMixins = vueOptions.mixins;\r\n\r\n let vueProps = vueOptions.props;\r\n\r\n if (!vueProps) {\r\n vueOptions.props = vueProps = [];\r\n }\r\n\r\n const behaviors = [];\r\n if (Array.isArray(vueBehaviors)) {\r\n vueBehaviors.forEach(behavior => {\r\n behaviors.push(behavior.replace('uni://', `${\"wx\"}://`));\r\n if (behavior === 'uni://form-field') {\r\n if (Array.isArray(vueProps)) {\r\n vueProps.push('name');\r\n vueProps.push('value');\r\n } else {\r\n vueProps.name = {\r\n type: String,\r\n default: ''\r\n };\r\n vueProps.value = {\r\n type: [String, Number, Boolean, Array, Object, Date],\r\n default: ''\r\n };\r\n }\r\n }\r\n });\r\n }\r\n if (isPlainObject(vueExtends) && vueExtends.props) {\r\n behaviors.push(\r\n initBehavior({\r\n properties: initProperties(vueExtends.props, true)\r\n })\r\n );\r\n }\r\n if (Array.isArray(vueMixins)) {\r\n vueMixins.forEach(vueMixin => {\r\n if (isPlainObject(vueMixin) && vueMixin.props) {\r\n behaviors.push(\r\n initBehavior({\r\n properties: initProperties(vueMixin.props, true)\r\n })\r\n );\r\n }\r\n });\r\n }\r\n return behaviors\r\n}\r\n\r\nfunction parsePropType (key, type, defaultValue, file) {\r\n // [String]=>String\r\n if (Array.isArray(type) && type.length === 1) {\r\n return type[0]\r\n }\r\n return type\r\n}\r\n\r\nfunction initProperties (props, isBehavior = false, file = '', options) {\r\n const properties = {};\r\n if (!isBehavior) {\r\n properties.vueId = {\r\n type: String,\r\n value: ''\r\n };\r\n {\r\n if ( options.virtualHost) {\r\n properties.virtualHostStyle = {\r\n type: null,\r\n value: ''\r\n };\r\n properties.virtualHostClass = {\r\n type: null,\r\n value: ''\r\n };\r\n }\r\n }\r\n // scopedSlotsCompiler auto\r\n properties.scopedSlotsCompiler = {\r\n type: String,\r\n value: ''\r\n };\r\n properties.vueSlots = { // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots\r\n type: null,\r\n value: [],\r\n observer: function (newVal, oldVal) {\r\n const $slots = Object.create(null);\r\n newVal.forEach(slotName => {\r\n $slots[slotName] = true;\r\n });\r\n this.setData({\r\n $slots\r\n });\r\n }\r\n };\r\n }\r\n if (Array.isArray(props)) { // ['title']\r\n props.forEach(key => {\r\n properties[key] = {\r\n type: null,\r\n observer: createObserver(key)\r\n };\r\n });\r\n } else if (isPlainObject(props)) { // {title:{type:String,default:''},content:String}\r\n Object.keys(props).forEach(key => {\r\n const opts = props[key];\r\n if (isPlainObject(opts)) { // title:{type:String,default:''}\r\n let value = opts.default;\r\n if (isFn(value)) {\r\n value = value();\r\n }\r\n\r\n opts.type = parsePropType(key, opts.type);\r\n\r\n properties[key] = {\r\n type: PROP_TYPES.indexOf(opts.type) !== -1 ? opts.type : null,\r\n value,\r\n observer: createObserver(key)\r\n };\r\n } else { // content:String\r\n const type = parsePropType(key, opts);\r\n properties[key] = {\r\n type: PROP_TYPES.indexOf(type) !== -1 ? type : null,\r\n observer: createObserver(key)\r\n };\r\n }\r\n });\r\n }\r\n return properties\r\n}\r\n\r\nfunction wrapper$1 (event) {\r\n // TODO 又得兼容 mpvue 的 mp 对象\r\n try {\r\n event.mp = JSON.parse(JSON.stringify(event));\r\n } catch (e) {}\r\n\r\n event.stopPropagation = noop;\r\n event.preventDefault = noop;\r\n\r\n event.target = event.target || {};\r\n\r\n if (!hasOwn(event, 'detail')) {\r\n event.detail = {};\r\n }\r\n\r\n if (hasOwn(event, 'markerId')) {\r\n event.detail = typeof event.detail === 'object' ? event.detail : {};\r\n event.detail.markerId = event.markerId;\r\n }\r\n\r\n if (isPlainObject(event.detail)) {\r\n event.target = Object.assign({}, event.target, event.detail);\r\n }\r\n\r\n return event\r\n}\r\n\r\nfunction getExtraValue (vm, dataPathsArray) {\r\n let context = vm;\r\n dataPathsArray.forEach(dataPathArray => {\r\n const dataPath = dataPathArray[0];\r\n const value = dataPathArray[2];\r\n if (dataPath || typeof value !== 'undefined') { // ['','',index,'disable']\r\n const propPath = dataPathArray[1];\r\n const valuePath = dataPathArray[3];\r\n\r\n let vFor;\r\n if (Number.isInteger(dataPath)) {\r\n vFor = dataPath;\r\n } else if (!dataPath) {\r\n vFor = context;\r\n } else if (typeof dataPath === 'string' && dataPath) {\r\n if (dataPath.indexOf('#s#') === 0) {\r\n vFor = dataPath.substr(3);\r\n } else {\r\n vFor = vm.__get_value(dataPath, context);\r\n }\r\n }\r\n\r\n if (Number.isInteger(vFor)) {\r\n context = value;\r\n } else if (!propPath) {\r\n context = vFor[value];\r\n } else {\r\n if (Array.isArray(vFor)) {\r\n context = vFor.find(vForItem => {\r\n return vm.__get_value(propPath, vForItem) === value\r\n });\r\n } else if (isPlainObject(vFor)) {\r\n context = Object.keys(vFor).find(vForKey => {\r\n return vm.__get_value(propPath, vFor[vForKey]) === value\r\n });\r\n } else {\r\n console.error('v-for 暂不支持循环数据:', vFor);\r\n }\r\n }\r\n\r\n if (valuePath) {\r\n context = vm.__get_value(valuePath, context);\r\n }\r\n }\r\n });\r\n return context\r\n}\r\n\r\nfunction processEventExtra (vm, extra, event) {\r\n const extraObj = {};\r\n\r\n if (Array.isArray(extra) && extra.length) {\r\n /**\r\n *[\r\n * ['data.items', 'data.id', item.data.id],\r\n * ['metas', 'id', meta.id]\r\n *],\r\n *[\r\n * ['data.items', 'data.id', item.data.id],\r\n * ['metas', 'id', meta.id]\r\n *],\r\n *'test'\r\n */\r\n extra.forEach((dataPath, index) => {\r\n if (typeof dataPath === 'string') {\r\n if (!dataPath) { // model,prop.sync\r\n extraObj['$' + index] = vm;\r\n } else {\r\n if (dataPath === '$event') { // $event\r\n extraObj['$' + index] = event;\r\n } else if (dataPath === 'arguments') {\r\n if (event.detail && event.detail.__args__) {\r\n extraObj['$' + index] = event.detail.__args__;\r\n } else {\r\n extraObj['$' + index] = [event];\r\n }\r\n } else if (dataPath.indexOf('$event.') === 0) { // $event.target.value\r\n extraObj['$' + index] = vm.__get_value(dataPath.replace('$event.', ''), event);\r\n } else {\r\n extraObj['$' + index] = vm.__get_value(dataPath);\r\n }\r\n }\r\n } else {\r\n extraObj['$' + index] = getExtraValue(vm, dataPath);\r\n }\r\n });\r\n }\r\n\r\n return extraObj\r\n}\r\n\r\nfunction getObjByArray (arr) {\r\n const obj = {};\r\n for (let i = 1; i < arr.length; i++) {\r\n const element = arr[i];\r\n obj[element[0]] = element[1];\r\n }\r\n return obj\r\n}\r\n\r\nfunction processEventArgs (vm, event, args = [], extra = [], isCustom, methodName) {\r\n let isCustomMPEvent = false; // wxcomponent 组件,传递原始 event 对象\r\n if (isCustom) { // 自定义事件\r\n isCustomMPEvent = event.currentTarget &&\r\n event.currentTarget.dataset &&\r\n event.currentTarget.dataset.comType === 'wx';\r\n if (!args.length) { // 无参数,直接传入 event 或 detail 数组\r\n if (isCustomMPEvent) {\r\n return [event]\r\n }\r\n return event.detail.__args__ || event.detail\r\n }\r\n }\r\n\r\n const extraObj = processEventExtra(vm, extra, event);\r\n\r\n const ret = [];\r\n args.forEach(arg => {\r\n if (arg === '$event') {\r\n if (methodName === '__set_model' && !isCustom) { // input v-model value\r\n ret.push(event.target.value);\r\n } else {\r\n if (isCustom && !isCustomMPEvent) {\r\n ret.push(event.detail.__args__[0]);\r\n } else { // wxcomponent 组件或内置组件\r\n ret.push(event);\r\n }\r\n }\r\n } else {\r\n if (Array.isArray(arg) && arg[0] === 'o') {\r\n ret.push(getObjByArray(arg));\r\n } else if (typeof arg === 'string' && hasOwn(extraObj, arg)) {\r\n ret.push(extraObj[arg]);\r\n } else {\r\n ret.push(arg);\r\n }\r\n }\r\n });\r\n\r\n return ret\r\n}\r\n\r\nconst ONCE = '~';\r\nconst CUSTOM = '^';\r\n\r\nfunction isMatchEventType (eventType, optType) {\r\n return (eventType === optType) ||\r\n (\r\n optType === 'regionchange' &&\r\n (\r\n eventType === 'begin' ||\r\n eventType === 'end'\r\n )\r\n )\r\n}\r\n\r\nfunction getContextVm (vm) {\r\n let $parent = vm.$parent;\r\n // 父组件是 scoped slots 或者其他自定义组件时继续查找\r\n while ($parent && $parent.$parent && ($parent.$options.generic || $parent.$parent.$options.generic || $parent.$scope._$vuePid)) {\r\n $parent = $parent.$parent;\r\n }\r\n return $parent && $parent.$parent\r\n}\r\n\r\nfunction handleEvent (event) {\r\n event = wrapper$1(event);\r\n\r\n // [['tap',[['handle',[1,2,a]],['handle1',[1,2,a]]]]]\r\n const dataset = (event.currentTarget || event.target).dataset;\r\n if (!dataset) {\r\n return console.warn('事件信息不存在')\r\n }\r\n const eventOpts = dataset.eventOpts || dataset['event-opts']; // 支付宝 web-view 组件 dataset 非驼峰\r\n if (!eventOpts) {\r\n return console.warn('事件信息不存在')\r\n }\r\n\r\n // [['handle',[1,2,a]],['handle1',[1,2,a]]]\r\n const eventType = event.type;\r\n\r\n const ret = [];\r\n\r\n eventOpts.forEach(eventOpt => {\r\n let type = eventOpt[0];\r\n const eventsArray = eventOpt[1];\r\n\r\n const isCustom = type.charAt(0) === CUSTOM;\r\n type = isCustom ? type.slice(1) : type;\r\n const isOnce = type.charAt(0) === ONCE;\r\n type = isOnce ? type.slice(1) : type;\r\n\r\n if (eventsArray && isMatchEventType(eventType, type)) {\r\n eventsArray.forEach(eventArray => {\r\n const methodName = eventArray[0];\r\n if (methodName) {\r\n let handlerCtx = this.$vm;\r\n if (handlerCtx.$options.generic) { // mp-weixin,mp-toutiao 抽象节点模拟 scoped slots\r\n handlerCtx = getContextVm(handlerCtx) || handlerCtx;\r\n }\r\n if (methodName === '$emit') {\r\n handlerCtx.$emit.apply(handlerCtx,\r\n processEventArgs(\r\n this.$vm,\r\n event,\r\n eventArray[1],\r\n eventArray[2],\r\n isCustom,\r\n methodName\r\n ));\r\n return\r\n }\r\n const handler = handlerCtx[methodName];\r\n if (!isFn(handler)) {\r\n const type = this.$vm.mpType === 'page' ? 'Page' : 'Component';\r\n const path = this.route || this.is;\r\n throw new Error(`${type} \"${path}\" does not have a method \"${methodName}\"`)\r\n }\r\n if (isOnce) {\r\n if (handler.once) {\r\n return\r\n }\r\n handler.once = true;\r\n }\r\n let params = processEventArgs(\r\n this.$vm,\r\n event,\r\n eventArray[1],\r\n eventArray[2],\r\n isCustom,\r\n methodName\r\n );\r\n params = Array.isArray(params) ? params : [];\r\n // 参数尾部增加原始事件对象用于复杂表达式内获取额外数据\r\n if (/=\\s*\\S+\\.eventParams\\s*\\|\\|\\s*\\S+\\[['\"]event-params['\"]\\]/.test(handler.toString())) {\r\n // eslint-disable-next-line no-sparse-arrays\r\n params = params.concat([, , , , , , , , , , event]);\r\n }\r\n ret.push(handler.apply(handlerCtx, params));\r\n }\r\n });\r\n }\r\n });\r\n\r\n if (\r\n eventType === 'input' &&\r\n ret.length === 1 &&\r\n typeof ret[0] !== 'undefined'\r\n ) {\r\n return ret[0]\r\n }\r\n}\r\n\r\nconst eventChannels = {};\r\n\r\nconst eventChannelStack = [];\r\n\r\nfunction getEventChannel (id) {\r\n if (id) {\r\n const eventChannel = eventChannels[id];\r\n delete eventChannels[id];\r\n return eventChannel\r\n }\r\n return eventChannelStack.shift()\r\n}\r\n\r\nconst hooks = [\r\n 'onShow',\r\n 'onHide',\r\n 'onError',\r\n 'onPageNotFound',\r\n 'onThemeChange',\r\n 'onUnhandledRejection'\r\n];\r\n\r\nfunction initEventChannel () {\r\n Vue.prototype.getOpenerEventChannel = function () {\r\n // 微信小程序使用自身getOpenerEventChannel\r\n {\r\n return this.$scope.getOpenerEventChannel()\r\n }\r\n };\r\n const callHook = Vue.prototype.__call_hook;\r\n Vue.prototype.__call_hook = function (hook, args) {\r\n if (hook === 'onLoad' && args && args.__id__) {\r\n this.__eventChannel__ = getEventChannel(args.__id__);\r\n delete args.__id__;\r\n }\r\n return callHook.call(this, hook, args)\r\n };\r\n}\r\n\r\nfunction initScopedSlotsParams () {\r\n const center = {};\r\n const parents = {};\r\n\r\n Vue.prototype.$hasScopedSlotsParams = function (vueId) {\r\n const has = center[vueId];\r\n if (!has) {\r\n parents[vueId] = this;\r\n this.$on('hook:destroyed', () => {\r\n delete parents[vueId];\r\n });\r\n }\r\n return has\r\n };\r\n\r\n Vue.prototype.$getScopedSlotsParams = function (vueId, name, key) {\r\n const data = center[vueId];\r\n if (data) {\r\n const object = data[name] || {};\r\n return key ? object[key] : object\r\n } else {\r\n parents[vueId] = this;\r\n this.$on('hook:destroyed', () => {\r\n delete parents[vueId];\r\n });\r\n }\r\n };\r\n\r\n Vue.prototype.$setScopedSlotsParams = function (name, value) {\r\n const vueIds = this.$options.propsData.vueId;\r\n if (vueIds) {\r\n const vueId = vueIds.split(',')[0];\r\n const object = center[vueId] = center[vueId] || {};\r\n object[name] = value;\r\n if (parents[vueId]) {\r\n parents[vueId].$forceUpdate();\r\n }\r\n }\r\n };\r\n\r\n Vue.mixin({\r\n destroyed () {\r\n const propsData = this.$options.propsData;\r\n const vueId = propsData && propsData.vueId;\r\n if (vueId) {\r\n delete center[vueId];\r\n delete parents[vueId];\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction parseBaseApp (vm, {\r\n mocks,\r\n initRefs\r\n}) {\r\n initEventChannel();\r\n {\r\n initScopedSlotsParams();\r\n }\r\n if (vm.$options.store) {\r\n Vue.prototype.$store = vm.$options.store;\r\n }\r\n uniIdMixin(Vue);\r\n\r\n Vue.prototype.mpHost = \"mp-weixin\";\r\n\r\n Vue.mixin({\r\n beforeCreate () {\r\n if (!this.$options.mpType) {\r\n return\r\n }\r\n\r\n this.mpType = this.$options.mpType;\r\n\r\n this.$mp = {\r\n data: {},\r\n [this.mpType]: this.$options.mpInstance\r\n };\r\n\r\n this.$scope = this.$options.mpInstance;\r\n\r\n delete this.$options.mpType;\r\n delete this.$options.mpInstance;\r\n if (this.mpType === 'page' && typeof getApp === 'function') { // hack vue-i18n\r\n const app = getApp();\r\n if (app.$vm && app.$vm.$i18n) {\r\n this._i18n = app.$vm.$i18n;\r\n }\r\n }\r\n if (this.mpType !== 'app') {\r\n initRefs(this);\r\n initMocks(this, mocks);\r\n }\r\n }\r\n });\r\n\r\n const appOptions = {\r\n onLaunch (args) {\r\n if (this.$vm) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前\r\n return\r\n }\r\n {\r\n if (wx.canIUse && !wx.canIUse('nextTick')) { // 事实 上2.2.3 即可,简单使用 2.3.0 的 nextTick 判断\r\n console.error('当前微信基础库版本过低,请将 微信开发者工具-详情-项目设置-调试基础库版本 更换为`2.3.0`以上');\r\n }\r\n }\r\n\r\n this.$vm = vm;\r\n\r\n this.$vm.$mp = {\r\n app: this\r\n };\r\n\r\n this.$vm.$scope = this;\r\n // vm 上也挂载 globalData\r\n this.$vm.globalData = this.globalData;\r\n\r\n this.$vm._isMounted = true;\r\n this.$vm.__call_hook('mounted', args);\r\n\r\n this.$vm.__call_hook('onLaunch', args);\r\n }\r\n };\r\n\r\n // 兼容旧版本 globalData\r\n appOptions.globalData = vm.$options.globalData || {};\r\n // 将 methods 中的方法挂在 getApp() 中\r\n const methods = vm.$options.methods;\r\n if (methods) {\r\n Object.keys(methods).forEach(name => {\r\n appOptions[name] = methods[name];\r\n });\r\n }\r\n\r\n initAppLocale(Vue, vm, normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN);\r\n\r\n initHooks(appOptions, hooks);\r\n\r\n return appOptions\r\n}\r\n\r\nconst mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__'];\r\n\r\nfunction findVmByVueId (vm, vuePid) {\r\n const $children = vm.$children;\r\n // 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200)\r\n for (let i = $children.length - 1; i >= 0; i--) {\r\n const childVm = $children[i];\r\n if (childVm.$scope._$vueId === vuePid) {\r\n return childVm\r\n }\r\n }\r\n // 反向递归查找\r\n let parentVm;\r\n for (let i = $children.length - 1; i >= 0; i--) {\r\n parentVm = findVmByVueId($children[i], vuePid);\r\n if (parentVm) {\r\n return parentVm\r\n }\r\n }\r\n}\r\n\r\nfunction initBehavior (options) {\r\n return Behavior(options)\r\n}\r\n\r\nfunction isPage () {\r\n return !!this.route\r\n}\r\n\r\nfunction initRelation (detail) {\r\n this.triggerEvent('__l', detail);\r\n}\r\n\r\nfunction selectAllComponents (mpInstance, selector, $refs) {\r\n const components = mpInstance.selectAllComponents(selector);\r\n components.forEach(component => {\r\n const ref = component.dataset.ref;\r\n $refs[ref] = component.$vm || component;\r\n {\r\n if (component.dataset.vueGeneric === 'scoped') {\r\n component.selectAllComponents('.scoped-ref').forEach(scopedComponent => {\r\n selectAllComponents(scopedComponent, selector, $refs);\r\n });\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction initRefs (vm) {\r\n const mpInstance = vm.$scope;\r\n Object.defineProperty(vm, '$refs', {\r\n get () {\r\n const $refs = {};\r\n selectAllComponents(mpInstance, '.vue-ref', $refs);\r\n // TODO 暂不考虑 for 中的 scoped\r\n const forComponents = mpInstance.selectAllComponents('.vue-ref-in-for');\r\n forComponents.forEach(component => {\r\n const ref = component.dataset.ref;\r\n if (!$refs[ref]) {\r\n $refs[ref] = [];\r\n }\r\n $refs[ref].push(component.$vm || component);\r\n });\r\n return $refs\r\n }\r\n });\r\n}\r\n\r\nfunction handleLink (event) {\r\n const {\r\n vuePid,\r\n vueOptions\r\n } = event.detail || event.value; // detail 是微信,value 是百度(dipatch)\r\n\r\n let parentVm;\r\n\r\n if (vuePid) {\r\n parentVm = findVmByVueId(this.$vm, vuePid);\r\n }\r\n\r\n if (!parentVm) {\r\n parentVm = this.$vm;\r\n }\r\n\r\n vueOptions.parent = parentVm;\r\n}\r\n\r\nfunction parseApp (vm) {\r\n return parseBaseApp(vm, {\r\n mocks,\r\n initRefs\r\n })\r\n}\r\n\r\nfunction createApp (vm) {\r\n App(parseApp(vm));\r\n return vm\r\n}\r\n\r\nconst encodeReserveRE = /[!'()*]/g;\r\nconst encodeReserveReplacer = c => '%' + c.charCodeAt(0).toString(16);\r\nconst commaRE = /%2C/g;\r\n\r\n// fixed encodeURIComponent which is more conformant to RFC3986:\r\n// - escapes [!'()*]\r\n// - preserve commas\r\nconst encode = str => encodeURIComponent(str)\r\n .replace(encodeReserveRE, encodeReserveReplacer)\r\n .replace(commaRE, ',');\r\n\r\nfunction stringifyQuery (obj, encodeStr = encode) {\r\n const res = obj ? Object.keys(obj).map(key => {\r\n const val = obj[key];\r\n\r\n if (val === undefined) {\r\n return ''\r\n }\r\n\r\n if (val === null) {\r\n return encodeStr(key)\r\n }\r\n\r\n if (Array.isArray(val)) {\r\n const result = [];\r\n val.forEach(val2 => {\r\n if (val2 === undefined) {\r\n return\r\n }\r\n if (val2 === null) {\r\n result.push(encodeStr(key));\r\n } else {\r\n result.push(encodeStr(key) + '=' + encodeStr(val2));\r\n }\r\n });\r\n return result.join('&')\r\n }\r\n\r\n return encodeStr(key) + '=' + encodeStr(val)\r\n }).filter(x => x.length > 0).join('&') : null;\r\n return res ? `?${res}` : ''\r\n}\r\n\r\nfunction parseBaseComponent (vueComponentOptions, {\r\n isPage,\r\n initRelation\r\n} = {}) {\r\n const [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions);\r\n\r\n const options = {\r\n multipleSlots: true,\r\n addGlobalClass: true,\r\n ...(vueOptions.options || {})\r\n };\r\n\r\n {\r\n // 微信 multipleSlots 部分情况有 bug,导致内容顺序错乱 如 u-list,提供覆盖选项\r\n if (vueOptions['mp-weixin'] && vueOptions['mp-weixin'].options) {\r\n Object.assign(options, vueOptions['mp-weixin'].options);\r\n }\r\n }\r\n\r\n const componentOptions = {\r\n options,\r\n data: initData(vueOptions, Vue.prototype),\r\n behaviors: initBehaviors(vueOptions, initBehavior),\r\n properties: initProperties(vueOptions.props, false, vueOptions.__file, options),\r\n lifetimes: {\r\n attached () {\r\n const properties = this.properties;\r\n\r\n const options = {\r\n mpType: isPage.call(this) ? 'page' : 'component',\r\n mpInstance: this,\r\n propsData: properties\r\n };\r\n\r\n initVueIds(properties.vueId, this);\r\n\r\n // 处理父子关系\r\n initRelation.call(this, {\r\n vuePid: this._$vuePid,\r\n vueOptions: options\r\n });\r\n\r\n // 初始化 vue 实例\r\n this.$vm = new VueComponent(options);\r\n\r\n // 处理$slots,$scopedSlots(暂不支持动态变化$slots)\r\n initSlots(this.$vm, properties.vueSlots);\r\n\r\n // 触发首次 setData\r\n this.$vm.$mount();\r\n },\r\n ready () {\r\n // 当组件 props 默认值为 true,初始化时传入 false 会导致 created,ready 触发, 但 attached 不触发\r\n // https://developers.weixin.qq.com/community/develop/doc/00066ae2844cc0f8eb883e2a557800\r\n if (this.$vm) {\r\n this.$vm._isMounted = true;\r\n this.$vm.__call_hook('mounted');\r\n this.$vm.__call_hook('onReady');\r\n }\r\n },\r\n detached () {\r\n this.$vm && this.$vm.$destroy();\r\n }\r\n },\r\n pageLifetimes: {\r\n show (args) {\r\n this.$vm && this.$vm.__call_hook('onPageShow', args);\r\n },\r\n hide () {\r\n this.$vm && this.$vm.__call_hook('onPageHide');\r\n },\r\n resize (size) {\r\n this.$vm && this.$vm.__call_hook('onPageResize', size);\r\n }\r\n },\r\n methods: {\r\n __l: handleLink,\r\n __e: handleEvent\r\n }\r\n };\r\n // externalClasses\r\n if (vueOptions.externalClasses) {\r\n componentOptions.externalClasses = vueOptions.externalClasses;\r\n }\r\n\r\n if (Array.isArray(vueOptions.wxsCallMethods)) {\r\n vueOptions.wxsCallMethods.forEach(callMethod => {\r\n componentOptions.methods[callMethod] = function (args) {\r\n return this.$vm[callMethod](args)\r\n };\r\n });\r\n }\r\n\r\n if (isPage) {\r\n return componentOptions\r\n }\r\n return [componentOptions, VueComponent]\r\n}\r\n\r\nfunction parseComponent (vueComponentOptions) {\r\n return parseBaseComponent(vueComponentOptions, {\r\n isPage,\r\n initRelation\r\n })\r\n}\r\n\r\nconst hooks$1 = [\r\n 'onShow',\r\n 'onHide',\r\n 'onUnload'\r\n];\r\n\r\nhooks$1.push(...PAGE_EVENT_HOOKS);\r\n\r\nfunction parseBasePage (vuePageOptions, {\r\n isPage,\r\n initRelation\r\n}) {\r\n const pageOptions = parseComponent(vuePageOptions);\r\n\r\n initHooks(pageOptions.methods, hooks$1, vuePageOptions);\r\n\r\n pageOptions.methods.onLoad = function (query) {\r\n this.options = query;\r\n const copyQuery = Object.assign({}, query);\r\n delete copyQuery.__id__;\r\n this.$page = {\r\n fullPath: '/' + (this.route || this.is) + stringifyQuery(copyQuery)\r\n };\r\n this.$vm.$mp.query = query; // 兼容 mpvue\r\n this.$vm.__call_hook('onLoad', query);\r\n };\r\n\r\n return pageOptions\r\n}\r\n\r\nfunction parsePage (vuePageOptions) {\r\n return parseBasePage(vuePageOptions, {\r\n isPage,\r\n initRelation\r\n })\r\n}\r\n\r\nfunction createPage (vuePageOptions) {\r\n {\r\n return Component(parsePage(vuePageOptions))\r\n }\r\n}\r\n\r\nfunction createComponent (vueOptions) {\r\n {\r\n return Component(parseComponent(vueOptions))\r\n }\r\n}\r\n\r\nfunction createSubpackageApp (vm) {\r\n const appOptions = parseApp(vm);\r\n const app = getApp({\r\n allowDefault: true\r\n });\r\n vm.$scope = app;\r\n const globalData = app.globalData;\r\n if (globalData) {\r\n Object.keys(appOptions.globalData).forEach(name => {\r\n if (!hasOwn(globalData, name)) {\r\n globalData[name] = appOptions.globalData[name];\r\n }\r\n });\r\n }\r\n Object.keys(appOptions).forEach(name => {\r\n if (!hasOwn(app, name)) {\r\n app[name] = appOptions[name];\r\n }\r\n });\r\n if (isFn(appOptions.onShow) && wx.onAppShow) {\r\n wx.onAppShow((...args) => {\r\n vm.__call_hook('onShow', args);\r\n });\r\n }\r\n if (isFn(appOptions.onHide) && wx.onAppHide) {\r\n wx.onAppHide((...args) => {\r\n vm.__call_hook('onHide', args);\r\n });\r\n }\r\n if (isFn(appOptions.onLaunch)) {\r\n const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\r\n vm.__call_hook('onLaunch', args);\r\n }\r\n return vm\r\n}\r\n\r\nfunction createPlugin (vm) {\r\n const appOptions = parseApp(vm);\r\n if (isFn(appOptions.onShow) && wx.onAppShow) {\r\n wx.onAppShow((...args) => {\r\n vm.__call_hook('onShow', args);\r\n });\r\n }\r\n if (isFn(appOptions.onHide) && wx.onAppHide) {\r\n wx.onAppHide((...args) => {\r\n vm.__call_hook('onHide', args);\r\n });\r\n }\r\n if (isFn(appOptions.onLaunch)) {\r\n const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\r\n vm.__call_hook('onLaunch', args);\r\n }\r\n return vm\r\n}\r\n\r\ntodos.forEach(todoApi => {\r\n protocols[todoApi] = false;\r\n});\r\n\r\ncanIUses.forEach(canIUseApi => {\r\n const apiName = protocols[canIUseApi] && protocols[canIUseApi].name ? protocols[canIUseApi].name\r\n : canIUseApi;\r\n if (!wx.canIUse(apiName)) {\r\n protocols[canIUseApi] = false;\r\n }\r\n});\r\n\r\nlet uni = {};\r\n\r\nif (typeof Proxy !== 'undefined' && \"mp-weixin\" !== 'app-plus') {\r\n uni = new Proxy({}, {\r\n get (target, name) {\r\n if (hasOwn(target, name)) {\r\n return target[name]\r\n }\r\n if (baseApi[name]) {\r\n return baseApi[name]\r\n }\r\n if (api[name]) {\r\n return promisify(name, api[name])\r\n }\r\n {\r\n if (extraApi[name]) {\r\n return promisify(name, extraApi[name])\r\n }\r\n if (todoApis[name]) {\r\n return promisify(name, todoApis[name])\r\n }\r\n }\r\n if (eventApi[name]) {\r\n return eventApi[name]\r\n }\r\n if (!hasOwn(wx, name) && !hasOwn(protocols, name)) {\r\n return\r\n }\r\n return promisify(name, wrapper(name, wx[name]))\r\n },\r\n set (target, name, value) {\r\n target[name] = value;\r\n return true\r\n }\r\n });\r\n} else {\r\n Object.keys(baseApi).forEach(name => {\r\n uni[name] = baseApi[name];\r\n });\r\n\r\n {\r\n Object.keys(todoApis).forEach(name => {\r\n uni[name] = promisify(name, todoApis[name]);\r\n });\r\n Object.keys(extraApi).forEach(name => {\r\n uni[name] = promisify(name, todoApis[name]);\r\n });\r\n }\r\n\r\n Object.keys(eventApi).forEach(name => {\r\n uni[name] = eventApi[name];\r\n });\r\n\r\n Object.keys(api).forEach(name => {\r\n uni[name] = promisify(name, api[name]);\r\n });\r\n\r\n Object.keys(wx).forEach(name => {\r\n if (hasOwn(wx, name) || hasOwn(protocols, name)) {\r\n uni[name] = promisify(name, wrapper(name, wx[name]));\r\n }\r\n });\r\n}\r\n\r\nwx.createApp = createApp;\r\nwx.createPage = createPage;\r\nwx.createComponent = createComponent;\r\nwx.createSubpackageApp = createSubpackageApp;\r\nwx.createPlugin = createPlugin;\r\n\r\nvar uni$1 = uni;\r\n\r\nexport default uni$1;\r\nexport { createApp, createComponent, createPage, createPlugin, createSubpackageApp };\r\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode, /* vue-cli only */\n components, // fixed by xxxxxx auto components\n renderjs // fixed by xxxxxx renderjs\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // fixed by xxxxxx auto components\n if (components) {\n if (!options.components) {\n options.components = {}\n }\n var hasOwn = Object.prototype.hasOwnProperty\n for (var name in components) {\n if (hasOwn.call(components, name) && !hasOwn.call(options.components, name)) {\n options.components[name] = components[name]\n }\n }\n }\n // fixed by xxxxxx renderjs\n if (renderjs) {\n (renderjs.beforeCreate || (renderjs.beforeCreate = [])).unshift(function() {\n this[renderjs.__module] = this\n });\n (options.mixins || (options.mixins = [])).push(renderjs)\n }\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","module.exports = \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAFVAVYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9U6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK47xt4olsX+w2j7JCMySL1HsK3o0ZV5qETOpUVOPMzqLjUrS1bbPdQwt6SSBT+pqL+3dN/wCgha/9/wBf8a8eZizFmJJPJJpK9xZVG2szz/rj6I9shuIrlN8MqSp/eRgR+lSV4xp+pXGl3Amt5WjcdcdD7EV6toOsJremx3Kja/3XX0Ydf8+9edisFLDe8ndHVRxCq6bM0aKKK806gooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKbI4jjZz0UZNAFDWNetNEiDXEnzN92NeWNczJ8Sl3HZZEr/tPXJaxqMmqahNcSNnc3y+w7CqdfUUcupRivaas8epipt+7ojt/wDhZX/Tl/4//wDWrktVvzqmoT3RXaZGztznFVaK7qWGpUXzU1ZnPOrOorSYUUUV1GQVveG/FTeH4Z4/J85ZGDD5sYrBorOpTjVjyTV0VGTg+aJ2/wDwsr/py/8AH/8A61H/AAsr/py/8f8A/rVxFFcf1DD/AMv5m/1mr3O3/wCFlf8ATl/4/wD/AFqP+Flf9OX/AI//APWriKKPqGH/AJfzD6zV7nb/APCyv+nL/wAf/wDrU+P4lJuHmWTBf9l+a4Wij+z8P/L+LD6zV7nsOk61a61D5ltJkj7yHhl/Cr9eQaBqj6TqkMythdwVx2KnrXrwORmvn8Zhvq01bZnp0K3tY67oWiiivPOkKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKgvf+POf/rm38qnqC9/485/+ubfyqo/EhPY8Wooor74+bCiiigAoorR0fQbvXJttumEH3pG4UVMpRguaTshqLk7IzqK9H0/4fWFuoNyz3Unfnav5Dn9a0f8AhEtI24+xR4/HNeVLM6MXZJs7FhKjWp5PRXouofD2xuEJtHe1k7Ancv68/rXE6tol1os3l3MeAfuuvKt9DXXRxdKvpF69jGpRnT1aKFABJwOTRWj4daFdcsjPjy/NGc9M9v1xXTOXLFy7GMVzNIuw+CdVntxMIVXIyFZgG/KsSeCS1maKVDHIpwVYcivba81+IDRNrg8vG8RgPj1ryMHjaleo4SR3V8PGnHmTOZr26P7i/SvEa9uj/wBWv0rHNvsfP9C8H9r5DqKKK+fPTCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACoL3/jzn/65t/Kp6gvf+POf/rm38qqPxIT2PFqKKK++PmwooooA0NC0iTWtQjt1+Vert/dXvXrFjYw6dbJBboI41GAB/M1zPw7sRFp0t0R88r7QfYV11fKZhXdSq4LZHs4Wmow5urCiiivKOwKq6jp8GqWr29wm5GH4g+oq1RTUnF3QmrqzPG9Y0yTSNQltpOdp+VvUdjVOu8+JFiGt7a8A+ZW8pvoQSP5H864OvtMLW9vSU3ueDWh7ObibEPi7VYLcQrdtsAwMgEj8ayZZXmkaSRi7sclmOSabRW8acINuKsZuUpbsK9uj/wBWv0rxGvbo/wDVr9K8PNvsfP8AQ9DB/a+Q6iiivnz0wooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAqC9/wCPOf8A65t/Kp6gvf8Ajzn/AOubfyqo/EhPY8Wooor74+bCiiigD1LwOQfDtvj1bP51vVxvw51APaz2bH5kbeo9j1rsq+KxcXCvNPue9RlzU0FFFFchuFFFFAHOePsf8I6+evmLj868yrufiPqA221kp5z5rj9B/M1w1fW5dFxoJvqeLipXqaBRRRXpnIFe3R/6tfpXiNe3R/6tfpXz+bfY+f6HpYP7XyHUUUV8+emFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFQXv/AB5z/wDXNv5VPUF7/wAec/8A1zb+VVH4kJ7Hi1FFFffHzYUUUUAW9K1KXSb6O5hPzKeV7EdxXrGk6tb6xaLPA2f7y91Poa8cqzp+pXOl3AmtpWjfvjofYivOxeDWJV1pJHVRruk7PY9noriNP+Iy7Qt5bEN3eI8flWj/AMLA0vbn99n02V87LB4iLtynprEU2r3OmrP1rWYNFs2mmb5uiR92NctqHxGypWyt8N/flP8ASuQvtQuNSuDNcytLIe7dvYeldmHy2cnerojCpioxVoasNQv5dSvJbmY5dzn6e1V6KK+mSUVZHkt3d2FFFFMAr26P/Vr9K8Rr26P/AFa/Svn82+x8/wBD0sH9r5DqKKK+fPTCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACoL3/AI85/wDrm38qnpGUOpU8gjBpp2dxHiFFaXiDR5dH1KSJ1PlsS0bdiKza+8hJTipR2Z85KLi7MKKKKsQUUUUAFFFFABRRRQAUUUUAFFFFABXt0f3F+leUeGdGk1jU4lC/uY2DSN2wO3416xXzmazTlGC3Vz1MHFpOQtFFFeEeiFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAFa+0621KHyrmFZU/2u30Paufk+HemMxIkuUH91XXA/Na6mit6derSVoSsZypwnrJHK/wDCudN/573X/fa//E0f8K503/nvdf8Afa//ABNdVRWv1zEfzsj2FP8AlOV/4Vzpv/Pe6/77X/4mj/hXOm/897r/AL7X/wCJrqqKPrmI/nYewp/ynK/8K503/nvdf99r/wDE0f8ACudN/wCe91/32v8A8TXVUUfXMR/Ow9hT/lOV/wCFc6b/AM97r/vtf/iaP+Fc6b/z3uv++1/+JrqqKPrmI/nYewp/ynK/8K503/nvdf8Afa//ABNH/CudN/573X/fa/8AxNdVRR9cxH87D2FP+U5X/hXOm/8APe6/77X/AOJp0fw70uNwWkuZB/dZxg/kBXUUUfXK/wDOw9hT/lK9nY2+nwiK3iWKMdlFWKKK5G3J3ZttogooopDCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiisLXNauNP1jS7aLZ5dy5V9wyfwoA3aKK5rxh4ofQo4orULJ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jTI/nWZ8O4nXSZ5HRkWSdmXcMZFHQCrDZwX3xAvkuIkmQQAhXGRniuk/4R3TP+fCD/vgVyF7Nqdv44vX0y2S4mMQBWQgDbxzyRWh/aXjD/oFW/8A38X/AOLoAgurKCx8faalvCkKGIkqgwM81veLdPn1TQ57a2TzJmxhcgd/euXtpNUuPG2nvqdqtvKEIAjIIxg+hNdN4s1l9H0w+QjPczHy4woJwT3oAwbHweb618sa7MxRdksSEMEPdetXdU8Ky3Xh6y0+wuYna1mD+ZKcA4B9AeeRWj4T0P8AsPSlSTm5mPmTN/tHt+FZvgIPBJrFsVIWO53DI9cj+lACRR+KZGdI9S012j4ZVySPr8tUl0vVdV8QWZvNQsJpbGRZGiiJDBdwJ42+1XIIZdJ8fyiNGNtfRbm2jgN6n8QfzpPGFhNpt5ba7YqfNiYLMi/xKeM/0/EUAdhRUVrOLq3ilCsgdQ21hgjPapaQBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFNaNGYMyqzL0JHIp1FABRRRQAUUUUAFFFFABRRRQAUlLRQAUUUUAFFFFADHiSTG9FbHTcM07p0paKAG+WgcuFUN/exzTqKKAE2jOcc0FQ3BGaWigApKWigApKWigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/9k=\"","import store from \"../store.js\"\r\nimport request from './request.js'\r\nimport alert from './alert.js'\r\n\r\nconst login = {\r\n\tcheckAuth(callback) {\r\n\t\tconsole.log(1);\r\n\t\tif (this.getLocalUserInfo()) {\r\n\t\t\tconsole.log(2);\r\n\t\t\tcallback(true)\r\n\t\t} else {\r\n\t\t\tconsole.log(3);\r\n\t\t\tcallback(false);\r\n\t\t\tconsole.log('未获取到用户本地数据,去获取授权设置', 22222222)\r\n\t\t\tthis.askLogin()\r\n\t\t}\r\n\t},\r\n\r\n\tgetLocalUserInfo() {\r\n\t\tconst user = uni.getStorageSync(\"token\");\r\n\t\tconsole.log('从本地存储中获取用户数据', user, 11111111);\r\n\t\tif (!user) return false;\r\n\t\tif (!user.token) return false;\r\n\t\tstore.commit('saveToken', user);\r\n\t\treturn true\r\n\t},\r\n\r\n\tnoCase() {\r\n\t\talert.showError('案件不存在');\r\n\t\tsetTimeout(() => {\r\n\t\t\tuni.switchTab({\r\n\t\t\t\turl: '/pages/case/caseList/caseList'\r\n\t\t\t});\r\n\t\t}, 1500);\r\n\t},\r\n\r\n\taskLogin() {\r\n\t\tuni.showModal({\r\n\t\t\ttitle: '尚未登录',\r\n\t\t\tcontent: '前往授权登录页面吗?',\r\n\t\t\tsuccess(res) {\r\n\t\t\t\tconsole.log(res)\r\n\t\t\t\tif (res.confirm) {\r\n\t\t\t\t\tuni.navigateTo({\r\n\t\t\t\t\t\turl: '/pages/login/login'\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t},\r\n\r\n\tgetUserProfile(data) {\r\n\t\tconst that = this;\r\n\t\tconsole.log(data);\r\n\t\t// return\r\n\t\twx.getUserProfile({\r\n\t\t\tlang: 'zh_CN',\r\n\t\t\tdesc: '用于完善会员资料',\r\n\t\t success (res) {\r\n\t\t\t\tthat.login(data,res)\r\n\t\t },\r\n\t\t\tfail (e) {\r\n\t\t\t\tconsole.error('获取用户身份信息失败了', e);\r\n\t\t\t\talert.showError('获取失败')\r\n\t\t\t}\r\n\t\t})\r\n\t},\r\n\r\n\tlogin(data) {\r\n\t\tconst that = this;\r\n\t\tuni.showLoading({\r\n\t\t\ttitle: '登录中',\r\n\t\t});\r\n\t\twx.login({\r\n\t\t\tsuccess: res => {\r\n\t\t\t\tconsole.log(res, '----------- login获取的 -----------')\r\n\t\t\t\tconst code = res.code;\r\n\t\t\t\tconsole.log(res.code);\r\n\t\t\t\trequest.post('/api/Accounts/SignIn', {\r\n\t\t\t\t\twechatToken:code,\r\n\t\t\t\t\tusername:data.name,\r\n\t\t\t\t\tpassword:data.password\r\n\t\t\t\t}, function(data, res) {\r\n\t\t\t\t\tuni.hideLoading();\r\n\t\t\t\t\tconsole.log(data, res ,'----------后端传回来的----------')\r\n\t\t\t\t\tif(res.status==500){\r\n\t\t\t\t\t\treturn alert.showError(\"用户名或密码错误\")\r\n\t\t\t\t\t}\r\n\t\t\t\t\tuni.setStorageSync(\"token\", res)\r\n\t\t\t\t\tstore.commit('saveToken', res)\r\n\t\t\t\t\tconsole.log(store.state.token);\r\n\t\t\t\t\trequest.get(\"/api/Accounts/Profile\", {}, (data, res) => {\r\n\t\t\t\t\t\tconsole.log(res);\r\n\t\t\t\t\t\tuni.setStorageSync(\"user\", res)\r\n\t\t\t\t\t\tuni.reLaunch({\r\n\t\t\t\t\t\t\turl: \"/pages/index/index\",\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t})\r\n\t\t\t\t\t\r\n\t\t\t\t})\r\n\t\t\t},\r\n\t\t\tfail: err => {\r\n\t\t\t\tconsole.error(err, 8877897)\r\n\t\t\t}\r\n\t\t})\r\n\t},\r\n\r\n\tlogout() {\r\n\t\tstore.state.user = {\r\n\t\t\tuser: null,\r\n\t\t\tpath: '/pages/login/login'\r\n\t\t}\r\n\t\tstore.commit('saveToken', null)\r\n\t\t// uni.setStorageSync(\"token\",null);\r\n\t\tuni.clearStorage();\r\n\t\tuni.reLaunch({\r\n\t\t\turl: '/pages/login/login'\r\n\t\t})\r\n\t\t\t\r\n\t\tconsole.log('退出登录。。。', this.user)\r\n\t},\r\n\r\n\r\n\r\n}\r\n\r\nexport default login\r\n","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nVue.use(Vuex)\r\n\r\nconst store = new Vuex.Store({\r\n\tstate: {\r\n\t\ttoken: null,\r\n\t\tpath: '/pages/index/index',\r\n\t\tpeople: {\r\n\t\t\tid: null,\r\n\t\t\tname: null,\r\n\t\t\ttag: null\r\n\t\t},\r\n\t\ttaskType:'',\r\n\t},\r\n\tmutations: {\r\n\t\tsavePath (state, path) {\r\n\t\t\tstate.path = path;\r\n\t\t},\r\n\t\tsaveToken (state, token) {\r\n\t\t\tstate.token = token\r\n\t\t},\r\n\t\tsavePeople (state, people){\r\n\t\t\tstate.people = people\r\n\t\t},\r\n\t\tsaveTaskType (state, taskType){\r\n\t\t\tstate.taskType = taskType\r\n\t\t},\r\n\t},\r\n\tactions: {},\r\n})\r\nexport default store\r\n","/*!\n * vuex v3.6.2\n * (c) 2021 Evan You\n * @license MIT\n */\n'use strict';\n\nfunction applyMixin (Vue) {\n var version = Number(Vue.version.split('.')[0]);\n\n if (version >= 2) {\n Vue.mixin({ beforeCreate: vuexInit });\n } else {\n // override init and inject vuex init procedure\n // for 1.x backwards compatibility.\n var _init = Vue.prototype._init;\n Vue.prototype._init = function (options) {\n if ( options === void 0 ) options = {};\n\n options.init = options.init\n ? [vuexInit].concat(options.init)\n : vuexInit;\n _init.call(this, options);\n };\n }\n\n /**\n * Vuex init hook, injected into each instances init hooks list.\n */\n\n function vuexInit () {\n var options = this.$options;\n // store injection\n if (options.store) {\n this.$store = typeof options.store === 'function'\n ? options.store()\n : options.store;\n } else if (options.parent && options.parent.$store) {\n this.$store = options.parent.$store;\n }\n }\n}\n\nvar target = typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\nvar devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n if (!devtoolHook) { return }\n\n store._devtoolHook = devtoolHook;\n\n devtoolHook.emit('vuex:init', store);\n\n devtoolHook.on('vuex:travel-to-state', function (targetState) {\n store.replaceState(targetState);\n });\n\n store.subscribe(function (mutation, state) {\n devtoolHook.emit('vuex:mutation', mutation, state);\n }, { prepend: true });\n\n store.subscribeAction(function (action, state) {\n devtoolHook.emit('vuex:action', action, state);\n }, { prepend: true });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors = { namespaced: { configurable: true } };\n\nprototypeAccessors.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n if (parent) {\n return parent.hasChild(key)\n }\n\n return false\n};\n\nfunction update (path, targetModule, newModule) {\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nvar Vue; // bind on install\n\nvar Store = function Store (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #731\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Vue, \"must call Vue.use(Vuex) before creating a store instance.\");\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._watcherVM = new Vue();\n this._makeLocalGettersCache = Object.create(null);\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store vm, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreVM(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1); });\n\n var useDevtools = options.devtools !== undefined ? options.devtools : Vue.config.devtools;\n if (useDevtools) {\n devtoolPlugin(this);\n }\n};\n\nvar prototypeAccessors$1 = { state: { configurable: true } };\n\nprototypeAccessors$1.state.get = function () {\n return this._vm._data.$$state\n};\n\nprototypeAccessors$1.state.set = function (v) {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1.state); });\n\n if (\n (process.env.NODE_ENV !== 'production') &&\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1.state, error); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch (getter, cb, options) {\n var this$1 = this;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1 = this;\n\n this._withCommit(function () {\n this$1._vm._data.$$state = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreVM(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1.state, path.slice(0, -1));\n Vue.delete(parentState, path[path.length - 1]);\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype[[104,111,116,85,112,100,97,116,101].map(function (item) {return String.fromCharCode(item)}).join('')] = function (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors$1 );\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset vm\n resetStoreVM(store, state, hot);\n}\n\nfunction resetStoreVM (store, state, hot) {\n var oldVm = store._vm;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computed = {};\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldVm.\n // using partial to return function with only arguments preserved in closure environment.\n computed[key] = partial(fn, store);\n Object.defineProperty(store.getters, key, {\n get: function () { return store._vm[key]; },\n enumerable: true // for local getters\n });\n });\n\n // use a Vue instance to store the state tree\n // suppress warnings just in case the user has added\n // some funky global mixins\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n store._vm = new Vue({\n data: {\n $$state: state\n },\n computed: computed\n });\n Vue.config.silent = silent;\n\n // enable strict mode for new vm\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldVm) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldVm._data.$$state = null;\n });\n }\n Vue.nextTick(function () { return oldVm.$destroy(); });\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n if ((process.env.NODE_ENV !== 'production')) {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n Vue.set(parentState, moduleName, module.state);\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by vm update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n store._vm.$watch(function () { return this._data.$$state }, function () {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, sync: true });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nfunction install (_Vue) {\n if (Vue && _Vue === Vue) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error(\n '[vuex] already installed. Vue.use(Vuex) should be called only once.'\n );\n }\n return\n }\n Vue = _Vue;\n applyMixin(Vue);\n}\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if ((process.env.NODE_ENV !== 'production') && !module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index_cjs = {\n Store: Store,\n install: install,\n version: '3.6.2',\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\nmodule.exports = index_cjs;\n","import config from '../config.js'\r\nimport common from './alert.js'\r\nimport store from '../store.js'\r\n\r\nconst request = {\r\n\tgetToken(){\r\n\t\tlet user=store.state.token\r\n\t\t// console.log(user);\r\n\t\tif(user){\r\n\t\t\tthis.post(\"/api/Accounts/RefreshToken\",{token:user.token,refreshToken:user.refreshToken},(data,res)=>{\r\n\t\t\t\tstore.commit('saveToken', res)\r\n\t\t\t\tuni.setStorageSync(\"token\", res)\r\n\t\t\t})\r\n\t\t}else{\r\n\t\t\treturn\r\n\t\t}\r\n\t\t\r\n\t},\r\n\tuploadFile(filePath, callback) {\r\n\t\tconst user = store.state.token || {};\r\n\t\t// if(!user.lawyerInfo) return common.askLogin();\r\n\t\tconsole.log(filePath, callback,2222222);\r\n\t\tuni.uploadFile({\r\n\t\t\turl: config.domain + '/api/Objects/integration/xxx',\r\n\t\t\tfilePath: filePath,\r\n\t\t\tname: 'file',\r\n\t\t\theader: {\r\n\t\t\t\t'Authorization': \"Bearer \"+ user.token || '',\r\n\t\t\t},\r\n\t\t\tsuccess (res) {\r\n\t\t\t\tconsole.log(res,333333);\r\n\t\t\t\tconst data = JSON.parse(res.data);\r\n\t\t\t\tif (data.status == -100) {\r\n\t\t\t\t\tcommon.askLogin()\r\n\t\t\t\t} else if (data.status == -1) {\r\n\t\t\t\t\tcommon.showError(data.msg)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcallback(data.data, data)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t},\r\n\t\r\n\tuploadFile2(filePath, formdata, callback) {\r\n\t\tconst user = store.state.user || {};\r\n\t\tif(!user.lawyerInfo) return common.askLogin();\r\n\t\tconsole.log('1111111111111'+filePath)\r\n\t\tconsole.log('2222222222222'+formdata)\r\n\t\tconsole.log('3333333333333'+callback)\r\n\t\tuni.uploadFile({\r\n\t\t\turl: config.domain + '/file/uploadFile2',\r\n\t\t\tfilePath: filePath,\r\n\t\t\tname: 'file',\r\n\t\t\tformData: formdata,\r\n\t\t\theader: {\r\n\t\t\t\t'token': user.lawyerInfo.token || '',\r\n\t\t\t\t'login_type': user.login_type || 0,\r\n\t\t\t\t'who': user.who\r\n\t\t\t},\r\n\t\t\tsuccess (res) {\r\n\t\t\t\tconsole.log(res)\r\n\t\t\t\tconst data = JSON.parse(res.data);\r\n\t\t\t\tif (data.status == -100) {\r\n\t\t\t\t\tcommon.askLogin()\r\n\t\t\t\t} else if (data.status == -1) {\r\n\t\t\t\t\tcommon.showError(data.msg)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcallback(data.data, data)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t},\r\n\r\n\tasync get(url, data, callback) {\r\n\r\n\t\tthis.getToken()\r\n\t\tconst user = store.state.token || {};\r\n\t\tawait uni.request({\r\n\t\t\turl: config.api + url, // 仅为示例,并非真实的接口地址\r\n\t\t\tmethod: 'GET',\r\n\t\t\tdata: data,\r\n\t\t\theader: {\r\n\t\t\t\t'Authorization': \"Bearer \"+ user.token || '',\r\n\t\t\t\t'content-type': 'application/json'\r\n\t\t\t},\r\n\t\t\tsuccess(res) {\r\n\t\t\t\tconst data = res.data;\r\n\t\t\t\t// console.log(data, '请求返回的数据', 1000000000000000)\r\n\t\t\t\tif (data.status == -100) {\r\n\t\t\t\t\tconsole.log('没有登录');\r\n\t\t\t\t\tcommon.askLogin()\r\n\t\t\t\t} else if (data.status == -1) {\r\n\t\t\t\t\tcommon.showError(data.msg)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcallback(data.data, data)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t},\r\n\tpost(url, data, callback) {\r\n\t\t\r\n\t\tif(url!=\"/api/Accounts/RefreshToken\"&&user!={}){\r\n\t\t\tthis.getToken()\r\n\t\t}\r\n\t\tconst user = store.state.token || {};\r\n\t\ttry {\r\n\t\t\tuni.request({\r\n\t\t\t\turl: config.api + url, // 仅为示例,并非真实的接口地址\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\tdata: data,\r\n\t\t\t\theader: {\r\n\t\t\t\t\t'Authorization': \"Bearer \"+ user.token || '',\r\n\t\t\t\t},\r\n\t\t\t\tsuccess(res) {\r\n\t\t\t\t\tconst data = res.data;\r\n\t\t\t\t\t// console.log(res, '------------- 请求返回的数据 -------------')\r\n\t\t\t\t\tif (data.status == -100) {\r\n\t\t\t\t\t\tconsole.log('没有登录');\r\n\t\t\t\t\t\tcommon.askLogin()\r\n\t\t\t\t\t} else if (data.status == -1) {\r\n\t\t\t\t\t\tcommon.showError(data.msg)\r\n\t\t\t\t\t\tcallback(data.data, data)\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// 第一个参数是data,第二个是全部数据,有时候会用到msg之类的数据,\r\n\t\t\t\t\t\t// 默认只要第一个值即可获取数据\r\n\t\t\t\t\t\tcallback(data.data, data)\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tfail: err => {\r\n\t\t\t\t\tconsole.error(err, 8877897)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t} catch (e) {\r\n\t\t\tconsole.log(e)\r\n\t\t\t//TODO handle the exception\r\n\t\t}\r\n\t},\r\n\tpatch(url, data, callback) {\r\n\t\t\r\n\t\tif(url!=\"/api/Accounts/RefreshToken\"&&user!={}){\r\n\t\t\tthis.getToken()\r\n\t\t}\r\n\t\tconst user = store.state.token || {};\r\n\t\ttry {\r\n\t\t\tuni.request({\r\n\t\t\t\turl: config.api + url, // 仅为示例,并非真实的接口地址\r\n\t\t\t\tmethod: 'PATCH',\r\n\t\t\t\tdata: data,\r\n\t\t\t\theader: {\r\n\t\t\t\t\t'Authorization': \"Bearer \"+ user.token || '',\r\n\t\t\t\t},\r\n\t\t\t\tsuccess(res) {\r\n\t\t\t\t\tconst data = res.data;\r\n\t\t\t\t\t// console.log(res, '------------- 请求返回的数据 -------------')\r\n\t\t\t\t\tif (data.status == -100) {\r\n\t\t\t\t\t\tconsole.log('没有登录');\r\n\t\t\t\t\t\tcommon.askLogin()\r\n\t\t\t\t\t} else if (data.status == -1) {\r\n\t\t\t\t\t\tcommon.showError(data.msg)\r\n\t\t\t\t\t\tcallback(data.data, data)\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// 第一个参数是data,第二个是全部数据,有时候会用到msg之类的数据,\r\n\t\t\t\t\t\t// 默认只要第一个值即可获取数据\r\n\t\t\t\t\t\tcallback(data.data, data)\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tfail: err => {\r\n\t\t\t\t\tconsole.error(err, 8877897)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t} catch (e) {\r\n\t\t\tconsole.log(e)\r\n\t\t\t//TODO handle the exception\r\n\t\t}\r\n\t},\r\n\tget2(url, data, callback) {\r\n\t\tconst user = store.state.user || {};\r\n\t\tuni.request({\r\n\t\t\turl: config.domain + url, // 仅为示例,并非真实的接口地址\r\n\t\t\tmethod: 'GET',\r\n\t\t\tdata: data,\r\n\t\t\theader: {\r\n\t\t\t\t'token': user.token || '',\r\n\t\t\t\t'login_type': user.login_type || 0\r\n\t\t\t},\r\n\t\t\tsuccess(res) {\r\n\t\t\t\tconst data = res.data;\r\n\t\t\t\t// console.log(data, '请求返回的数据', 1000000000000000)\r\n\t\t\t\tif (data.status == -100) {\r\n\t\t\t\t\tconsole.log('没有登录');\r\n\t\t\t\t\tcommon.askLogin()\r\n\t\t\t\t} else if (data.status == -1) {\r\n\t\t\t\t\tcommon.showError(data.msg)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcallback(data.data, data)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t},\r\n\t\r\n\tpost2(url, data, callback) {\r\n\t\tconst user = store.state.user || {};\r\n\t\ttry {\r\n\t\t\tuni.request({\r\n\t\t\t\turl: config.domain + url, // 仅为示例,并非真实的接口地址\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\tdata: data,\r\n\t\t\t\theader: {\r\n\t\t\t\t\t'token': user.lawyerInfo.token || '',\r\n\t\t\t\t\t'login_type': user.login_type || 0,\r\n\t\t\t\t\t'who': user.who\r\n\t\t\t\t},\r\n\t\t\t\tsuccess(res) {\r\n\t\t\t\t\tconst data = res.data;\r\n\t\t\t\t\tconsole.log(data, '------------- 请求返回的数据 -------------')\r\n\t\t\t\t\tif (data.status == -100) {\r\n\t\t\t\t\t\tconsole.log('没有登录');\r\n\t\t\t\t\t\tcommon.askLogin()\r\n\t\t\t\t\t} else if (data.status == -1) {\r\n\t\t\t\t\t\tcommon.showError(data.msg)\r\n\t\t\t\t\t\tcallback(data.data, data)\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// 第一个参数是data,第二个是全部数据,有时候会用到msg之类的数据,\r\n\t\t\t\t\t\t// 默认只要第一个值即可获取数据\r\n\t\t\t\t\t\tcallback(data.data, data)\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tfail: err => {\r\n\t\t\t\t\tconsole.error(err, 8877897)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t} catch (e) {\r\n\t\t\tconsole.log(e)\r\n\t\t\t//TODO handle the exception\r\n\t\t}\r\n\t},\r\n\t\r\n\t\r\n}\r\n\r\nexport default request\r\n","import{initVueI18n as e}from\"@dcloudio/uni-i18n\";import t from\"@/pages.json\";\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self&&self;function n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}function s(e,t,n){return e(n={path:t,exports:{},require:function(e,t){return function(){throw new Error(\"Dynamic requires are not currently supported by @rollup/plugin-commonjs\")}(null==t&&n.path)}},n.exports),n.exports}var o=s((function(e,t){var n;e.exports=(n=n||function(e,t){var n=Object.create||function(){function e(){}return function(t){var n;return e.prototype=t,n=new e,e.prototype=null,n}}(),s={},o=s.lib={},r=o.Base={extend:function(e){var t=n(this);return e&&t.mixIn(e),t.hasOwnProperty(\"init\")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty(\"toString\")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},i=o.WordArray=r.extend({init:function(e,n){e=this.words=e||[],this.sigBytes=n!=t?n:4*e.length},toString:function(e){return(e||c).stringify(this)},concat:function(e){var t=this.words,n=e.words,s=this.sigBytes,o=e.sigBytes;if(this.clamp(),s%4)for(var r=0;r>>2]>>>24-r%4*8&255;t[s+r>>>2]|=i<<24-(s+r)%4*8}else for(r=0;r>>2]=n[r>>>2];return this.sigBytes+=o,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=r.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var n,s=[],o=function(t){t=t;var n=987654321,s=4294967295;return function(){var o=((n=36969*(65535&n)+(n>>16)&s)<<16)+(t=18e3*(65535&t)+(t>>16)&s)&s;return o/=4294967296,(o+=.5)*(e.random()>.5?1:-1)}},r=0;r>>2]>>>24-o%4*8&255;s.push((r>>>4).toString(16)),s.push((15&r).toString(16))}return s.join(\"\")},parse:function(e){for(var t=e.length,n=[],s=0;s>>3]|=parseInt(e.substr(s,2),16)<<24-s%8*4;return new i.init(n,t/2)}},u=a.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,s=[],o=0;o>>2]>>>24-o%4*8&255;s.push(String.fromCharCode(r))}return s.join(\"\")},parse:function(e){for(var t=e.length,n=[],s=0;s>>2]|=(255&e.charCodeAt(s))<<24-s%4*8;return new i.init(n,t)}},l=a.Utf8={stringify:function(e){try{return decodeURIComponent(escape(u.stringify(e)))}catch(e){throw new Error(\"Malformed UTF-8 data\")}},parse:function(e){return u.parse(unescape(encodeURIComponent(e)))}},h=o.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new i.init,this._nDataBytes=0},_append:function(e){\"string\"==typeof e&&(e=l.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n=this._data,s=n.words,o=n.sigBytes,r=this.blockSize,a=o/(4*r),c=(a=t?e.ceil(a):e.max((0|a)-this._minBufferSize,0))*r,u=e.min(4*c,o);if(c){for(var l=0;l>>24)|4278255360&(o<<24|o>>>8)}var r=this._hash.words,i=e[t+0],c=e[t+1],f=e[t+2],g=e[t+3],p=e[t+4],m=e[t+5],y=e[t+6],_=e[t+7],w=e[t+8],k=e[t+9],T=e[t+10],S=e[t+11],v=e[t+12],A=e[t+13],P=e[t+14],I=e[t+15],b=r[0],O=r[1],C=r[2],E=r[3];b=u(b,O,C,E,i,7,a[0]),E=u(E,b,O,C,c,12,a[1]),C=u(C,E,b,O,f,17,a[2]),O=u(O,C,E,b,g,22,a[3]),b=u(b,O,C,E,p,7,a[4]),E=u(E,b,O,C,m,12,a[5]),C=u(C,E,b,O,y,17,a[6]),O=u(O,C,E,b,_,22,a[7]),b=u(b,O,C,E,w,7,a[8]),E=u(E,b,O,C,k,12,a[9]),C=u(C,E,b,O,T,17,a[10]),O=u(O,C,E,b,S,22,a[11]),b=u(b,O,C,E,v,7,a[12]),E=u(E,b,O,C,A,12,a[13]),C=u(C,E,b,O,P,17,a[14]),b=l(b,O=u(O,C,E,b,I,22,a[15]),C,E,c,5,a[16]),E=l(E,b,O,C,y,9,a[17]),C=l(C,E,b,O,S,14,a[18]),O=l(O,C,E,b,i,20,a[19]),b=l(b,O,C,E,m,5,a[20]),E=l(E,b,O,C,T,9,a[21]),C=l(C,E,b,O,I,14,a[22]),O=l(O,C,E,b,p,20,a[23]),b=l(b,O,C,E,k,5,a[24]),E=l(E,b,O,C,P,9,a[25]),C=l(C,E,b,O,g,14,a[26]),O=l(O,C,E,b,w,20,a[27]),b=l(b,O,C,E,A,5,a[28]),E=l(E,b,O,C,f,9,a[29]),C=l(C,E,b,O,_,14,a[30]),b=h(b,O=l(O,C,E,b,v,20,a[31]),C,E,m,4,a[32]),E=h(E,b,O,C,w,11,a[33]),C=h(C,E,b,O,S,16,a[34]),O=h(O,C,E,b,P,23,a[35]),b=h(b,O,C,E,c,4,a[36]),E=h(E,b,O,C,p,11,a[37]),C=h(C,E,b,O,_,16,a[38]),O=h(O,C,E,b,T,23,a[39]),b=h(b,O,C,E,A,4,a[40]),E=h(E,b,O,C,i,11,a[41]),C=h(C,E,b,O,g,16,a[42]),O=h(O,C,E,b,y,23,a[43]),b=h(b,O,C,E,k,4,a[44]),E=h(E,b,O,C,v,11,a[45]),C=h(C,E,b,O,I,16,a[46]),b=d(b,O=h(O,C,E,b,f,23,a[47]),C,E,i,6,a[48]),E=d(E,b,O,C,_,10,a[49]),C=d(C,E,b,O,P,15,a[50]),O=d(O,C,E,b,m,21,a[51]),b=d(b,O,C,E,v,6,a[52]),E=d(E,b,O,C,g,10,a[53]),C=d(C,E,b,O,T,15,a[54]),O=d(O,C,E,b,c,21,a[55]),b=d(b,O,C,E,w,6,a[56]),E=d(E,b,O,C,I,10,a[57]),C=d(C,E,b,O,y,15,a[58]),O=d(O,C,E,b,A,21,a[59]),b=d(b,O,C,E,p,6,a[60]),E=d(E,b,O,C,S,10,a[61]),C=d(C,E,b,O,f,15,a[62]),O=d(O,C,E,b,k,21,a[63]),r[0]=r[0]+b|0,r[1]=r[1]+O|0,r[2]=r[2]+C|0,r[3]=r[3]+E|0},_doFinalize:function(){var t=this._data,n=t.words,s=8*this._nDataBytes,o=8*t.sigBytes;n[o>>>5]|=128<<24-o%32;var r=e.floor(s/4294967296),i=s;n[15+(o+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),n[14+(o+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),t.sigBytes=4*(n.length+1),this._process();for(var a=this._hash,c=a.words,u=0;u<4;u++){var l=c[u];c[u]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return a},clone:function(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e}});function u(e,t,n,s,o,r,i){var a=e+(t&n|~t&s)+o+i;return(a<>>32-r)+t}function l(e,t,n,s,o,r,i){var a=e+(t&s|n&~s)+o+i;return(a<>>32-r)+t}function h(e,t,n,s,o,r,i){var a=e+(t^n^s)+o+i;return(a<>>32-r)+t}function d(e,t,n,s,o,r,i){var a=e+(n^(t|~s))+o+i;return(a<>>32-r)+t}t.MD5=r._createHelper(c),t.HmacMD5=r._createHmacHelper(c)}(Math),n.MD5)})),s((function(e,t){var n,s,r;e.exports=(s=(n=o).lib.Base,r=n.enc.Utf8,void(n.algo.HMAC=s.extend({init:function(e,t){e=this._hasher=new e.init,\"string\"==typeof t&&(t=r.parse(t));var n=e.blockSize,s=4*n;t.sigBytes>s&&(t=e.finalize(t)),t.clamp();for(var o=this._oKey=t.clone(),i=this._iKey=t.clone(),a=o.words,c=i.words,u=0;u{T.indexOf(n)>-1&&function(e,t,n){let s=S[e][t];s||(s=S[e][t]=[]),-1===s.indexOf(n)&&\"function\"==typeof n&&s.push(n)}(e,n,t[n])}))}function A(e,t){S[e]||(S[e]={}),l(t)?Object.keys(t).forEach((n=>{T.indexOf(n)>-1&&function(e,t,n){const s=S[e][t];if(!s)return;const o=s.indexOf(n);o>-1&&s.splice(o,1)}(e,n,t[n])})):delete S[e]}function P(e,t){return e&&0!==e.length?e.reduce(((e,n)=>e.then((()=>n(t)))),Promise.resolve()):Promise.resolve()}function I(e,t){return S[e]&&S[e][t]||[]}const b=k(\"_globalUniCloudListener\"),O=\"response\",C=\"needLogin\",E=\"refreshToken\",R=\"clientdb\",U=\"cloudfunction\",x=\"cloudobject\";function L(e){return b[e]||(b[e]=[]),b[e]}function D(e,t){const n=L(e);n.includes(t)||n.push(t)}function q(e,t){const n=L(e),s=n.indexOf(t);-1!==s&&n.splice(s,1)}function N(e,t){const n=L(e);for(let e=0;es?Promise.resolve():P(I(t,\"invoke\"),n))).then((()=>e.call(this,n))).then((e=>s?Promise.resolve(e):P(I(t,\"success\"),e).then((()=>P(I(t,\"complete\"),e))).then((()=>(o&&N(O,{type:U,content:e}),Promise.resolve(e))))),(e=>s?Promise.reject(e):P(I(t,\"fail\"),e).then((()=>P(I(t,\"complete\"),e))).then((()=>(N(O,{type:U,content:e}),Promise.reject(e))))));if(!(n.success||n.fail||n.complete))return a;a.then((e=>{n.success&&n.success(e),n.complete&&n.complete(e),o&&N(O,{type:U,content:e})}),(e=>{n.fail&&n.fail(e),n.complete&&n.complete(e),o&&N(O,{type:U,content:e})}))}:function(t){if(!((t=t||{}).success||t.fail||t.complete))return e.call(this,t);e.call(this,t).then((e=>{t.success&&t.success(e),t.complete&&t.complete(e)}),(e=>{t.fail&&t.fail(e),t.complete&&t.complete(e)}))}}class M extends Error{constructor(e){super(e.message),this.errMsg=e.message||\"\",this.errCode=this.code=e.code||\"SYSTEM_ERROR\",this.requestId=e.requestId}}function $(){let e,t;try{if(uni.getLaunchOptionsSync){if(uni.getLaunchOptionsSync.toString().indexOf(\"not yet implemented\")>-1)return;const{scene:n,channel:s}=uni.getLaunchOptionsSync();e=s,t=n}}catch(e){}return{channel:e,scene:t}}let j;function K(){const e=uni.getLocale&&uni.getLocale()||\"en\";if(j)return{...j,locale:e,LOCALE:e};const t=uni.getSystemInfoSync(),{deviceId:n,osName:s,uniPlatform:o,appId:r}=t,i=[\"pixelRatio\",\"brand\",\"model\",\"system\",\"language\",\"version\",\"platform\",\"host\",\"SDKVersion\",\"swanNativeVersion\",\"app\",\"AppPlatform\",\"fontSizeSetting\"];for(let e=0;e{t(Object.assign(e,{complete(e){e||(e={}),d&&\"web\"===g&&e.errMsg&&0===e.errMsg.indexOf(\"request:fail\")&&console.warn(\"发布H5,需要在uniCloud后台操作,绑定安全域名,否则会因为跨域问题而无法访问。教程参考:https://uniapp.dcloud.io/uniCloud/quickstart?id=useinh5\");const t=e.data&&e.data.header&&e.data.header[\"x-serverless-request-id\"]||e.header&&e.header[\"request-id\"];if(!e.statusCode||e.statusCode>=400)return s(new M({code:\"SYS_ERR\",message:e.errMsg||\"request:fail\",requestId:t}));const o=e.data;if(o.error)return s(new M({code:o.error.code,message:o.error.message,requestId:t}));o.result=o.data,o.requestId=t,delete o.data,n(o)}}))}))}};var H={request:e=>uni.request(e),uploadFile:e=>uni.uploadFile(e),setStorageSync:(e,t)=>uni.setStorageSync(e,t),getStorageSync:e=>uni.getStorageSync(e),removeStorageSync:e=>uni.removeStorageSync(e),clearStorageSync:()=>uni.clearStorageSync()},W={\"uniCloud.init.paramRequired\":\"{param} required\",\"uniCloud.uploadFile.fileError\":\"filePath should be instance of File\"};const{t:z}=e({\"zh-Hans\":{\"uniCloud.init.paramRequired\":\"缺少参数:{param}\",\"uniCloud.uploadFile.fileError\":\"filePath应为File对象\"},\"zh-Hant\":{\"uniCloud.init.paramRequired\":\"缺少参数:{param}\",\"uniCloud.uploadFile.fileError\":\"filePath应为File对象\"},en:W,fr:{\"uniCloud.init.paramRequired\":\"{param} required\",\"uniCloud.uploadFile.fileError\":\"filePath should be instance of File\"},es:{\"uniCloud.init.paramRequired\":\"{param} required\",\"uniCloud.uploadFile.fileError\":\"filePath should be instance of File\"},ja:W},\"zh-Hans\");var V=class{constructor(e){[\"spaceId\",\"clientSecret\"].forEach((t=>{if(!Object.prototype.hasOwnProperty.call(e,t))throw new Error(z(\"uniCloud.init.paramRequired\",{param:t}))})),this.config=Object.assign({},{endpoint:\"https://api.bspapp.com\"},e),this.config.provider=\"aliyun\",this.config.requestUrl=this.config.endpoint+\"/client\",this.config.envType=this.config.envType||\"public\",this.config.accessTokenKey=\"access_token_\"+this.config.spaceId,this.adapter=H,this._getAccessTokenPromise=null,this._getAccessTokenPromiseStatus=null}get hasAccessToken(){return!!this.accessToken}setAccessToken(e){this.accessToken=e}requestWrapped(e){return B.wrappedRequest(e,this.adapter.request)}requestAuth(e){return this.requestWrapped(e)}request(e,t){return Promise.resolve().then((()=>this.hasAccessToken?t?this.requestWrapped(e):this.requestWrapped(e).catch((t=>new Promise(((e,n)=>{!t||\"GATEWAY_INVALID_TOKEN\"!==t.code&&\"InvalidParameter.InvalidToken\"!==t.code?n(t):e()})).then((()=>this.getAccessToken())).then((()=>{const t=this.rebuildRequest(e);return this.request(t,!0)})))):this.getAccessToken().then((()=>{const t=this.rebuildRequest(e);return this.request(t,!0)}))))}rebuildRequest(e){const t=Object.assign({},e);return t.data.token=this.accessToken,t.header[\"x-basement-token\"]=this.accessToken,t.header[\"x-serverless-sign\"]=B.sign(t.data,this.config.clientSecret),t}setupRequest(e,t){const n=Object.assign({},e,{spaceId:this.config.spaceId,timestamp:Date.now()}),s={\"Content-Type\":\"application/json\"};return\"auth\"!==t&&(n.token=this.accessToken,s[\"x-basement-token\"]=this.accessToken),s[\"x-serverless-sign\"]=B.sign(n,this.config.clientSecret),{url:this.config.requestUrl,method:\"POST\",data:n,dataType:\"json\",header:s}}getAccessToken(){if(\"pending\"===this._getAccessTokenPromiseStatus)return this._getAccessTokenPromise;this._getAccessTokenPromiseStatus=\"pending\";return this._getAccessTokenPromise=this.requestAuth(this.setupRequest({method:\"serverless.auth.user.anonymousAuthorize\",params:\"{}\"},\"auth\")).then((e=>new Promise(((t,n)=>{e.result&&e.result.accessToken?(this.setAccessToken(e.result.accessToken),this._getAccessTokenPromiseStatus=\"fulfilled\",t(this.accessToken)):(this._getAccessTokenPromiseStatus=\"rejected\",n(new M({code:\"AUTH_FAILED\",message:\"获取accessToken失败\"})))}))),(e=>(this._getAccessTokenPromiseStatus=\"rejected\",Promise.reject(e)))),this._getAccessTokenPromise}authorize(){this.getAccessToken()}callFunction(e){const t={method:\"serverless.function.runtime.invoke\",params:JSON.stringify({functionTarget:e.name,functionArgs:e.data||{}})};return this.request(this.setupRequest(t))}getOSSUploadOptionsFromPath(e){const t={method:\"serverless.file.resource.generateProximalSign\",params:JSON.stringify(e)};return this.request(this.setupRequest(t))}uploadFileToOSS({url:e,formData:t,name:n,filePath:s,fileType:o,onUploadProgress:r}){return new Promise(((i,a)=>{const c=this.adapter.uploadFile({url:e,formData:t,name:n,filePath:s,fileType:o,header:{\"X-OSS-server-side-encrpytion\":\"AES256\"},success(e){e&&e.statusCode<400?i(e):a(new M({code:\"UPLOAD_FAILED\",message:\"文件上传失败\"}))},fail(e){a(new M({code:e.code||\"UPLOAD_FAILED\",message:e.message||e.errMsg||\"文件上传失败\"}))}});\"function\"==typeof r&&c&&\"function\"==typeof c.onProgressUpdate&&c.onProgressUpdate((e=>{r({loaded:e.totalBytesSent,total:e.totalBytesExpectedToSend})}))}))}reportOSSUpload(e){const t={method:\"serverless.file.resource.report\",params:JSON.stringify(e)};return this.request(this.setupRequest(t))}uploadFile({filePath:e,cloudPath:t,fileType:n=\"image\",onUploadProgress:s,config:o}){if(\"string\"!==u(t))throw new M({code:\"INVALID_PARAM\",message:\"cloudPath必须为字符串类型\"});if(!(t=t.trim()))throw new M({code:\"CLOUDPATH_REQUIRED\",message:\"cloudPath不可为空\"});if(/:\\/\\//.test(t))throw new M({code:\"INVALID_PARAM\",message:\"cloudPath不合法\"});const r=o&&o.envType||this.config.envType;let i,a;return this.getOSSUploadOptionsFromPath({env:r,filename:t}).then((t=>{const o=t.result;i=o.id,a=\"https://\"+o.cdnDomain+\"/\"+o.ossPath;const r={url:\"https://\"+o.host,formData:{\"Cache-Control\":\"max-age=2592000\",\"Content-Disposition\":\"attachment\",OSSAccessKeyId:o.accessKeyId,Signature:o.signature,host:o.host,id:i,key:o.ossPath,policy:o.policy,success_action_status:200},fileName:\"file\",name:\"file\",filePath:e,fileType:n};return this.uploadFileToOSS(Object.assign({},r,{onUploadProgress:s}))})).then((()=>this.reportOSSUpload({id:i}))).then((t=>new Promise(((n,s)=>{t.success?n({success:!0,filePath:e,fileID:a}):s(new M({code:\"UPLOAD_FAILED\",message:\"文件上传失败\"}))}))))}deleteFile({fileList:e}){const t={method:\"serverless.file.resource.delete\",params:JSON.stringify({id:e[0]})};return this.request(this.setupRequest(t))}getTempFileURL({fileList:e}={}){return new Promise(((t,n)=>{Array.isArray(e)&&0!==e.length||n(new M({code:\"INVALID_PARAM\",message:\"fileList的元素必须是非空的字符串\"})),t({fileList:e.map((e=>({fileID:e,tempFileURL:e})))})}))}};var J={init(e){const t=new V(e),n={signInAnonymously:function(){return t.authorize()},getLoginState:function(){return Promise.resolve(!1)}};return t.auth=function(){return n},t.customAuth=t.auth,t}};const Y=\"undefined\"!=typeof location&&\"http:\"===location.protocol?\"http:\":\"https:\";var X;!function(e){e.local=\"local\",e.none=\"none\",e.session=\"session\"}(X||(X={}));var G=function(){};const Q=()=>{let e;if(!Promise){e=()=>{},e.promise={};const t=()=>{throw new M({message:'Your Node runtime does support ES6 Promises. Set \"global.Promise\" to your preferred implementation of promises.'})};return Object.defineProperty(e.promise,\"then\",{get:t}),Object.defineProperty(e.promise,\"catch\",{get:t}),e}const t=new Promise(((t,n)=>{e=(e,s)=>e?n(e):t(s)}));return e.promise=t,e};function Z(e){return void 0===e}function ee(e){return\"[object Null]\"===Object.prototype.toString.call(e)}var te;function ne(e){const t=(n=e,\"[object Array]\"===Object.prototype.toString.call(n)?e:[e]);var n;for(const e of t){const{isMatch:t,genAdapter:n,runtime:s}=e;if(t())return{adapter:n(),runtime:s}}}!function(e){e.WEB=\"web\",e.WX_MP=\"wx_mp\"}(te||(te={}));const se={adapter:null,runtime:void 0},oe=[\"anonymousUuidKey\"];class re extends G{constructor(){super(),se.adapter.root.tcbObject||(se.adapter.root.tcbObject={})}setItem(e,t){se.adapter.root.tcbObject[e]=t}getItem(e){return se.adapter.root.tcbObject[e]}removeItem(e){delete se.adapter.root.tcbObject[e]}clear(){delete se.adapter.root.tcbObject}}function ie(e,t){switch(e){case\"local\":return t.localStorage||new re;case\"none\":return new re;default:return t.sessionStorage||new re}}class ae{constructor(e){if(!this._storage){this._persistence=se.adapter.primaryStorage||e.persistence,this._storage=ie(this._persistence,se.adapter);const t=`access_token_${e.env}`,n=`access_token_expire_${e.env}`,s=`refresh_token_${e.env}`,o=`anonymous_uuid_${e.env}`,r=`login_type_${e.env}`,i=`user_info_${e.env}`;this.keys={accessTokenKey:t,accessTokenExpireKey:n,refreshTokenKey:s,anonymousUuidKey:o,loginTypeKey:r,userInfoKey:i}}}updatePersistence(e){if(e===this._persistence)return;const t=\"local\"===this._persistence;this._persistence=e;const n=ie(e,se.adapter);for(const e in this.keys){const s=this.keys[e];if(t&&oe.includes(e))continue;const o=this._storage.getItem(s);Z(o)||ee(o)||(n.setItem(s,o),this._storage.removeItem(s))}this._storage=n}setStore(e,t,n){if(!this._storage)return;const s={version:n||\"localCachev1\",content:t},o=JSON.stringify(s);try{this._storage.setItem(e,o)}catch(e){throw e}}getStore(e,t){try{if(!this._storage)return}catch(e){return\"\"}t=t||\"localCachev1\";const n=this._storage.getItem(e);if(!n)return\"\";if(n.indexOf(t)>=0){return JSON.parse(n).content}return\"\"}removeStore(e){this._storage.removeItem(e)}}const ce={},ue={};function le(e){return ce[e]}class he{constructor(e,t){this.data=t||null,this.name=e}}class de extends he{constructor(e,t){super(\"error\",{error:e,data:t}),this.error=e}}const fe=new class{constructor(){this._listeners={}}on(e,t){return function(e,t,n){n[e]=n[e]||[],n[e].push(t)}(e,t,this._listeners),this}off(e,t){return function(e,t,n){if(n&&n[e]){const s=n[e].indexOf(t);-1!==s&&n[e].splice(s,1)}}(e,t,this._listeners),this}fire(e,t){if(e instanceof de)return console.error(e.error),this;const n=\"string\"==typeof e?new he(e,t||{}):e;const s=n.name;if(this._listens(s)){n.target=this;const e=this._listeners[s]?[...this._listeners[s]]:[];for(const t of e)t.call(this,n)}return this}_listens(e){return this._listeners[e]&&this._listeners[e].length>0}};function ge(e,t){fe.on(e,t)}function pe(e,t={}){fe.fire(e,t)}function me(e,t){fe.off(e,t)}const ye=\"loginStateChanged\",_e=\"loginStateExpire\",we=\"loginTypeChanged\",ke=\"anonymousConverted\",Te=\"refreshAccessToken\";var Se;!function(e){e.ANONYMOUS=\"ANONYMOUS\",e.WECHAT=\"WECHAT\",e.WECHAT_PUBLIC=\"WECHAT-PUBLIC\",e.WECHAT_OPEN=\"WECHAT-OPEN\",e.CUSTOM=\"CUSTOM\",e.EMAIL=\"EMAIL\",e.USERNAME=\"USERNAME\",e.NULL=\"NULL\"}(Se||(Se={}));const ve=[\"auth.getJwt\",\"auth.logout\",\"auth.signInWithTicket\",\"auth.signInAnonymously\",\"auth.signIn\",\"auth.fetchAccessTokenWithRefreshToken\",\"auth.signUpWithEmailAndPassword\",\"auth.activateEndUserMail\",\"auth.sendPasswordResetEmail\",\"auth.resetPasswordWithToken\",\"auth.isUsernameRegistered\"],Ae={\"X-SDK-Version\":\"1.3.5\"};function Pe(e,t,n){const s=e[t];e[t]=function(t){const o={},r={};n.forEach((n=>{const{data:s,headers:i}=n.call(e,t);Object.assign(o,s),Object.assign(r,i)}));const i=t.data;return i&&(()=>{var e;if(e=i,\"[object FormData]\"!==Object.prototype.toString.call(e))t.data={...i,...o};else for(const e in o)i.append(e,o[e])})(),t.headers={...t.headers||{},...r},s.call(e,t)}}function Ie(){const e=Math.random().toString(16).slice(2);return{data:{seqId:e},headers:{...Ae,\"x-seqid\":e}}}class be{constructor(e={}){var t;this.config=e,this._reqClass=new se.adapter.reqClass({timeout:this.config.timeout,timeoutMsg:`请求在${this.config.timeout/1e3}s内未完成,已中断`,restrictedMethods:[\"post\"]}),this._cache=le(this.config.env),this._localCache=(t=this.config.env,ue[t]),Pe(this._reqClass,\"post\",[Ie]),Pe(this._reqClass,\"upload\",[Ie]),Pe(this._reqClass,\"download\",[Ie])}async post(e){return await this._reqClass.post(e)}async upload(e){return await this._reqClass.upload(e)}async download(e){return await this._reqClass.download(e)}async refreshAccessToken(){let e,t;this._refreshAccessTokenPromise||(this._refreshAccessTokenPromise=this._refreshAccessToken());try{e=await this._refreshAccessTokenPromise}catch(e){t=e}if(this._refreshAccessTokenPromise=null,this._shouldRefreshAccessTokenHook=null,t)throw t;return e}async _refreshAccessToken(){const{accessTokenKey:e,accessTokenExpireKey:t,refreshTokenKey:n,loginTypeKey:s,anonymousUuidKey:o}=this._cache.keys;this._cache.removeStore(e),this._cache.removeStore(t);let r=this._cache.getStore(n);if(!r)throw new M({message:\"未登录CloudBase\"});const i={refresh_token:r},a=await this.request(\"auth.fetchAccessTokenWithRefreshToken\",i);if(a.data.code){const{code:e}=a.data;if(\"SIGN_PARAM_INVALID\"===e||\"REFRESH_TOKEN_EXPIRED\"===e||\"INVALID_REFRESH_TOKEN\"===e){if(this._cache.getStore(s)===Se.ANONYMOUS&&\"INVALID_REFRESH_TOKEN\"===e){const e=this._cache.getStore(o),t=this._cache.getStore(n),s=await this.send(\"auth.signInAnonymously\",{anonymous_uuid:e,refresh_token:t});return this.setRefreshToken(s.refresh_token),this._refreshAccessToken()}pe(_e),this._cache.removeStore(n)}throw new M({code:a.data.code,message:`刷新access token失败:${a.data.code}`})}if(a.data.access_token)return pe(Te),this._cache.setStore(e,a.data.access_token),this._cache.setStore(t,a.data.access_token_expire+Date.now()),{accessToken:a.data.access_token,accessTokenExpire:a.data.access_token_expire};a.data.refresh_token&&(this._cache.removeStore(n),this._cache.setStore(n,a.data.refresh_token),this._refreshAccessToken())}async getAccessToken(){const{accessTokenKey:e,accessTokenExpireKey:t,refreshTokenKey:n}=this._cache.keys;if(!this._cache.getStore(n))throw new M({message:\"refresh token不存在,登录状态异常\"});let s=this._cache.getStore(e),o=this._cache.getStore(t),r=!0;return this._shouldRefreshAccessTokenHook&&!await this._shouldRefreshAccessTokenHook(s,o)&&(r=!1),(!s||!o||o{e.wxOpenId&&e.wxPublicId&&(t=!0)})),{users:n,hasPrimaryUid:t}}setPrimaryUid(e){return this._request.send(\"auth.setPrimaryUid\",{uid:e})}unlink(e){return this._request.send(\"auth.unlink\",{platform:e})}async update(e){const{nickName:t,gender:n,avatarUrl:s,province:o,country:r,city:i}=e,{data:a}=await this._request.send(\"auth.updateUserInfo\",{nickName:t,gender:n,avatarUrl:s,province:o,country:r,city:i});this.setLocalUserInfo(a)}async refresh(){const{data:e}=await this._request.send(\"auth.getUserInfo\",{});return this.setLocalUserInfo(e),e}setUserInfo(){const{userInfoKey:e}=this._cache.keys,t=this._cache.getStore(e);[\"uid\",\"loginType\",\"openid\",\"wxOpenId\",\"wxPublicId\",\"unionId\",\"qqMiniOpenId\",\"email\",\"hasPassword\",\"customUserId\",\"nickName\",\"gender\",\"avatarUrl\"].forEach((e=>{this[e]=t[e]})),this.location={country:t.country,province:t.province,city:t.city}}setLocalUserInfo(e){const{userInfoKey:t}=this._cache.keys;this._cache.setStore(t,e),this.setUserInfo()}}class Ue{constructor(e){if(!e)throw new M({code:\"PARAM_ERROR\",message:\"envId is not defined\"});this._cache=le(e);const{refreshTokenKey:t,accessTokenKey:n,accessTokenExpireKey:s}=this._cache.keys,o=this._cache.getStore(t),r=this._cache.getStore(n),i=this._cache.getStore(s);this.credential={refreshToken:o,accessToken:r,accessTokenExpire:i},this.user=new Re(e)}get isAnonymousAuth(){return this.loginType===Se.ANONYMOUS}get isCustomAuth(){return this.loginType===Se.CUSTOM}get isWeixinAuth(){return this.loginType===Se.WECHAT||this.loginType===Se.WECHAT_OPEN||this.loginType===Se.WECHAT_PUBLIC}get loginType(){return this._cache.getStore(this._cache.keys.loginTypeKey)}}class xe extends Ee{async signIn(){this._cache.updatePersistence(\"local\");const{anonymousUuidKey:e,refreshTokenKey:t}=this._cache.keys,n=this._cache.getStore(e)||void 0,s=this._cache.getStore(t)||void 0,o=await this._request.send(\"auth.signInAnonymously\",{anonymous_uuid:n,refresh_token:s});if(o.uuid&&o.refresh_token){this._setAnonymousUUID(o.uuid),this.setRefreshToken(o.refresh_token),await this._request.refreshAccessToken(),pe(ye),pe(we,{env:this.config.env,loginType:Se.ANONYMOUS,persistence:\"local\"});const e=new Ue(this.config.env);return await e.user.refresh(),e}throw new M({message:\"匿名登录失败\"})}async linkAndRetrieveDataWithTicket(e){const{anonymousUuidKey:t,refreshTokenKey:n}=this._cache.keys,s=this._cache.getStore(t),o=this._cache.getStore(n),r=await this._request.send(\"auth.linkAndRetrieveDataWithTicket\",{anonymous_uuid:s,refresh_token:o,ticket:e});if(r.refresh_token)return this._clearAnonymousUUID(),this.setRefreshToken(r.refresh_token),await this._request.refreshAccessToken(),pe(ke,{env:this.config.env}),pe(we,{loginType:Se.CUSTOM,persistence:\"local\"}),{credential:{refreshToken:r.refresh_token}};throw new M({message:\"匿名转化失败\"})}_setAnonymousUUID(e){const{anonymousUuidKey:t,loginTypeKey:n}=this._cache.keys;this._cache.removeStore(t),this._cache.setStore(t,e),this._cache.setStore(n,Se.ANONYMOUS)}_clearAnonymousUUID(){this._cache.removeStore(this._cache.keys.anonymousUuidKey)}}class Le extends Ee{async signIn(e){if(\"string\"!=typeof e)throw new M({param:\"PARAM_ERROR\",message:\"ticket must be a string\"});const{refreshTokenKey:t}=this._cache.keys,n=await this._request.send(\"auth.signInWithTicket\",{ticket:e,refresh_token:this._cache.getStore(t)||\"\"});if(n.refresh_token)return this.setRefreshToken(n.refresh_token),await this._request.refreshAccessToken(),pe(ye),pe(we,{env:this.config.env,loginType:Se.CUSTOM,persistence:this.config.persistence}),await this.refreshUserInfo(),new Ue(this.config.env);throw new M({message:\"自定义登录失败\"})}}class De extends Ee{async signIn(e,t){if(\"string\"!=typeof e)throw new M({code:\"PARAM_ERROR\",message:\"email must be a string\"});const{refreshTokenKey:n}=this._cache.keys,s=await this._request.send(\"auth.signIn\",{loginType:\"EMAIL\",email:e,password:t,refresh_token:this._cache.getStore(n)||\"\"}),{refresh_token:o,access_token:r,access_token_expire:i}=s;if(o)return this.setRefreshToken(o),r&&i?this.setAccessToken(r,i):await this._request.refreshAccessToken(),await this.refreshUserInfo(),pe(ye),pe(we,{env:this.config.env,loginType:Se.EMAIL,persistence:this.config.persistence}),new Ue(this.config.env);throw s.code?new M({code:s.code,message:`邮箱登录失败: ${s.message}`}):new M({message:\"邮箱登录失败\"})}async activate(e){return this._request.send(\"auth.activateEndUserMail\",{token:e})}async resetPasswordWithToken(e,t){return this._request.send(\"auth.resetPasswordWithToken\",{token:e,newPassword:t})}}class qe extends Ee{async signIn(e,t){if(\"string\"!=typeof e)throw new M({code:\"PARAM_ERROR\",message:\"username must be a string\"});\"string\"!=typeof t&&(t=\"\",console.warn(\"password is empty\"));const{refreshTokenKey:n}=this._cache.keys,s=await this._request.send(\"auth.signIn\",{loginType:Se.USERNAME,username:e,password:t,refresh_token:this._cache.getStore(n)||\"\"}),{refresh_token:o,access_token_expire:r,access_token:i}=s;if(o)return this.setRefreshToken(o),i&&r?this.setAccessToken(i,r):await this._request.refreshAccessToken(),await this.refreshUserInfo(),pe(ye),pe(we,{env:this.config.env,loginType:Se.USERNAME,persistence:this.config.persistence}),new Ue(this.config.env);throw s.code?new M({code:s.code,message:`用户名密码登录失败: ${s.message}`}):new M({message:\"用户名密码登录失败\"})}}class Ne{constructor(e){this.config=e,this._cache=le(e.env),this._request=Ce(e.env),this._onAnonymousConverted=this._onAnonymousConverted.bind(this),this._onLoginTypeChanged=this._onLoginTypeChanged.bind(this),ge(we,this._onLoginTypeChanged)}get currentUser(){const e=this.hasLoginState();return e&&e.user||null}get loginType(){return this._cache.getStore(this._cache.keys.loginTypeKey)}anonymousAuthProvider(){return new xe(this.config)}customAuthProvider(){return new Le(this.config)}emailAuthProvider(){return new De(this.config)}usernameAuthProvider(){return new qe(this.config)}async signInAnonymously(){return new xe(this.config).signIn()}async signInWithEmailAndPassword(e,t){return new De(this.config).signIn(e,t)}signInWithUsernameAndPassword(e,t){return new qe(this.config).signIn(e,t)}async linkAndRetrieveDataWithTicket(e){this._anonymousAuthProvider||(this._anonymousAuthProvider=new xe(this.config)),ge(ke,this._onAnonymousConverted);return await this._anonymousAuthProvider.linkAndRetrieveDataWithTicket(e)}async signOut(){if(this.loginType===Se.ANONYMOUS)throw new M({message:\"匿名用户不支持登出操作\"});const{refreshTokenKey:e,accessTokenKey:t,accessTokenExpireKey:n}=this._cache.keys,s=this._cache.getStore(e);if(!s)return;const o=await this._request.send(\"auth.logout\",{refresh_token:s});return this._cache.removeStore(e),this._cache.removeStore(t),this._cache.removeStore(n),pe(ye),pe(we,{env:this.config.env,loginType:Se.NULL,persistence:this.config.persistence}),o}async signUpWithEmailAndPassword(e,t){return this._request.send(\"auth.signUpWithEmailAndPassword\",{email:e,password:t})}async sendPasswordResetEmail(e){return this._request.send(\"auth.sendPasswordResetEmail\",{email:e})}onLoginStateChanged(e){ge(ye,(()=>{const t=this.hasLoginState();e.call(this,t)}));const t=this.hasLoginState();e.call(this,t)}onLoginStateExpired(e){ge(_e,e.bind(this))}onAccessTokenRefreshed(e){ge(Te,e.bind(this))}onAnonymousConverted(e){ge(ke,e.bind(this))}onLoginTypeChanged(e){ge(we,(()=>{const t=this.hasLoginState();e.call(this,t)}))}async getAccessToken(){return{accessToken:(await this._request.getAccessToken()).accessToken,env:this.config.env}}hasLoginState(){const{refreshTokenKey:e}=this._cache.keys;return this._cache.getStore(e)?new Ue(this.config.env):null}async isUsernameRegistered(e){if(\"string\"!=typeof e)throw new M({code:\"PARAM_ERROR\",message:\"username must be a string\"});const{data:t}=await this._request.send(\"auth.isUsernameRegistered\",{username:e});return t&&t.isRegistered}getLoginState(){return Promise.resolve(this.hasLoginState())}async signInWithTicket(e){return new Le(this.config).signIn(e)}shouldRefreshAccessToken(e){this._request._shouldRefreshAccessTokenHook=e.bind(this)}getUserInfo(){return this._request.send(\"auth.getUserInfo\",{}).then((e=>e.code?e:{...e.data,requestId:e.seqId}))}getAuthHeader(){const{refreshTokenKey:e,accessTokenKey:t}=this._cache.keys,n=this._cache.getStore(e);return{\"x-cloudbase-credentials\":this._cache.getStore(t)+\"/@@/\"+n}}_onAnonymousConverted(e){const{env:t}=e.data;t===this.config.env&&this._cache.updatePersistence(this.config.persistence)}_onLoginTypeChanged(e){const{loginType:t,persistence:n,env:s}=e.data;s===this.config.env&&(this._cache.updatePersistence(n),this._cache.setStore(this._cache.keys.loginTypeKey,t))}}const Fe=function(e,t){t=t||Q();const n=Ce(this.config.env),{cloudPath:s,filePath:o,onUploadProgress:r,fileType:i=\"image\"}=e;return n.send(\"storage.getUploadMetadata\",{path:s}).then((e=>{const{data:{url:a,authorization:c,token:u,fileId:l,cosFileId:h},requestId:d}=e,f={key:s,signature:c,\"x-cos-meta-fileid\":h,success_action_status:\"201\",\"x-cos-security-token\":u};n.upload({url:a,data:f,file:o,name:s,fileType:i,onUploadProgress:r}).then((e=>{201===e.statusCode?t(null,{fileID:l,requestId:d}):t(new M({code:\"STORAGE_REQUEST_FAIL\",message:`STORAGE_REQUEST_FAIL: ${e.data}`}))})).catch((e=>{t(e)}))})).catch((e=>{t(e)})),t.promise},Me=function(e,t){t=t||Q();const n=Ce(this.config.env),{cloudPath:s}=e;return n.send(\"storage.getUploadMetadata\",{path:s}).then((e=>{t(null,e)})).catch((e=>{t(e)})),t.promise},$e=function({fileList:e},t){if(t=t||Q(),!e||!Array.isArray(e))return{code:\"INVALID_PARAM\",message:\"fileList必须是非空的数组\"};for(let t of e)if(!t||\"string\"!=typeof t)return{code:\"INVALID_PARAM\",message:\"fileList的元素必须是非空的字符串\"};const n={fileid_list:e};return Ce(this.config.env).send(\"storage.batchDeleteFile\",n).then((e=>{e.code?t(null,e):t(null,{fileList:e.data.delete_list,requestId:e.requestId})})).catch((e=>{t(e)})),t.promise},je=function({fileList:e},t){t=t||Q(),e&&Array.isArray(e)||t(null,{code:\"INVALID_PARAM\",message:\"fileList必须是非空的数组\"});let n=[];for(let s of e)\"object\"==typeof s?(s.hasOwnProperty(\"fileID\")&&s.hasOwnProperty(\"maxAge\")||t(null,{code:\"INVALID_PARAM\",message:\"fileList的元素必须是包含fileID和maxAge的对象\"}),n.push({fileid:s.fileID,max_age:s.maxAge})):\"string\"==typeof s?n.push({fileid:s}):t(null,{code:\"INVALID_PARAM\",message:\"fileList的元素必须是字符串\"});const s={file_list:n};return Ce(this.config.env).send(\"storage.batchGetDownloadUrl\",s).then((e=>{e.code?t(null,e):t(null,{fileList:e.data.download_list,requestId:e.requestId})})).catch((e=>{t(e)})),t.promise},Ke=async function({fileID:e},t){const n=(await je.call(this,{fileList:[{fileID:e,maxAge:600}]})).fileList[0];if(\"SUCCESS\"!==n.code)return t?t(n):new Promise((e=>{e(n)}));const s=Ce(this.config.env);let o=n.download_url;if(o=encodeURI(o),!t)return s.download({url:o});t(await s.download({url:o}))},Be=function({name:e,data:t,query:n,parse:s,search:o},r){const i=r||Q();let a;try{a=t?JSON.stringify(t):\"\"}catch(e){return Promise.reject(e)}if(!e)return Promise.reject(new M({code:\"PARAM_ERROR\",message:\"函数名不能为空\"}));const c={inQuery:n,parse:s,search:o,function_name:e,request_data:a};return Ce(this.config.env).send(\"functions.invokeFunction\",c).then((e=>{if(e.code)i(null,e);else{let t=e.data.response_data;if(s)i(null,{result:t,requestId:e.requestId});else try{t=JSON.parse(e.data.response_data),i(null,{result:t,requestId:e.requestId})}catch(e){i(new M({message:\"response data must be json\"}))}}return i.promise})).catch((e=>{i(e)})),i.promise},He={timeout:15e3,persistence:\"session\"},We={};class ze{constructor(e){this.config=e||this.config,this.authObj=void 0}init(e){switch(se.adapter||(this.requestClient=new se.adapter.reqClass({timeout:e.timeout||5e3,timeoutMsg:`请求在${(e.timeout||5e3)/1e3}s内未完成,已中断`})),this.config={...He,...e},!0){case this.config.timeout>6e5:console.warn(\"timeout大于可配置上限[10分钟],已重置为上限数值\"),this.config.timeout=6e5;break;case this.config.timeout<100:console.warn(\"timeout小于可配置下限[100ms],已重置为下限数值\"),this.config.timeout=100}return new ze(this.config)}auth({persistence:e}={}){if(this.authObj)return this.authObj;const t=e||se.adapter.primaryStorage||He.persistence;var n;return t!==this.config.persistence&&(this.config.persistence=t),function(e){const{env:t}=e;ce[t]=new ae(e),ue[t]=new ae({...e,persistence:\"local\"})}(this.config),n=this.config,Oe[n.env]=new be(n),this.authObj=new Ne(this.config),this.authObj}on(e,t){return ge.apply(this,[e,t])}off(e,t){return me.apply(this,[e,t])}callFunction(e,t){return Be.apply(this,[e,t])}deleteFile(e,t){return $e.apply(this,[e,t])}getTempFileURL(e,t){return je.apply(this,[e,t])}downloadFile(e,t){return Ke.apply(this,[e,t])}uploadFile(e,t){return Fe.apply(this,[e,t])}getUploadMetadata(e,t){return Me.apply(this,[e,t])}registerExtension(e){We[e.name]=e}async invokeExtension(e,t){const n=We[e];if(!n)throw new M({message:`扩展${e} 必须先注册`});return await n.invoke(t,this)}useAdapters(e){const{adapter:t,runtime:n}=ne(e)||{};t&&(se.adapter=t),n&&(se.runtime=n)}}var Ve=new ze;function Je(e,t,n){void 0===n&&(n={});var s=/\\?/.test(t),o=\"\";for(var r in n)\"\"===o?!s&&(t+=\"?\"):o+=\"&\",o+=r+\"=\"+encodeURIComponent(n[r]);return/^http(s)?:\\/\\//.test(t+=o)?t:\"\"+e+t}class Ye{post(e){const{url:t,data:n,headers:s}=e;return new Promise(((e,o)=>{H.request({url:Je(\"https:\",t),data:n,method:\"POST\",header:s,success(t){e(t)},fail(e){o(e)}})}))}upload(e){return new Promise(((t,n)=>{const{url:s,file:o,data:r,headers:i,fileType:a}=e,c=H.uploadFile({url:Je(\"https:\",s),name:\"file\",formData:Object.assign({},r),filePath:o,fileType:a,header:i,success(e){const n={statusCode:e.statusCode,data:e.data||{}};200===e.statusCode&&r.success_action_status&&(n.statusCode=parseInt(r.success_action_status,10)),t(n)},fail(e){d&&\"mp-alipay\"===g&&console.warn(\"支付宝小程序开发工具上传腾讯云时无法准确判断是否上传成功,请使用真机测试\"),n(new Error(e.errMsg||\"uploadFile:fail\"))}});\"function\"==typeof e.onUploadProgress&&c&&\"function\"==typeof c.onProgressUpdate&&c.onProgressUpdate((t=>{e.onUploadProgress({loaded:t.totalBytesSent,total:t.totalBytesExpectedToSend})}))}))}}const Xe={setItem(e,t){H.setStorageSync(e,t)},getItem:e=>H.getStorageSync(e),removeItem(e){H.removeStorageSync(e)},clear(){H.clearStorageSync()}};var Ge={genAdapter:function(){return{root:{},reqClass:Ye,localStorage:Xe,primaryStorage:\"local\"}},isMatch:function(){return!0},runtime:\"uni_app\"};Ve.useAdapters(Ge);const Qe=Ve,Ze=Qe.init;Qe.init=function(e){e.env=e.spaceId;const t=Ze.call(this,e);t.config.provider=\"tencent\",t.config.spaceId=e.spaceId;const n=t.auth;return t.auth=function(e){const t=n.call(this,e);return[\"linkAndRetrieveDataWithTicket\",\"signInAnonymously\",\"signOut\",\"getAccessToken\",\"getLoginState\",\"signInWithTicket\",\"getUserInfo\"].forEach((e=>{t[e]=F(t[e]).bind(t)})),t},t.customAuth=t.auth,t};var et=Qe;function tt(){return{token:H.getStorageSync(\"uni_id_token\")||H.getStorageSync(\"uniIdToken\"),tokenExpired:H.getStorageSync(\"uni_id_token_expired\")}}function nt({token:e,tokenExpired:t}={}){e&&H.setStorageSync(\"uni_id_token\",e),t&&H.setStorageSync(\"uni_id_token_expired\",t)}function st(){if(!d||\"web\"!==g)return;uni.getStorageSync(\"__LAST_DCLOUD_APPID\")!==_&&(uni.setStorageSync(\"__LAST_DCLOUD_APPID\",_),console.warn(\"检测到当前项目与上次运行到此端口的项目不一致,自动清理uni-id保存的token信息(仅开发调试时生效)\"),H.removeStorageSync(\"uni_id_token\"),H.removeStorageSync(\"uniIdToken\"),H.removeStorageSync(\"uni_id_token_expired\"))}var ot=class extends V{getAccessToken(){return new Promise(((e,t)=>{const n=\"Anonymous_Access_token\";this.setAccessToken(n),e(n)}))}setupRequest(e,t){const n=Object.assign({},e,{spaceId:this.config.spaceId,timestamp:Date.now()}),s={\"Content-Type\":\"application/json\"};\"auth\"!==t&&(n.token=this.accessToken,s[\"x-basement-token\"]=this.accessToken),s[\"x-serverless-sign\"]=B.sign(n,this.config.clientSecret);const o=K();s[\"x-client-info\"]=encodeURIComponent(JSON.stringify(o));const{token:r}=tt();return s[\"x-client-token\"]=r,{url:this.config.requestUrl,method:\"POST\",data:n,dataType:\"json\",header:JSON.parse(JSON.stringify(s))}}uploadFileToOSS({url:e,formData:t,name:n,filePath:s,fileType:o,onUploadProgress:r}){return new Promise(((i,a)=>{const c=this.adapter.uploadFile({url:e,formData:t,name:n,filePath:s,fileType:o,success(e){e&&e.statusCode<400?i(e):a(new M({code:\"UPLOAD_FAILED\",message:\"文件上传失败\"}))},fail(e){a(new M({code:e.code||\"UPLOAD_FAILED\",message:e.message||e.errMsg||\"文件上传失败\"}))}});\"function\"==typeof r&&c&&\"function\"==typeof c.onProgressUpdate&&c.onProgressUpdate((e=>{r({loaded:e.totalBytesSent,total:e.totalBytesExpectedToSend})}))}))}uploadFile({filePath:e,cloudPath:t,fileType:n=\"image\",onUploadProgress:s}){if(!t)throw new M({code:\"CLOUDPATH_REQUIRED\",message:\"cloudPath不可为空\"});let o;return this.getOSSUploadOptionsFromPath({cloudPath:t}).then((t=>{const{url:r,formData:i,name:a}=t.result;o=t.result.fileUrl;const c={url:r,formData:i,name:a,filePath:e,fileType:n};return this.uploadFileToOSS(Object.assign({},c,{onUploadProgress:s}))})).then((()=>this.reportOSSUpload({cloudPath:t}))).then((t=>new Promise(((n,s)=>{t.success?n({success:!0,filePath:e,fileID:o}):s(new M({code:\"UPLOAD_FAILED\",message:\"文件上传失败\"}))}))))}deleteFile({fileList:e}){const t={method:\"serverless.file.resource.delete\",params:JSON.stringify({fileList:e})};return this.request(this.setupRequest(t))}getTempFileURL({fileList:e}={}){const t={method:\"serverless.file.resource.getTempFileURL\",params:JSON.stringify({fileList:e})};return this.request(this.setupRequest(t))}};var rt={init(e){const t=new ot(e),n={signInAnonymously:function(){return t.authorize()},getLoginState:function(){return Promise.resolve(!1)}};return t.auth=function(){return n},t.customAuth=t.auth,t}};function it({data:e}){let t;t=K();const n=JSON.parse(JSON.stringify(e||{}));if(Object.assign(n,{clientInfo:t}),!n.uniIdToken){const{token:e}=tt();e&&(n.uniIdToken=e)}return n}function at({name:e,data:t}){const{localAddress:n,localPort:s}=this,o={aliyun:\"aliyun\",tencent:\"tcb\"}[this.config.provider],r=this.config.spaceId,i=`http://${n}:${s}/system/check-function`,a=`http://${n}:${s}/cloudfunctions/${e}`;return new Promise(((t,n)=>{H.request({method:\"POST\",url:i,data:{name:e,platform:g,provider:o,spaceId:r},timeout:3e3,success(e){t(e)},fail(){t({data:{code:\"NETWORK_ERROR\",message:\"连接本地调试服务失败,请检查客户端是否和主机在同一局域网下,自动切换为已部署的云函数。\"}})}})})).then((({data:e}={})=>{const{code:t,message:n}=e||{};return{code:0===t?0:t||\"SYS_ERR\",message:n||\"SYS_ERR\"}})).then((({code:n,message:s})=>{if(0!==n){switch(n){case\"MODULE_ENCRYPTED\":console.error(`此云函数(${e})依赖加密公共模块不可本地调试,自动切换为云端已部署的云函数`);break;case\"FUNCTION_ENCRYPTED\":console.error(`此云函数(${e})已加密不可本地调试,自动切换为云端已部署的云函数`);break;case\"ACTION_ENCRYPTED\":console.error(s||\"需要访问加密的uni-clientDB-action,自动切换为云端环境\");break;case\"NETWORK_ERROR\":{const e=\"连接本地调试服务失败,请检查客户端是否和主机在同一局域网下\";throw console.error(e),new Error(e)}case\"SWITCH_TO_CLOUD\":break;default:{const e=`检测本地调试服务出现错误:${s},请检查网络环境或重启客户端再试`;throw console.error(e),new Error(e)}}return this._originCallFunction({name:e,data:t})}return new Promise(((e,n)=>{const s=it.call(this,{data:t});H.request({method:\"POST\",url:a,data:{provider:o,platform:g,param:s},success:({statusCode:t,data:s}={})=>!t||t>=400?n(new M({code:s.code||\"SYS_ERR\",message:s.message||\"request:fail\"})):e({result:s}),fail(e){n(new M({code:e.code||e.errCode||\"SYS_ERR\",message:e.message||e.errMsg||\"request:fail\"}))}})}))}))}const ct=[{rule:/fc_function_not_found|FUNCTION_NOT_FOUND/,content:\",云函数[{functionName}]在云端不存在,请检查此云函数名称是否正确以及该云函数是否已上传到服务空间\",mode:\"append\"}];var ut=/[\\\\^$.*+?()[\\]{}|]/g,lt=RegExp(ut.source);function ht(e,t,n){return e.replace(new RegExp((s=t)&<.test(s)?s.replace(ut,\"\\\\$&\"):s,\"g\"),n);var s}function dt({functionName:e,result:t,logPvd:n}){if(this.config.debugLog&&t&&t.requestId){const s=JSON.stringify({spaceId:this.config.spaceId,functionName:e,requestId:t.requestId});console.log(`[${n}-request]${s}[/${n}-request]`)}}function ft(e){const t=e.callFunction,n=function(n){const s=n.name;n.data=it.call(e,{data:n.data});const o={aliyun:\"aliyun\",tencent:\"tcb\",tcb:\"tcb\"}[this.config.provider];return t.call(this,n).then((e=>(e.errCode=0,dt.call(this,{functionName:s,result:e,logPvd:o}),Promise.resolve(e))),(e=>(dt.call(this,{functionName:s,result:e,logPvd:o}),e&&e.message&&(e.message=function({message:e=\"\",extraInfo:t={},formatter:n=[]}={}){for(let s=0;s(console.warn(\"当前返回结果为Promise类型,不可直接访问其result属性,详情请参考:https://uniapp.dcloud.net.cn/uniCloud/faq?id=promise\"),{})}),s}}const gt=Symbol(\"CLIENT_DB_INTERNAL\");function pt(e,t){return e.then=\"DoNotReturnProxyWithAFunctionNamedThen\",e._internalType=gt,e.__ob__=void 0,new Proxy(e,{get(e,n,s){if(\"_uniClient\"===n)return null;if(n in e||\"string\"!=typeof n){const t=e[n];return\"function\"==typeof t?t.bind(e):t}return t.get(e,n,s)}})}function mt(e){return{on:(t,n)=>{e[t]=e[t]||[],e[t].indexOf(n)>-1||e[t].push(n)},off:(t,n)=>{e[t]=e[t]||[];const s=e[t].indexOf(n);-1!==s&&e[t].splice(s,1)}}}const yt=[\"db.Geo\",\"db.command\",\"command.aggregate\"];function _t(e,t){return yt.indexOf(`${e}.${t}`)>-1}function wt(e){switch(u(e)){case\"array\":return e.map((e=>wt(e)));case\"object\":return e._internalType===gt||Object.keys(e).forEach((t=>{e[t]=wt(e[t])})),e;case\"regexp\":return{$regexp:{source:e.source,flags:e.flags}};case\"date\":return{$date:e.toISOString()};default:return e}}function kt(e){return e&&e.content&&e.content.$method}class Tt{constructor(e,t,n){this.content=e,this.prevStage=t||null,this.udb=null,this._database=n}toJSON(){let e=this;const t=[e.content];for(;e.prevStage;)e=e.prevStage,t.push(e.content);return{$db:t.reverse().map((e=>({$method:e.$method,$param:wt(e.$param)})))}}getAction(){const e=this.toJSON().$db.find((e=>\"action\"===e.$method));return e&&e.$param&&e.$param[0]}getCommand(){return{$db:this.toJSON().$db.filter((e=>\"action\"!==e.$method))}}get isAggregate(){let e=this;for(;e;){const t=kt(e),n=kt(e.prevStage);if(\"aggregate\"===t&&\"collection\"===n||\"pipeline\"===t)return!0;e=e.prevStage}return!1}get isCommand(){let e=this;for(;e;){if(\"command\"===kt(e))return!0;e=e.prevStage}return!1}get isAggregateCommand(){let e=this;for(;e;){const t=kt(e),n=kt(e.prevStage);if(\"aggregate\"===t&&\"command\"===n)return!0;e=e.prevStage}return!1}get count(){if(!this.isAggregate)return function(){return this._send(\"count\",Array.from(arguments))};const e=this;return function(){return St({$method:\"count\",$param:wt(Array.from(arguments))},e,this._database)}}get remove(){if(!this.isCommand)return function(){return this._send(\"remove\",Array.from(arguments))};const e=this;return function(){return St({$method:\"remove\",$param:wt(Array.from(arguments))},e,this._database)}}get(){return this._send(\"get\",Array.from(arguments))}add(){return this._send(\"add\",Array.from(arguments))}update(){return this._send(\"update\",Array.from(arguments))}end(){return this._send(\"end\",Array.from(arguments))}get set(){if(!this.isCommand)return function(){throw new Error(\"JQL禁止使用set方法\")};const e=this;return function(){return St({$method:\"set\",$param:wt(Array.from(arguments))},e,this._database)}}_send(e,t){const n=this.getAction(),s=this.getCommand();if(s.$db.push({$method:e,$param:wt(t)}),d){const e=s.$db.find((e=>\"collection\"===e.$method)),t=e&&e.$param;t&&1===t.length&&\"string\"==typeof e.$param[0]&&e.$param[0].indexOf(\",\")>-1&&console.warn(\"检测到使用JQL语法联表查询时,未使用getTemp先过滤主表数据,在主表数据量大的情况下可能会查询缓慢。\\n- 如何优化请参考此文档:https://uniapp.dcloud.net.cn/uniCloud/jql?id=lookup-with-temp \\n- 如果主表数据量很小请忽略此信息,项目发行时不会出现此提示。\")}return this._database._callCloudFunction({action:n,command:s})}}function St(e,t,n){return pt(new Tt(e,t,n),{get(e,t){let s=\"db\";return e&&e.content&&(s=e.content.$method),_t(s,t)?St({$method:t},e,n):function(){return St({$method:t,$param:wt(Array.from(arguments))},e,n)}}})}function vt({path:e,method:t}){return class{constructor(){this.param=Array.from(arguments)}toJSON(){return{$newDb:[...e.map((e=>({$method:e}))),{$method:t,$param:this.param}]}}}}class At extends class{constructor({uniClient:e={}}={}){this._uniClient=e,this._authCallBacks={},this._dbCallBacks={},e.isDefault&&(this._dbCallBacks=k(\"_globalUniCloudDatabaseCallback\")),this.auth=mt(this._authCallBacks),Object.assign(this,mt(this._dbCallBacks)),this.env=pt({},{get:(e,t)=>({$env:t})}),this.Geo=pt({},{get:(e,t)=>vt({path:[\"Geo\"],method:t})}),this.serverDate=vt({path:[],method:\"serverDate\"}),this.RegExp=vt({path:[],method:\"RegExp\"})}getCloudEnv(e){if(\"string\"!=typeof e||!e.trim())throw new Error(\"getCloudEnv参数错误\");return{$env:e.replace(\"$cloudEnv_\",\"\")}}_callback(e,t){const n=this._dbCallBacks;n[e]&&n[e].forEach((e=>{e(...t)}))}_callbackAuth(e,t){const n=this._authCallBacks;n[e]&&n[e].forEach((e=>{e(...t)}))}multiSend(){const e=Array.from(arguments),t=e.map((e=>{const t=e.getAction(),n=e.getCommand();if(\"getTemp\"!==n.$db[n.$db.length-1].$method)throw new Error(\"multiSend只支持子命令内使用getTemp\");return{action:t,command:n}}));return this._callCloudFunction({multiCommand:t,queryList:e})}}{_callCloudFunction({action:e,command:t,multiCommand:n,queryList:s}){function o(e,t){if(n&&s)for(let n=0;nP(I(\"database\",\"complete\"),e))).then((()=>(o(null,e),N(O,{type:R,content:e}),Promise.reject(e))))}const a=P(I(\"database\",\"invoke\")),u=this._uniClient;return a.then((()=>u.callFunction({name:\"DCloud-clientDB\",type:c,data:{action:e,command:t,multiCommand:n}}))).then((e=>{const{code:t,message:n,token:s,tokenExpired:r,systemInfo:a=[]}=e.result;if(a)for(let e=0;e(console.warn(s),t)})}}return function(e){return P(I(\"database\",\"success\"),e).then((()=>P(I(\"database\",\"complete\"),e))).then((()=>(o(e,null),N(O,{type:R,content:e}),Promise.resolve(e))))}(e)}),(e=>{/fc_function_not_found|FUNCTION_NOT_FOUND/g.test(e.message)&&console.warn(\"clientDB未初始化,请在web控制台保存一次schema以开启clientDB\");return i(new M({code:e.code||\"SYSTEM_ERROR\",message:e.message,requestId:e.requestId}))}))}}function Pt(e){e.database=function(t){if(t&&Object.keys(t).length>0)return e.init(t).database();if(this._database)return this._database;const n=function(e,t={}){return pt(new e(t),{get:(e,t)=>_t(\"db\",t)?St({$method:t},null,e):function(){return St({$method:t,$param:wt(Array.from(arguments))},null,e)}})}(At,{uniClient:e});return this._database=n,n}}const It=\"token无效,跳转登录页面\",bt=\"token过期,跳转登录页面\",Ot={TOKEN_INVALID_TOKEN_EXPIRED:bt,TOKEN_INVALID_INVALID_CLIENTID:It,TOKEN_INVALID:It,TOKEN_INVALID_WRONG_TOKEN:It,TOKEN_INVALID_ANONYMOUS_USER:It},Ct={\"uni-id-token-expired\":bt,\"uni-id-check-token-failed\":It,\"uni-id-token-not-exist\":It,\"uni-id-check-device-feature-failed\":It};function Et(e,t){let n=\"\";return n=e?`${e}/${t}`:t,n.replace(/^\\//,\"\")}function Rt(e=[],t=\"\"){const n=[],s=[];return e.forEach((e=>{!0===e.needLogin?n.push(Et(t,e.path)):!1===e.needLogin&&s.push(Et(t,e.path))})),{needLoginPage:n,notNeedLoginPage:s}}function Ut(e=\"\",t={}){if(!e)return!1;if(!(t&&t.list&&t.list.length))return!1;const n=t.list,s=e.split(\"?\")[0].replace(/^\\//,\"\");return n.some((e=>e.pagePath===s))}const xt=!!t.uniIdRouter;const{loginPage:Lt,routerNeedLogin:Dt,resToLogin:qt,needLoginPage:Nt,notNeedLoginPage:Ft,loginPageInTabBar:Mt}=function({pages:e=[],subPackages:n=[],uniIdRouter:s={},tabBar:o={}}=t){const{loginPage:r,needLogin:i=[],resToLogin:a=!0}=s,{needLoginPage:c,notNeedLoginPage:u}=Rt(e),{needLoginPage:l,notNeedLoginPage:h}=function(e=[]){const t=[],n=[];return e.forEach((e=>{const{root:s,pages:o=[]}=e,{needLoginPage:r,notNeedLoginPage:i}=Rt(o,s);t.push(...r),n.push(...i)})),{needLoginPage:t,notNeedLoginPage:n}}(n);return{loginPage:r,routerNeedLogin:i,resToLogin:a,needLoginPage:[...c,...l],notNeedLoginPage:[...u,...h],loginPageInTabBar:Ut(r,o)}}();function $t(e){const t=function(e){const t=getCurrentPages(),n=t[t.length-1].route,s=e.charAt(0),o=e.split(\"?\")[0];if(\"/\"===s)return o;const r=o.replace(/^\\//,\"\").split(\"/\"),i=n.split(\"/\");i.pop();for(let e=0;e-1)&&(Nt.indexOf(t)>-1||Dt.some((t=>function(e,t){return new RegExp(t).test(e)}(e,t))))}function jt(e,t){return\"/\"!==e.charAt(0)&&(e=\"/\"+e),t?e.indexOf(\"?\")>-1?e+`&uniIdRedirectUrl=${encodeURIComponent(t)}`:e+`?uniIdRedirectUrl=${encodeURIComponent(t)}`:e}function Kt(){const e=[\"navigateTo\",\"redirectTo\",\"reLaunch\",\"switchTab\"];for(let t=0;t0)return setTimeout((()=>{N(C,o)}),0),e.url=\"\",!1;if(!Lt)return e;const t=jt(Lt,o.uniIdRedirectUrl);if(Mt){if(\"navigateTo\"===n||\"redirectTo\"===n)return setTimeout((()=>{uni.switchTab({url:t})})),!1}else if(\"switchTab\"===n)return setTimeout((()=>{uni.navigateTo({url:t})})),!1;e.url=t}return e}})}}function Bt(){this.onResponse((e=>{const{type:t,content:n}=e;let s=!1;switch(t){case\"cloudobject\":s=function(e){const{errCode:t}=e;return t in Ct}(n);break;case\"clientdb\":s=function(e){const{errCode:t}=e;return t in Ot}(n)}s&&function(e={}){const t=L(C),n=getCurrentPages(),s=n[n.length-1],o=s&&s.$page&&s.$page.fullPath;if(t.length>0)return N(C,Object.assign({uniIdRedirectUrl:o},e));Lt&&uni.navigateTo({url:jt(Lt,o)})}(n)}))}function Ht(e){e.onNeedLogin=function(e){D(C,e)},e.offNeedLogin=function(e){q(C,e)},xt&&(k(\"uni-cloud-status\").needLoginInit||(k(\"uni-cloud-status\").needLoginInit=!0,function t(){const n=getCurrentPages();n&&n[0]?Kt.call(e):setTimeout((()=>{t()}),30)}(),qt&&Bt.call(e)))}function Wt(e){!function(e){e.onResponse=function(e){D(O,e)},e.offResponse=function(e){q(O,e)}}(e),Ht(e),function(e){e.onRefreshToken=function(e){D(E,e)},e.offRefreshToken=function(e){q(E,e)}}(e)}let zt;const Vt=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",Jt=/^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;function Yt(){const e=tt().token||\"\",t=e.split(\".\");if(!e||3!==t.length)return{uid:null,role:[],permission:[],tokenExpired:0};let n;try{n=JSON.parse((s=t[1],decodeURIComponent(zt(s).split(\"\").map((function(e){return\"%\"+(\"00\"+e.charCodeAt(0).toString(16)).slice(-2)})).join(\"\"))))}catch(e){throw new Error(\"获取当前用户信息出错,详细错误信息为:\"+e.message)}var s;return n.tokenExpired=1e3*n.exp,delete n.exp,delete n.iat,n}zt=\"function\"!=typeof atob?function(e){if(e=String(e).replace(/[\\t\\n\\f\\r ]+/g,\"\"),!Jt.test(e))throw new Error(\"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.\");var t;e+=\"==\".slice(2-(3&e.length));for(var n,s,o=\"\",r=0;r>16&255):64===s?String.fromCharCode(t>>16&255,t>>8&255):String.fromCharCode(t>>16&255,t>>8&255,255&t);return o}:atob;var Xt=s((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0});const n=\"chooseAndUploadFile:ok\",s=\"chooseAndUploadFile:fail\";function o(e,t){return e.tempFiles.forEach(((e,n)=>{e.name||(e.name=e.path.substring(e.path.lastIndexOf(\"/\")+1)),t&&(e.fileType=t),e.cloudPath=Date.now()+\"_\"+n+e.name.substring(e.name.lastIndexOf(\".\"))})),e.tempFilePaths||(e.tempFilePaths=e.tempFiles.map((e=>e.path))),e}function r(e,t,{onChooseFile:s,onUploadProgress:o}){return t.then((e=>{if(s){const t=s(e);if(void 0!==t)return Promise.resolve(t).then((t=>void 0===t?e:t))}return e})).then((t=>!1===t?{errMsg:n,tempFilePaths:[],tempFiles:[]}:function(e,t,s=5,o){(t=Object.assign({},t)).errMsg=n;const r=t.tempFiles,i=r.length;let a=0;return new Promise((n=>{for(;a=i)return void(!r.find((e=>!e.url&&!e.errMsg))&&n(t));const u=r[s];e.uploadFile({filePath:u.path,cloudPath:u.cloudPath,fileType:u.fileType,onUploadProgress(e){e.index=s,e.tempFile=u,e.tempFilePath=u.path,o&&o(e)}}).then((e=>{u.url=e.fileID,s{u.errMsg=e.errMsg||e.message,s{uni.chooseImage({count:t,sizeType:n,sourceType:r,extension:i,success(t){e(o(t,\"image\"))},fail(e){a({errMsg:e.errMsg.replace(\"chooseImage:fail\",s)})}})}))}(t),t):\"video\"===t.type?r(e,function(e){const{camera:t,compressed:n,maxDuration:r,sourceType:i=[\"album\",\"camera\"],extension:a}=e;return new Promise(((e,c)=>{uni.chooseVideo({camera:t,compressed:n,maxDuration:r,sourceType:i,extension:a,success(t){const{tempFilePath:n,duration:s,size:r,height:i,width:a}=t;e(o({errMsg:\"chooseVideo:ok\",tempFilePaths:[n],tempFiles:[{name:t.tempFile&&t.tempFile.name||\"\",path:n,size:r,type:t.tempFile&&t.tempFile.type||\"\",width:a,height:i,duration:s,fileType:\"video\",cloudPath:\"\"}]},\"video\"))},fail(e){c({errMsg:e.errMsg.replace(\"chooseVideo:fail\",s)})}})}))}(t),t):r(e,function(e){const{count:t,extension:n}=e;return new Promise(((e,r)=>{let i=uni.chooseFile;if(\"undefined\"!=typeof wx&&\"function\"==typeof wx.chooseMessageFile&&(i=wx.chooseMessageFile),\"function\"!=typeof i)return r({errMsg:s+\" 请指定 type 类型,该平台仅支持选择 image 或 video。\"});i({type:\"all\",count:t,extension:n,success(t){e(o(t))},fail(e){r({errMsg:e.errMsg.replace(\"chooseFile:fail\",s)})}})}))}(t),t)}}})),Gt=n(Xt);const Qt=\"manual\";function Zt(e){return{props:{localdata:{type:Array,default:()=>[]},options:{type:[Object,Array],default:()=>({})},spaceInfo:{type:Object,default:()=>({})},collection:{type:[String,Array],default:\"\"},action:{type:String,default:\"\"},field:{type:String,default:\"\"},orderby:{type:String,default:\"\"},where:{type:[String,Object],default:\"\"},pageData:{type:String,default:\"add\"},pageCurrent:{type:Number,default:1},pageSize:{type:Number,default:20},getcount:{type:[Boolean,String],default:!1},gettree:{type:[Boolean,String],default:!1},gettreepath:{type:[Boolean,String],default:!1},startwith:{type:String,default:\"\"},limitlevel:{type:Number,default:10},groupby:{type:String,default:\"\"},groupField:{type:String,default:\"\"},distinct:{type:[Boolean,String],default:!1},foreignKey:{type:String,default:\"\"},loadtime:{type:String,default:\"auto\"},manual:{type:Boolean,default:!1}},data:()=>({mixinDatacomLoading:!1,mixinDatacomHasMore:!1,mixinDatacomResData:[],mixinDatacomErrorMessage:\"\",mixinDatacomPage:{}}),created(){this.mixinDatacomPage={current:this.pageCurrent,size:this.pageSize,count:0},this.$watch((()=>{var e=[];return[\"pageCurrent\",\"pageSize\",\"localdata\",\"collection\",\"action\",\"field\",\"orderby\",\"where\",\"getont\",\"getcount\",\"gettree\",\"groupby\",\"groupField\",\"distinct\"].forEach((t=>{e.push(this[t])})),e}),((e,t)=>{if(this.loadtime===Qt)return;let n=!1;const s=[];for(let o=2;o{this.mixinDatacomLoading=!1;const{data:s,count:o}=n.result;this.getcount&&(this.mixinDatacomPage.count=o),this.mixinDatacomHasMore=s.length{this.mixinDatacomLoading=!1,this.mixinDatacomErrorMessage=e,n&&n(e)})))},mixinDatacomGet(t={}){let n=e.database(this.spaceInfo);const s=t.action||this.action;s&&(n=n.action(s));const o=t.collection||this.collection;n=Array.isArray(o)?n.collection(...o):n.collection(o);const r=t.where||this.where;r&&Object.keys(r).length&&(n=n.where(r));const i=t.field||this.field;i&&(n=n.field(i));const a=t.foreignKey||this.foreignKey;a&&(n=n.foreignKey(a));const c=t.groupby||this.groupby;c&&(n=n.groupBy(c));const u=t.groupField||this.groupField;u&&(n=n.groupField(u));!0===(void 0!==t.distinct?t.distinct:this.distinct)&&(n=n.distinct());const l=t.orderby||this.orderby;l&&(n=n.orderBy(l));const h=void 0!==t.pageCurrent?t.pageCurrent:this.mixinDatacomPage.current,d=void 0!==t.pageSize?t.pageSize:this.mixinDatacomPage.size,f=void 0!==t.getcount?t.getcount:this.getcount,g=void 0!==t.gettree?t.gettree:this.gettree,p=void 0!==t.gettreepath?t.gettreepath:this.gettreepath,m={getCount:f},y={limitLevel:void 0!==t.limitlevel?t.limitlevel:this.limitlevel,startWith:void 0!==t.startwith?t.startwith:this.startwith};return g&&(m.getTree=y),p&&(m.getTreePath=y),n=n.skip(d*(h-1)).limit(d).get(m),n}}}}function en(e){return function(t,n={}){n=function(e,t={}){return e.customUI=t.customUI||e.customUI,Object.assign(e.loadingOptions,t.loadingOptions),Object.assign(e.errorOptions,t.errorOptions),e}({customUI:!1,loadingOptions:{title:\"加载中...\",mask:!0},errorOptions:{type:\"modal\",retry:!1}},n);const{customUI:s,loadingOptions:o,errorOptions:r}=n,i=!s;return new Proxy({},{get:(n,s)=>async function n(...c){let u;i&&uni.showLoading({title:o.title,mask:o.mask});try{u=await e.callFunction({name:t,type:a,data:{method:s,params:c}})}catch(e){u={result:e}}const{errCode:l,errMsg:h,newToken:d}=u.result||{};if(i&&uni.hideLoading(),d&&d.token&&d.tokenExpired&&(nt(d),N(E,{...d})),l){if(i)if(\"toast\"===r.type)uni.showToast({title:h,icon:\"none\"});else{if(\"modal\"!==r.type)throw new Error(`Invalid errorOptions.type: ${r.type}`);{const{confirm:e}=await async function({title:e,content:t,showCancel:n,cancelText:s,confirmText:o}={}){return new Promise(((r,i)=>{uni.showModal({title:e,content:t,showCancel:n,cancelText:s,confirmText:o,success(e){r(e)},fail(){r({confirm:!1,cancel:!0})}})}))}({title:\"提示\",content:h,showCancel:r.retry,cancelText:\"取消\",confirmText:r.retry?\"重试\":\"确定\"});if(r.retry&&e)return n(...c)}}const e=new M({code:l,message:h,requestId:u.requestId});throw e.detail=u.result,N(O,{type:x,content:e}),e}return N(O,{type:x,content:u.result}),u.result}})}}async function tn(e,t){const n=`http://${e}:${t}/system/ping`;try{const e=await(s={url:n,timeout:500},new Promise(((e,t)=>{H.request({...s,success(t){e(t)},fail(e){t(e)}})})));return!(!e.data||0!==e.data.code)}catch(e){return!1}var s}function nn(e){if(e.initUniCloudStatus&&\"rejected\"!==e.initUniCloudStatus)return;let t=Promise.resolve();var n;n=1,t=new Promise(((e,t)=>{setTimeout((()=>{e()}),n)})),e.isReady=!1,e.isDefault=!1;const s=e.auth();e.initUniCloudStatus=\"pending\",e.initUniCloud=t.then((()=>s.getLoginState())).then((e=>e?Promise.resolve():s.signInAnonymously())).then((()=>{if(!d)return Promise.resolve();if(\"app\"===g&&\"ios\"===uni.getSystemInfoSync().osName){const{osName:e,osVersion:t}=uni.getSystemInfoSync();\"ios\"===e&&function(e){if(!e||\"string\"!=typeof e)return 0;const t=e.match(/^(\\d+)./);return t&&t[1]?parseInt(t[1]):0}(t)>=14&&console.warn(\"iOS 14及以上版本连接uniCloud本地调试服务需要允许客户端查找并连接到本地网络上的设备(仅开发模式生效,发行模式会连接uniCloud云端服务)\")}if(d&&e.debugInfo){const{address:t,servePort:n}=e.debugInfo;return async function(e,t){let n;for(let s=0;s{if(!d)return Promise.resolve();const s=console[\"app\"===g?\"error\":\"warn\"];if(t)e.localAddress=t,e.localPort=n;else if(e.debugInfo){let t=\"\";\"remote\"===e.debugInfo.initialLaunchType?(e.debugInfo.forceRemote=!0,t=\"当前客户端和HBuilderX不在同一局域网下(或其他网络原因无法连接HBuilderX),uniCloud本地调试服务不对当前客户端生效。\\n- 如果不使用uniCloud本地调试服务,请直接忽略此信息。\\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。\\n- 如果在HBuilderX开启的状态下切换过网络环境,请重启HBuilderX后再试\\n- 检查系统防火墙是否拦截了HBuilderX自带的nodejs\"):t=\"无法连接uniCloud本地调试服务,请检查当前客户端是否与主机在同一局域网下。\\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。\\n- 如果在HBuilderX开启的状态下切换过网络环境,请重启HBuilderX后再试\\n- 检查系统防火墙是否拦截了HBuilderX自带的nodejs\",\"web\"===g&&(t+=\"\\n- 部分浏览器开启节流模式之后访问本地地址受限,请检查是否启用了节流模式\"),0===g.indexOf(\"mp-\")&&(t+=\"\\n- 小程序中如何使用uniCloud,请参考:https://uniapp.dcloud.net.cn/uniCloud/publish.html#useinmp\"),s(t)}})).then((()=>{st(),e.isReady=!0,e.initUniCloudStatus=\"fulfilled\"})).catch((t=>{console.error(t),e.initUniCloudStatus=\"rejected\"}))}let sn=new class{init(e){let t={};const n=d&&(\"web\"===g&&navigator.userAgent.indexOf(\"HBuilderX\")>0||\"app\"===g);switch(e.provider){case\"tcb\":case\"tencent\":t=et.init(Object.assign(e,{debugLog:n}));break;case\"aliyun\":t=J.init(Object.assign(e,{debugLog:n}));break;case\"private\":t=rt.init(Object.assign(e,{debugLog:n}));break;default:throw new Error(\"未提供正确的provider参数\")}const s=p;d&&s&&!s.code&&(t.debugInfo=s),nn(t),t.reInit=function(){nn(this)},ft(t),function(e){const t=e.uploadFile;e.uploadFile=function(e){return t.call(this,e)}}(t),Pt(t),function(e){e.getCurrentUserInfo=Yt,e.chooseAndUploadFile=Gt.initChooseAndUploadFile(e),Object.assign(e,{get mixinDatacom(){return Zt(e)}}),e.importObject=en(e)}(t);return[\"callFunction\",\"uploadFile\",\"deleteFile\",\"getTempFileURL\",\"downloadFile\",\"chooseAndUploadFile\"].forEach((e=>{if(!t[e])return;const n=t[e];t[e]=function(){return t.reInit(),n.apply(t,Array.from(arguments))},t[e]=F(t[e],e).bind(t)})),t.init=this.init,t}};(()=>{{const e=m;let t={};if(1===e.length)t=e[0],sn=sn.init(t),sn.isDefault=!0;else{const t=[\"auth\",\"callFunction\",\"uploadFile\",\"deleteFile\",\"getTempFileURL\",\"downloadFile\",\"database\",\"getCurrentUSerInfo\",\"importObject\"];let n;n=e&&e.length>0?\"应用有多个服务空间,请通过uniCloud.init方法指定要使用的服务空间\":y?\"应用未关联服务空间,请在uniCloud目录右键关联服务空间\":\"uni-app cli项目内使用uniCloud需要使用HBuilderX的运行菜单运行项目,且需要在uniCloud目录关联服务空间\",t.forEach((e=>{sn[e]=function(){return console.error(n),Promise.reject(new M({code:\"SYS_ERR\",message:n}))}}))}Object.assign(sn,{get mixinDatacom(){return Zt(sn)}}),Wt(sn),sn.addInterceptor=v,sn.removeInterceptor=A,d&&\"web\"===g&&(window.uniCloud=sn)}})();var on=sn;export{on as default};\n","export default {\"appid\":\"__UNI__915967A\"}","/*\r\n * uCharts (R)\r\n * 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360/快手)、Vue、Taro等支持canvas的框架平台\r\n * Copyright (C) 2018-2022 QIUN (R) 秋云 https://www.ucharts.cn All rights reserved.\r\n * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )\r\n * 复制使用请保留本段注释,感谢支持开源!\r\n * \r\n * uCharts (R) 官方网站\r\n * https://www.uCharts.cn\r\n * \r\n * 开源地址:\r\n * https://gitee.com/uCharts/uCharts\r\n * \r\n * uni-app插件市场地址:\r\n * http://ext.dcloud.net.cn/plugin?id=271\r\n * \r\n */\r\n\r\n'use strict';\r\n\r\nvar config = {\r\n version: 'v2.4.3-20220505',\r\n yAxisWidth: 15,\r\n xAxisHeight: 22,\r\n xAxisTextPadding: 3,\r\n padding: [10, 10, 10, 10],\r\n pixelRatio: 1,\r\n rotate: false,\r\n fontSize: 13,\r\n fontColor: '#666666',\r\n dataPointShape: ['circle', 'circle', 'circle', 'circle'],\r\n color: ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'],\r\n linearColor: ['#0EE2F8', '#2BDCA8', '#FA7D8D', '#EB88E2', '#2AE3A0', '#0EE2F8', '#EB88E2', '#6773E3', '#F78A85'],\r\n pieChartLinePadding: 15,\r\n pieChartTextPadding: 5,\r\n titleFontSize: 20,\r\n subtitleFontSize: 15,\r\n toolTipPadding: 3,\r\n toolTipBackground: '#000000',\r\n toolTipOpacity: 0.7,\r\n toolTipLineHeight: 20,\r\n radarLabelTextMargin: 13,\r\n};\r\n\r\nvar assign = function(target, ...varArgs) {\r\n if (target == null) {\r\n throw new TypeError('[uCharts] Cannot convert undefined or null to object');\r\n }\r\n if (!varArgs || varArgs.length <= 0) {\r\n return target;\r\n }\r\n // 深度合并对象\r\n function deepAssign(obj1, obj2) {\r\n for (let key in obj2) {\r\n obj1[key] = obj1[key] && obj1[key].toString() === \"[object Object]\" ?\r\n deepAssign(obj1[key], obj2[key]) : obj1[key] = obj2[key];\r\n }\r\n return obj1;\r\n }\r\n varArgs.forEach(val => {\r\n target = deepAssign(target, val);\r\n });\r\n return target;\r\n};\r\n\r\nvar util = {\r\n toFixed: function toFixed(num, limit) {\r\n limit = limit || 2;\r\n if (this.isFloat(num)) {\r\n num = num.toFixed(limit);\r\n }\r\n return num;\r\n },\r\n isFloat: function isFloat(num) {\r\n return num % 1 !== 0;\r\n },\r\n approximatelyEqual: function approximatelyEqual(num1, num2) {\r\n return Math.abs(num1 - num2) < 1e-10;\r\n },\r\n isSameSign: function isSameSign(num1, num2) {\r\n return Math.abs(num1) === num1 && Math.abs(num2) === num2 || Math.abs(num1) !== num1 && Math.abs(num2) !== num2;\r\n },\r\n isSameXCoordinateArea: function isSameXCoordinateArea(p1, p2) {\r\n return this.isSameSign(p1.x, p2.x);\r\n },\r\n isCollision: function isCollision(obj1, obj2) {\r\n obj1.end = {};\r\n obj1.end.x = obj1.start.x + obj1.width;\r\n obj1.end.y = obj1.start.y - obj1.height;\r\n obj2.end = {};\r\n obj2.end.x = obj2.start.x + obj2.width;\r\n obj2.end.y = obj2.start.y - obj2.height;\r\n var flag = obj2.start.x > obj1.end.x || obj2.end.x < obj1.start.x || obj2.end.y > obj1.start.y || obj2.start.y < obj1.end.y;\r\n return !flag;\r\n }\r\n};\r\n\r\n//兼容H5点击事件\r\nfunction getH5Offset(e) {\r\n e.mp = {\r\n changedTouches: []\r\n };\r\n e.mp.changedTouches.push({\r\n x: e.offsetX,\r\n y: e.offsetY\r\n });\r\n return e;\r\n}\r\n\r\n// hex 转 rgba\r\nfunction hexToRgb(hexValue, opc) {\r\n var rgx = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\r\n var hex = hexValue.replace(rgx, function(m, r, g, b) {\r\n return r + r + g + g + b + b;\r\n });\r\n var rgb = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n var r = parseInt(rgb[1], 16);\r\n var g = parseInt(rgb[2], 16);\r\n var b = parseInt(rgb[3], 16);\r\n return 'rgba(' + r + ',' + g + ',' + b + ',' + opc + ')';\r\n}\r\n\r\nfunction findRange(num, type, limit) {\r\n if (isNaN(num)) {\r\n throw new Error('[uCharts] series数据需为Number格式');\r\n }\r\n limit = limit || 10;\r\n type = type ? type : 'upper';\r\n var multiple = 1;\r\n while (limit < 1) {\r\n limit *= 10;\r\n multiple *= 10;\r\n }\r\n if (type === 'upper') {\r\n num = Math.ceil(num * multiple);\r\n } else {\r\n num = Math.floor(num * multiple);\r\n }\r\n while (num % limit !== 0) {\r\n if (type === 'upper') {\r\n if (num == num + 1) { //修复数据值过大num++无效的bug by 向日葵 @xrk_jy\r\n break;\r\n }\r\n num++;\r\n } else {\r\n num--;\r\n }\r\n }\r\n return num / multiple;\r\n}\r\n\r\nfunction calCandleMA(dayArr, nameArr, colorArr, kdata) {\r\n let seriesTemp = [];\r\n for (let k = 0; k < dayArr.length; k++) {\r\n let seriesItem = {\r\n data: [],\r\n name: nameArr[k],\r\n color: colorArr[k]\r\n };\r\n for (let i = 0, len = kdata.length; i < len; i++) {\r\n if (i < dayArr[k]) {\r\n seriesItem.data.push(null);\r\n continue;\r\n }\r\n let sum = 0;\r\n for (let j = 0; j < dayArr[k]; j++) {\r\n sum += kdata[i - j][1];\r\n }\r\n seriesItem.data.push(+(sum / dayArr[k]).toFixed(3));\r\n }\r\n seriesTemp.push(seriesItem);\r\n }\r\n return seriesTemp;\r\n}\r\n\r\nfunction calValidDistance(self, distance, chartData, config, opts) {\r\n var dataChartAreaWidth = opts.width - opts.area[1] - opts.area[3];\r\n var dataChartWidth = chartData.eachSpacing * (opts.chartData.xAxisData.xAxisPoints.length - 1);\r\n if(opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1){\r\n if(opts.extra.mount.widthRatio>2) opts.extra.mount.widthRatio = 2\r\n dataChartWidth += (opts.extra.mount.widthRatio - 1)*chartData.eachSpacing;\r\n }\r\n var validDistance = distance;\r\n if (distance >= 0) {\r\n validDistance = 0;\r\n self.uevent.trigger('scrollLeft');\r\n self.scrollOption.position = 'left'\r\n opts.xAxis.scrollPosition = 'left';\r\n } else if (Math.abs(distance) >= dataChartWidth - dataChartAreaWidth) {\r\n validDistance = dataChartAreaWidth - dataChartWidth;\r\n self.uevent.trigger('scrollRight');\r\n self.scrollOption.position = 'right'\r\n opts.xAxis.scrollPosition = 'right';\r\n } else {\r\n self.scrollOption.position = distance\r\n opts.xAxis.scrollPosition = distance;\r\n }\r\n return validDistance;\r\n}\r\n\r\nfunction isInAngleRange(angle, startAngle, endAngle) {\r\n function adjust(angle) {\r\n while (angle < 0) {\r\n angle += 2 * Math.PI;\r\n }\r\n while (angle > 2 * Math.PI) {\r\n angle -= 2 * Math.PI;\r\n }\r\n return angle;\r\n }\r\n angle = adjust(angle);\r\n startAngle = adjust(startAngle);\r\n endAngle = adjust(endAngle);\r\n if (startAngle > endAngle) {\r\n endAngle += 2 * Math.PI;\r\n if (angle < startAngle) {\r\n angle += 2 * Math.PI;\r\n }\r\n }\r\n return angle >= startAngle && angle <= endAngle;\r\n}\r\n\r\nfunction createCurveControlPoints(points, i) {\r\n function isNotMiddlePoint(points, i) {\r\n if (points[i - 1] && points[i + 1]) {\r\n return points[i].y >= Math.max(points[i - 1].y, points[i + 1].y) || points[i].y <= Math.min(points[i - 1].y,\r\n points[i + 1].y);\r\n } else {\r\n return false;\r\n }\r\n }\r\n function isNotMiddlePointX(points, i) {\r\n if (points[i - 1] && points[i + 1]) {\r\n return points[i].x >= Math.max(points[i - 1].x, points[i + 1].x) || points[i].x <= Math.min(points[i - 1].x,\r\n points[i + 1].x);\r\n } else {\r\n return false;\r\n }\r\n }\r\n var a = 0.2;\r\n var b = 0.2;\r\n var pAx = null;\r\n var pAy = null;\r\n var pBx = null;\r\n var pBy = null;\r\n if (i < 1) {\r\n pAx = points[0].x + (points[1].x - points[0].x) * a;\r\n pAy = points[0].y + (points[1].y - points[0].y) * a;\r\n } else {\r\n pAx = points[i].x + (points[i + 1].x - points[i - 1].x) * a;\r\n pAy = points[i].y + (points[i + 1].y - points[i - 1].y) * a;\r\n }\r\n\r\n if (i > points.length - 3) {\r\n var last = points.length - 1;\r\n pBx = points[last].x - (points[last].x - points[last - 1].x) * b;\r\n pBy = points[last].y - (points[last].y - points[last - 1].y) * b;\r\n } else {\r\n pBx = points[i + 1].x - (points[i + 2].x - points[i].x) * b;\r\n pBy = points[i + 1].y - (points[i + 2].y - points[i].y) * b;\r\n }\r\n if (isNotMiddlePoint(points, i + 1)) {\r\n pBy = points[i + 1].y;\r\n }\r\n if (isNotMiddlePoint(points, i)) {\r\n pAy = points[i].y;\r\n }\r\n if (isNotMiddlePointX(points, i + 1)) {\r\n pBx = points[i + 1].x;\r\n }\r\n if (isNotMiddlePointX(points, i)) {\r\n pAx = points[i].x;\r\n }\r\n if (pAy >= Math.max(points[i].y, points[i + 1].y) || pAy <= Math.min(points[i].y, points[i + 1].y)) {\r\n pAy = points[i].y;\r\n }\r\n if (pBy >= Math.max(points[i].y, points[i + 1].y) || pBy <= Math.min(points[i].y, points[i + 1].y)) {\r\n pBy = points[i + 1].y;\r\n }\r\n if (pAx >= Math.max(points[i].x, points[i + 1].x) || pAx <= Math.min(points[i].x, points[i + 1].x)) {\r\n pAx = points[i].x;\r\n }\r\n if (pBx >= Math.max(points[i].x, points[i + 1].x) || pBx <= Math.min(points[i].x, points[i + 1].x)) {\r\n pBx = points[i + 1].x;\r\n }\r\n return {\r\n ctrA: {\r\n x: pAx,\r\n y: pAy\r\n },\r\n ctrB: {\r\n x: pBx,\r\n y: pBy\r\n }\r\n };\r\n}\r\n\r\n\r\nfunction convertCoordinateOrigin(x, y, center) {\r\n return {\r\n x: center.x + x,\r\n y: center.y - y\r\n };\r\n}\r\n\r\nfunction avoidCollision(obj, target) {\r\n if (target) {\r\n // is collision test\r\n while (util.isCollision(obj, target)) {\r\n if (obj.start.x > 0) {\r\n obj.start.y--;\r\n } else if (obj.start.x < 0) {\r\n obj.start.y++;\r\n } else {\r\n if (obj.start.y > 0) {\r\n obj.start.y++;\r\n } else {\r\n obj.start.y--;\r\n }\r\n }\r\n }\r\n }\r\n return obj;\r\n}\r\n\r\nfunction fixPieSeries(series, opts, config){\r\n let pieSeriesArr = [];\r\n if(series.length>0 && series[0].data.constructor.toString().indexOf('Array') > -1){\r\n opts._pieSeries_ = series;\r\n let oldseries = series[0].data;\r\n for (var i = 0; i < oldseries.length; i++) {\r\n oldseries[i].formatter = series[0].formatter;\r\n oldseries[i].data = oldseries[i].value;\r\n pieSeriesArr.push(oldseries[i]);\r\n }\r\n opts.series = pieSeriesArr;\r\n }else{\r\n pieSeriesArr = series;\r\n }\r\n return pieSeriesArr;\r\n}\r\n\r\nfunction fillSeries(series, opts, config) {\r\n var index = 0;\r\n for (var i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n if (!item.color) {\r\n item.color = config.color[index];\r\n index = (index + 1) % config.color.length;\r\n }\r\n if (!item.linearIndex) {\r\n item.linearIndex = i;\r\n }\r\n if (!item.index) {\r\n item.index = 0;\r\n }\r\n if (!item.type) {\r\n item.type = opts.type;\r\n }\r\n if (typeof item.show == \"undefined\") {\r\n item.show = true;\r\n }\r\n if (!item.type) {\r\n item.type = opts.type;\r\n }\r\n if (!item.pointShape) {\r\n item.pointShape = \"circle\";\r\n }\r\n if (!item.legendShape) {\r\n switch (item.type) {\r\n case 'line':\r\n item.legendShape = \"line\";\r\n break;\r\n case 'column':\r\n case 'bar':\r\n item.legendShape = \"rect\";\r\n break;\r\n case 'area':\r\n case 'mount':\r\n item.legendShape = \"triangle\";\r\n break;\r\n default:\r\n item.legendShape = \"circle\";\r\n }\r\n }\r\n }\r\n return series;\r\n}\r\n\r\nfunction fillCustomColor(linearType, customColor, series, config) {\r\n var newcolor = customColor || [];\r\n if (linearType == 'custom' && newcolor.length == 0 ) {\r\n newcolor = config.linearColor;\r\n }\r\n if (linearType == 'custom' && newcolor.length < series.length) {\r\n let chazhi = series.length - newcolor.length;\r\n for (var i = 0; i < chazhi; i++) {\r\n newcolor.push(config.linearColor[(i + 1) % config.linearColor.length]);\r\n }\r\n }\r\n return newcolor;\r\n}\r\n\r\nfunction getDataRange(minData, maxData) {\r\n var limit = 0;\r\n var range = maxData - minData;\r\n if (range >= 10000) {\r\n limit = 1000;\r\n } else if (range >= 1000) {\r\n limit = 100;\r\n } else if (range >= 100) {\r\n limit = 10;\r\n } else if (range >= 10) {\r\n limit = 5;\r\n } else if (range >= 1) {\r\n limit = 1;\r\n } else if (range >= 0.1) {\r\n limit = 0.1;\r\n } else if (range >= 0.01) {\r\n limit = 0.01;\r\n } else if (range >= 0.001) {\r\n limit = 0.001;\r\n } else if (range >= 0.0001) {\r\n limit = 0.0001;\r\n } else if (range >= 0.00001) {\r\n limit = 0.00001;\r\n } else {\r\n limit = 0.000001;\r\n }\r\n return {\r\n minRange: findRange(minData, 'lower', limit),\r\n maxRange: findRange(maxData, 'upper', limit)\r\n };\r\n}\r\n\r\nfunction measureText(text, fontSize, context) {\r\n var width = 0;\r\n text = String(text);\r\n\r\n\r\n\r\n if (context !== false && context !== undefined && context.setFontSize && context.measureText) {\r\n context.setFontSize(fontSize);\r\n return context.measureText(text).width;\r\n } else {\r\n var text = text.split('');\r\n for (let i = 0; i < text.length; i++) {\r\n let item = text[i];\r\n if (/[a-zA-Z]/.test(item)) {\r\n width += 7;\r\n } else if (/[0-9]/.test(item)) {\r\n width += 5.5;\r\n } else if (/\\./.test(item)) {\r\n width += 2.7;\r\n } else if (/-/.test(item)) {\r\n width += 3.25;\r\n } else if (/:/.test(item)) {\r\n width += 2.5;\r\n } else if (/[\\u4e00-\\u9fa5]/.test(item)) {\r\n width += 10;\r\n } else if (/\\(|\\)/.test(item)) {\r\n width += 3.73;\r\n } else if (/\\s/.test(item)) {\r\n width += 2.5;\r\n } else if (/%/.test(item)) {\r\n width += 8;\r\n } else {\r\n width += 10;\r\n }\r\n }\r\n return width * fontSize / 10;\r\n }\r\n}\r\n\r\nfunction dataCombine(series) {\r\n return series.reduce(function(a, b) {\r\n return (a.data ? a.data : a).concat(b.data);\r\n }, []);\r\n}\r\n\r\nfunction dataCombineStack(series, len) {\r\n var sum = new Array(len);\r\n for (var j = 0; j < sum.length; j++) {\r\n sum[j] = 0;\r\n }\r\n for (var i = 0; i < series.length; i++) {\r\n for (var j = 0; j < sum.length; j++) {\r\n sum[j] += series[i].data[j];\r\n }\r\n }\r\n return series.reduce(function(a, b) {\r\n return (a.data ? a.data : a).concat(b.data).concat(sum);\r\n }, []);\r\n}\r\n\r\nfunction getTouches(touches, opts, e) {\r\n let x, y;\r\n if (touches.clientX) {\r\n if (opts.rotate) {\r\n y = opts.height - touches.clientX * opts.pix;\r\n x = (touches.pageY - e.currentTarget.offsetTop - (opts.height / opts.pix / 2) * (opts.pix - 1)) * opts.pix;\r\n } else {\r\n x = touches.clientX * opts.pix;\r\n y = (touches.pageY - e.currentTarget.offsetTop - (opts.height / opts.pix / 2) * (opts.pix - 1)) * opts.pix;\r\n }\r\n } else {\r\n if (opts.rotate) {\r\n y = opts.height - touches.x * opts.pix;\r\n x = touches.y * opts.pix;\r\n } else {\r\n x = touches.x * opts.pix;\r\n y = touches.y * opts.pix;\r\n }\r\n }\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n}\r\n\r\nfunction getSeriesDataItem(series, index, group) {\r\n var data = [];\r\n var newSeries = [];\r\n var indexIsArr = index.constructor.toString().indexOf('Array') > -1;\r\n if(indexIsArr){\r\n let tempSeries = filterSeries(series);\r\n for (var i = 0; i < group.length; i++) {\r\n newSeries.push(tempSeries[group[i]]);\r\n }\r\n }else{\r\n newSeries = series;\r\n };\r\n for (let i = 0; i < newSeries.length; i++) {\r\n let item = newSeries[i];\r\n let tmpindex = -1;\r\n if(indexIsArr){\r\n tmpindex = index[i];\r\n }else{\r\n tmpindex = index;\r\n }\r\n if (item.data[tmpindex] !== null && typeof item.data[tmpindex] !== 'undefined' && item.show) {\r\n let seriesItem = {};\r\n seriesItem.color = item.color;\r\n seriesItem.type = item.type;\r\n seriesItem.style = item.style;\r\n seriesItem.pointShape = item.pointShape;\r\n seriesItem.disableLegend = item.disableLegend;\r\n seriesItem.name = item.name;\r\n seriesItem.show = item.show;\r\n seriesItem.data = item.formatter ? item.formatter(item.data[tmpindex]) : item.data[tmpindex];\r\n data.push(seriesItem);\r\n }\r\n }\r\n return data;\r\n}\r\n\r\nfunction getMaxTextListLength(list, fontSize, context) {\r\n var lengthList = list.map(function(item) {\r\n return measureText(item, fontSize, context);\r\n });\r\n return Math.max.apply(null, lengthList);\r\n}\r\n\r\nfunction getRadarCoordinateSeries(length) {\r\n var eachAngle = 2 * Math.PI / length;\r\n var CoordinateSeries = [];\r\n for (var i = 0; i < length; i++) {\r\n CoordinateSeries.push(eachAngle * i);\r\n }\r\n return CoordinateSeries.map(function(item) {\r\n return -1 * item + Math.PI / 2;\r\n });\r\n}\r\n\r\nfunction getToolTipData(seriesData, opts, index, group, categories) {\r\n var option = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\r\n var calPoints = opts.chartData.calPoints?opts.chartData.calPoints:[];\r\n let points = {};\r\n if(group.length > 0){\r\n let filterPoints = [];\r\n for (let i = 0; i < group.length; i++) {\r\n filterPoints.push(calPoints[group[i]])\r\n }\r\n points = filterPoints[0][index[0]];\r\n }else{\r\n for (let i = 0; i < calPoints.length; i++) {\r\n if(calPoints[i][index]){\r\n points = calPoints[i][index];\r\n break;\r\n }\r\n }\r\n };\r\n var textList = seriesData.map(function(item) {\r\n let titleText = null;\r\n if (opts.categories && opts.categories.length>0) {\r\n titleText = categories[index];\r\n };\r\n return {\r\n text: option.formatter ? option.formatter(item, titleText, index, opts) : item.name + ': ' + item.data,\r\n color: item.color\r\n };\r\n });\r\n var offset = {\r\n x: Math.round(points.x),\r\n y: Math.round(points.y)\r\n };\r\n return {\r\n textList: textList,\r\n offset: offset\r\n };\r\n}\r\n\r\nfunction getMixToolTipData(seriesData, opts, index, categories) {\r\n var option = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\r\n var points = opts.chartData.xAxisPoints[index] + opts.chartData.eachSpacing / 2;\r\n var textList = seriesData.map(function(item) {\r\n return {\r\n text: option.formatter ? option.formatter(item, categories[index], index, opts) : item.name + ': ' + item.data,\r\n color: item.color,\r\n disableLegend: item.disableLegend ? true : false\r\n };\r\n });\r\n textList = textList.filter(function(item) {\r\n if (item.disableLegend !== true) {\r\n return item;\r\n }\r\n });\r\n var offset = {\r\n x: Math.round(points),\r\n y: 0\r\n };\r\n return {\r\n textList: textList,\r\n offset: offset\r\n };\r\n}\r\n\r\nfunction getCandleToolTipData(series, seriesData, opts, index, categories, extra) {\r\n var option = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};\r\n var calPoints = opts.chartData.calPoints;\r\n let upColor = extra.color.upFill;\r\n let downColor = extra.color.downFill;\r\n //颜色顺序为开盘,收盘,最低,最高\r\n let color = [upColor, upColor, downColor, upColor];\r\n var textList = [];\r\n seriesData.map(function(item) {\r\n if (index == 0) {\r\n if (item.data[1] - item.data[0] < 0) {\r\n color[1] = downColor;\r\n } else {\r\n color[1] = upColor;\r\n }\r\n } else {\r\n if (item.data[0] < series[index - 1][1]) {\r\n color[0] = downColor;\r\n }\r\n if (item.data[1] < item.data[0]) {\r\n color[1] = downColor;\r\n }\r\n if (item.data[2] > series[index - 1][1]) {\r\n color[2] = upColor;\r\n }\r\n if (item.data[3] < series[index - 1][1]) {\r\n color[3] = downColor;\r\n }\r\n }\r\n let text1 = {\r\n text: '开盘:' + item.data[0],\r\n color: color[0]\r\n };\r\n let text2 = {\r\n text: '收盘:' + item.data[1],\r\n color: color[1]\r\n };\r\n let text3 = {\r\n text: '最低:' + item.data[2],\r\n color: color[2]\r\n };\r\n let text4 = {\r\n text: '最高:' + item.data[3],\r\n color: color[3]\r\n };\r\n textList.push(text1, text2, text3, text4);\r\n });\r\n var validCalPoints = [];\r\n var offset = {\r\n x: 0,\r\n y: 0\r\n };\r\n for (let i = 0; i < calPoints.length; i++) {\r\n let points = calPoints[i];\r\n if (typeof points[index] !== 'undefined' && points[index] !== null) {\r\n validCalPoints.push(points[index]);\r\n }\r\n }\r\n offset.x = Math.round(validCalPoints[0][0].x);\r\n return {\r\n textList: textList,\r\n offset: offset\r\n };\r\n}\r\n\r\nfunction filterSeries(series) {\r\n let tempSeries = [];\r\n for (let i = 0; i < series.length; i++) {\r\n if (series[i].show == true) {\r\n tempSeries.push(series[i])\r\n }\r\n }\r\n return tempSeries;\r\n}\r\n\r\nfunction findCurrentIndex(currentPoints, calPoints, opts, config) {\r\n var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\r\n var current={ index:-1, group:[] };\r\n var spacing = opts.chartData.eachSpacing / 2;\r\n let xAxisPoints = [];\r\n if (calPoints && calPoints.length > 0) {\r\n if (!opts.categories) {\r\n spacing = 0;\r\n }else{\r\n for (let i = 1; i < opts.chartData.xAxisPoints.length; i++) {\r\n xAxisPoints.push(opts.chartData.xAxisPoints[i] - spacing);\r\n }\r\n if ((opts.type == 'line' || opts.type == 'area') && opts.xAxis.boundaryGap == 'justify') {\r\n xAxisPoints = opts.chartData.xAxisPoints;\r\n }\r\n }\r\n if (isInExactChartArea(currentPoints, opts, config)) {\r\n if (!opts.categories) {\r\n let timePoints = Array(calPoints.length);\r\n for (let i = 0; i < calPoints.length; i++) {\r\n timePoints[i] = Array(calPoints[i].length)\r\n for (let j = 0; j < calPoints[i].length; j++) {\r\n timePoints[i][j] = (Math.abs(calPoints[i][j].x - currentPoints.x));\r\n }\r\n };\r\n let pointValue = Array(timePoints.length);\r\n let pointIndex = Array(timePoints.length);\r\n for (let i = 0; i < timePoints.length; i++) {\r\n pointValue[i] = Math.min.apply(null, timePoints[i]);\r\n pointIndex[i] = timePoints[i].indexOf(pointValue[i]);\r\n }\r\n let minValue = Math.min.apply(null, pointValue);\r\n current.index = [];\r\n for (let i = 0; i < pointValue.length; i++) {\r\n if(pointValue[i] == minValue){\r\n current.group.push(i);\r\n current.index.push(pointIndex[i]);\r\n }\r\n };\r\n }else{\r\n xAxisPoints.forEach(function(item, index) {\r\n if (currentPoints.x + offset + spacing > item) {\r\n current.index = index;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n return current;\r\n}\r\n\r\nfunction findBarChartCurrentIndex(currentPoints, calPoints, opts, config) {\r\n var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\r\n var current={ index:-1, group:[] };\r\n var spacing = opts.chartData.eachSpacing / 2;\r\n let yAxisPoints = opts.chartData.yAxisPoints;\r\n if (calPoints && calPoints.length > 0) {\r\n if (isInExactChartArea(currentPoints, opts, config)) {\r\n yAxisPoints.forEach(function(item, index) {\r\n if (currentPoints.y + offset + spacing > item) {\r\n current.index = index;\r\n }\r\n });\r\n }\r\n }\r\n return current;\r\n}\r\n\r\nfunction findLegendIndex(currentPoints, legendData, opts) {\r\n let currentIndex = -1;\r\n let gap = 0;\r\n if (isInExactLegendArea(currentPoints, legendData.area)) {\r\n let points = legendData.points;\r\n let index = -1;\r\n for (let i = 0, len = points.length; i < len; i++) {\r\n let item = points[i];\r\n for (let j = 0; j < item.length; j++) {\r\n index += 1;\r\n let area = item[j]['area'];\r\n if (area && currentPoints.x > area[0] - gap && currentPoints.x < area[2] + gap && currentPoints.y > area[1] - gap && currentPoints.y < area[3] + gap) {\r\n currentIndex = index;\r\n break;\r\n }\r\n }\r\n }\r\n return currentIndex;\r\n }\r\n return currentIndex;\r\n}\r\n\r\nfunction isInExactLegendArea(currentPoints, area) {\r\n return currentPoints.x > area.start.x && currentPoints.x < area.end.x && currentPoints.y > area.start.y && currentPoints.y < area.end.y;\r\n}\r\n\r\nfunction isInExactChartArea(currentPoints, opts, config) {\r\n return currentPoints.x <= opts.width - opts.area[1] + 10 && currentPoints.x >= opts.area[3] - 10 && currentPoints.y >= opts.area[0] && currentPoints.y <= opts.height - opts.area[2];\r\n}\r\n\r\nfunction findRadarChartCurrentIndex(currentPoints, radarData, count) {\r\n var eachAngleArea = 2 * Math.PI / count;\r\n var currentIndex = -1;\r\n if (isInExactPieChartArea(currentPoints, radarData.center, radarData.radius)) {\r\n var fixAngle = function fixAngle(angle) {\r\n if (angle < 0) {\r\n angle += 2 * Math.PI;\r\n }\r\n if (angle > 2 * Math.PI) {\r\n angle -= 2 * Math.PI;\r\n }\r\n return angle;\r\n };\r\n var angle = Math.atan2(radarData.center.y - currentPoints.y, currentPoints.x - radarData.center.x);\r\n angle = -1 * angle;\r\n if (angle < 0) {\r\n angle += 2 * Math.PI;\r\n }\r\n var angleList = radarData.angleList.map(function(item) {\r\n item = fixAngle(-1 * item);\r\n return item;\r\n });\r\n angleList.forEach(function(item, index) {\r\n var rangeStart = fixAngle(item - eachAngleArea / 2);\r\n var rangeEnd = fixAngle(item + eachAngleArea / 2);\r\n if (rangeEnd < rangeStart) {\r\n rangeEnd += 2 * Math.PI;\r\n }\r\n if (angle >= rangeStart && angle <= rangeEnd || angle + 2 * Math.PI >= rangeStart && angle + 2 * Math.PI <= rangeEnd) {\r\n currentIndex = index;\r\n }\r\n });\r\n }\r\n return currentIndex;\r\n}\r\n\r\nfunction findFunnelChartCurrentIndex(currentPoints, funnelData) {\r\n var currentIndex = -1;\r\n for (var i = 0, len = funnelData.series.length; i < len; i++) {\r\n var item = funnelData.series[i];\r\n if (currentPoints.x > item.funnelArea[0] && currentPoints.x < item.funnelArea[2] && currentPoints.y > item.funnelArea[1] && currentPoints.y < item.funnelArea[3]) {\r\n currentIndex = i;\r\n break;\r\n }\r\n }\r\n return currentIndex;\r\n}\r\n\r\nfunction findWordChartCurrentIndex(currentPoints, wordData) {\r\n var currentIndex = -1;\r\n for (var i = 0, len = wordData.length; i < len; i++) {\r\n var item = wordData[i];\r\n if (currentPoints.x > item.area[0] && currentPoints.x < item.area[2] && currentPoints.y > item.area[1] && currentPoints.y < item.area[3]) {\r\n currentIndex = i;\r\n break;\r\n }\r\n }\r\n return currentIndex;\r\n}\r\n\r\nfunction findMapChartCurrentIndex(currentPoints, opts) {\r\n var currentIndex = -1;\r\n var cData = opts.chartData.mapData;\r\n var data = opts.series;\r\n var tmp = pointToCoordinate(currentPoints.y, currentPoints.x, cData.bounds, cData.scale, cData.xoffset, cData.yoffset);\r\n var poi = [tmp.x, tmp.y];\r\n for (var i = 0, len = data.length; i < len; i++) {\r\n var item = data[i].geometry.coordinates;\r\n if (isPoiWithinPoly(poi, item, opts.chartData.mapData.mercator)) {\r\n currentIndex = i;\r\n break;\r\n }\r\n }\r\n return currentIndex;\r\n}\r\n\r\nfunction findRoseChartCurrentIndex(currentPoints, pieData, opts) {\r\n var currentIndex = -1;\r\n var series = getRoseDataPoints(opts._series_, opts.extra.rose.type, pieData.radius, pieData.radius);\r\n if (pieData && pieData.center && isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) {\r\n var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x);\r\n angle = -angle;\r\n if(opts.extra.rose && opts.extra.rose.offsetAngle){\r\n angle = angle - opts.extra.rose.offsetAngle * Math.PI / 180;\r\n }\r\n for (var i = 0, len = series.length; i < len; i++) {\r\n if (isInAngleRange(angle, series[i]._start_, series[i]._start_ + series[i]._rose_proportion_ * 2 * Math.PI)) {\r\n currentIndex = i;\r\n break;\r\n }\r\n }\r\n }\r\n return currentIndex;\r\n}\r\n\r\nfunction findPieChartCurrentIndex(currentPoints, pieData, opts) {\r\n var currentIndex = -1;\r\n var series = getPieDataPoints(pieData.series);\r\n if (pieData && pieData.center && isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) {\r\n var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x);\r\n angle = -angle;\r\n if(opts.extra.pie && opts.extra.pie.offsetAngle){\r\n angle = angle - opts.extra.pie.offsetAngle * Math.PI / 180;\r\n }\r\n if(opts.extra.ring && opts.extra.ring.offsetAngle){\r\n angle = angle - opts.extra.ring.offsetAngle * Math.PI / 180;\r\n }\r\n for (var i = 0, len = series.length; i < len; i++) {\r\n if (isInAngleRange(angle, series[i]._start_, series[i]._start_ + series[i]._proportion_ * 2 * Math.PI)) {\r\n currentIndex = i;\r\n break;\r\n }\r\n }\r\n }\r\n return currentIndex;\r\n}\r\n\r\nfunction isInExactPieChartArea(currentPoints, center, radius) {\r\n return Math.pow(currentPoints.x - center.x, 2) + Math.pow(currentPoints.y - center.y, 2) <= Math.pow(radius, 2);\r\n}\r\n\r\n\r\nfunction splitPoints(points,eachSeries) {\r\n var newPoints = [];\r\n var items = [];\r\n points.forEach(function(item, index) {\r\n if(eachSeries.connectNulls){\r\n if (item !== null) {\r\n items.push(item);\r\n }\r\n }else{\r\n if (item !== null) {\r\n items.push(item);\r\n } else {\r\n if (items.length) {\r\n newPoints.push(items);\r\n }\r\n items = [];\r\n }\r\n }\r\n \r\n });\r\n if (items.length) {\r\n newPoints.push(items);\r\n }\r\n return newPoints;\r\n}\r\n\r\n\r\nfunction calLegendData(series, opts, config, chartData, context) {\r\n let legendData = {\r\n area: {\r\n start: {\r\n x: 0,\r\n y: 0\r\n },\r\n end: {\r\n x: 0,\r\n y: 0\r\n },\r\n width: 0,\r\n height: 0,\r\n wholeWidth: 0,\r\n wholeHeight: 0\r\n },\r\n points: [],\r\n widthArr: [],\r\n heightArr: []\r\n };\r\n if (opts.legend.show === false) {\r\n chartData.legendData = legendData;\r\n return legendData;\r\n }\r\n let padding = opts.legend.padding * opts.pix;\r\n let margin = opts.legend.margin * opts.pix;\r\n let fontSize = opts.legend.fontSize ? opts.legend.fontSize * opts.pix : config.fontSize;\r\n let shapeWidth = 15 * opts.pix;\r\n let shapeRight = 5 * opts.pix;\r\n let lineHeight = Math.max(opts.legend.lineHeight * opts.pix, fontSize);\r\n if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\r\n let legendList = [];\r\n let widthCount = 0;\r\n let widthCountArr = [];\r\n let currentRow = [];\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n const legendText = item.legendText ? item.legendText : item.name;\r\n let itemWidth = shapeWidth + shapeRight + measureText(legendText || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix;\r\n if (widthCount + itemWidth > opts.width - opts.area[1] - opts.area[3]) {\r\n legendList.push(currentRow);\r\n widthCountArr.push(widthCount - opts.legend.itemGap * opts.pix);\r\n widthCount = itemWidth;\r\n currentRow = [item];\r\n } else {\r\n widthCount += itemWidth;\r\n currentRow.push(item);\r\n }\r\n }\r\n if (currentRow.length) {\r\n legendList.push(currentRow);\r\n widthCountArr.push(widthCount - opts.legend.itemGap * opts.pix);\r\n legendData.widthArr = widthCountArr;\r\n let legendWidth = Math.max.apply(null, widthCountArr);\r\n switch (opts.legend.float) {\r\n case 'left':\r\n legendData.area.start.x = opts.area[3];\r\n legendData.area.end.x = opts.area[3] + legendWidth + 2 * padding;\r\n break;\r\n case 'right':\r\n legendData.area.start.x = opts.width - opts.area[1] - legendWidth - 2 * padding;\r\n legendData.area.end.x = opts.width - opts.area[1];\r\n break;\r\n default:\r\n legendData.area.start.x = (opts.width - legendWidth) / 2 - padding;\r\n legendData.area.end.x = (opts.width + legendWidth) / 2 + padding;\r\n }\r\n legendData.area.width = legendWidth + 2 * padding;\r\n legendData.area.wholeWidth = legendWidth + 2 * padding;\r\n legendData.area.height = legendList.length * lineHeight + 2 * padding;\r\n legendData.area.wholeHeight = legendList.length * lineHeight + 2 * padding + 2 * margin;\r\n legendData.points = legendList;\r\n }\r\n } else {\r\n let len = series.length;\r\n let maxHeight = opts.height - opts.area[0] - opts.area[2] - 2 * margin - 2 * padding;\r\n let maxLength = Math.min(Math.floor(maxHeight / lineHeight), len);\r\n legendData.area.height = maxLength * lineHeight + padding * 2;\r\n legendData.area.wholeHeight = maxLength * lineHeight + padding * 2;\r\n switch (opts.legend.float) {\r\n case 'top':\r\n legendData.area.start.y = opts.area[0] + margin;\r\n legendData.area.end.y = opts.area[0] + margin + legendData.area.height;\r\n break;\r\n case 'bottom':\r\n legendData.area.start.y = opts.height - opts.area[2] - margin - legendData.area.height;\r\n legendData.area.end.y = opts.height - opts.area[2] - margin;\r\n break;\r\n default:\r\n legendData.area.start.y = (opts.height - legendData.area.height) / 2;\r\n legendData.area.end.y = (opts.height + legendData.area.height) / 2;\r\n }\r\n let lineNum = len % maxLength === 0 ? len / maxLength : Math.floor((len / maxLength) + 1);\r\n let currentRow = [];\r\n for (let i = 0; i < lineNum; i++) {\r\n let temp = series.slice(i * maxLength, i * maxLength + maxLength);\r\n currentRow.push(temp);\r\n }\r\n legendData.points = currentRow;\r\n if (currentRow.length) {\r\n for (let i = 0; i < currentRow.length; i++) {\r\n let item = currentRow[i];\r\n let maxWidth = 0;\r\n for (let j = 0; j < item.length; j++) {\r\n let itemWidth = shapeWidth + shapeRight + measureText(item[j].name || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix;\r\n if (itemWidth > maxWidth) {\r\n maxWidth = itemWidth;\r\n }\r\n }\r\n legendData.widthArr.push(maxWidth);\r\n legendData.heightArr.push(item.length * lineHeight + padding * 2);\r\n }\r\n let legendWidth = 0\r\n for (let i = 0; i < legendData.widthArr.length; i++) {\r\n legendWidth += legendData.widthArr[i];\r\n }\r\n legendData.area.width = legendWidth - opts.legend.itemGap * opts.pix + 2 * padding;\r\n legendData.area.wholeWidth = legendData.area.width + padding;\r\n }\r\n }\r\n switch (opts.legend.position) {\r\n case 'top':\r\n legendData.area.start.y = opts.area[0] + margin;\r\n legendData.area.end.y = opts.area[0] + margin + legendData.area.height;\r\n break;\r\n case 'bottom':\r\n legendData.area.start.y = opts.height - opts.area[2] - legendData.area.height - margin;\r\n legendData.area.end.y = opts.height - opts.area[2] - margin;\r\n break;\r\n case 'left':\r\n legendData.area.start.x = opts.area[3];\r\n legendData.area.end.x = opts.area[3] + legendData.area.width;\r\n break;\r\n case 'right':\r\n legendData.area.start.x = opts.width - opts.area[1] - legendData.area.width;\r\n legendData.area.end.x = opts.width - opts.area[1];\r\n break;\r\n }\r\n chartData.legendData = legendData;\r\n return legendData;\r\n}\r\n\r\nfunction calCategoriesData(categories, opts, config, eachSpacing, context) {\r\n var result = {\r\n angle: 0,\r\n xAxisHeight: config.xAxisHeight\r\n };\r\n var fontSize = opts.xAxis.fontSize * opts.pix || config.fontSize;\r\n var categoriesTextLenth = categories.map(function(item,index) {\r\n var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item,index,opts) : item;\r\n return measureText(String(xitem), fontSize, context);\r\n });\r\n \r\n var maxTextLength = Math.max.apply(this, categoriesTextLenth);\r\n if (opts.xAxis.rotateLabel == true) {\r\n result.angle = opts.xAxis.rotateAngle * Math.PI / 180;\r\n let tempHeight = 2 * config.xAxisTextPadding + Math.abs(maxTextLength * Math.sin(result.angle))\r\n tempHeight = tempHeight < fontSize + 2 * config.xAxisTextPadding ? tempHeight + 2 * config.xAxisTextPadding : tempHeight;\r\n if(opts.enableScroll == true && opts.xAxis.scrollShow == true){\r\n tempHeight += 12 * opts.pix;\r\n }\r\n result.xAxisHeight = tempHeight;\r\n }\r\n if (opts.xAxis.disabled){\r\n result.xAxisHeight = 0;\r\n }\r\n return result;\r\n}\r\n\r\nfunction getXAxisTextList(series, opts, config, stack) {\r\n var index = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1;\r\n var data;\r\n if (stack == 'stack') {\r\n data = dataCombineStack(series, opts.categories.length);\r\n } else {\r\n data = dataCombine(series);\r\n }\r\n var sorted = [];\r\n // remove null from data\r\n data = data.filter(function(item) {\r\n //return item !== null;\r\n if (typeof item === 'object' && item !== null) {\r\n if (item.constructor.toString().indexOf('Array') > -1) {\r\n return item !== null;\r\n } else {\r\n return item.value !== null;\r\n }\r\n } else {\r\n return item !== null;\r\n }\r\n });\r\n data.map(function(item) {\r\n if (typeof item === 'object') {\r\n if (item.constructor.toString().indexOf('Array') > -1) {\r\n if (opts.type == 'candle') {\r\n item.map(function(subitem) {\r\n sorted.push(subitem);\r\n })\r\n } else {\r\n sorted.push(item[0]);\r\n }\r\n } else {\r\n sorted.push(item.value);\r\n }\r\n } else {\r\n sorted.push(item);\r\n }\r\n })\r\n\r\n var minData = 0;\r\n var maxData = 0;\r\n if (sorted.length > 0) {\r\n minData = Math.min.apply(this, sorted);\r\n maxData = Math.max.apply(this, sorted);\r\n }\r\n //为了兼容v1.9.0之前的项目\r\n if (index > -1) {\r\n if (typeof opts.xAxis.data[index].min === 'number') {\r\n minData = Math.min(opts.xAxis.data[index].min, minData);\r\n }\r\n if (typeof opts.xAxis.data[index].max === 'number') {\r\n maxData = Math.max(opts.xAxis.data[index].max, maxData);\r\n }\r\n } else {\r\n if (typeof opts.xAxis.min === 'number') {\r\n minData = Math.min(opts.xAxis.min, minData);\r\n }\r\n if (typeof opts.xAxis.max === 'number') {\r\n maxData = Math.max(opts.xAxis.max, maxData);\r\n }\r\n }\r\n if (minData === maxData) {\r\n var rangeSpan = maxData || 10;\r\n maxData += rangeSpan;\r\n }\r\n //var dataRange = getDataRange(minData, maxData);\r\n var minRange = minData;\r\n var maxRange = maxData;\r\n var range = [];\r\n var eachRange = (maxRange - minRange) / opts.xAxis.splitNumber;\r\n for (var i = 0; i <= opts.xAxis.splitNumber; i++) {\r\n range.push(minRange + eachRange * i);\r\n }\r\n return range;\r\n}\r\n\r\nfunction calXAxisData(series, opts, config, context) {\r\n //堆叠图重算Y轴\r\n var columnstyle = assign({}, {\r\n type: \"\"\r\n }, opts.extra.bar);\r\n var result = {\r\n angle: 0,\r\n xAxisHeight: config.xAxisHeight\r\n };\r\n result.ranges = getXAxisTextList(series, opts, config, columnstyle.type);\r\n result.rangesFormat = result.ranges.map(function(item) {\r\n //item = opts.xAxis.formatter ? opts.xAxis.formatter(item) : util.toFixed(item, 2);\r\n item = util.toFixed(item, 2);\r\n return item;\r\n });\r\n var xAxisScaleValues = result.ranges.map(function(item) {\r\n // 如果刻度值是浮点数,则保留两位小数\r\n item = util.toFixed(item, 2);\r\n // 若有自定义格式则调用自定义的格式化函数\r\n //item = opts.xAxis.formatter ? opts.xAxis.formatter(Number(item)) : item;\r\n return item;\r\n });\r\n result = Object.assign(result, getXAxisPoints(xAxisScaleValues, opts, config));\r\n // 计算X轴刻度的属性譬如每个刻度的间隔,刻度的起始点\\结束点以及总长\r\n var eachSpacing = result.eachSpacing;\r\n var textLength = xAxisScaleValues.map(function(item) {\r\n return measureText(item, opts.xAxis.fontSize * opts.pix || config.fontSize, context);\r\n });\r\n // get max length of categories text\r\n var maxTextLength = Math.max.apply(this, textLength);\r\n // 如果刻度值文本内容过长,则将其逆时针旋转45°\r\n if (maxTextLength + 2 * config.xAxisTextPadding > eachSpacing) {\r\n result.angle = 45 * Math.PI / 180;\r\n result.xAxisHeight = 2 * config.xAxisTextPadding + maxTextLength * Math.sin(result.angle);\r\n }\r\n if (opts.xAxis.disabled === true) {\r\n result.xAxisHeight = 0;\r\n }\r\n return result;\r\n}\r\n\r\nfunction getRadarDataPoints(angleList, center, radius, series, opts) {\r\n var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\r\n var radarOption = opts.extra.radar || {};\r\n radarOption.max = radarOption.max || 0;\r\n var maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series)));\r\n var data = [];\r\n for (let i = 0; i < series.length; i++) {\r\n let each = series[i];\r\n let listItem = {};\r\n listItem.color = each.color;\r\n listItem.legendShape = each.legendShape;\r\n listItem.pointShape = each.pointShape;\r\n listItem.data = [];\r\n each.data.forEach(function(item, index) {\r\n let tmp = {};\r\n tmp.angle = angleList[index];\r\n tmp.proportion = item / maxData;\r\n tmp.value = item;\r\n tmp.position = convertCoordinateOrigin(radius * tmp.proportion * process * Math.cos(tmp.angle), radius * tmp.proportion * process * Math.sin(tmp.angle), center);\r\n listItem.data.push(tmp);\r\n });\r\n data.push(listItem);\r\n }\r\n return data;\r\n}\r\n\r\nfunction getPieDataPoints(series, radius) {\r\n var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\r\n var count = 0;\r\n var _start_ = 0;\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n item.data = item.data === null ? 0 : item.data;\r\n count += item.data;\r\n }\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n item.data = item.data === null ? 0 : item.data;\r\n if (count === 0) {\r\n item._proportion_ = 1 / series.length * process;\r\n } else {\r\n item._proportion_ = item.data / count * process;\r\n }\r\n item._radius_ = radius;\r\n }\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n item._start_ = _start_;\r\n _start_ += 2 * item._proportion_ * Math.PI;\r\n }\r\n return series;\r\n}\r\n\r\nfunction getFunnelDataPoints(series, radius, type, eachSpacing) {\r\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n series = series.sort(function(a, b) {\r\n return parseInt(b.data) - parseInt(a.data);\r\n });\r\n for (let i = 0; i < series.length; i++) {\r\n if(type == 'funnel'){\r\n series[i].radius = series[i].data / series[0].data * radius * process;\r\n }else{\r\n series[i].radius = (eachSpacing * (series.length - i)) / (eachSpacing * series.length) * radius * process;\r\n }\r\n series[i]._proportion_ = series[i].data / series[0].data;\r\n }\r\n if(type !== 'pyramid'){\r\n series.reverse();\r\n }\r\n return series;\r\n}\r\n\r\nfunction getRoseDataPoints(series, type, minRadius, radius) {\r\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n var count = 0;\r\n var _start_ = 0;\r\n var dataArr = [];\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n item.data = item.data === null ? 0 : item.data;\r\n count += item.data;\r\n dataArr.push(item.data);\r\n }\r\n var minData = Math.min.apply(null, dataArr);\r\n var maxData = Math.max.apply(null, dataArr);\r\n var radiusLength = radius - minRadius;\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n item.data = item.data === null ? 0 : item.data;\r\n if (count === 0) {\r\n item._proportion_ = 1 / series.length * process;\r\n item._rose_proportion_ = 1 / series.length * process;\r\n } else {\r\n item._proportion_ = item.data / count * process;\r\n if(type == 'area'){\r\n item._rose_proportion_ = 1 / series.length * process;\r\n }else{\r\n item._rose_proportion_ = item.data / count * process;\r\n }\r\n }\r\n item._radius_ = minRadius + radiusLength * ((item.data - minData) / (maxData - minData)) || radius;\r\n }\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n item._start_ = _start_;\r\n _start_ += 2 * item._rose_proportion_ * Math.PI;\r\n }\r\n return series;\r\n}\r\n\r\nfunction getArcbarDataPoints(series, arcbarOption) {\r\n var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\r\n if (process == 1) {\r\n process = 0.999999;\r\n }\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n item.data = item.data === null ? 0 : item.data;\r\n let totalAngle;\r\n if (arcbarOption.type == 'circle') {\r\n totalAngle = 2;\r\n } else {\r\n if (arcbarOption.endAngle < arcbarOption.startAngle) {\r\n totalAngle = 2 + arcbarOption.endAngle - arcbarOption.startAngle;\r\n } else {\r\n totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;\r\n }\r\n }\r\n item._proportion_ = totalAngle * item.data * process + arcbarOption.startAngle;\r\n if (item._proportion_ >= 2) {\r\n item._proportion_ = item._proportion_ % 2;\r\n }\r\n }\r\n return series;\r\n}\r\n\r\nfunction getGaugeArcbarDataPoints(series, arcbarOption) {\r\n var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\r\n if (process == 1) {\r\n process = 0.999999;\r\n }\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n item.data = item.data === null ? 0 : item.data;\r\n let totalAngle;\r\n if (arcbarOption.type == 'circle') {\r\n totalAngle = 2;\r\n } else {\r\n if (arcbarOption.endAngle < arcbarOption.startAngle) {\r\n totalAngle = 2 + arcbarOption.endAngle - arcbarOption.startAngle;\r\n } else {\r\n totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;\r\n }\r\n }\r\n item._proportion_ = totalAngle * item.data * process + arcbarOption.startAngle;\r\n if (item._proportion_ >= 2) {\r\n item._proportion_ = item._proportion_ % 2;\r\n }\r\n }\r\n return series;\r\n}\r\n\r\nfunction getGaugeAxisPoints(categories, startAngle, endAngle) {\r\n let totalAngle = startAngle - endAngle + 1;\r\n let tempStartAngle = startAngle;\r\n for (let i = 0; i < categories.length; i++) {\r\n categories[i].value = categories[i].value === null ? 0 : categories[i].value;\r\n categories[i]._startAngle_ = tempStartAngle;\r\n categories[i]._endAngle_ = totalAngle * categories[i].value + startAngle;\r\n if (categories[i]._endAngle_ >= 2) {\r\n categories[i]._endAngle_ = categories[i]._endAngle_ % 2;\r\n }\r\n tempStartAngle = categories[i]._endAngle_;\r\n }\r\n return categories;\r\n}\r\n\r\nfunction getGaugeDataPoints(series, categories, gaugeOption) {\r\n let process = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n item.data = item.data === null ? 0 : item.data;\r\n if (gaugeOption.pointer.color == 'auto') {\r\n for (let i = 0; i < categories.length; i++) {\r\n if (item.data <= categories[i].value) {\r\n item.color = categories[i].color;\r\n break;\r\n }\r\n }\r\n } else {\r\n item.color = gaugeOption.pointer.color;\r\n }\r\n let totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\r\n item._endAngle_ = totalAngle * item.data + gaugeOption.startAngle;\r\n item._oldAngle_ = gaugeOption.oldAngle;\r\n if (gaugeOption.oldAngle < gaugeOption.endAngle) {\r\n item._oldAngle_ += 2;\r\n }\r\n if (item.data >= gaugeOption.oldData) {\r\n item._proportion_ = (item._endAngle_ - item._oldAngle_) * process + gaugeOption.oldAngle;\r\n } else {\r\n item._proportion_ = item._oldAngle_ - (item._oldAngle_ - item._endAngle_) * process;\r\n }\r\n if (item._proportion_ >= 2) {\r\n item._proportion_ = item._proportion_ % 2;\r\n }\r\n }\r\n return series;\r\n}\r\n\r\nfunction getPieTextMaxLength(series, config, context, opts) {\r\n series = getPieDataPoints(series);\r\n let maxLength = 0;\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n let text = item.formatter ? item.formatter(+item._proportion_.toFixed(2)) : util.toFixed(item._proportion_ * 100) + '%';\r\n maxLength = Math.max(maxLength, measureText(text, item.textSize * opts.pix || config.fontSize, context));\r\n }\r\n return maxLength;\r\n}\r\n\r\nfunction fixColumeData(points, eachSpacing, columnLen, index, config, opts) {\r\n return points.map(function(item) {\r\n if (item === null) {\r\n return null;\r\n }\r\n var seriesGap = 0;\r\n var categoryGap = 0;\r\n if (opts.type == 'mix') {\r\n seriesGap = opts.extra.mix.column.seriesGap * opts.pix || 0;\r\n categoryGap = opts.extra.mix.column.categoryGap * opts.pix || 0;\r\n } else {\r\n seriesGap = opts.extra.column.seriesGap * opts.pix || 0;\r\n categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\r\n }\r\n seriesGap = Math.min(seriesGap, eachSpacing / columnLen)\r\n categoryGap = Math.min(categoryGap, eachSpacing / columnLen)\r\n item.width = Math.ceil((eachSpacing - 2 * categoryGap - seriesGap * (columnLen - 1)) / columnLen);\r\n if (opts.extra.mix && opts.extra.mix.column.width && +opts.extra.mix.column.width > 0) {\r\n item.width = Math.min(item.width, +opts.extra.mix.column.width * opts.pix);\r\n }\r\n if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\r\n item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\r\n }\r\n if (item.width <= 0) {\r\n item.width = 1;\r\n }\r\n item.x += (index + 0.5 - columnLen / 2) * (item.width + seriesGap);\r\n return item;\r\n });\r\n}\r\n\r\nfunction fixBarData(points, eachSpacing, columnLen, index, config, opts) {\r\n return points.map(function(item) {\r\n if (item === null) {\r\n return null;\r\n }\r\n var seriesGap = 0;\r\n var categoryGap = 0;\r\n seriesGap = opts.extra.bar.seriesGap * opts.pix || 0;\r\n categoryGap = opts.extra.bar.categoryGap * opts.pix || 0;\r\n seriesGap = Math.min(seriesGap, eachSpacing / columnLen)\r\n categoryGap = Math.min(categoryGap, eachSpacing / columnLen)\r\n item.width = Math.ceil((eachSpacing - 2 * categoryGap - seriesGap * (columnLen - 1)) / columnLen);\r\n if (opts.extra.bar && opts.extra.bar.width && +opts.extra.bar.width > 0) {\r\n item.width = Math.min(item.width, +opts.extra.bar.width * opts.pix);\r\n }\r\n if (item.width <= 0) {\r\n item.width = 1;\r\n }\r\n item.y += (index + 0.5 - columnLen / 2) * (item.width + seriesGap);\r\n return item;\r\n });\r\n}\r\n\r\nfunction fixColumeMeterData(points, eachSpacing, columnLen, index, config, opts, border) {\r\n var categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\r\n return points.map(function(item) {\r\n if (item === null) {\r\n return null;\r\n }\r\n item.width = eachSpacing - 2 * categoryGap;\r\n if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\r\n item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\r\n }\r\n if (index > 0) {\r\n item.width -= border;\r\n }\r\n return item;\r\n });\r\n}\r\n\r\nfunction fixColumeStackData(points, eachSpacing, columnLen, index, config, opts, series) {\r\n var categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\r\n return points.map(function(item, indexn) {\r\n if (item === null) {\r\n return null;\r\n }\r\n item.width = Math.ceil(eachSpacing - 2 * categoryGap);\r\n if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\r\n item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\r\n }\r\n if (item.width <= 0) {\r\n item.width = 1;\r\n }\r\n return item;\r\n });\r\n}\r\n\r\nfunction fixBarStackData(points, eachSpacing, columnLen, index, config, opts, series) {\r\n var categoryGap = opts.extra.bar.categoryGap * opts.pix || 0;\r\n return points.map(function(item, indexn) {\r\n if (item === null) {\r\n return null;\r\n }\r\n item.width = Math.ceil(eachSpacing - 2 * categoryGap);\r\n if (opts.extra.bar && opts.extra.bar.width && +opts.extra.bar.width > 0) {\r\n item.width = Math.min(item.width, +opts.extra.bar.width * opts.pix);\r\n }\r\n if (item.width <= 0) {\r\n item.width = 1;\r\n }\r\n return item;\r\n });\r\n}\r\n\r\nfunction getXAxisPoints(categories, opts, config) {\r\n var spacingValid = opts.width - opts.area[1] - opts.area[3];\r\n var dataCount = opts.enableScroll ? Math.min(opts.xAxis.itemCount, categories.length) : categories.length;\r\n if ((opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble' || opts.type == 'bar') && dataCount > 1 && opts.xAxis.boundaryGap == 'justify') {\r\n dataCount -= 1;\r\n }\r\n var widthRatio = 0;\r\n if(opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1){\r\n if(opts.extra.mount.widthRatio>2) opts.extra.mount.widthRatio = 2\r\n widthRatio = opts.extra.mount.widthRatio - 1;\r\n dataCount += widthRatio;\r\n }\r\n var eachSpacing = spacingValid / dataCount;\r\n var xAxisPoints = [];\r\n var startX = opts.area[3];\r\n var endX = opts.width - opts.area[1];\r\n categories.forEach(function(item, index) {\r\n xAxisPoints.push(startX + widthRatio / 2 * eachSpacing + index * eachSpacing);\r\n });\r\n if (opts.xAxis.boundaryGap !== 'justify') {\r\n if (opts.enableScroll === true) {\r\n xAxisPoints.push(startX + widthRatio * eachSpacing + categories.length * eachSpacing);\r\n } else {\r\n xAxisPoints.push(endX);\r\n }\r\n }\r\n return {\r\n xAxisPoints: xAxisPoints,\r\n startX: startX,\r\n endX: endX,\r\n eachSpacing: eachSpacing\r\n };\r\n}\r\n\r\nfunction getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) {\r\n var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\r\n var points = [];\r\n var validHeight = opts.height - opts.area[0] - opts.area[2];\r\n data.forEach(function(item, index) {\r\n if (item === null) {\r\n points.push(null);\r\n } else {\r\n var cPoints = [];\r\n item.forEach(function(items, indexs) {\r\n var point = {};\r\n point.x = xAxisPoints[index] + Math.round(eachSpacing / 2);\r\n var value = items.value || items;\r\n var height = validHeight * (value - minRange) / (maxRange - minRange);\r\n height *= process;\r\n point.y = opts.height - Math.round(height) - opts.area[2];\r\n cPoints.push(point);\r\n });\r\n points.push(cPoints);\r\n }\r\n });\r\n return points;\r\n}\r\n\r\nfunction getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) {\r\n var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\r\n var boundaryGap = 'center';\r\n if (opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble' ) {\r\n boundaryGap = opts.xAxis.boundaryGap;\r\n }\r\n var points = [];\r\n var validHeight = opts.height - opts.area[0] - opts.area[2];\r\n var validWidth = opts.width - opts.area[1] - opts.area[3];\r\n data.forEach(function(item, index) {\r\n if (item === null) {\r\n points.push(null);\r\n } else {\r\n var point = {};\r\n point.color = item.color;\r\n point.x = xAxisPoints[index];\r\n var value = item;\r\n if (typeof item === 'object' && item !== null) {\r\n if (item.constructor.toString().indexOf('Array') > -1) {\r\n let xranges, xminRange, xmaxRange;\r\n xranges = [].concat(opts.chartData.xAxisData.ranges);\r\n xminRange = xranges.shift();\r\n xmaxRange = xranges.pop();\r\n value = item[1];\r\n point.x = opts.area[3] + validWidth * (item[0] - xminRange) / (xmaxRange - xminRange);\r\n if(opts.type == 'bubble'){\r\n point.r = item[2];\r\n point.t = item[3];\r\n }\r\n } else {\r\n value = item.value;\r\n }\r\n }\r\n if (boundaryGap == 'center') {\r\n point.x += eachSpacing / 2;\r\n }\r\n var height = validHeight * (value - minRange) / (maxRange - minRange);\r\n height *= process;\r\n point.y = opts.height - height - opts.area[2];\r\n points.push(point);\r\n }\r\n });\r\n return points;\r\n}\r\n\r\nfunction getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption) {\r\n var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\r\n var points = [];\r\n var validHeight = opts.height - opts.area[0] - opts.area[2];\r\n var validWidth = opts.width - opts.area[1] - opts.area[3];\r\n var mountWidth = eachSpacing * mountOption.widthRatio;\r\n series.forEach(function(item, index) {\r\n if (item === null) {\r\n points.push(null);\r\n } else {\r\n var point = {};\r\n point.color = item.color;\r\n point.x = xAxisPoints[index];\r\n point.x += eachSpacing / 2;\r\n var value = item.data;\r\n var height = validHeight * (value - minRange) / (maxRange - minRange);\r\n height *= process;\r\n point.y = opts.height - height - opts.area[2];\r\n point.value = value;\r\n point.width = mountWidth;\r\n points.push(point);\r\n }\r\n });\r\n return points;\r\n}\r\n\r\nfunction getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config) {\r\n var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\r\n var points = [];\r\n var validHeight = opts.height - opts.area[0] - opts.area[2];\r\n var validWidth = opts.width - opts.area[1] - opts.area[3];\r\n data.forEach(function(item, index) {\r\n if (item === null) {\r\n points.push(null);\r\n } else {\r\n var point = {};\r\n point.color = item.color;\r\n point.y = yAxisPoints[index];\r\n var value = item;\r\n if (typeof item === 'object' && item !== null) {\r\n value = item.value;\r\n }\r\n var height = validWidth * (value - minRange) / (maxRange - minRange);\r\n height *= process;\r\n point.height = height;\r\n point.value = value;\r\n point.x = height + opts.area[3];\r\n points.push(point);\r\n }\r\n });\r\n return points;\r\n}\r\n\r\nfunction getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) {\r\n var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1;\r\n var points = [];\r\n var validHeight = opts.height - opts.area[0] - opts.area[2];\r\n data.forEach(function(item, index) {\r\n if (item === null) {\r\n points.push(null);\r\n } else {\r\n var point = {};\r\n point.color = item.color;\r\n point.x = xAxisPoints[index] + Math.round(eachSpacing / 2);\r\n\r\n if (seriesIndex > 0) {\r\n var value = 0;\r\n for (let i = 0; i <= seriesIndex; i++) {\r\n value += stackSeries[i].data[index];\r\n }\r\n var value0 = value - item;\r\n var height = validHeight * (value - minRange) / (maxRange - minRange);\r\n var height0 = validHeight * (value0 - minRange) / (maxRange - minRange);\r\n } else {\r\n var value = item;\r\n var height = validHeight * (value - minRange) / (maxRange - minRange);\r\n var height0 = 0;\r\n }\r\n var heightc = height0;\r\n height *= process;\r\n heightc *= process;\r\n point.y = opts.height - Math.round(height) - opts.area[2];\r\n point.y0 = opts.height - Math.round(heightc) - opts.area[2];\r\n points.push(point);\r\n }\r\n });\r\n return points;\r\n}\r\n\r\nfunction getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) {\r\n var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1;\r\n var points = [];\r\n var validHeight = opts.width - opts.area[1] - opts.area[3];\r\n data.forEach(function(item, index) {\r\n if (item === null) {\r\n points.push(null);\r\n } else {\r\n var point = {};\r\n point.color = item.color;\r\n point.y = yAxisPoints[index];\r\n if (seriesIndex > 0) {\r\n var value = 0;\r\n for (let i = 0; i <= seriesIndex; i++) {\r\n value += stackSeries[i].data[index];\r\n }\r\n var value0 = value - item;\r\n var height = validHeight * (value - minRange) / (maxRange - minRange);\r\n var height0 = validHeight * (value0 - minRange) / (maxRange - minRange);\r\n } else {\r\n var value = item;\r\n var height = validHeight * (value - minRange) / (maxRange - minRange);\r\n var height0 = 0;\r\n }\r\n var heightc = height0;\r\n height *= process;\r\n heightc *= process;\r\n point.height = height - heightc;\r\n point.x = opts.area[3] + height;\r\n point.x0 = opts.area[3] + heightc;\r\n points.push(point);\r\n }\r\n });\r\n return points;\r\n}\r\n\r\nfunction getYAxisTextList(series, opts, config, stack, yData) {\r\n var index = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : -1;\r\n var data;\r\n if (stack == 'stack') {\r\n data = dataCombineStack(series, opts.categories.length);\r\n } else {\r\n data = dataCombine(series);\r\n }\r\n var sorted = [];\r\n // remove null from data\r\n data = data.filter(function(item) {\r\n //return item !== null;\r\n if (typeof item === 'object' && item !== null) {\r\n if (item.constructor.toString().indexOf('Array') > -1) {\r\n return item !== null;\r\n } else {\r\n return item.value !== null;\r\n }\r\n } else {\r\n return item !== null;\r\n }\r\n });\r\n data.map(function(item) {\r\n if (typeof item === 'object') {\r\n if (item.constructor.toString().indexOf('Array') > -1) {\r\n if (opts.type == 'candle') {\r\n item.map(function(subitem) {\r\n sorted.push(subitem);\r\n })\r\n } else {\r\n sorted.push(item[1]);\r\n }\r\n } else {\r\n sorted.push(item.value);\r\n }\r\n } else {\r\n sorted.push(item);\r\n }\r\n })\r\n var minData = yData.min || 0;\r\n var maxData = yData.max || 0;\r\n if (sorted.length > 0) {\r\n minData = Math.min.apply(this, sorted);\r\n maxData = Math.max.apply(this, sorted);\r\n }\r\n if (minData === maxData) {\r\n // var rangeSpan = maxData || 10;\r\n // maxData += rangeSpan;\r\n if(maxData == 0){\r\n maxData = 10;\r\n }else{\r\n minData = 0;\r\n }\r\n }\r\n var dataRange = getDataRange(minData, maxData);\r\n var minRange = (yData.min === undefined || yData.min === null) ? dataRange.minRange : yData.min;\r\n var maxRange = (yData.max === undefined || yData.max === null) ? dataRange.maxRange : yData.max;\r\n var range = [];\r\n var eachRange = (maxRange - minRange) / opts.yAxis.splitNumber;\r\n for (var i = 0; i <= opts.yAxis.splitNumber; i++) {\r\n range.push(minRange + eachRange * i);\r\n }\r\n return range.reverse();\r\n}\r\n\r\nfunction calYAxisData(series, opts, config, context) {\r\n //堆叠图重算Y轴\r\n var columnstyle = assign({}, {\r\n type: \"\"\r\n }, opts.extra.column);\r\n //如果是多Y轴,重新计算\r\n var YLength = opts.yAxis.data.length;\r\n var newSeries = new Array(YLength);\r\n if (YLength > 0) {\r\n for (let i = 0; i < YLength; i++) {\r\n newSeries[i] = [];\r\n for (let j = 0; j < series.length; j++) {\r\n if (series[j].index == i) {\r\n newSeries[i].push(series[j]);\r\n }\r\n }\r\n }\r\n var rangesArr = new Array(YLength);\r\n var rangesFormatArr = new Array(YLength);\r\n var yAxisWidthArr = new Array(YLength);\r\n\r\n for (let i = 0; i < YLength; i++) {\r\n let yData = opts.yAxis.data[i];\r\n //如果总开关不显示,强制每个Y轴为不显示\r\n if (opts.yAxis.disabled == true) {\r\n yData.disabled = true;\r\n }\r\n if(yData.type === 'categories'){\r\n if(!yData.formatter){\r\n yData.formatter = (val,index,opts) => {return val + (yData.unit || '')};\r\n }\r\n yData.categories = yData.categories || opts.categories;\r\n rangesArr[i] = yData.categories;\r\n }else{\r\n if(!yData.formatter){\r\n yData.formatter = (val,index,opts) => {return val.toFixed(yData.tofix) + (yData.unit || '')};\r\n }\r\n rangesArr[i] = getYAxisTextList(newSeries[i], opts, config, columnstyle.type, yData, i);\r\n }\r\n let yAxisFontSizes = yData.fontSize * opts.pix || config.fontSize;\r\n yAxisWidthArr[i] = {\r\n position: yData.position ? yData.position : 'left',\r\n width: 0\r\n };\r\n rangesFormatArr[i] = rangesArr[i].map(function(items,index) {\r\n items = yData.formatter(items,index,opts);\r\n yAxisWidthArr[i].width = Math.max(yAxisWidthArr[i].width, measureText(items, yAxisFontSizes, context) + 5);\r\n return items;\r\n });\r\n let calibration = yData.calibration ? 4 * opts.pix : 0;\r\n yAxisWidthArr[i].width += calibration + 3 * opts.pix;\r\n if (yData.disabled === true) {\r\n yAxisWidthArr[i].width = 0;\r\n }\r\n }\r\n } else {\r\n var rangesArr = new Array(1);\r\n var rangesFormatArr = new Array(1);\r\n var yAxisWidthArr = new Array(1);\r\n if(opts.type === 'bar'){\r\n rangesArr[0] = opts.categories;\r\n if(!opts.yAxis.formatter){\r\n opts.yAxis.formatter = (val,index,opts) => {return val + (opts.yAxis.unit || '')}\r\n }\r\n }else{\r\n if(!opts.yAxis.formatter){\r\n opts.yAxis.formatter = (val,index,opts) => {return val.toFixed(opts.yAxis.tofix ) + (opts.yAxis.unit || '')}\r\n }\r\n rangesArr[0] = getYAxisTextList(series, opts, config, columnstyle.type, {});\r\n }\r\n yAxisWidthArr[0] = {\r\n position: 'left',\r\n width: 0\r\n };\r\n var yAxisFontSize = opts.yAxis.fontSize * opts.pix || config.fontSize;\r\n rangesFormatArr[0] = rangesArr[0].map(function(item,index) {\r\n item = opts.yAxis.formatter(item,index,opts);\r\n yAxisWidthArr[0].width = Math.max(yAxisWidthArr[0].width, measureText(item, yAxisFontSize, context) + 5);\r\n return item;\r\n });\r\n yAxisWidthArr[0].width += 3 * opts.pix;\r\n if (opts.yAxis.disabled === true) {\r\n yAxisWidthArr[0] = {\r\n position: 'left',\r\n width: 0\r\n };\r\n opts.yAxis.data[0] = {\r\n disabled: true\r\n };\r\n } else {\r\n opts.yAxis.data[0] = {\r\n disabled: false,\r\n position: 'left',\r\n max: opts.yAxis.max,\r\n min: opts.yAxis.min,\r\n formatter: opts.yAxis.formatter\r\n };\r\n if(opts.type === 'bar'){\r\n opts.yAxis.data[0].categories = opts.categories;\r\n opts.yAxis.data[0].type = 'categories';\r\n }\r\n }\r\n }\r\n return {\r\n rangesFormat: rangesFormatArr,\r\n ranges: rangesArr,\r\n yAxisWidth: yAxisWidthArr\r\n };\r\n}\r\n\r\nfunction calTooltipYAxisData(point, series, opts, config, eachSpacing) {\r\n let ranges = [].concat(opts.chartData.yAxisData.ranges);\r\n let spacingValid = opts.height - opts.area[0] - opts.area[2];\r\n let minAxis = opts.area[0];\r\n let items = [];\r\n for (let i = 0; i < ranges.length; i++) {\r\n let maxVal = ranges[i].shift();\r\n let minVal = ranges[i].pop();\r\n let item = maxVal - (maxVal - minVal) * (point - minAxis) / spacingValid;\r\n item = opts.yAxis.data[i].formatter ? opts.yAxis.data[i].formatter(item) : item.toFixed(0);\r\n items.push(String(item))\r\n }\r\n return items;\r\n}\r\n\r\nfunction calMarkLineData(points, opts) {\r\n let minRange, maxRange;\r\n let spacingValid = opts.height - opts.area[0] - opts.area[2];\r\n for (let i = 0; i < points.length; i++) {\r\n points[i].yAxisIndex = points[i].yAxisIndex ? points[i].yAxisIndex : 0;\r\n let range = [].concat(opts.chartData.yAxisData.ranges[points[i].yAxisIndex]);\r\n minRange = range.pop();\r\n maxRange = range.shift();\r\n let height = spacingValid * (points[i].value - minRange) / (maxRange - minRange);\r\n points[i].y = opts.height - Math.round(height) - opts.area[2];\r\n }\r\n return points;\r\n}\r\n\r\nfunction contextRotate(context, opts) {\r\n if (opts.rotateLock !== true) {\r\n context.translate(opts.height, 0);\r\n context.rotate(90 * Math.PI / 180);\r\n } else if (opts._rotate_ !== true) {\r\n context.translate(opts.height, 0);\r\n context.rotate(90 * Math.PI / 180);\r\n opts._rotate_ = true;\r\n }\r\n}\r\n\r\nfunction drawPointShape(points, color, shape, context, opts) {\r\n context.beginPath();\r\n if (opts.dataPointShapeType == 'hollow') {\r\n context.setStrokeStyle(color);\r\n context.setFillStyle(opts.background);\r\n context.setLineWidth(2 * opts.pix);\r\n } else {\r\n context.setStrokeStyle(\"#ffffff\");\r\n context.setFillStyle(color);\r\n context.setLineWidth(1 * opts.pix);\r\n }\r\n if (shape === 'diamond') {\r\n points.forEach(function(item, index) {\r\n if (item !== null) {\r\n context.moveTo(item.x, item.y - 4.5);\r\n context.lineTo(item.x - 4.5, item.y);\r\n context.lineTo(item.x, item.y + 4.5);\r\n context.lineTo(item.x + 4.5, item.y);\r\n context.lineTo(item.x, item.y - 4.5);\r\n }\r\n });\r\n } else if (shape === 'circle') {\r\n points.forEach(function(item, index) {\r\n if (item !== null) {\r\n context.moveTo(item.x + 2.5 * opts.pix, item.y);\r\n context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false);\r\n }\r\n });\r\n } else if (shape === 'square') {\r\n points.forEach(function(item, index) {\r\n if (item !== null) {\r\n context.moveTo(item.x - 3.5, item.y - 3.5);\r\n context.rect(item.x - 3.5, item.y - 3.5, 7, 7);\r\n }\r\n });\r\n } else if (shape === 'triangle') {\r\n points.forEach(function(item, index) {\r\n if (item !== null) {\r\n context.moveTo(item.x, item.y - 4.5);\r\n context.lineTo(item.x - 4.5, item.y + 4.5);\r\n context.lineTo(item.x + 4.5, item.y + 4.5);\r\n context.lineTo(item.x, item.y - 4.5);\r\n }\r\n });\r\n } else if (shape === 'triangle') {\r\n return;\r\n }\r\n context.closePath();\r\n context.fill();\r\n context.stroke();\r\n}\r\n\r\nfunction drawRingTitle(opts, config, context, center) {\r\n var titlefontSize = opts.title.fontSize || config.titleFontSize;\r\n var subtitlefontSize = opts.subtitle.fontSize || config.subtitleFontSize;\r\n var title = opts.title.name || '';\r\n var subtitle = opts.subtitle.name || '';\r\n var titleFontColor = opts.title.color || opts.fontColor;\r\n var subtitleFontColor = opts.subtitle.color || opts.fontColor;\r\n var titleHeight = title ? titlefontSize : 0;\r\n var subtitleHeight = subtitle ? subtitlefontSize : 0;\r\n var margin = 5;\r\n if (subtitle) {\r\n var textWidth = measureText(subtitle, subtitlefontSize * opts.pix, context);\r\n var startX = center.x - textWidth / 2 + (opts.subtitle.offsetX|| 0) * opts.pix ;\r\n var startY = center.y + subtitlefontSize * opts.pix / 2 + (opts.subtitle.offsetY || 0) * opts.pix;\r\n if (title) {\r\n startY += (titleHeight * opts.pix + margin) / 2;\r\n }\r\n context.beginPath();\r\n context.setFontSize(subtitlefontSize * opts.pix);\r\n context.setFillStyle(subtitleFontColor);\r\n context.fillText(subtitle, startX, startY);\r\n context.closePath();\r\n context.stroke();\r\n }\r\n if (title) {\r\n var _textWidth = measureText(title, titlefontSize * opts.pix, context);\r\n var _startX = center.x - _textWidth / 2 + (opts.title.offsetX || 0);\r\n var _startY = center.y + titlefontSize * opts.pix / 2 + (opts.title.offsetY || 0) * opts.pix;\r\n if (subtitle) {\r\n _startY -= (subtitleHeight * opts.pix + margin) / 2;\r\n }\r\n context.beginPath();\r\n context.setFontSize(titlefontSize * opts.pix);\r\n context.setFillStyle(titleFontColor);\r\n context.fillText(title, _startX, _startY);\r\n context.closePath();\r\n context.stroke();\r\n }\r\n}\r\n\r\nfunction drawPointText(points, series, config, context, opts) {\r\n // 绘制数据文案\r\n var data = series.data;\r\n var textOffset = series.textOffset ? series.textOffset : 0;\r\n points.forEach(function(item, index) {\r\n if (item !== null) {\r\n context.beginPath();\r\n var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize;\r\n context.setFontSize(fontSize);\r\n context.setFillStyle(series.textColor || opts.fontColor);\r\n var value = data[index]\r\n if (typeof data[index] === 'object' && data[index] !== null) {\r\n if (data[index].constructor.toString().indexOf('Array')>-1) {\r\n value = data[index][1];\r\n } else {\r\n value = data[index].value\r\n }\r\n }\r\n var formatVal = series.formatter ? series.formatter(value,index,series,opts) : value;\r\n context.setTextAlign('center');\r\n context.fillText(String(formatVal), item.x, item.y - 4 + textOffset * opts.pix);\r\n context.closePath();\r\n context.stroke();\r\n context.setTextAlign('left');\r\n }\r\n });\r\n}\r\n\r\nfunction drawMountPointText(points, series, config, context, opts) {\r\n // 绘制数据文案\r\n var data = series.data;\r\n var textOffset = series.textOffset ? series.textOffset : 0;\r\n points.forEach(function(item, index) {\r\n if (item !== null) {\r\n context.beginPath();\r\n var fontSize = series[index].textSize ? series[index].textSize * opts.pix : config.fontSize;\r\n context.setFontSize(fontSize);\r\n context.setFillStyle(series[index].textColor || opts.fontColor);\r\n var value = item.value\r\n var formatVal = series[index].formatter ? series[index].formatter(value,index,series,opts) : value;\r\n context.setTextAlign('center');\r\n context.fillText(String(formatVal), item.x, item.y - 4 + textOffset * opts.pix);\r\n context.closePath();\r\n context.stroke();\r\n context.setTextAlign('left');\r\n }\r\n });\r\n}\r\n\r\nfunction drawBarPointText(points, series, config, context, opts) {\r\n // 绘制数据文案\r\n var data = series.data;\r\n var textOffset = series.textOffset ? series.textOffset : 0;\r\n points.forEach(function(item, index) {\r\n if (item !== null) {\r\n context.beginPath();\r\n var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize;\r\n context.setFontSize(fontSize);\r\n context.setFillStyle(series.textColor || opts.fontColor);\r\n var value = data[index]\r\n if (typeof data[index] === 'object' && data[index] !== null) {\r\n value = data[index].value ;\r\n }\r\n var formatVal = series.formatter ? series.formatter(value,index,series,opts) : value;\r\n context.setTextAlign('left');\r\n context.fillText(String(formatVal), item.x + 4 * opts.pix , item.y + fontSize / 2 - 3 );\r\n context.closePath();\r\n context.stroke();\r\n }\r\n });\r\n}\r\n\r\nfunction drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context) {\r\n radius -= gaugeOption.width / 2 + gaugeOption.labelOffset * opts.pix;\r\n radius = radius < 10 ? 10 : radius;\r\n let totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\r\n let splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\r\n let totalNumber = gaugeOption.endNumber - gaugeOption.startNumber;\r\n let splitNumber = totalNumber / gaugeOption.splitLine.splitNumber;\r\n let nowAngle = gaugeOption.startAngle;\r\n let nowNumber = gaugeOption.startNumber;\r\n for (let i = 0; i < gaugeOption.splitLine.splitNumber + 1; i++) {\r\n var pos = {\r\n x: radius * Math.cos(nowAngle * Math.PI),\r\n y: radius * Math.sin(nowAngle * Math.PI)\r\n };\r\n var labelText = gaugeOption.formatter ? gaugeOption.formatter(nowNumber,i,opts) : nowNumber;\r\n pos.x += centerPosition.x - measureText(labelText, config.fontSize, context) / 2;\r\n pos.y += centerPosition.y;\r\n var startX = pos.x;\r\n var startY = pos.y;\r\n context.beginPath();\r\n context.setFontSize(config.fontSize);\r\n context.setFillStyle(gaugeOption.labelColor || opts.fontColor);\r\n context.fillText(labelText, startX, startY + config.fontSize / 2);\r\n context.closePath();\r\n context.stroke();\r\n nowAngle += splitAngle;\r\n if (nowAngle >= 2) {\r\n nowAngle = nowAngle % 2;\r\n }\r\n nowNumber += splitNumber;\r\n }\r\n}\r\n\r\nfunction drawRadarLabel(angleList, radius, centerPosition, opts, config, context) {\r\n var radarOption = opts.extra.radar || {};\r\n angleList.forEach(function(angle, index) {\r\n if(radarOption.labelPointShow === true && opts.categories[index] !== ''){\r\n var posPoint = {\r\n x: radius * Math.cos(angle),\r\n y: radius * Math.sin(angle)\r\n };\r\n var posPointAxis = convertCoordinateOrigin(posPoint.x, posPoint.y, centerPosition);\r\n context.setFillStyle(radarOption.labelPointColor);\r\n context.beginPath();\r\n context.arc(posPointAxis.x, posPointAxis.y, radarOption.labelPointRadius * opts.pix, 0, 2 * Math.PI, false);\r\n context.closePath();\r\n context.fill();\r\n }\r\n var pos = {\r\n x: (radius + config.radarLabelTextMargin * opts.pix) * Math.cos(angle),\r\n y: (radius + config.radarLabelTextMargin * opts.pix) * Math.sin(angle)\r\n };\r\n var posRelativeCanvas = convertCoordinateOrigin(pos.x, pos.y, centerPosition);\r\n var startX = posRelativeCanvas.x;\r\n var startY = posRelativeCanvas.y;\r\n if (util.approximatelyEqual(pos.x, 0)) {\r\n startX -= measureText(opts.categories[index] || '', config.fontSize, context) / 2;\r\n } else if (pos.x < 0) {\r\n startX -= measureText(opts.categories[index] || '', config.fontSize, context);\r\n }\r\n context.beginPath();\r\n context.setFontSize(config.fontSize);\r\n context.setFillStyle(radarOption.labelColor || opts.fontColor);\r\n context.fillText(opts.categories[index] || '', startX, startY + config.fontSize / 2);\r\n context.closePath();\r\n context.stroke();\r\n });\r\n\r\n}\r\n\r\nfunction drawPieText(series, opts, config, context, radius, center) {\r\n var lineRadius = config.pieChartLinePadding;\r\n var textObjectCollection = [];\r\n var lastTextObject = null;\r\n var seriesConvert = series.map(function(item,index) {\r\n var text = item.formatter ? item.formatter(item,index,series,opts) : util.toFixed(item._proportion_.toFixed(4) * 100) + '%';\r\n text = item.labelText ? item.labelText : text;\r\n var arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._proportion_ / 2);\r\n if (item._rose_proportion_) {\r\n arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._rose_proportion_ / 2);\r\n }\r\n var color = item.color;\r\n var radius = item._radius_;\r\n return {\r\n arc: arc,\r\n text: text,\r\n color: color,\r\n radius: radius,\r\n textColor: item.textColor,\r\n textSize: item.textSize,\r\n labelShow: item.labelShow\r\n };\r\n });\r\n for (let i = 0; i < seriesConvert.length; i++) {\r\n let item = seriesConvert[i];\r\n // line end\r\n let orginX1 = Math.cos(item.arc) * (item.radius + lineRadius);\r\n let orginY1 = Math.sin(item.arc) * (item.radius + lineRadius);\r\n // line start\r\n let orginX2 = Math.cos(item.arc) * item.radius;\r\n let orginY2 = Math.sin(item.arc) * item.radius;\r\n // text start\r\n let orginX3 = orginX1 >= 0 ? orginX1 + config.pieChartTextPadding : orginX1 - config.pieChartTextPadding;\r\n let orginY3 = orginY1;\r\n let textWidth = measureText(item.text, item.textSize * opts.pix || config.fontSize, context);\r\n let startY = orginY3;\r\n if (lastTextObject && util.isSameXCoordinateArea(lastTextObject.start, {\r\n x: orginX3\r\n })) {\r\n if (orginX3 > 0) {\r\n startY = Math.min(orginY3, lastTextObject.start.y);\r\n } else if (orginX1 < 0) {\r\n startY = Math.max(orginY3, lastTextObject.start.y);\r\n } else {\r\n if (orginY3 > 0) {\r\n startY = Math.max(orginY3, lastTextObject.start.y);\r\n } else {\r\n startY = Math.min(orginY3, lastTextObject.start.y);\r\n }\r\n }\r\n }\r\n if (orginX3 < 0) {\r\n orginX3 -= textWidth;\r\n }\r\n let textObject = {\r\n lineStart: {\r\n x: orginX2,\r\n y: orginY2\r\n },\r\n lineEnd: {\r\n x: orginX1,\r\n y: orginY1\r\n },\r\n start: {\r\n x: orginX3,\r\n y: startY\r\n },\r\n width: textWidth,\r\n height: config.fontSize,\r\n text: item.text,\r\n color: item.color,\r\n textColor: item.textColor,\r\n textSize: item.textSize\r\n };\r\n lastTextObject = avoidCollision(textObject, lastTextObject);\r\n textObjectCollection.push(lastTextObject);\r\n }\r\n for (let i = 0; i < textObjectCollection.length; i++) {\r\n if(seriesConvert[i].labelShow === false){\r\n continue;\r\n }\r\n let item = textObjectCollection[i];\r\n let lineStartPoistion = convertCoordinateOrigin(item.lineStart.x, item.lineStart.y, center);\r\n let lineEndPoistion = convertCoordinateOrigin(item.lineEnd.x, item.lineEnd.y, center);\r\n let textPosition = convertCoordinateOrigin(item.start.x, item.start.y, center);\r\n context.setLineWidth(1 * opts.pix);\r\n context.setFontSize(item.textSize * opts.pix || config.fontSize);\r\n context.beginPath();\r\n context.setStrokeStyle(item.color);\r\n context.setFillStyle(item.color);\r\n context.moveTo(lineStartPoistion.x, lineStartPoistion.y);\r\n let curveStartX = item.start.x < 0 ? textPosition.x + item.width : textPosition.x;\r\n let textStartX = item.start.x < 0 ? textPosition.x - 5 : textPosition.x + 5;\r\n context.quadraticCurveTo(lineEndPoistion.x, lineEndPoistion.y, curveStartX, textPosition.y);\r\n context.moveTo(lineStartPoistion.x, lineStartPoistion.y);\r\n context.stroke();\r\n context.closePath();\r\n context.beginPath();\r\n context.moveTo(textPosition.x + item.width, textPosition.y);\r\n context.arc(curveStartX, textPosition.y, 2 * opts.pix, 0, 2 * Math.PI);\r\n context.closePath();\r\n context.fill();\r\n context.beginPath();\r\n context.setFontSize(item.textSize * opts.pix || config.fontSize);\r\n context.setFillStyle(item.textColor || opts.fontColor);\r\n context.fillText(item.text, textStartX, textPosition.y + 3);\r\n context.closePath();\r\n context.stroke();\r\n context.closePath();\r\n }\r\n}\r\n\r\nfunction drawToolTipSplitLine(offsetX, opts, config, context) {\r\n var toolTipOption = opts.extra.tooltip || {};\r\n toolTipOption.gridType = toolTipOption.gridType == undefined ? 'solid' : toolTipOption.gridType;\r\n toolTipOption.dashLength = toolTipOption.dashLength == undefined ? 4 : toolTipOption.dashLength;\r\n var startY = opts.area[0];\r\n var endY = opts.height - opts.area[2];\r\n if (toolTipOption.gridType == 'dash') {\r\n context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]);\r\n }\r\n context.setStrokeStyle(toolTipOption.gridColor || '#cccccc');\r\n context.setLineWidth(1 * opts.pix);\r\n context.beginPath();\r\n context.moveTo(offsetX, startY);\r\n context.lineTo(offsetX, endY);\r\n context.stroke();\r\n context.setLineDash([]);\r\n if (toolTipOption.xAxisLabel) {\r\n let labelText = opts.categories[opts.tooltip.index];\r\n context.setFontSize(config.fontSize);\r\n let textWidth = measureText(labelText, config.fontSize, context);\r\n let textX = offsetX - 0.5 * textWidth;\r\n let textY = endY;\r\n context.beginPath();\r\n context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity));\r\n context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground);\r\n context.setLineWidth(1 * opts.pix);\r\n context.rect(textX - config.toolTipPadding, textY, textWidth + 2 * config.toolTipPadding, config.fontSize + 2 * config.toolTipPadding);\r\n context.closePath();\r\n context.stroke();\r\n context.fill();\r\n context.beginPath();\r\n context.setFontSize(config.fontSize);\r\n context.setFillStyle(toolTipOption.labelFontColor || opts.fontColor);\r\n context.fillText(String(labelText), textX, textY + config.toolTipPadding + config.fontSize);\r\n context.closePath();\r\n context.stroke();\r\n }\r\n}\r\n\r\nfunction drawMarkLine(opts, config, context) {\r\n let markLineOption = assign({}, {\r\n type: 'solid',\r\n dashLength: 4,\r\n data: []\r\n }, opts.extra.markLine);\r\n let startX = opts.area[3];\r\n let endX = opts.width - opts.area[1];\r\n let points = calMarkLineData(markLineOption.data, opts);\r\n for (let i = 0; i < points.length; i++) {\r\n let item = assign({}, {\r\n lineColor: '#DE4A42',\r\n showLabel: false,\r\n labelFontColor: '#666666',\r\n labelBgColor: '#DFE8FF',\r\n labelBgOpacity: 0.8,\r\n labelAlign: 'left',\r\n labelOffsetX: 0,\r\n labelOffsetY: 0,\r\n }, points[i]);\r\n if (markLineOption.type == 'dash') {\r\n context.setLineDash([markLineOption.dashLength, markLineOption.dashLength]);\r\n }\r\n context.setStrokeStyle(item.lineColor);\r\n context.setLineWidth(1 * opts.pix);\r\n context.beginPath();\r\n context.moveTo(startX, item.y);\r\n context.lineTo(endX, item.y);\r\n context.stroke();\r\n context.setLineDash([]);\r\n if (item.showLabel) {\r\n let labelText = item.labelText ? item.labelText : item.value;\r\n context.setFontSize(config.fontSize);\r\n let textWidth = measureText(labelText, config.fontSize, context);\r\n let bgWidth = textWidth + config.toolTipPadding * 2;\r\n let bgStartX = item.labelAlign == 'left' ? opts.area[3] - bgWidth : opts.width - opts.area[1];\r\n bgStartX += item.labelOffsetX;\r\n let bgStartY = item.y - 0.5 * config.fontSize - config.toolTipPadding;\r\n bgStartY += item.labelOffsetY;\r\n let textX = bgStartX + config.toolTipPadding;\r\n let textY = item.y;\r\n context.setFillStyle(hexToRgb(item.labelBgColor, item.labelBgOpacity));\r\n context.setStrokeStyle(item.labelBgColor);\r\n context.setLineWidth(1 * opts.pix);\r\n context.beginPath();\r\n context.rect(bgStartX, bgStartY, bgWidth, config.fontSize + 2 * config.toolTipPadding);\r\n context.closePath();\r\n context.stroke();\r\n context.fill();\r\n context.setFontSize(config.fontSize);\r\n context.setTextAlign('left');\r\n context.setFillStyle(item.labelFontColor);\r\n context.fillText(String(labelText), textX, bgStartY + config.fontSize + config.toolTipPadding/2);\r\n context.stroke();\r\n context.setTextAlign('left');\r\n }\r\n }\r\n}\r\n\r\nfunction drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints) {\r\n var toolTipOption = assign({}, {\r\n gridType: 'solid',\r\n dashLength: 4\r\n }, opts.extra.tooltip);\r\n var startX = opts.area[3];\r\n var endX = opts.width - opts.area[1];\r\n if (toolTipOption.gridType == 'dash') {\r\n context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]);\r\n }\r\n context.setStrokeStyle(toolTipOption.gridColor || '#cccccc');\r\n context.setLineWidth(1 * opts.pix);\r\n context.beginPath();\r\n context.moveTo(startX, opts.tooltip.offset.y);\r\n context.lineTo(endX, opts.tooltip.offset.y);\r\n context.stroke();\r\n context.setLineDash([]);\r\n if (toolTipOption.yAxisLabel) {\r\n let labelText = calTooltipYAxisData(opts.tooltip.offset.y, opts.series, opts, config, eachSpacing);\r\n let widthArr = opts.chartData.yAxisData.yAxisWidth;\r\n let tStartLeft = opts.area[3];\r\n let tStartRight = opts.width - opts.area[1];\r\n for (let i = 0; i < labelText.length; i++) {\r\n context.setFontSize(config.fontSize);\r\n let textWidth = measureText(labelText[i], config.fontSize, context);\r\n let bgStartX, bgEndX, bgWidth;\r\n if (widthArr[i].position == 'left') {\r\n bgStartX = tStartLeft - widthArr[i].width;\r\n bgEndX = Math.max(bgStartX, bgStartX + textWidth + config.toolTipPadding * 2);\r\n } else {\r\n bgStartX = tStartRight;\r\n bgEndX = Math.max(bgStartX + widthArr[i].width, bgStartX + textWidth + config.toolTipPadding * 2);\r\n }\r\n bgWidth = bgEndX - bgStartX;\r\n let textX = bgStartX + (bgWidth - textWidth) / 2;\r\n let textY = opts.tooltip.offset.y;\r\n context.beginPath();\r\n context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity));\r\n context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground);\r\n context.setLineWidth(1 * opts.pix);\r\n context.rect(bgStartX, textY - 0.5 * config.fontSize - config.toolTipPadding, bgWidth, config.fontSize + 2 *\r\n config.toolTipPadding);\r\n context.closePath();\r\n context.stroke();\r\n context.fill();\r\n context.beginPath();\r\n context.setFontSize(config.fontSize);\r\n context.setFillStyle(toolTipOption.labelFontColor || opts.fontColor);\r\n context.fillText(labelText[i], textX, textY + 0.5 * config.fontSize);\r\n context.closePath();\r\n context.stroke();\r\n if (widthArr[i].position == 'left') {\r\n tStartLeft -= (widthArr[i].width + opts.yAxis.padding * opts.pix);\r\n } else {\r\n tStartRight += widthArr[i].width + opts.yAxis.padding * opts.pix;\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction drawToolTipSplitArea(offsetX, opts, config, context, eachSpacing) {\r\n var toolTipOption = assign({}, {\r\n activeBgColor: '#000000',\r\n activeBgOpacity: 0.08,\r\n activeWidth: eachSpacing\r\n }, opts.extra.column);\r\n toolTipOption.activeWidth = toolTipOption.activeWidth > eachSpacing ? eachSpacing : toolTipOption.activeWidth;\r\n var startY = opts.area[0];\r\n var endY = opts.height - opts.area[2];\r\n context.beginPath();\r\n context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity));\r\n context.rect(offsetX - toolTipOption.activeWidth / 2, startY, toolTipOption.activeWidth, endY - startY);\r\n context.closePath();\r\n context.fill();\r\n context.setFillStyle(\"#FFFFFF\");\r\n}\r\n\r\nfunction drawBarToolTipSplitArea(offsetX, opts, config, context, eachSpacing) {\r\n var toolTipOption = assign({}, {\r\n activeBgColor: '#000000',\r\n activeBgOpacity: 0.08\r\n }, opts.extra.bar);\r\n var startX = opts.area[3];\r\n var endX = opts.width - opts.area[1];\r\n context.beginPath();\r\n context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity));\r\n context.rect( startX ,offsetX - eachSpacing / 2 , endX - startX,eachSpacing);\r\n context.closePath();\r\n context.fill();\r\n context.setFillStyle(\"#FFFFFF\");\r\n}\r\n\r\n\r\nfunction drawToolTip(textList, offset, opts, config, context, eachSpacing, xAxisPoints) {\r\n var toolTipOption = assign({}, {\r\n showBox: true,\r\n showArrow: true,\r\n showCategory: false,\r\n bgColor: '#000000',\r\n bgOpacity: 0.7,\r\n borderColor: '#000000',\r\n borderWidth: 0,\r\n borderRadius: 0,\r\n borderOpacity: 0.7,\r\n fontColor: '#FFFFFF',\r\n splitLine: true,\r\n }, opts.extra.tooltip);\r\n if(toolTipOption.showCategory==true && opts.categories){\r\n textList.unshift({text:opts.categories[opts.tooltip.index],color:null})\r\n }\r\n var legendWidth = 4 * opts.pix;\r\n var legendMarginRight = 5 * opts.pix;\r\n var arrowWidth = toolTipOption.showArrow ? 8 * opts.pix : 0;\r\n var isOverRightBorder = false;\r\n if (opts.type == 'line' || opts.type == 'mount' || opts.type == 'area' || opts.type == 'candle' || opts.type == 'mix') {\r\n if (toolTipOption.splitLine == true) {\r\n drawToolTipSplitLine(opts.tooltip.offset.x, opts, config, context);\r\n }\r\n }\r\n offset = assign({\r\n x: 0,\r\n y: 0\r\n }, offset);\r\n offset.y -= 8 * opts.pix;\r\n var textWidth = textList.map(function(item) {\r\n return measureText(item.text, config.fontSize, context);\r\n });\r\n var toolTipWidth = legendWidth + legendMarginRight + 4 * config.toolTipPadding + Math.max.apply(null, textWidth);\r\n var toolTipHeight = 2 * config.toolTipPadding + textList.length * config.toolTipLineHeight;\r\n if (toolTipOption.showBox == false) {\r\n return\r\n }\r\n // if beyond the right border\r\n if (offset.x - Math.abs(opts._scrollDistance_ || 0) + arrowWidth + toolTipWidth > opts.width) {\r\n isOverRightBorder = true;\r\n }\r\n if (toolTipHeight + offset.y > opts.height) {\r\n offset.y = opts.height - toolTipHeight;\r\n }\r\n // draw background rect\r\n context.beginPath();\r\n context.setFillStyle(hexToRgb(toolTipOption.bgColor || config.toolTipBackground, toolTipOption.bgOpacity || config.toolTipOpacity));\r\n context.setLineWidth(toolTipOption.borderWidth * opts.pix);\r\n context.setStrokeStyle(hexToRgb(toolTipOption.borderColor, toolTipOption.borderOpacity));\r\n var radius = toolTipOption.borderRadius;\r\n if (isOverRightBorder) {\r\n if (toolTipOption.showArrow) {\r\n context.moveTo(offset.x, offset.y + 10 * opts.pix);\r\n context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pix + 5 * opts.pix);\r\n }\r\n context.arc(offset.x - arrowWidth - radius, offset.y + toolTipHeight - radius, radius, 0, Math.PI / 2, false);\r\n context.arc(offset.x - arrowWidth - Math.round(toolTipWidth) + radius, offset.y + toolTipHeight - radius, radius,\r\n Math.PI / 2, Math.PI, false);\r\n context.arc(offset.x - arrowWidth - Math.round(toolTipWidth) + radius, offset.y + radius, radius, -Math.PI, -Math.PI / 2, false);\r\n context.arc(offset.x - arrowWidth - radius, offset.y + radius, radius, -Math.PI / 2, 0, false);\r\n if (toolTipOption.showArrow) {\r\n context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pix - 5 * opts.pix);\r\n context.lineTo(offset.x, offset.y + 10 * opts.pix);\r\n }\r\n } else {\r\n if (toolTipOption.showArrow) {\r\n context.moveTo(offset.x, offset.y + 10 * opts.pix);\r\n context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pix - 5 * opts.pix);\r\n }\r\n context.arc(offset.x + arrowWidth + radius, offset.y + radius, radius, -Math.PI, -Math.PI / 2, false);\r\n context.arc(offset.x + arrowWidth + Math.round(toolTipWidth) - radius, offset.y + radius, radius, -Math.PI / 2, 0,\r\n false);\r\n context.arc(offset.x + arrowWidth + Math.round(toolTipWidth) - radius, offset.y + toolTipHeight - radius, radius, 0,\r\n Math.PI / 2, false);\r\n context.arc(offset.x + arrowWidth + radius, offset.y + toolTipHeight - radius, radius, Math.PI / 2, Math.PI, false);\r\n if (toolTipOption.showArrow) {\r\n context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pix + 5 * opts.pix);\r\n context.lineTo(offset.x, offset.y + 10 * opts.pix);\r\n }\r\n }\r\n context.closePath();\r\n context.fill();\r\n if (toolTipOption.borderWidth > 0) {\r\n context.stroke();\r\n }\r\n // draw legend\r\n textList.forEach(function(item, index) {\r\n if (item.color !== null) {\r\n context.beginPath();\r\n context.setFillStyle(item.color);\r\n var startX = offset.x + arrowWidth + 2 * config.toolTipPadding;\r\n var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + config.toolTipPadding + 1;\r\n if (isOverRightBorder) {\r\n startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding;\r\n }\r\n context.fillRect(startX, startY, legendWidth, config.fontSize);\r\n context.closePath();\r\n }\r\n });\r\n // draw text list\r\n textList.forEach(function(item, index) {\r\n var startX = offset.x + arrowWidth + 2 * config.toolTipPadding + legendWidth + legendMarginRight;\r\n if (isOverRightBorder) {\r\n startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding + +legendWidth + legendMarginRight;\r\n }\r\n var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + config.toolTipPadding;\r\n context.beginPath();\r\n context.setFontSize(config.fontSize);\r\n context.setFillStyle(toolTipOption.fontColor);\r\n context.fillText(item.text, startX, startY + config.fontSize);\r\n context.closePath();\r\n context.stroke();\r\n });\r\n}\r\n\r\nfunction drawColumnDataPoints(series, opts, config, context) {\r\n let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n let xAxisData = opts.chartData.xAxisData,\r\n xAxisPoints = xAxisData.xAxisPoints,\r\n eachSpacing = xAxisData.eachSpacing;\r\n let columnOption = assign({}, {\r\n type: 'group',\r\n width: eachSpacing / 2,\r\n meterBorder: 4,\r\n meterFillColor: '#FFFFFF',\r\n barBorderCircle: false,\r\n barBorderRadius: [],\r\n seriesGap: 2,\r\n linearType: 'none',\r\n linearOpacity: 1,\r\n customColor: [],\r\n colorStop: 0,\r\n }, opts.extra.column);\r\n let calPoints = [];\r\n context.save();\r\n let leftNum = -2;\r\n let rightNum = xAxisPoints.length + 2;\r\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\r\n context.translate(opts._scrollDistance_, 0);\r\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\r\n rightNum = leftNum + opts.xAxis.itemCount + 4;\r\n }\r\n if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\r\n drawToolTipSplitArea(opts.tooltip.offset.x, opts, config, context, eachSpacing);\r\n }\r\n columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n switch (columnOption.type) {\r\n case 'group':\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n var tooltipPoints = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\r\n calPoints.push(tooltipPoints);\r\n points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts);\r\n for (let i = 0; i < points.length; i++) {\r\n let item = points[i];\r\n //fix issues/I27B1N yyoinge & Joeshu\r\n if (item !== null && i > leftNum && i < rightNum) {\r\n var startX = item.x - item.width / 2;\r\n var height = opts.height - item.y - opts.area[2];\r\n context.beginPath();\r\n var fillColor = item.color || eachSeries.color\r\n var strokeColor = item.color || eachSeries.color\r\n if (columnOption.linearType !== 'none') {\r\n var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\r\n //透明渐变\r\n if (columnOption.linearType == 'opacity') {\r\n grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n } else {\r\n grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\r\n grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex],columnOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n }\r\n fillColor = grd\r\n }\r\n // 圆角边框\r\n if ((columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4) || columnOption.barBorderCircle === true) {\r\n const left = startX;\r\n const top = item.y;\r\n const width = item.width;\r\n const height = opts.height - opts.area[2] - item.y;\r\n if (columnOption.barBorderCircle) {\r\n columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\r\n }\r\n let [r0, r1, r2, r3] = columnOption.barBorderRadius;\r\n let minRadius = Math.min(width/2,height/2);\r\n r0 = r0 > minRadius ? minRadius : r0;\r\n r1 = r1 > minRadius ? minRadius : r1;\r\n r2 = r2 > minRadius ? minRadius : r2;\r\n r3 = r3 > minRadius ? minRadius : r3;\r\n r0 = r0 < 0 ? 0 : r0;\r\n r1 = r1 < 0 ? 0 : r1;\r\n r2 = r2 < 0 ? 0 : r2;\r\n r3 = r3 < 0 ? 0 : r3;\r\n context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\r\n context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\r\n context.arc(left + width - r2, top + height - r2, r2, 0, Math.PI / 2);\r\n context.arc(left + r3, top + height - r3, r3, Math.PI / 2, Math.PI);\r\n } else {\r\n context.moveTo(startX, item.y);\r\n context.lineTo(startX + item.width, item.y);\r\n context.lineTo(startX + item.width, opts.height - opts.area[2]);\r\n context.lineTo(startX, opts.height - opts.area[2]);\r\n context.lineTo(startX, item.y);\r\n context.setLineWidth(1)\r\n context.setStrokeStyle(strokeColor);\r\n }\r\n context.setFillStyle(fillColor);\r\n context.closePath();\r\n //context.stroke();\r\n context.fill();\r\n }\r\n };\r\n break;\r\n case 'stack':\r\n // 绘制堆叠数据图\r\n var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\r\n calPoints.push(points);\r\n points = fixColumeStackData(points, eachSpacing, series.length, seriesIndex, config, opts, series);\r\n for (let i = 0; i < points.length; i++) {\r\n let item = points[i];\r\n if (item !== null && i > leftNum && i < rightNum) {\r\n context.beginPath();\r\n var fillColor = item.color || eachSeries.color;\r\n var startX = item.x - item.width / 2 + 1;\r\n var height = opts.height - item.y - opts.area[2];\r\n var height0 = opts.height - item.y0 - opts.area[2];\r\n if (seriesIndex > 0) {\r\n height -= height0;\r\n }\r\n context.setFillStyle(fillColor);\r\n context.moveTo(startX, item.y);\r\n context.fillRect(startX, item.y, item.width, height);\r\n context.closePath();\r\n context.fill();\r\n }\r\n };\r\n break;\r\n case 'meter':\r\n // 绘制温度计数据图\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n calPoints.push(points);\r\n points = fixColumeMeterData(points, eachSpacing, series.length, seriesIndex, config, opts, columnOption.meterBorder);\r\n for (let i = 0; i < points.length; i++) {\r\n let item = points[i];\r\n if (item !== null && i > leftNum && i < rightNum) {\r\n //画背景颜色\r\n context.beginPath();\r\n if (seriesIndex == 0 && columnOption.meterBorder > 0) {\r\n context.setStrokeStyle(eachSeries.color);\r\n context.setLineWidth(columnOption.meterBorder * opts.pix);\r\n }\r\n if(seriesIndex == 0){\r\n context.setFillStyle(columnOption.meterFillColor);\r\n }else{\r\n context.setFillStyle(item.color || eachSeries.color);\r\n }\r\n var startX = item.x - item.width / 2;\r\n var height = opts.height - item.y - opts.area[2];\r\n if ((columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4) || columnOption.barBorderCircle === true) {\r\n const left = startX;\r\n const top = item.y;\r\n const width = item.width;\r\n const height = opts.height - opts.area[2] - item.y;\r\n if (columnOption.barBorderCircle) {\r\n columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\r\n }\r\n let [r0, r1, r2, r3] = columnOption.barBorderRadius;\r\n let minRadius = Math.min(width/2,height/2);\r\n r0 = r0 > minRadius ? minRadius : r0;\r\n r1 = r1 > minRadius ? minRadius : r1;\r\n r2 = r2 > minRadius ? minRadius : r2;\r\n r3 = r3 > minRadius ? minRadius : r3;\r\n r0 = r0 < 0 ? 0 : r0;\r\n r1 = r1 < 0 ? 0 : r1;\r\n r2 = r2 < 0 ? 0 : r2;\r\n r3 = r3 < 0 ? 0 : r3;\r\n context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\r\n context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\r\n context.arc(left + width - r2, top + height - r2, r2, 0, Math.PI / 2);\r\n context.arc(left + r3, top + height - r3, r3, Math.PI / 2, Math.PI);\r\n context.fill();\r\n }else{\r\n context.moveTo(startX, item.y);\r\n context.lineTo(startX + item.width, item.y);\r\n context.lineTo(startX + item.width, opts.height - opts.area[2]);\r\n context.lineTo(startX, opts.height - opts.area[2]);\r\n context.lineTo(startX, item.y);\r\n context.fill();\r\n }\r\n if (seriesIndex == 0 && columnOption.meterBorder > 0) {\r\n context.closePath();\r\n context.stroke();\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n });\r\n\r\n if (opts.dataLabel !== false && process === 1) {\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n switch (columnOption.type) {\r\n case 'group':\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts);\r\n drawPointText(points, eachSeries, config, context, opts);\r\n break;\r\n case 'stack':\r\n var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\r\n drawPointText(points, eachSeries, config, context, opts);\r\n break;\r\n case 'meter':\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n drawPointText(points, eachSeries, config, context, opts);\r\n break;\r\n }\r\n });\r\n }\r\n context.restore();\r\n return {\r\n xAxisPoints: xAxisPoints,\r\n calPoints: calPoints,\r\n eachSpacing: eachSpacing\r\n };\r\n}\r\n\r\nfunction drawMountDataPoints(series, opts, config, context) {\r\n let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n let xAxisData = opts.chartData.xAxisData,\r\n xAxisPoints = xAxisData.xAxisPoints,\r\n eachSpacing = xAxisData.eachSpacing;\r\n let mountOption = assign({}, {\r\n type: 'mount',\r\n widthRatio: 1,\r\n borderWidth: 1,\r\n barBorderCircle: false,\r\n barBorderRadius: [],\r\n linearType: 'none',\r\n linearOpacity: 1,\r\n customColor: [],\r\n colorStop: 0,\r\n }, opts.extra.mount);\r\n mountOption.widthRatio = mountOption.widthRatio <= 0 ? 0 : mountOption.widthRatio;\r\n mountOption.widthRatio = mountOption.widthRatio >= 2 ? 2 : mountOption.widthRatio;\r\n let calPoints = [];\r\n context.save();\r\n let leftNum = -2;\r\n let rightNum = xAxisPoints.length + 2;\r\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\r\n context.translate(opts._scrollDistance_, 0);\r\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\r\n rightNum = leftNum + opts.xAxis.itemCount + 4;\r\n }\r\n mountOption.customColor = fillCustomColor(mountOption.linearType, mountOption.customColor, series, config);\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[0]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var points = getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption, process);\r\n switch (mountOption.type) {\r\n case 'bar':\r\n for (let i = 0; i < points.length; i++) {\r\n let item = points[i];\r\n if (item !== null && i > leftNum && i < rightNum) {\r\n var startX = item.x - eachSpacing*mountOption.widthRatio/2;\r\n var height = opts.height - item.y - opts.area[2];\r\n context.beginPath();\r\n var fillColor = item.color || series[i].color\r\n var strokeColor = item.color || series[i].color\r\n if (mountOption.linearType !== 'none') {\r\n var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\r\n //透明渐变\r\n if (mountOption.linearType == 'opacity') {\r\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n } else {\r\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));\r\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[i].linearIndex],mountOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n }\r\n fillColor = grd\r\n }\r\n // 圆角边框\r\n if ((mountOption.barBorderRadius && mountOption.barBorderRadius.length === 4) || mountOption.barBorderCircle === true) {\r\n const left = startX;\r\n const top = item.y;\r\n const width = item.width;\r\n const height = opts.height - opts.area[2] - item.y - mountOption.borderWidth * opts.pix / 2; \r\n if (mountOption.barBorderCircle) {\r\n mountOption.barBorderRadius = [width / 2, width / 2, 0, 0];\r\n }\r\n let [r0, r1, r2, r3] = mountOption.barBorderRadius;\r\n let minRadius = Math.min(width/2,height/2);\r\n r0 = r0 > minRadius ? minRadius : r0;\r\n r1 = r1 > minRadius ? minRadius : r1;\r\n r2 = r2 > minRadius ? minRadius : r2;\r\n r3 = r3 > minRadius ? minRadius : r3;\r\n r0 = r0 < 0 ? 0 : r0;\r\n r1 = r1 < 0 ? 0 : r1;\r\n r2 = r2 < 0 ? 0 : r2;\r\n r3 = r3 < 0 ? 0 : r3;\r\n context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\r\n context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\r\n context.arc(left + width - r2, top + height - r2, r2, 0, Math.PI / 2);\r\n context.arc(left + r3, top + height - r3, r3, Math.PI / 2, Math.PI);\r\n } else {\r\n context.moveTo(startX, item.y);\r\n context.lineTo(startX + item.width, item.y);\r\n context.lineTo(startX + item.width, opts.height - opts.area[2]);\r\n context.lineTo(startX, opts.height - opts.area[2]);\r\n context.lineTo(startX, item.y);\r\n }\r\n context.setStrokeStyle(strokeColor);\r\n context.setFillStyle(fillColor);\r\n if(mountOption.borderWidth > 0){\r\n context.setLineWidth(mountOption.borderWidth * opts.pix);\r\n context.closePath();\r\n context.stroke();\r\n }\r\n context.fill();\r\n }\r\n };\r\n break;\r\n case 'triangle':\r\n for (let i = 0; i < points.length; i++) {\r\n let item = points[i];\r\n if (item !== null && i > leftNum && i < rightNum) {\r\n var startX = item.x - eachSpacing*mountOption.widthRatio/2;\r\n var height = opts.height - item.y - opts.area[2];\r\n context.beginPath();\r\n var fillColor = item.color || series[i].color\r\n var strokeColor = item.color || series[i].color\r\n if (mountOption.linearType !== 'none') {\r\n var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\r\n //透明渐变\r\n if (mountOption.linearType == 'opacity') {\r\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n } else {\r\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));\r\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[i].linearIndex],mountOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n }\r\n fillColor = grd\r\n }\r\n context.moveTo(startX, opts.height - opts.area[2]);\r\n context.lineTo(item.x, item.y);\r\n context.lineTo(startX + item.width, opts.height - opts.area[2]);\r\n context.setStrokeStyle(strokeColor);\r\n context.setFillStyle(fillColor);\r\n if(mountOption.borderWidth > 0){\r\n context.setLineWidth(mountOption.borderWidth * opts.pix);\r\n context.stroke();\r\n }\r\n context.fill();\r\n }\r\n };\r\n break;\r\n case 'mount':\r\n for (let i = 0; i < points.length; i++) {\r\n let item = points[i];\r\n if (item !== null && i > leftNum && i < rightNum) {\r\n var startX = item.x - eachSpacing*mountOption.widthRatio/2;\r\n var height = opts.height - item.y - opts.area[2];\r\n context.beginPath();\r\n var fillColor = item.color || series[i].color\r\n var strokeColor = item.color || series[i].color\r\n if (mountOption.linearType !== 'none') {\r\n var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\r\n //透明渐变\r\n if (mountOption.linearType == 'opacity') {\r\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n } else {\r\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));\r\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[i].linearIndex],mountOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n }\r\n fillColor = grd\r\n }\r\n context.moveTo(startX, opts.height - opts.area[2]);\r\n context.bezierCurveTo(item.x - item.width/4, opts.height - opts.area[2], item.x - item.width/4, item.y, item.x, item.y);\r\n context.bezierCurveTo(item.x + item.width/4, item.y, item.x + item.width/4, opts.height - opts.area[2], startX + item.width, opts.height - opts.area[2]);\r\n context.setStrokeStyle(strokeColor);\r\n context.setFillStyle(fillColor);\r\n if(mountOption.borderWidth > 0){\r\n context.setLineWidth(mountOption.borderWidth * opts.pix);\r\n context.stroke();\r\n }\r\n context.fill();\r\n }\r\n };\r\n break;\r\n case 'sharp':\r\n for (let i = 0; i < points.length; i++) {\r\n let item = points[i];\r\n if (item !== null && i > leftNum && i < rightNum) {\r\n var startX = item.x - eachSpacing*mountOption.widthRatio/2;\r\n var height = opts.height - item.y - opts.area[2];\r\n context.beginPath();\r\n var fillColor = item.color || series[i].color\r\n var strokeColor = item.color || series[i].color\r\n if (mountOption.linearType !== 'none') {\r\n var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\r\n //透明渐变\r\n if (mountOption.linearType == 'opacity') {\r\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n } else {\r\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));\r\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[i].linearIndex],mountOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n }\r\n fillColor = grd\r\n }\r\n context.moveTo(startX, opts.height - opts.area[2]);\r\n context.quadraticCurveTo(item.x - 0, opts.height - opts.area[2] - height/4, item.x, item.y);\r\n context.quadraticCurveTo(item.x + 0, opts.height - opts.area[2] - height/4, startX + item.width, opts.height - opts.area[2])\r\n context.setStrokeStyle(strokeColor);\r\n context.setFillStyle(fillColor);\r\n if(mountOption.borderWidth > 0){\r\n context.setLineWidth(mountOption.borderWidth * opts.pix);\r\n context.stroke();\r\n }\r\n context.fill();\r\n }\r\n };\r\n break;\r\n }\r\n\r\n if (opts.dataLabel !== false && process === 1) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[0]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var points = getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption, process);\r\n drawMountPointText(points, series, config, context, opts);\r\n }\r\n context.restore();\r\n return {\r\n xAxisPoints: xAxisPoints,\r\n calPoints: points,\r\n eachSpacing: eachSpacing\r\n };\r\n}\r\n\r\nfunction drawBarDataPoints(series, opts, config, context) {\r\n let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n let yAxisPoints = [];\r\n let eachSpacing = (opts.height - opts.area[0] - opts.area[2])/opts.categories.length;\r\n for (let i = 0; i < opts.categories.length; i++) {\r\n yAxisPoints.push(opts.area[0] + eachSpacing / 2 + eachSpacing * i);\r\n }\r\n let columnOption = assign({}, {\r\n type: 'group',\r\n width: eachSpacing / 2,\r\n meterBorder: 4,\r\n meterFillColor: '#FFFFFF',\r\n barBorderCircle: false,\r\n barBorderRadius: [],\r\n seriesGap: 2,\r\n linearType: 'none',\r\n linearOpacity: 1,\r\n customColor: [],\r\n colorStop: 0,\r\n }, opts.extra.bar);\r\n let calPoints = [];\r\n context.save();\r\n let leftNum = -2;\r\n let rightNum = yAxisPoints.length + 2;\r\n if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\r\n drawBarToolTipSplitArea(opts.tooltip.offset.y, opts, config, context, eachSpacing);\r\n }\r\n columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.xAxisData.ranges);\r\n maxRange = ranges.pop();\r\n minRange = ranges.shift();\r\n var data = eachSeries.data;\r\n switch (columnOption.type) {\r\n case 'group':\r\n var points = getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, process);\r\n var tooltipPoints = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\r\n calPoints.push(tooltipPoints);\r\n points = fixBarData(points, eachSpacing, series.length, seriesIndex, config, opts);\r\n for (let i = 0; i < points.length; i++) {\r\n let item = points[i];\r\n //fix issues/I27B1N yyoinge & Joeshu\r\n if (item !== null && i > leftNum && i < rightNum) {\r\n //var startX = item.x - item.width / 2;\r\n var startX = opts.area[3];\r\n var startY = item.y - item.width / 2;\r\n var height = item.height;\r\n context.beginPath();\r\n var fillColor = item.color || eachSeries.color\r\n var strokeColor = item.color || eachSeries.color\r\n if (columnOption.linearType !== 'none') {\r\n var grd = context.createLinearGradient(startX, item.y, item.x, item.y);\r\n //透明渐变\r\n if (columnOption.linearType == 'opacity') {\r\n grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n } else {\r\n grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\r\n grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex],columnOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n }\r\n fillColor = grd\r\n }\r\n // 圆角边框\r\n if ((columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4) || columnOption.barBorderCircle === true) {\r\n const left = startX;\r\n const width = item.width;\r\n const top = item.y - item.width / 2;\r\n const height = item.height;\r\n if (columnOption.barBorderCircle) {\r\n columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\r\n }\r\n let [r0, r1, r2, r3] = columnOption.barBorderRadius;\r\n let minRadius = Math.min(width/2,height/2);\r\n r0 = r0 > minRadius ? minRadius : r0;\r\n r1 = r1 > minRadius ? minRadius : r1;\r\n r2 = r2 > minRadius ? minRadius : r2;\r\n r3 = r3 > minRadius ? minRadius : r3;\r\n r0 = r0 < 0 ? 0 : r0;\r\n r1 = r1 < 0 ? 0 : r1;\r\n r2 = r2 < 0 ? 0 : r2;\r\n r3 = r3 < 0 ? 0 : r3;\r\n \r\n context.arc(left + r3, top + r3, r3, -Math.PI, -Math.PI / 2);\r\n context.arc(item.x - r0, top + r0, r0, -Math.PI / 2, 0);\r\n context.arc(item.x - r1, top + width - r1, r1, 0, Math.PI / 2);\r\n context.arc(left + r2, top + width - r2, r2, Math.PI / 2, Math.PI);\r\n } else {\r\n context.moveTo(startX, startY);\r\n context.lineTo(item.x, startY);\r\n context.lineTo(item.x, startY + item.width);\r\n context.lineTo(startX, startY + item.width);\r\n context.lineTo(startX, startY);\r\n context.setLineWidth(1)\r\n context.setStrokeStyle(strokeColor);\r\n }\r\n context.setFillStyle(fillColor);\r\n context.closePath();\r\n //context.stroke();\r\n context.fill();\r\n }\r\n };\r\n break;\r\n case 'stack':\r\n // 绘制堆叠数据图\r\n var points = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\r\n calPoints.push(points);\r\n points = fixBarStackData(points, eachSpacing, series.length, seriesIndex, config, opts, series);\r\n for (let i = 0; i < points.length; i++) {\r\n let item = points[i];\r\n if (item !== null && i > leftNum && i < rightNum) {\r\n context.beginPath();\r\n var fillColor = item.color || eachSeries.color;\r\n var startX = item.x0;\r\n context.setFillStyle(fillColor);\r\n context.moveTo(startX, item.y - item.width/2);\r\n context.fillRect(startX, item.y - item.width/2, item.height , item.width);\r\n context.closePath();\r\n context.fill();\r\n }\r\n };\r\n break;\r\n }\r\n });\r\n\r\n if (opts.dataLabel !== false && process === 1) {\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.xAxisData.ranges);\r\n maxRange = ranges.pop();\r\n minRange = ranges.shift();\r\n var data = eachSeries.data;\r\n switch (columnOption.type) {\r\n case 'group':\r\n var points = getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, process);\r\n points = fixBarData(points, eachSpacing, series.length, seriesIndex, config, opts);\r\n drawBarPointText(points, eachSeries, config, context, opts);\r\n break;\r\n case 'stack':\r\n var points = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\r\n drawBarPointText(points, eachSeries, config, context, opts);\r\n break;\r\n }\r\n });\r\n }\r\n return {\r\n yAxisPoints: yAxisPoints,\r\n calPoints: calPoints,\r\n eachSpacing: eachSpacing\r\n };\r\n}\r\n\r\nfunction drawCandleDataPoints(series, seriesMA, opts, config, context) {\r\n var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\r\n var candleOption = assign({}, {\r\n color: {},\r\n average: {}\r\n }, opts.extra.candle);\r\n candleOption.color = assign({}, {\r\n upLine: '#f04864',\r\n upFill: '#f04864',\r\n downLine: '#2fc25b',\r\n downFill: '#2fc25b'\r\n }, candleOption.color);\r\n candleOption.average = assign({}, {\r\n show: false,\r\n name: [],\r\n day: [],\r\n color: config.color\r\n }, candleOption.average);\r\n opts.extra.candle = candleOption;\r\n let xAxisData = opts.chartData.xAxisData,\r\n xAxisPoints = xAxisData.xAxisPoints,\r\n eachSpacing = xAxisData.eachSpacing;\r\n let calPoints = [];\r\n context.save();\r\n let leftNum = -2;\r\n let rightNum = xAxisPoints.length + 2;\r\n let leftSpace = 0;\r\n let rightSpace = opts.width + eachSpacing;\r\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\r\n context.translate(opts._scrollDistance_, 0);\r\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\r\n rightNum = leftNum + opts.xAxis.itemCount + 4;\r\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\r\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\r\n }\r\n //画均线\r\n if (candleOption.average.show || seriesMA) { //Merge pull request !12 from 邱贵翔\r\n seriesMA.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n var splitPointList = splitPoints(points,eachSeries);\r\n for (let i = 0; i < splitPointList.length; i++) {\r\n let points = splitPointList[i];\r\n context.beginPath();\r\n context.setStrokeStyle(eachSeries.color);\r\n context.setLineWidth(1);\r\n if (points.length === 1) {\r\n context.moveTo(points[0].x, points[0].y);\r\n context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);\r\n } else {\r\n context.moveTo(points[0].x, points[0].y);\r\n let startPoint = 0;\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n var ctrlPoint = createCurveControlPoints(points, j - 1);\r\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x,\r\n item.y);\r\n }\r\n }\r\n context.moveTo(points[0].x, points[0].y);\r\n }\r\n context.closePath();\r\n context.stroke();\r\n }\r\n });\r\n }\r\n //画K线\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n var points = getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n calPoints.push(points);\r\n var splitPointList = splitPoints(points,eachSeries);\r\n for (let i = 0; i < splitPointList[0].length; i++) {\r\n if (i > leftNum && i < rightNum) {\r\n let item = splitPointList[0][i];\r\n context.beginPath();\r\n //如果上涨\r\n if (data[i][1] - data[i][0] > 0) {\r\n context.setStrokeStyle(candleOption.color.upLine);\r\n context.setFillStyle(candleOption.color.upFill);\r\n context.setLineWidth(1 * opts.pix);\r\n context.moveTo(item[3].x, item[3].y); //顶点\r\n context.lineTo(item[1].x, item[1].y); //收盘中间点\r\n context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //收盘左侧点\r\n context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //开盘左侧点\r\n context.lineTo(item[0].x, item[0].y); //开盘中间点\r\n context.lineTo(item[2].x, item[2].y); //底点\r\n context.lineTo(item[0].x, item[0].y); //开盘中间点\r\n context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //开盘右侧点\r\n context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //收盘右侧点\r\n context.lineTo(item[1].x, item[1].y); //收盘中间点\r\n context.moveTo(item[3].x, item[3].y); //顶点\r\n } else {\r\n context.setStrokeStyle(candleOption.color.downLine);\r\n context.setFillStyle(candleOption.color.downFill);\r\n context.setLineWidth(1 * opts.pix);\r\n context.moveTo(item[3].x, item[3].y); //顶点\r\n context.lineTo(item[0].x, item[0].y); //开盘中间点\r\n context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //开盘左侧点\r\n context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //收盘左侧点\r\n context.lineTo(item[1].x, item[1].y); //收盘中间点\r\n context.lineTo(item[2].x, item[2].y); //底点\r\n context.lineTo(item[1].x, item[1].y); //收盘中间点\r\n context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //收盘右侧点\r\n context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //开盘右侧点\r\n context.lineTo(item[0].x, item[0].y); //开盘中间点\r\n context.moveTo(item[3].x, item[3].y); //顶点\r\n }\r\n context.closePath();\r\n context.fill();\r\n context.stroke();\r\n }\r\n }\r\n });\r\n context.restore();\r\n return {\r\n xAxisPoints: xAxisPoints,\r\n calPoints: calPoints,\r\n eachSpacing: eachSpacing\r\n };\r\n}\r\n\r\nfunction drawAreaDataPoints(series, opts, config, context) {\r\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n var areaOption = assign({}, {\r\n type: 'straight',\r\n opacity: 0.2,\r\n addLine: false,\r\n width: 2,\r\n gradient: false\r\n }, opts.extra.area);\r\n let xAxisData = opts.chartData.xAxisData,\r\n xAxisPoints = xAxisData.xAxisPoints,\r\n eachSpacing = xAxisData.eachSpacing;\r\n let endY = opts.height - opts.area[2];\r\n let calPoints = [];\r\n context.save();\r\n let leftSpace = 0;\r\n let rightSpace = opts.width + eachSpacing;\r\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\r\n context.translate(opts._scrollDistance_, 0);\r\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\r\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\r\n }\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n let data = eachSeries.data;\r\n let points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n calPoints.push(points);\r\n let splitPointList = splitPoints(points,eachSeries);\r\n for (let i = 0; i < splitPointList.length; i++) {\r\n let points = splitPointList[i];\r\n // 绘制区域数\r\n context.beginPath();\r\n context.setStrokeStyle(hexToRgb(eachSeries.color, areaOption.opacity));\r\n if (areaOption.gradient) {\r\n let gradient = context.createLinearGradient(0, opts.area[0], 0, opts.height - opts.area[2]);\r\n gradient.addColorStop('0', hexToRgb(eachSeries.color, areaOption.opacity));\r\n gradient.addColorStop('1.0', hexToRgb(\"#FFFFFF\", 0.1));\r\n context.setFillStyle(gradient);\r\n } else {\r\n context.setFillStyle(hexToRgb(eachSeries.color, areaOption.opacity));\r\n }\r\n context.setLineWidth(areaOption.width * opts.pix);\r\n if (points.length > 1) {\r\n let firstPoint = points[0];\r\n let lastPoint = points[points.length - 1];\r\n context.moveTo(firstPoint.x, firstPoint.y);\r\n let startPoint = 0;\r\n if (areaOption.type === 'curve') {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n let ctrlPoint = createCurveControlPoints(points, j - 1);\r\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);\r\n }\r\n };\r\n } \r\n if (areaOption.type === 'straight') {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n context.lineTo(item.x, item.y);\r\n }\r\n };\r\n }\r\n if (areaOption.type === 'step') {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n context.lineTo(item.x, points[j - 1].y);\r\n context.lineTo(item.x, item.y);\r\n }\r\n };\r\n }\r\n context.lineTo(lastPoint.x, endY);\r\n context.lineTo(firstPoint.x, endY);\r\n context.lineTo(firstPoint.x, firstPoint.y);\r\n } else {\r\n let item = points[0];\r\n context.moveTo(item.x - eachSpacing / 2, item.y);\r\n context.lineTo(item.x + eachSpacing / 2, item.y);\r\n context.lineTo(item.x + eachSpacing / 2, endY);\r\n context.lineTo(item.x - eachSpacing / 2, endY);\r\n context.moveTo(item.x - eachSpacing / 2, item.y);\r\n }\r\n context.closePath();\r\n context.fill();\r\n //画连线\r\n if (areaOption.addLine) {\r\n if (eachSeries.lineType == 'dash') {\r\n let dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\r\n dashLength *= opts.pix;\r\n context.setLineDash([dashLength, dashLength]);\r\n }\r\n context.beginPath();\r\n context.setStrokeStyle(eachSeries.color);\r\n context.setLineWidth(areaOption.width * opts.pix);\r\n if (points.length === 1) {\r\n context.moveTo(points[0].x, points[0].y);\r\n context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);\r\n } else {\r\n context.moveTo(points[0].x, points[0].y);\r\n let startPoint = 0;\r\n if (areaOption.type === 'curve') {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n let ctrlPoint = createCurveControlPoints(points, j - 1);\r\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);\r\n }\r\n };\r\n }\r\n if (areaOption.type === 'straight') {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n context.lineTo(item.x, item.y);\r\n }\r\n };\r\n }\r\n if (areaOption.type === 'step') {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n context.lineTo(item.x, points[j - 1].y);\r\n context.lineTo(item.x, item.y);\r\n }\r\n };\r\n }\r\n context.moveTo(points[0].x, points[0].y);\r\n }\r\n context.stroke();\r\n context.setLineDash([]);\r\n }\r\n }\r\n //画点\r\n if (opts.dataPointShape !== false) {\r\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\r\n }\r\n });\r\n\r\n if (opts.dataLabel !== false && process === 1) {\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n drawPointText(points, eachSeries, config, context, opts);\r\n });\r\n }\r\n context.restore();\r\n return {\r\n xAxisPoints: xAxisPoints,\r\n calPoints: calPoints,\r\n eachSpacing: eachSpacing\r\n };\r\n}\r\n\r\nfunction drawScatterDataPoints(series, opts, config, context) {\r\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n var scatterOption = assign({}, {\r\n type: 'circle'\r\n }, opts.extra.scatter);\r\n let xAxisData = opts.chartData.xAxisData,\r\n xAxisPoints = xAxisData.xAxisPoints,\r\n eachSpacing = xAxisData.eachSpacing;\r\n var calPoints = [];\r\n context.save();\r\n let leftSpace = 0;\r\n let rightSpace = opts.width + eachSpacing;\r\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\r\n context.translate(opts._scrollDistance_, 0);\r\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\r\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\r\n }\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n context.beginPath();\r\n context.setStrokeStyle(eachSeries.color);\r\n context.setFillStyle(eachSeries.color);\r\n context.setLineWidth(1 * opts.pix);\r\n var shape = eachSeries.pointShape;\r\n if (shape === 'diamond') {\r\n points.forEach(function(item, index) {\r\n if (item !== null) {\r\n context.moveTo(item.x, item.y - 4.5);\r\n context.lineTo(item.x - 4.5, item.y);\r\n context.lineTo(item.x, item.y + 4.5);\r\n context.lineTo(item.x + 4.5, item.y);\r\n context.lineTo(item.x, item.y - 4.5);\r\n }\r\n });\r\n } else if (shape === 'circle') {\r\n points.forEach(function(item, index) {\r\n if (item !== null) {\r\n context.moveTo(item.x + 2.5 * opts.pix, item.y);\r\n context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false);\r\n }\r\n });\r\n } else if (shape === 'square') {\r\n points.forEach(function(item, index) {\r\n if (item !== null) {\r\n context.moveTo(item.x - 3.5, item.y - 3.5);\r\n context.rect(item.x - 3.5, item.y - 3.5, 7, 7);\r\n }\r\n });\r\n } else if (shape === 'triangle') {\r\n points.forEach(function(item, index) {\r\n if (item !== null) {\r\n context.moveTo(item.x, item.y - 4.5);\r\n context.lineTo(item.x - 4.5, item.y + 4.5);\r\n context.lineTo(item.x + 4.5, item.y + 4.5);\r\n context.lineTo(item.x, item.y - 4.5);\r\n }\r\n });\r\n } else if (shape === 'triangle') {\r\n return;\r\n }\r\n context.closePath();\r\n context.fill();\r\n context.stroke();\r\n });\r\n if (opts.dataLabel !== false && process === 1) {\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n drawPointText(points, eachSeries, config, context, opts);\r\n });\r\n }\r\n context.restore();\r\n return {\r\n xAxisPoints: xAxisPoints,\r\n calPoints: calPoints,\r\n eachSpacing: eachSpacing\r\n };\r\n}\r\n\r\nfunction drawBubbleDataPoints(series, opts, config, context) {\r\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n var bubbleOption = assign({}, {\r\n opacity: 1,\r\n border:2\r\n }, opts.extra.bubble);\r\n let xAxisData = opts.chartData.xAxisData,\r\n xAxisPoints = xAxisData.xAxisPoints,\r\n eachSpacing = xAxisData.eachSpacing;\r\n var calPoints = [];\r\n context.save();\r\n let leftSpace = 0;\r\n let rightSpace = opts.width + eachSpacing;\r\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\r\n context.translate(opts._scrollDistance_, 0);\r\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\r\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\r\n }\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n context.beginPath();\r\n context.setStrokeStyle(eachSeries.color);\r\n context.setLineWidth(bubbleOption.border * opts.pix);\r\n context.setFillStyle(hexToRgb(eachSeries.color, bubbleOption.opacity));\r\n points.forEach(function(item, index) {\r\n context.moveTo(item.x + item.r, item.y);\r\n context.arc(item.x, item.y, item.r * opts.pix, 0, 2 * Math.PI, false);\r\n });\r\n context.closePath();\r\n context.fill();\r\n context.stroke();\r\n \r\n if (opts.dataLabel !== false && process === 1) {\r\n points.forEach(function(item, index) {\r\n context.beginPath();\r\n var fontSize = series.textSize * opts.pix || config.fontSize;\r\n context.setFontSize(fontSize);\r\n context.setFillStyle(series.textColor || \"#FFFFFF\");\r\n context.setTextAlign('center');\r\n context.fillText(String(item.t), item.x, item.y + fontSize/2);\r\n context.closePath();\r\n context.stroke();\r\n context.setTextAlign('left');\r\n });\r\n }\r\n });\r\n context.restore();\r\n return {\r\n xAxisPoints: xAxisPoints,\r\n calPoints: calPoints,\r\n eachSpacing: eachSpacing\r\n };\r\n}\r\n\r\nfunction drawLineDataPoints(series, opts, config, context) {\r\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n var lineOption = assign({}, {\r\n type: 'straight',\r\n width: 2\r\n }, opts.extra.line);\r\n lineOption.width *= opts.pix;\r\n let xAxisData = opts.chartData.xAxisData,\r\n xAxisPoints = xAxisData.xAxisPoints,\r\n eachSpacing = xAxisData.eachSpacing;\r\n var calPoints = [];\r\n context.save();\r\n let leftSpace = 0;\r\n let rightSpace = opts.width + eachSpacing;\r\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\r\n context.translate(opts._scrollDistance_, 0);\r\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\r\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\r\n }\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n calPoints.push(points);\r\n var splitPointList = splitPoints(points,eachSeries);\r\n if (eachSeries.lineType == 'dash') {\r\n let dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\r\n dashLength *= opts.pix;\r\n context.setLineDash([dashLength, dashLength]);\r\n }\r\n context.beginPath();\r\n context.setStrokeStyle(eachSeries.color);\r\n context.setLineWidth(lineOption.width);\r\n splitPointList.forEach(function(points, index) {\r\n if (points.length === 1) {\r\n context.moveTo(points[0].x, points[0].y);\r\n context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);\r\n } else {\r\n context.moveTo(points[0].x, points[0].y);\r\n let startPoint = 0;\r\n if (lineOption.type === 'curve') {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n var ctrlPoint = createCurveControlPoints(points, j - 1);\r\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);\r\n }\r\n };\r\n }\r\n if (lineOption.type === 'straight') {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n context.lineTo(item.x, item.y);\r\n }\r\n };\r\n }\r\n if (lineOption.type === 'step') {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n context.lineTo(item.x, points[j - 1].y);\r\n context.lineTo(item.x, item.y);\r\n }\r\n };\r\n }\r\n context.moveTo(points[0].x, points[0].y);\r\n }\r\n });\r\n context.stroke();\r\n context.setLineDash([]);\r\n if (opts.dataPointShape !== false) {\r\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\r\n }\r\n });\r\n if (opts.dataLabel !== false && process === 1) {\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n drawPointText(points, eachSeries, config, context, opts);\r\n });\r\n }\r\n context.restore();\r\n return {\r\n xAxisPoints: xAxisPoints,\r\n calPoints: calPoints,\r\n eachSpacing: eachSpacing\r\n };\r\n}\r\n\r\nfunction drawMixDataPoints(series, opts, config, context) {\r\n let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n let xAxisData = opts.chartData.xAxisData,\r\n xAxisPoints = xAxisData.xAxisPoints,\r\n eachSpacing = xAxisData.eachSpacing;\r\n let columnOption = assign({}, {\r\n width: eachSpacing / 2,\r\n barBorderCircle: false,\r\n barBorderRadius: [],\r\n seriesGap: 2,\r\n linearType: 'none',\r\n linearOpacity: 1,\r\n customColor: [],\r\n colorStop: 0,\r\n }, opts.extra.mix.column);\r\n let areaOption = assign({}, {\r\n opacity: 0.2,\r\n gradient: false\r\n }, opts.extra.mix.area);\r\n let endY = opts.height - opts.area[2];\r\n let calPoints = [];\r\n var columnIndex = 0;\r\n var columnLength = 0;\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n if (eachSeries.type == 'column') {\r\n columnLength += 1;\r\n }\r\n });\r\n context.save();\r\n let leftNum = -2;\r\n let rightNum = xAxisPoints.length + 2;\r\n let leftSpace = 0;\r\n let rightSpace = opts.width + eachSpacing;\r\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\r\n context.translate(opts._scrollDistance_, 0);\r\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\r\n rightNum = leftNum + opts.xAxis.itemCount + 4;\r\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\r\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\r\n }\r\n columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n calPoints.push(points);\r\n // 绘制柱状数据图\r\n if (eachSeries.type == 'column') {\r\n points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts);\r\n for (let i = 0; i < points.length; i++) {\r\n let item = points[i];\r\n if (item !== null && i > leftNum && i < rightNum) {\r\n var startX = item.x - item.width / 2;\r\n var height = opts.height - item.y - opts.area[2];\r\n context.beginPath();\r\n var fillColor = item.color || eachSeries.color\r\n var strokeColor = item.color || eachSeries.color\r\n if (columnOption.linearType !== 'none') {\r\n var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\r\n //透明渐变\r\n if (columnOption.linearType == 'opacity') {\r\n grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n } else {\r\n grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\r\n grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n }\r\n fillColor = grd\r\n }\r\n // 圆角边框\r\n if ((columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4) || columnOption.barBorderCircle) {\r\n const left = startX;\r\n const top = item.y;\r\n const width = item.width;\r\n const height = opts.height - opts.area[2] - item.y;\r\n if (columnOption.barBorderCircle) {\r\n columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\r\n }\r\n let [r0, r1, r2, r3] = columnOption.barBorderRadius;\r\n let minRadius = Math.min(width/2,height/2);\r\n r0 = r0 > minRadius ? minRadius : r0;\r\n r1 = r1 > minRadius ? minRadius : r1;\r\n r2 = r2 > minRadius ? minRadius : r2;\r\n r3 = r3 > minRadius ? minRadius : r3;\r\n r0 = r0 < 0 ? 0 : r0;\r\n r1 = r1 < 0 ? 0 : r1;\r\n r2 = r2 < 0 ? 0 : r2;\r\n r3 = r3 < 0 ? 0 : r3;\r\n context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\r\n context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\r\n context.arc(left + width - r2, top + height - r2, r2, 0, Math.PI / 2);\r\n context.arc(left + r3, top + height - r3, r3, Math.PI / 2, Math.PI);\r\n } else {\r\n context.moveTo(startX, item.y);\r\n context.lineTo(startX + item.width, item.y);\r\n context.lineTo(startX + item.width, opts.height - opts.area[2]);\r\n context.lineTo(startX, opts.height - opts.area[2]);\r\n context.lineTo(startX, item.y);\r\n context.setLineWidth(1)\r\n context.setStrokeStyle(strokeColor);\r\n }\r\n context.setFillStyle(fillColor);\r\n context.closePath();\r\n context.fill();\r\n }\r\n }\r\n columnIndex += 1;\r\n }\r\n //绘制区域图数据\r\n if (eachSeries.type == 'area') {\r\n let splitPointList = splitPoints(points,eachSeries);\r\n for (let i = 0; i < splitPointList.length; i++) {\r\n let points = splitPointList[i];\r\n // 绘制区域数据\r\n context.beginPath();\r\n context.setStrokeStyle(eachSeries.color);\r\n context.setStrokeStyle(hexToRgb(eachSeries.color, areaOption.opacity));\r\n if (areaOption.gradient) {\r\n let gradient = context.createLinearGradient(0, opts.area[0], 0, opts.height - opts.area[2]);\r\n gradient.addColorStop('0', hexToRgb(eachSeries.color, areaOption.opacity));\r\n gradient.addColorStop('1.0', hexToRgb(\"#FFFFFF\", 0.1));\r\n context.setFillStyle(gradient);\r\n } else {\r\n context.setFillStyle(hexToRgb(eachSeries.color, areaOption.opacity));\r\n }\r\n context.setLineWidth(2 * opts.pix);\r\n if (points.length > 1) {\r\n var firstPoint = points[0];\r\n let lastPoint = points[points.length - 1];\r\n context.moveTo(firstPoint.x, firstPoint.y);\r\n let startPoint = 0;\r\n if (eachSeries.style === 'curve') {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n var ctrlPoint = createCurveControlPoints(points, j - 1);\r\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);\r\n }\r\n };\r\n } else {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n context.lineTo(item.x, item.y);\r\n }\r\n };\r\n }\r\n context.lineTo(lastPoint.x, endY);\r\n context.lineTo(firstPoint.x, endY);\r\n context.lineTo(firstPoint.x, firstPoint.y);\r\n } else {\r\n let item = points[0];\r\n context.moveTo(item.x - eachSpacing / 2, item.y);\r\n context.lineTo(item.x + eachSpacing / 2, item.y);\r\n context.lineTo(item.x + eachSpacing / 2, endY);\r\n context.lineTo(item.x - eachSpacing / 2, endY);\r\n context.moveTo(item.x - eachSpacing / 2, item.y);\r\n }\r\n context.closePath();\r\n context.fill();\r\n }\r\n }\r\n // 绘制折线数据图\r\n if (eachSeries.type == 'line') {\r\n var splitPointList = splitPoints(points,eachSeries);\r\n splitPointList.forEach(function(points, index) {\r\n if (eachSeries.lineType == 'dash') {\r\n let dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\r\n dashLength *= opts.pix;\r\n context.setLineDash([dashLength, dashLength]);\r\n }\r\n context.beginPath();\r\n context.setStrokeStyle(eachSeries.color);\r\n context.setLineWidth(2 * opts.pix);\r\n if (points.length === 1) {\r\n context.moveTo(points[0].x, points[0].y);\r\n context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);\r\n } else {\r\n context.moveTo(points[0].x, points[0].y);\r\n let startPoint = 0;\r\n if (eachSeries.style == 'curve') {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n var ctrlPoint = createCurveControlPoints(points, j - 1);\r\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y,\r\n item.x, item.y);\r\n }\r\n }\r\n } else {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n context.lineTo(item.x, item.y);\r\n }\r\n }\r\n }\r\n context.moveTo(points[0].x, points[0].y);\r\n }\r\n context.stroke();\r\n context.setLineDash([]);\r\n });\r\n }\r\n // 绘制点数据图\r\n if (eachSeries.type == 'point') {\r\n eachSeries.addPoint = true;\r\n }\r\n if (eachSeries.addPoint == true && eachSeries.type !== 'column') {\r\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\r\n }\r\n });\r\n if (opts.dataLabel !== false && process === 1) {\r\n var columnIndex = 0;\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n if (eachSeries.type !== 'column') {\r\n drawPointText(points, eachSeries, config, context, opts);\r\n } else {\r\n points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts);\r\n drawPointText(points, eachSeries, config, context, opts);\r\n columnIndex += 1;\r\n }\r\n });\r\n }\r\n context.restore();\r\n return {\r\n xAxisPoints: xAxisPoints,\r\n calPoints: calPoints,\r\n eachSpacing: eachSpacing,\r\n }\r\n}\r\n\r\n\r\nfunction drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints) {\r\n var toolTipOption = opts.extra.tooltip || {};\r\n if (toolTipOption.horizentalLine && opts.tooltip && process === 1 && (opts.type == 'line' || opts.type == 'area' || opts.type == 'column' || opts.type == 'mount' || opts.type == 'candle' || opts.type == 'mix')) {\r\n drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints)\r\n }\r\n context.save();\r\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\r\n context.translate(opts._scrollDistance_, 0);\r\n }\r\n if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\r\n drawToolTip(opts.tooltip.textList, opts.tooltip.offset, opts, config, context, eachSpacing, xAxisPoints);\r\n }\r\n context.restore();\r\n\r\n}\r\n\r\nfunction drawXAxis(categories, opts, config, context) {\r\n\r\n let xAxisData = opts.chartData.xAxisData,\r\n xAxisPoints = xAxisData.xAxisPoints,\r\n startX = xAxisData.startX,\r\n endX = xAxisData.endX,\r\n eachSpacing = xAxisData.eachSpacing;\r\n var boundaryGap = 'center';\r\n if (opts.type == 'bar' || opts.type == 'line' || opts.type == 'area'|| opts.type == 'scatter' || opts.type == 'bubble') {\r\n boundaryGap = opts.xAxis.boundaryGap;\r\n }\r\n var startY = opts.height - opts.area[2];\r\n var endY = opts.area[0];\r\n\r\n //绘制滚动条\r\n if (opts.enableScroll && opts.xAxis.scrollShow) {\r\n var scrollY = opts.height - opts.area[2] + config.xAxisHeight;\r\n var scrollScreenWidth = endX - startX;\r\n var scrollTotalWidth = eachSpacing * (xAxisPoints.length - 1);\r\n if(opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1){\r\n if(opts.extra.mount.widthRatio>2) opts.extra.mount.widthRatio = 2\r\n scrollTotalWidth += (opts.extra.mount.widthRatio - 1)*eachSpacing;\r\n }\r\n var scrollWidth = scrollScreenWidth * scrollScreenWidth / scrollTotalWidth;\r\n var scrollLeft = 0;\r\n if (opts._scrollDistance_) {\r\n scrollLeft = -opts._scrollDistance_ * (scrollScreenWidth) / scrollTotalWidth;\r\n }\r\n context.beginPath();\r\n context.setLineCap('round');\r\n context.setLineWidth(6 * opts.pix);\r\n context.setStrokeStyle(opts.xAxis.scrollBackgroundColor || \"#EFEBEF\");\r\n context.moveTo(startX, scrollY);\r\n context.lineTo(endX, scrollY);\r\n context.stroke();\r\n context.closePath();\r\n context.beginPath();\r\n context.setLineCap('round');\r\n context.setLineWidth(6 * opts.pix);\r\n context.setStrokeStyle(opts.xAxis.scrollColor || \"#A6A6A6\");\r\n context.moveTo(startX + scrollLeft, scrollY);\r\n context.lineTo(startX + scrollLeft + scrollWidth, scrollY);\r\n context.stroke();\r\n context.closePath();\r\n context.setLineCap('butt');\r\n }\r\n context.save();\r\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) {\r\n context.translate(opts._scrollDistance_, 0);\r\n }\r\n //绘制X轴刻度线\r\n if (opts.xAxis.calibration === true) {\r\n context.setStrokeStyle(opts.xAxis.gridColor || \"#cccccc\");\r\n context.setLineCap('butt');\r\n context.setLineWidth(1 * opts.pix);\r\n xAxisPoints.forEach(function(item, index) {\r\n if (index > 0) {\r\n context.beginPath();\r\n context.moveTo(item - eachSpacing / 2, startY);\r\n context.lineTo(item - eachSpacing / 2, startY + 3 * opts.pix);\r\n context.closePath();\r\n context.stroke();\r\n }\r\n });\r\n }\r\n //绘制X轴网格\r\n if (opts.xAxis.disableGrid !== true) {\r\n context.setStrokeStyle(opts.xAxis.gridColor || \"#cccccc\");\r\n context.setLineCap('butt');\r\n context.setLineWidth(1 * opts.pix);\r\n if (opts.xAxis.gridType == 'dash') {\r\n context.setLineDash([opts.xAxis.dashLength * opts.pix, opts.xAxis.dashLength * opts.pix]);\r\n }\r\n opts.xAxis.gridEval = opts.xAxis.gridEval || 1;\r\n xAxisPoints.forEach(function(item, index) {\r\n if (index % opts.xAxis.gridEval == 0) {\r\n context.beginPath();\r\n context.moveTo(item, startY);\r\n context.lineTo(item, endY);\r\n context.stroke();\r\n }\r\n });\r\n context.setLineDash([]);\r\n }\r\n //绘制X轴文案\r\n if (opts.xAxis.disabled !== true) {\r\n // 对X轴列表做抽稀处理\r\n //默认全部显示X轴标签\r\n let maxXAxisListLength = categories.length;\r\n //如果设置了X轴单屏数量\r\n if (opts.xAxis.labelCount) {\r\n //如果设置X轴密度\r\n if (opts.xAxis.itemCount) {\r\n maxXAxisListLength = Math.ceil(categories.length / opts.xAxis.itemCount * opts.xAxis.labelCount);\r\n } else {\r\n maxXAxisListLength = opts.xAxis.labelCount;\r\n }\r\n maxXAxisListLength -= 1;\r\n }\r\n\r\n let ratio = Math.ceil(categories.length / maxXAxisListLength);\r\n\r\n let newCategories = [];\r\n let cgLength = categories.length;\r\n for (let i = 0; i < cgLength; i++) {\r\n if (i % ratio !== 0) {\r\n newCategories.push(\"\");\r\n } else {\r\n newCategories.push(categories[i]);\r\n }\r\n }\r\n newCategories[cgLength - 1] = categories[cgLength - 1];\r\n var xAxisFontSize = opts.xAxis.fontSize * opts.pix || config.fontSize;\r\n if (config._xAxisTextAngle_ === 0) {\r\n newCategories.forEach(function(item, index) {\r\n var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item,index,opts) : item;\r\n var offset = -measureText(String(xitem), xAxisFontSize, context) / 2;\r\n if (boundaryGap == 'center') {\r\n offset += eachSpacing / 2;\r\n }\r\n var scrollHeight = 0;\r\n if (opts.xAxis.scrollShow) {\r\n scrollHeight = 6 * opts.pix;\r\n }\r\n context.beginPath();\r\n context.setFontSize(xAxisFontSize);\r\n context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);\r\n context.fillText(String(xitem), xAxisPoints[index] + offset, startY + xAxisFontSize + (config.xAxisHeight - scrollHeight - xAxisFontSize) / 2);\r\n context.closePath();\r\n context.stroke();\r\n });\r\n } else {\r\n newCategories.forEach(function(item, index) {\r\n var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item) : item;\r\n context.save();\r\n context.beginPath();\r\n context.setFontSize(xAxisFontSize);\r\n context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);\r\n var textWidth = measureText(String(xitem), xAxisFontSize, context);\r\n var offsetX = xAxisPoints[index];\r\n if (boundaryGap == 'center') {\r\n offsetX = xAxisPoints[index] + eachSpacing / 2;\r\n }\r\n var scrollHeight = 0;\r\n if (opts.xAxis.scrollShow) {\r\n scrollHeight = 6 * opts.pix;\r\n }\r\n var offsetY = startY + 6 * opts.pix + xAxisFontSize - xAxisFontSize * Math.abs(Math.sin(config._xAxisTextAngle_));\r\n if(opts.xAxis.rotateAngle < 0){\r\n offsetX -= xAxisFontSize / 2;\r\n textWidth = 0;\r\n }else{\r\n offsetX += xAxisFontSize / 2;\r\n textWidth = -textWidth;\r\n }\r\n context.translate(offsetX, offsetY);\r\n context.rotate(-1 * config._xAxisTextAngle_);\r\n context.fillText(String(xitem), textWidth , 0 );\r\n context.closePath();\r\n context.stroke();\r\n context.restore();\r\n });\r\n }\r\n }\r\n context.restore();\r\n //绘制X轴轴线\r\n if (opts.xAxis.axisLine) {\r\n context.beginPath();\r\n context.setStrokeStyle(opts.xAxis.axisLineColor);\r\n context.setLineWidth(1 * opts.pix);\r\n context.moveTo(startX, opts.height - opts.area[2]);\r\n context.lineTo(endX, opts.height - opts.area[2]);\r\n context.stroke();\r\n }\r\n}\r\n\r\nfunction drawYAxisGrid(categories, opts, config, context) {\r\n if (opts.yAxis.disableGrid === true) {\r\n return;\r\n }\r\n let spacingValid = opts.height - opts.area[0] - opts.area[2];\r\n let eachSpacing = spacingValid / opts.yAxis.splitNumber;\r\n let startX = opts.area[3];\r\n let xAxisPoints = opts.chartData.xAxisData.xAxisPoints,\r\n xAxiseachSpacing = opts.chartData.xAxisData.eachSpacing;\r\n let TotalWidth = xAxiseachSpacing * (xAxisPoints.length - 1);\r\n if(opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1 ){\r\n if(opts.extra.mount.widthRatio>2) opts.extra.mount.widthRatio = 2\r\n TotalWidth += (opts.extra.mount.widthRatio - 1)*xAxiseachSpacing;\r\n }\r\n let endX = startX + TotalWidth;\r\n let points = [];\r\n let startY = 1\r\n if (opts.xAxis.axisLine === false) {\r\n startY = 0\r\n }\r\n for (let i = startY; i < opts.yAxis.splitNumber + 1; i++) {\r\n points.push(opts.height - opts.area[2] - eachSpacing * i);\r\n }\r\n context.save();\r\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) {\r\n context.translate(opts._scrollDistance_, 0);\r\n }\r\n if (opts.yAxis.gridType == 'dash') {\r\n context.setLineDash([opts.yAxis.dashLength * opts.pix, opts.yAxis.dashLength * opts.pix]);\r\n }\r\n context.setStrokeStyle(opts.yAxis.gridColor);\r\n context.setLineWidth(1 * opts.pix);\r\n points.forEach(function(item, index) {\r\n context.beginPath();\r\n context.moveTo(startX, item);\r\n context.lineTo(endX, item);\r\n context.stroke();\r\n });\r\n context.setLineDash([]);\r\n context.restore();\r\n}\r\n\r\nfunction drawYAxis(series, opts, config, context) {\r\n if (opts.yAxis.disabled === true) {\r\n return;\r\n }\r\n var spacingValid = opts.height - opts.area[0] - opts.area[2];\r\n var eachSpacing = spacingValid / opts.yAxis.splitNumber;\r\n var startX = opts.area[3];\r\n var endX = opts.width - opts.area[1];\r\n var endY = opts.height - opts.area[2];\r\n var fillEndY = endY + config.xAxisHeight;\r\n if (opts.xAxis.scrollShow) {\r\n fillEndY -= 3 * opts.pix;\r\n }\r\n if (opts.xAxis.rotateLabel) {\r\n fillEndY = opts.height - opts.area[2] + opts.fontSize * opts.pix / 2;\r\n }\r\n // set YAxis background\r\n context.beginPath();\r\n context.setFillStyle(opts.background);\r\n if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'left') {\r\n context.fillRect(0, 0, startX, fillEndY);\r\n }\r\n if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'right') {\r\n context.fillRect(endX, 0, opts.width, fillEndY);\r\n }\r\n context.closePath();\r\n context.stroke();\r\n \r\n let tStartLeft = opts.area[3];\r\n let tStartRight = opts.width - opts.area[1];\r\n let tStartCenter = opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2;\r\n if (opts.yAxis.data) {\r\n for (let i = 0; i < opts.yAxis.data.length; i++) {\r\n let yData = opts.yAxis.data[i];\r\n var points = [];\r\n if(yData.type === 'categories'){\r\n for (let i = 0; i <= yData.categories.length; i++) {\r\n points.push(opts.area[0] + spacingValid / yData.categories.length / 2 + spacingValid / yData.categories.length * i);\r\n }\r\n }else{\r\n for (let i = 0; i <= opts.yAxis.splitNumber; i++) {\r\n points.push(opts.area[0] + eachSpacing * i);\r\n }\r\n }\r\n if (yData.disabled !== true) {\r\n let rangesFormat = opts.chartData.yAxisData.rangesFormat[i];\r\n let yAxisFontSize = yData.fontSize ? yData.fontSize * opts.pix : config.fontSize;\r\n let yAxisWidth = opts.chartData.yAxisData.yAxisWidth[i];\r\n let textAlign = yData.textAlign || \"right\";\r\n //画Y轴刻度及文案\r\n rangesFormat.forEach(function(item, index) {\r\n var pos = points[index];\r\n context.beginPath();\r\n context.setFontSize(yAxisFontSize);\r\n context.setLineWidth(1 * opts.pix);\r\n context.setStrokeStyle(yData.axisLineColor || '#cccccc');\r\n context.setFillStyle(yData.fontColor || opts.fontColor);\r\n let tmpstrat = 0;\r\n let gapwidth = 4 * opts.pix;\r\n if (yAxisWidth.position == 'left') {\r\n //画刻度线\r\n if (yData.calibration == true) {\r\n context.moveTo(tStartLeft, pos);\r\n context.lineTo(tStartLeft - 3 * opts.pix, pos);\r\n gapwidth += 3 * opts.pix;\r\n }\r\n //画文字\r\n switch (textAlign) {\r\n case \"left\":\r\n context.setTextAlign('left');\r\n tmpstrat = tStartLeft - yAxisWidth.width\r\n break;\r\n case \"right\":\r\n context.setTextAlign('right');\r\n tmpstrat = tStartLeft - gapwidth\r\n break;\r\n default:\r\n context.setTextAlign('center');\r\n tmpstrat = tStartLeft - yAxisWidth.width / 2\r\n }\r\n context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\r\n\r\n } else if (yAxisWidth.position == 'right') {\r\n //画刻度线\r\n if (yData.calibration == true) {\r\n context.moveTo(tStartRight, pos);\r\n context.lineTo(tStartRight + 3 * opts.pix, pos);\r\n gapwidth += 3 * opts.pix;\r\n }\r\n switch (textAlign) {\r\n case \"left\":\r\n context.setTextAlign('left');\r\n tmpstrat = tStartRight + gapwidth\r\n break;\r\n case \"right\":\r\n context.setTextAlign('right');\r\n tmpstrat = tStartRight + yAxisWidth.width\r\n break;\r\n default:\r\n context.setTextAlign('center');\r\n tmpstrat = tStartRight + yAxisWidth.width / 2\r\n }\r\n context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\r\n } else if (yAxisWidth.position == 'center') {\r\n //画刻度线\r\n if (yData.calibration == true) {\r\n context.moveTo(tStartCenter, pos);\r\n context.lineTo(tStartCenter - 3 * opts.pix, pos);\r\n gapwidth += 3 * opts.pix;\r\n }\r\n //画文字\r\n switch (textAlign) {\r\n case \"left\":\r\n context.setTextAlign('left');\r\n tmpstrat = tStartCenter - yAxisWidth.width\r\n break;\r\n case \"right\":\r\n context.setTextAlign('right');\r\n tmpstrat = tStartCenter - gapwidth\r\n break;\r\n default:\r\n context.setTextAlign('center');\r\n tmpstrat = tStartCenter - yAxisWidth.width / 2\r\n }\r\n context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\r\n }\r\n context.closePath();\r\n context.stroke();\r\n context.setTextAlign('left');\r\n });\r\n //画Y轴轴线\r\n if (yData.axisLine !== false) {\r\n context.beginPath();\r\n context.setStrokeStyle(yData.axisLineColor || '#cccccc');\r\n context.setLineWidth(1 * opts.pix);\r\n if (yAxisWidth.position == 'left') {\r\n context.moveTo(tStartLeft, opts.height - opts.area[2]);\r\n context.lineTo(tStartLeft, opts.area[0]);\r\n } else if (yAxisWidth.position == 'right') {\r\n context.moveTo(tStartRight, opts.height - opts.area[2]);\r\n context.lineTo(tStartRight, opts.area[0]);\r\n } else if (yAxisWidth.position == 'center') {\r\n context.moveTo(tStartCenter, opts.height - opts.area[2]);\r\n context.lineTo(tStartCenter, opts.area[0]);\r\n }\r\n context.stroke();\r\n }\r\n //画Y轴标题\r\n if (opts.yAxis.showTitle) {\r\n let titleFontSize = yData.titleFontSize * opts.pix || config.fontSize;\r\n let title = yData.title;\r\n context.beginPath();\r\n context.setFontSize(titleFontSize);\r\n context.setFillStyle(yData.titleFontColor || opts.fontColor);\r\n if (yAxisWidth.position == 'left') {\r\n context.fillText(title, tStartLeft - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\r\n } else if (yAxisWidth.position == 'right') {\r\n context.fillText(title, tStartRight - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\r\n } else if (yAxisWidth.position == 'center') {\r\n context.fillText(title, tStartCenter - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\r\n }\r\n context.closePath();\r\n context.stroke();\r\n }\r\n if (yAxisWidth.position == 'left') {\r\n tStartLeft -= (yAxisWidth.width + opts.yAxis.padding * opts.pix);\r\n } else {\r\n tStartRight += yAxisWidth.width + opts.yAxis.padding * opts.pix;\r\n }\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nfunction drawLegend(series, opts, config, context, chartData) {\r\n if (opts.legend.show === false) {\r\n return;\r\n }\r\n let legendData = chartData.legendData;\r\n let legendList = legendData.points;\r\n let legendArea = legendData.area;\r\n let padding = opts.legend.padding * opts.pix;\r\n let fontSize = opts.legend.fontSize * opts.pix;\r\n let shapeWidth = 15 * opts.pix;\r\n let shapeRight = 5 * opts.pix;\r\n let itemGap = opts.legend.itemGap * opts.pix;\r\n let lineHeight = Math.max(opts.legend.lineHeight * opts.pix, fontSize);\r\n //画背景及边框\r\n context.beginPath();\r\n context.setLineWidth(opts.legend.borderWidth * opts.pix);\r\n context.setStrokeStyle(opts.legend.borderColor);\r\n context.setFillStyle(opts.legend.backgroundColor);\r\n context.moveTo(legendArea.start.x, legendArea.start.y);\r\n context.rect(legendArea.start.x, legendArea.start.y, legendArea.width, legendArea.height);\r\n context.closePath();\r\n context.fill();\r\n context.stroke();\r\n legendList.forEach(function(itemList, listIndex) {\r\n let width = 0;\r\n let height = 0;\r\n width = legendData.widthArr[listIndex];\r\n height = legendData.heightArr[listIndex];\r\n let startX = 0;\r\n let startY = 0;\r\n if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\r\n switch (opts.legend.float) {\r\n case 'left':\r\n startX = legendArea.start.x + padding;\r\n break;\r\n case 'right':\r\n startX = legendArea.start.x + legendArea.width - width;\r\n break;\r\n default:\r\n startX = legendArea.start.x + (legendArea.width - width) / 2;\r\n }\r\n startY = legendArea.start.y + padding + listIndex * lineHeight;\r\n } else {\r\n if (listIndex == 0) {\r\n width = 0;\r\n } else {\r\n width = legendData.widthArr[listIndex - 1];\r\n }\r\n startX = legendArea.start.x + padding + width;\r\n startY = legendArea.start.y + padding + (legendArea.height - height) / 2;\r\n }\r\n context.setFontSize(config.fontSize);\r\n for (let i = 0; i < itemList.length; i++) {\r\n let item = itemList[i];\r\n item.area = [0, 0, 0, 0];\r\n item.area[0] = startX;\r\n item.area[1] = startY;\r\n item.area[3] = startY + lineHeight;\r\n context.beginPath();\r\n context.setLineWidth(1 * opts.pix);\r\n context.setStrokeStyle(item.show ? item.color : opts.legend.hiddenColor);\r\n context.setFillStyle(item.show ? item.color : opts.legend.hiddenColor);\r\n switch (item.legendShape) {\r\n case 'line':\r\n context.moveTo(startX, startY + 0.5 * lineHeight - 2 * opts.pix);\r\n context.fillRect(startX, startY + 0.5 * lineHeight - 2 * opts.pix, 15 * opts.pix, 4 * opts.pix);\r\n break;\r\n case 'triangle':\r\n context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\r\n context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\r\n context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\r\n context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\r\n break;\r\n case 'diamond':\r\n context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\r\n context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * lineHeight);\r\n context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\r\n context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * lineHeight);\r\n context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\r\n break;\r\n case 'circle':\r\n context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight);\r\n context.arc(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight, 5 * opts.pix, 0, 2 * Math.PI);\r\n break;\r\n case 'rect':\r\n context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pix);\r\n context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix);\r\n break;\r\n case 'square':\r\n context.moveTo(startX + 5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\r\n context.fillRect(startX + 5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix, 10 * opts.pix, 10 * opts.pix);\r\n break;\r\n case 'none':\r\n break;\r\n default:\r\n context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pix);\r\n context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix);\r\n }\r\n context.closePath();\r\n context.fill();\r\n context.stroke();\r\n startX += shapeWidth + shapeRight;\r\n let fontTrans = 0.5 * lineHeight + 0.5 * fontSize - 2;\r\n const legendText = item.legendText ? item.legendText : item.name;\r\n context.beginPath();\r\n context.setFontSize(fontSize);\r\n context.setFillStyle(item.show ? opts.legend.fontColor : opts.legend.hiddenColor);\r\n context.fillText(legendText, startX, startY + fontTrans);\r\n context.closePath();\r\n context.stroke();\r\n if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\r\n startX += measureText(legendText, fontSize, context) + itemGap;\r\n item.area[2] = startX;\r\n } else {\r\n item.area[2] = startX + measureText(legendText, fontSize, context) + itemGap;;\r\n startX -= shapeWidth + shapeRight;\r\n startY += lineHeight;\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction drawPieDataPoints(series, opts, config, context) {\r\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n var pieOption = assign({}, {\r\n activeOpacity: 0.5,\r\n activeRadius: 10,\r\n offsetAngle: 0,\r\n labelWidth: 15,\r\n ringWidth: 30,\r\n customRadius: 0,\r\n border: false,\r\n borderWidth: 2,\r\n borderColor: '#FFFFFF',\r\n centerColor: '#FFFFFF',\r\n linearType: 'none',\r\n customColor: [],\r\n }, opts.type == \"pie\" ? opts.extra.pie : opts.extra.ring);\r\n var centerPosition = {\r\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\r\n y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2\r\n };\r\n if (config.pieChartLinePadding == 0) {\r\n config.pieChartLinePadding = pieOption.activeRadius * opts.pix;\r\n }\r\n\r\n var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding);\r\n radius = radius < 10 ? 10 : radius;\r\n if (pieOption.customRadius > 0) {\r\n radius = pieOption.customRadius * opts.pix;\r\n }\r\n series = getPieDataPoints(series, radius, process);\r\n var activeRadius = pieOption.activeRadius * opts.pix;\r\n pieOption.customColor = fillCustomColor(pieOption.linearType, pieOption.customColor, series, config);\r\n series = series.map(function(eachSeries) {\r\n eachSeries._start_ += (pieOption.offsetAngle) * Math.PI / 180;\r\n return eachSeries;\r\n });\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n if (opts.tooltip) {\r\n if (opts.tooltip.index == seriesIndex) {\r\n context.beginPath();\r\n context.setFillStyle(hexToRgb(eachSeries.color, pieOption.activeOpacity || 0.5));\r\n context.moveTo(centerPosition.x, centerPosition.y);\r\n context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_ + activeRadius, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI);\r\n context.closePath();\r\n context.fill();\r\n }\r\n }\r\n context.beginPath();\r\n context.setLineWidth(pieOption.borderWidth * opts.pix);\r\n context.lineJoin = \"round\";\r\n context.setStrokeStyle(pieOption.borderColor);\r\n var fillcolor = eachSeries.color;\r\n if (pieOption.linearType == 'custom') {\r\n var grd;\r\n if(context.createCircularGradient){\r\n grd = context.createCircularGradient(centerPosition.x, centerPosition.y, eachSeries._radius_)\r\n }else{\r\n grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0,centerPosition.x, centerPosition.y, eachSeries._radius_)\r\n }\r\n grd.addColorStop(0, hexToRgb(pieOption.customColor[eachSeries.linearIndex], 1))\r\n grd.addColorStop(1, hexToRgb(eachSeries.color, 1))\r\n fillcolor = grd\r\n }\r\n context.setFillStyle(fillcolor);\r\n context.moveTo(centerPosition.x, centerPosition.y);\r\n context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI);\r\n context.closePath();\r\n context.fill();\r\n if (pieOption.border == true) {\r\n context.stroke();\r\n }\r\n });\r\n if (opts.type === 'ring') {\r\n var innerPieWidth = radius * 0.6;\r\n if (typeof pieOption.ringWidth === 'number' && pieOption.ringWidth > 0) {\r\n innerPieWidth = Math.max(0, radius - pieOption.ringWidth * opts.pix);\r\n }\r\n context.beginPath();\r\n context.setFillStyle(pieOption.centerColor);\r\n context.moveTo(centerPosition.x, centerPosition.y);\r\n context.arc(centerPosition.x, centerPosition.y, innerPieWidth, 0, 2 * Math.PI);\r\n context.closePath();\r\n context.fill();\r\n }\r\n if (opts.dataLabel !== false && process === 1) {\r\n drawPieText(series, opts, config, context, radius, centerPosition);\r\n }\r\n if (process === 1 && opts.type === 'ring') {\r\n drawRingTitle(opts, config, context, centerPosition);\r\n }\r\n return {\r\n center: centerPosition,\r\n radius: radius,\r\n series: series\r\n };\r\n}\r\n\r\nfunction drawRoseDataPoints(series, opts, config, context) {\r\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n var roseOption = assign({}, {\r\n type: 'area',\r\n activeOpacity: 0.5,\r\n activeRadius: 10,\r\n offsetAngle: 0,\r\n labelWidth: 15,\r\n border: false,\r\n borderWidth: 2,\r\n borderColor: '#FFFFFF',\r\n linearType: 'none',\r\n customColor: [],\r\n }, opts.extra.rose);\r\n if (config.pieChartLinePadding == 0) {\r\n config.pieChartLinePadding = roseOption.activeRadius * opts.pix;\r\n }\r\n var centerPosition = {\r\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\r\n y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2\r\n };\r\n var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding);\r\n radius = radius < 10 ? 10 : radius;\r\n var minRadius = roseOption.minRadius || radius * 0.5;\r\n series = getRoseDataPoints(series, roseOption.type, minRadius, radius, process);\r\n var activeRadius = roseOption.activeRadius * opts.pix;\r\n roseOption.customColor = fillCustomColor(roseOption.linearType, roseOption.customColor, series, config);\r\n series = series.map(function(eachSeries) {\r\n eachSeries._start_ += (roseOption.offsetAngle || 0) * Math.PI / 180;\r\n return eachSeries;\r\n });\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n if (opts.tooltip) {\r\n if (opts.tooltip.index == seriesIndex) {\r\n context.beginPath();\r\n context.setFillStyle(hexToRgb(eachSeries.color, roseOption.activeOpacity || 0.5));\r\n context.moveTo(centerPosition.x, centerPosition.y);\r\n context.arc(centerPosition.x, centerPosition.y, activeRadius + eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI);\r\n context.closePath();\r\n context.fill();\r\n }\r\n }\r\n context.beginPath();\r\n context.setLineWidth(roseOption.borderWidth * opts.pix);\r\n context.lineJoin = \"round\";\r\n context.setStrokeStyle(roseOption.borderColor);\r\n var fillcolor = eachSeries.color;\r\n if (roseOption.linearType == 'custom') {\r\n var grd;\r\n if(context.createCircularGradient){\r\n grd = context.createCircularGradient(centerPosition.x, centerPosition.y, eachSeries._radius_)\r\n }else{\r\n grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0,centerPosition.x, centerPosition.y, eachSeries._radius_)\r\n }\r\n grd.addColorStop(0, hexToRgb(roseOption.customColor[eachSeries.linearIndex], 1))\r\n grd.addColorStop(1, hexToRgb(eachSeries.color, 1))\r\n fillcolor = grd\r\n }\r\n context.setFillStyle(fillcolor);\r\n context.moveTo(centerPosition.x, centerPosition.y);\r\n context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI);\r\n context.closePath();\r\n context.fill();\r\n if (roseOption.border == true) {\r\n context.stroke();\r\n }\r\n });\r\n\r\n if (opts.dataLabel !== false && process === 1) {\r\n drawPieText(series, opts, config, context, radius, centerPosition);\r\n }\r\n return {\r\n center: centerPosition,\r\n radius: radius,\r\n series: series\r\n };\r\n}\r\n\r\nfunction drawArcbarDataPoints(series, opts, config, context) {\r\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n var arcbarOption = assign({}, {\r\n startAngle: 0.75,\r\n endAngle: 0.25,\r\n type: 'default',\r\n lineCap: 'round',\r\n width: 12 ,\r\n gap: 2 ,\r\n linearType: 'none',\r\n customColor: [],\r\n }, opts.extra.arcbar);\r\n series = getArcbarDataPoints(series, arcbarOption, process);\r\n var centerPosition;\r\n if (arcbarOption.centerX || arcbarOption.centerY) {\r\n centerPosition = {\r\n x: arcbarOption.centerX ? arcbarOption.centerX : opts.width / 2,\r\n y: arcbarOption.centerY ? arcbarOption.centerY : opts.height / 2\r\n };\r\n } else {\r\n centerPosition = {\r\n x: opts.width / 2,\r\n y: opts.height / 2\r\n };\r\n }\r\n var radius;\r\n if (arcbarOption.radius) {\r\n radius = arcbarOption.radius;\r\n } else {\r\n radius = Math.min(centerPosition.x, centerPosition.y);\r\n radius -= 5 * opts.pix;\r\n radius -= arcbarOption.width / 2;\r\n }\r\n radius = radius < 10 ? 10 : radius;\r\n arcbarOption.customColor = fillCustomColor(arcbarOption.linearType, arcbarOption.customColor, series, config);\r\n \r\n for (let i = 0; i < series.length; i++) {\r\n let eachSeries = series[i];\r\n //背景颜色\r\n context.setLineWidth(arcbarOption.width * opts.pix);\r\n context.setStrokeStyle(arcbarOption.backgroundColor || '#E9E9E9');\r\n context.setLineCap(arcbarOption.lineCap);\r\n context.beginPath();\r\n if (arcbarOption.type == 'default') {\r\n context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, arcbarOption.endAngle * Math.PI, false);\r\n } else {\r\n context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, 0, 2 * Math.PI, false);\r\n }\r\n context.stroke();\r\n //进度条\r\n var fillColor = eachSeries.color\r\n if(arcbarOption.linearType == 'custom'){\r\n var grd = context.createLinearGradient(centerPosition.x - radius, centerPosition.y, centerPosition.x + radius, centerPosition.y);\r\n grd.addColorStop(1, hexToRgb(arcbarOption.customColor[eachSeries.linearIndex], 1))\r\n grd.addColorStop(0, hexToRgb(eachSeries.color, 1))\r\n fillColor = grd;\r\n }\r\n context.setLineWidth(arcbarOption.width * opts.pix);\r\n context.setStrokeStyle(fillColor);\r\n context.setLineCap(arcbarOption.lineCap);\r\n context.beginPath();\r\n context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, eachSeries._proportion_ * Math.PI, false);\r\n context.stroke();\r\n }\r\n drawRingTitle(opts, config, context, centerPosition);\r\n return {\r\n center: centerPosition,\r\n radius: radius,\r\n series: series\r\n };\r\n}\r\n\r\nfunction drawGaugeDataPoints(categories, series, opts, config, context) {\r\n var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\r\n var gaugeOption = assign({}, {\r\n type: 'default',\r\n startAngle: 0.75,\r\n endAngle: 0.25,\r\n width: 15,\r\n labelOffset:13,\r\n splitLine: {\r\n fixRadius: 0,\r\n splitNumber: 10,\r\n width: 15,\r\n color: '#FFFFFF',\r\n childNumber: 5,\r\n childWidth: 5\r\n },\r\n pointer: {\r\n width: 15,\r\n color: 'auto'\r\n }\r\n }, opts.extra.gauge);\r\n if (gaugeOption.oldAngle == undefined) {\r\n gaugeOption.oldAngle = gaugeOption.startAngle;\r\n }\r\n if (gaugeOption.oldData == undefined) {\r\n gaugeOption.oldData = 0;\r\n }\r\n categories = getGaugeAxisPoints(categories, gaugeOption.startAngle, gaugeOption.endAngle);\r\n var centerPosition = {\r\n x: opts.width / 2,\r\n y: opts.height / 2\r\n };\r\n var radius = Math.min(centerPosition.x, centerPosition.y);\r\n radius -= 5 * opts.pix;\r\n radius -= gaugeOption.width / 2;\r\n radius = radius < 10 ? 10 : radius;\r\n var innerRadius = radius - gaugeOption.width;\r\n var totalAngle = 0;\r\n //判断仪表盘的样式:default百度样式,progress新样式\r\n if (gaugeOption.type == 'progress') {\r\n //## 第一步画中心圆形背景和进度条背景\r\n //中心圆形背景\r\n var pieRadius = radius - gaugeOption.width * 3;\r\n context.beginPath();\r\n let gradient = context.createLinearGradient(centerPosition.x, centerPosition.y - pieRadius, centerPosition.x, centerPosition.y + pieRadius);\r\n //配置渐变填充(起点:中心点向上减半径;结束点中心点向下加半径)\r\n gradient.addColorStop('0', hexToRgb(series[0].color, 0.3));\r\n gradient.addColorStop('1.0', hexToRgb(\"#FFFFFF\", 0.1));\r\n context.setFillStyle(gradient);\r\n context.arc(centerPosition.x, centerPosition.y, pieRadius, 0, 2 * Math.PI, false);\r\n context.fill();\r\n //画进度条背景\r\n context.setLineWidth(gaugeOption.width);\r\n context.setStrokeStyle(hexToRgb(series[0].color, 0.3));\r\n context.setLineCap('round');\r\n context.beginPath();\r\n context.arc(centerPosition.x, centerPosition.y, innerRadius, gaugeOption.startAngle * Math.PI, gaugeOption.endAngle * Math.PI, false);\r\n context.stroke();\r\n //## 第二步画刻度线\r\n totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\r\n let splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\r\n let childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber;\r\n let startX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius;\r\n let endX = -radius - gaugeOption.width - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width;\r\n context.save();\r\n context.translate(centerPosition.x, centerPosition.y);\r\n context.rotate((gaugeOption.startAngle - 1) * Math.PI);\r\n let len = gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1;\r\n let proc = series[0].data * process;\r\n for (let i = 0; i < len; i++) {\r\n context.beginPath();\r\n //刻度线随进度变色\r\n if (proc > (i / len)) {\r\n context.setStrokeStyle(hexToRgb(series[0].color, 1));\r\n } else {\r\n context.setStrokeStyle(hexToRgb(series[0].color, 0.3));\r\n }\r\n context.setLineWidth(3 * opts.pix);\r\n context.moveTo(startX, 0);\r\n context.lineTo(endX, 0);\r\n context.stroke();\r\n context.rotate(childAngle * Math.PI);\r\n }\r\n context.restore();\r\n //## 第三步画进度条\r\n series = getGaugeArcbarDataPoints(series, gaugeOption, process);\r\n context.setLineWidth(gaugeOption.width);\r\n context.setStrokeStyle(series[0].color);\r\n context.setLineCap('round');\r\n context.beginPath();\r\n context.arc(centerPosition.x, centerPosition.y, innerRadius, gaugeOption.startAngle * Math.PI, series[0]._proportion_ * Math.PI, false);\r\n context.stroke();\r\n //## 第四步画指针\r\n let pointerRadius = radius - gaugeOption.width * 2.5;\r\n context.save();\r\n context.translate(centerPosition.x, centerPosition.y);\r\n context.rotate((series[0]._proportion_ - 1) * Math.PI);\r\n context.beginPath();\r\n context.setLineWidth(gaugeOption.width / 3);\r\n let gradient3 = context.createLinearGradient(0, -pointerRadius * 0.6, 0, pointerRadius * 0.6);\r\n gradient3.addColorStop('0', hexToRgb('#FFFFFF', 0));\r\n gradient3.addColorStop('0.5', hexToRgb(series[0].color, 1));\r\n gradient3.addColorStop('1.0', hexToRgb('#FFFFFF', 0));\r\n context.setStrokeStyle(gradient3);\r\n context.arc(0, 0, pointerRadius, 0.85 * Math.PI, 1.15 * Math.PI, false);\r\n context.stroke();\r\n context.beginPath();\r\n context.setLineWidth(1);\r\n context.setStrokeStyle(series[0].color);\r\n context.setFillStyle(series[0].color);\r\n context.moveTo(-pointerRadius - gaugeOption.width / 3 / 2, -4);\r\n context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2 - 4, 0);\r\n context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2, 4);\r\n context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2, -4);\r\n context.stroke();\r\n context.fill();\r\n context.restore();\r\n //default百度样式\r\n } else {\r\n //画背景\r\n context.setLineWidth(gaugeOption.width);\r\n context.setLineCap('butt');\r\n for (let i = 0; i < categories.length; i++) {\r\n let eachCategories = categories[i];\r\n context.beginPath();\r\n context.setStrokeStyle(eachCategories.color);\r\n context.arc(centerPosition.x, centerPosition.y, radius, eachCategories._startAngle_ * Math.PI, eachCategories._endAngle_ * Math.PI, false);\r\n context.stroke();\r\n }\r\n context.save();\r\n //画刻度线\r\n totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\r\n let splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\r\n let childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber;\r\n let startX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius;\r\n let endX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width;\r\n let childendX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.childWidth;\r\n context.translate(centerPosition.x, centerPosition.y);\r\n context.rotate((gaugeOption.startAngle - 1) * Math.PI);\r\n for (let i = 0; i < gaugeOption.splitLine.splitNumber + 1; i++) {\r\n context.beginPath();\r\n context.setStrokeStyle(gaugeOption.splitLine.color);\r\n context.setLineWidth(2 * opts.pix);\r\n context.moveTo(startX, 0);\r\n context.lineTo(endX, 0);\r\n context.stroke();\r\n context.rotate(splitAngle * Math.PI);\r\n }\r\n context.restore();\r\n context.save();\r\n context.translate(centerPosition.x, centerPosition.y);\r\n context.rotate((gaugeOption.startAngle - 1) * Math.PI);\r\n for (let i = 0; i < gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1; i++) {\r\n context.beginPath();\r\n context.setStrokeStyle(gaugeOption.splitLine.color);\r\n context.setLineWidth(1 * opts.pix);\r\n context.moveTo(startX, 0);\r\n context.lineTo(childendX, 0);\r\n context.stroke();\r\n context.rotate(childAngle * Math.PI);\r\n }\r\n context.restore();\r\n //画指针\r\n series = getGaugeDataPoints(series, categories, gaugeOption, process);\r\n for (let i = 0; i < series.length; i++) {\r\n let eachSeries = series[i];\r\n context.save();\r\n context.translate(centerPosition.x, centerPosition.y);\r\n context.rotate((eachSeries._proportion_ - 1) * Math.PI);\r\n context.beginPath();\r\n context.setFillStyle(eachSeries.color);\r\n context.moveTo(gaugeOption.pointer.width, 0);\r\n context.lineTo(0, -gaugeOption.pointer.width / 2);\r\n context.lineTo(-innerRadius, 0);\r\n context.lineTo(0, gaugeOption.pointer.width / 2);\r\n context.lineTo(gaugeOption.pointer.width, 0);\r\n context.closePath();\r\n context.fill();\r\n context.beginPath();\r\n context.setFillStyle('#FFFFFF');\r\n context.arc(0, 0, gaugeOption.pointer.width / 6, 0, 2 * Math.PI, false);\r\n context.fill();\r\n context.restore();\r\n }\r\n if (opts.dataLabel !== false) {\r\n drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context);\r\n }\r\n }\r\n //画仪表盘标题,副标题\r\n drawRingTitle(opts, config, context, centerPosition);\r\n if (process === 1 && opts.type === 'gauge') {\r\n opts.extra.gauge.oldAngle = series[0]._proportion_;\r\n opts.extra.gauge.oldData = series[0].data;\r\n }\r\n return {\r\n center: centerPosition,\r\n radius: radius,\r\n innerRadius: innerRadius,\r\n categories: categories,\r\n totalAngle: totalAngle\r\n };\r\n}\r\n\r\nfunction drawRadarDataPoints(series, opts, config, context) {\r\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n var radarOption = assign({}, {\r\n gridColor: '#cccccc',\r\n gridType: 'radar',\r\n gridEval:1,\r\n axisLabel:false,\r\n axisLabelTofix:0,\r\n labelColor:'#666666',\r\n labelPointShow:false,\r\n labelPointRadius:3,\r\n labelPointColor:'#cccccc',\r\n opacity: 0.2,\r\n gridCount: 3,\r\n border:false,\r\n borderWidth:2,\r\n linearType: 'none',\r\n customColor: [],\r\n }, opts.extra.radar);\r\n var coordinateAngle = getRadarCoordinateSeries(opts.categories.length);\r\n var centerPosition = {\r\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\r\n y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2\r\n };\r\n var xr = (opts.width - opts.area[1] - opts.area[3]) / 2\r\n var yr = (opts.height - opts.area[0] - opts.area[2]) / 2\r\n var radius = Math.min(xr - (getMaxTextListLength(opts.categories, config.fontSize, context) + config.radarLabelTextMargin), yr - config.radarLabelTextMargin);\r\n radius -= config.radarLabelTextMargin * opts.pix;\r\n radius = radius < 10 ? 10 : radius;\r\n // 画分割线\r\n context.beginPath();\r\n context.setLineWidth(1 * opts.pix);\r\n context.setStrokeStyle(radarOption.gridColor);\r\n coordinateAngle.forEach(function(angle,index) {\r\n var pos = convertCoordinateOrigin(radius * Math.cos(angle), radius * Math.sin(angle), centerPosition);\r\n context.moveTo(centerPosition.x, centerPosition.y);\r\n if (index % radarOption.gridEval == 0) {\r\n context.lineTo(pos.x, pos.y);\r\n }\r\n });\r\n context.stroke();\r\n context.closePath();\r\n \r\n // 画背景网格\r\n var _loop = function _loop(i) {\r\n var startPos = {};\r\n context.beginPath();\r\n context.setLineWidth(1 * opts.pix);\r\n context.setStrokeStyle(radarOption.gridColor);\r\n if (radarOption.gridType == 'radar') {\r\n coordinateAngle.forEach(function(angle, index) {\r\n var pos = convertCoordinateOrigin(radius / radarOption.gridCount * i * Math.cos(angle), radius /\r\n radarOption.gridCount * i * Math.sin(angle), centerPosition);\r\n if (index === 0) {\r\n startPos = pos;\r\n context.moveTo(pos.x, pos.y);\r\n } else {\r\n context.lineTo(pos.x, pos.y);\r\n }\r\n });\r\n context.lineTo(startPos.x, startPos.y);\r\n } else {\r\n var pos = convertCoordinateOrigin(radius / radarOption.gridCount * i * Math.cos(1.5), radius / radarOption.gridCount * i * Math.sin(1.5), centerPosition);\r\n context.arc(centerPosition.x, centerPosition.y, centerPosition.y - pos.y, 0, 2 * Math.PI, false);\r\n }\r\n context.stroke();\r\n context.closePath();\r\n };\r\n for (var i = 1; i <= radarOption.gridCount; i++) {\r\n _loop(i);\r\n }\r\n radarOption.customColor = fillCustomColor(radarOption.linearType, radarOption.customColor, series, config);\r\n var radarDataPoints = getRadarDataPoints(coordinateAngle, centerPosition, radius, series, opts, process);\r\n radarDataPoints.forEach(function(eachSeries, seriesIndex) {\r\n // 绘制区域数据\r\n context.beginPath();\r\n context.setLineWidth(radarOption.borderWidth * opts.pix);\r\n context.setStrokeStyle(eachSeries.color);\r\n \r\n var fillcolor = hexToRgb(eachSeries.color, radarOption.opacity);\r\n if (radarOption.linearType == 'custom') {\r\n var grd;\r\n if(context.createCircularGradient){\r\n grd = context.createCircularGradient(centerPosition.x, centerPosition.y, radius)\r\n }else{\r\n grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0,centerPosition.x, centerPosition.y, radius)\r\n }\r\n grd.addColorStop(0, hexToRgb(radarOption.customColor[series[seriesIndex].linearIndex], radarOption.opacity))\r\n grd.addColorStop(1, hexToRgb(eachSeries.color, radarOption.opacity))\r\n fillcolor = grd\r\n }\r\n \r\n context.setFillStyle(fillcolor);\r\n eachSeries.data.forEach(function(item, index) {\r\n if (index === 0) {\r\n context.moveTo(item.position.x, item.position.y);\r\n } else {\r\n context.lineTo(item.position.x, item.position.y);\r\n }\r\n });\r\n context.closePath();\r\n context.fill();\r\n if(radarOption.border === true){\r\n context.stroke();\r\n }\r\n context.closePath();\r\n if (opts.dataPointShape !== false) {\r\n var points = eachSeries.data.map(function(item) {\r\n return item.position;\r\n });\r\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\r\n }\r\n });\r\n // 画刻度值\r\n if(radarOption.axisLabel === true){\r\n const maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series)));\r\n const stepLength = radius / radarOption.gridCount;\r\n const fontSize = opts.fontSize * opts.pix;\r\n context.setFontSize(fontSize);\r\n context.setFillStyle(opts.fontColor);\r\n context.setTextAlign('left');\r\n for (var i = 0; i < radarOption.gridCount + 1; i++) {\r\n let label = i * maxData / radarOption.gridCount;\r\n label = label.toFixed(radarOption.axisLabelTofix);\r\n context.fillText(String(label), centerPosition.x + 3 * opts.pix, centerPosition.y - i * stepLength + fontSize / 2);\r\n }\r\n }\r\n \r\n // draw label text\r\n drawRadarLabel(coordinateAngle, radius, centerPosition, opts, config, context);\r\n \r\n // draw dataLabel\r\n if (opts.dataLabel !== false && process === 1) {\r\n radarDataPoints.forEach(function(eachSeries, seriesIndex) {\r\n context.beginPath();\r\n var fontSize = eachSeries.textSize * opts.pix || config.fontSize;\r\n context.setFontSize(fontSize);\r\n context.setFillStyle(eachSeries.textColor || opts.fontColor);\r\n eachSeries.data.forEach(function(item, index) {\r\n //如果是中心点垂直的上下点位\r\n if(Math.abs(item.position.x - centerPosition.x)<2){\r\n //如果在上面\r\n if(item.position.y < centerPosition.y){\r\n context.setTextAlign('center');\r\n context.fillText(item.value, item.position.x, item.position.y - 4);\r\n }else{\r\n context.setTextAlign('center');\r\n context.fillText(item.value, item.position.x, item.position.y + fontSize + 2);\r\n }\r\n }else{\r\n //如果在左侧\r\n if(item.position.x < centerPosition.x){\r\n context.setTextAlign('right');\r\n context.fillText(item.value, item.position.x - 4, item.position.y + fontSize / 2 - 2);\r\n }else{\r\n context.setTextAlign('left');\r\n context.fillText(item.value, item.position.x + 4, item.position.y + fontSize / 2 - 2);\r\n }\r\n }\r\n });\r\n context.closePath();\r\n context.stroke();\r\n });\r\n context.setTextAlign('left');\r\n }\r\n \r\n return {\r\n center: centerPosition,\r\n radius: radius,\r\n angleList: coordinateAngle\r\n };\r\n}\r\n\r\n// 经纬度转墨卡托\r\nfunction lonlat2mercator(longitude, latitude) {\r\n var mercator = Array(2);\r\n var x = longitude * 20037508.34 / 180;\r\n var y = Math.log(Math.tan((90 + latitude) * Math.PI / 360)) / (Math.PI / 180);\r\n y = y * 20037508.34 / 180;\r\n mercator[0] = x;\r\n mercator[1] = y;\r\n return mercator;\r\n}\r\n\r\n// 墨卡托转经纬度\r\nfunction mercator2lonlat(longitude, latitude) {\r\n var lonlat = Array(2)\r\n var x = longitude / 20037508.34 * 180;\r\n var y = latitude / 20037508.34 * 180;\r\n y = 180 / Math.PI * (2 * Math.atan(Math.exp(y * Math.PI / 180)) - Math.PI / 2);\r\n lonlat[0] = x;\r\n lonlat[1] = y;\r\n return lonlat;\r\n}\r\n\r\nfunction getBoundingBox(data) {\r\n var bounds = {},coords;\r\n bounds.xMin = 180;\r\n bounds.xMax = 0;\r\n bounds.yMin = 90;\r\n bounds.yMax = 0\r\n for (var i = 0; i < data.length; i++) {\r\n var coorda = data[i].geometry.coordinates\r\n for (var k = 0; k < coorda.length; k++) {\r\n coords = coorda[k];\r\n if (coords.length == 1) {\r\n coords = coords[0]\r\n }\r\n for (var j = 0; j < coords.length; j++) {\r\n var longitude = coords[j][0];\r\n var latitude = coords[j][1];\r\n var point = {\r\n x: longitude,\r\n y: latitude\r\n }\r\n bounds.xMin = bounds.xMin < point.x ? bounds.xMin : point.x;\r\n bounds.xMax = bounds.xMax > point.x ? bounds.xMax : point.x;\r\n bounds.yMin = bounds.yMin < point.y ? bounds.yMin : point.y;\r\n bounds.yMax = bounds.yMax > point.y ? bounds.yMax : point.y;\r\n }\r\n }\r\n }\r\n return bounds;\r\n}\r\n\r\nfunction coordinateToPoint(latitude, longitude, bounds, scale, xoffset, yoffset) {\r\n return {\r\n x: (longitude - bounds.xMin) * scale + xoffset,\r\n y: (bounds.yMax - latitude) * scale + yoffset\r\n };\r\n}\r\n\r\nfunction pointToCoordinate(pointY, pointX, bounds, scale, xoffset, yoffset) {\r\n return {\r\n x: (pointX - xoffset) / scale + bounds.xMin,\r\n y: bounds.yMax - (pointY - yoffset) / scale\r\n };\r\n}\r\n\r\nfunction isRayIntersectsSegment(poi, s_poi, e_poi) {\r\n if (s_poi[1] == e_poi[1]) {\r\n return false;\r\n }\r\n if (s_poi[1] > poi[1] && e_poi[1] > poi[1]) {\r\n return false;\r\n }\r\n if (s_poi[1] < poi[1] && e_poi[1] < poi[1]) {\r\n return false;\r\n }\r\n if (s_poi[1] == poi[1] && e_poi[1] > poi[1]) {\r\n return false;\r\n }\r\n if (e_poi[1] == poi[1] && s_poi[1] > poi[1]) {\r\n return false;\r\n }\r\n if (s_poi[0] < poi[0] && e_poi[1] < poi[1]) {\r\n return false;\r\n }\r\n let xseg = e_poi[0] - (e_poi[0] - s_poi[0]) * (e_poi[1] - poi[1]) / (e_poi[1] - s_poi[1]);\r\n if (xseg < poi[0]) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n}\r\n\r\nfunction isPoiWithinPoly(poi, poly, mercator) {\r\n let sinsc = 0;\r\n for (let i = 0; i < poly.length; i++) {\r\n let epoly = poly[i][0];\r\n if (poly.length == 1) {\r\n epoly = poly[i][0]\r\n }\r\n for (let j = 0; j < epoly.length - 1; j++) {\r\n let s_poi = epoly[j];\r\n let e_poi = epoly[j + 1];\r\n if (mercator) {\r\n s_poi = lonlat2mercator(epoly[j][0], epoly[j][1]);\r\n e_poi = lonlat2mercator(epoly[j + 1][0], epoly[j + 1][1]);\r\n }\r\n if (isRayIntersectsSegment(poi, s_poi, e_poi)) {\r\n sinsc += 1;\r\n }\r\n }\r\n }\r\n if (sinsc % 2 == 1) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nfunction drawMapDataPoints(series, opts, config, context) {\r\n var mapOption = assign({}, {\r\n border: true,\r\n mercator: false,\r\n borderWidth: 1,\r\n borderColor: '#666666',\r\n fillOpacity: 0.6,\r\n activeBorderColor: '#f04864',\r\n activeFillColor: '#facc14',\r\n activeFillOpacity: 1\r\n }, opts.extra.map);\r\n var coords, point;\r\n var data = series;\r\n var bounds = getBoundingBox(data);\r\n if (mapOption.mercator) {\r\n var max = lonlat2mercator(bounds.xMax, bounds.yMax)\r\n var min = lonlat2mercator(bounds.xMin, bounds.yMin)\r\n bounds.xMax = max[0]\r\n bounds.yMax = max[1]\r\n bounds.xMin = min[0]\r\n bounds.yMin = min[1]\r\n }\r\n var xScale = opts.width / Math.abs(bounds.xMax - bounds.xMin);\r\n var yScale = opts.height / Math.abs(bounds.yMax - bounds.yMin);\r\n var scale = xScale < yScale ? xScale : yScale;\r\n var xoffset = opts.width / 2 - Math.abs(bounds.xMax - bounds.xMin) / 2 * scale;\r\n var yoffset = opts.height / 2 - Math.abs(bounds.yMax - bounds.yMin) / 2 * scale;\r\n for (var i = 0; i < data.length; i++) {\r\n context.beginPath();\r\n context.setLineWidth(mapOption.borderWidth * opts.pix);\r\n context.setStrokeStyle(mapOption.borderColor);\r\n context.setFillStyle(hexToRgb(series[i].color, mapOption.fillOpacity));\r\n if (opts.tooltip) {\r\n if (opts.tooltip.index == i) {\r\n context.setStrokeStyle(mapOption.activeBorderColor);\r\n context.setFillStyle(hexToRgb(mapOption.activeFillColor, mapOption.activeFillOpacity));\r\n }\r\n }\r\n var coorda = data[i].geometry.coordinates\r\n for (var k = 0; k < coorda.length; k++) {\r\n coords = coorda[k];\r\n if (coords.length == 1) {\r\n coords = coords[0]\r\n }\r\n for (var j = 0; j < coords.length; j++) {\r\n var gaosi = Array(2);\r\n if (mapOption.mercator) {\r\n gaosi = lonlat2mercator(coords[j][0], coords[j][1])\r\n } else {\r\n gaosi = coords[j]\r\n }\r\n point = coordinateToPoint(gaosi[1], gaosi[0], bounds, scale, xoffset, yoffset)\r\n if (j === 0) {\r\n context.beginPath();\r\n context.moveTo(point.x, point.y);\r\n } else {\r\n context.lineTo(point.x, point.y);\r\n }\r\n }\r\n context.fill();\r\n if (mapOption.border == true) {\r\n context.stroke();\r\n }\r\n }\r\n }\r\n if (opts.dataLabel == true) {\r\n for (var i = 0; i < data.length; i++) {\r\n var centerPoint = data[i].properties.centroid;\r\n if (centerPoint) {\r\n if (mapOption.mercator) {\r\n centerPoint = lonlat2mercator(data[i].properties.centroid[0], data[i].properties.centroid[1])\r\n }\r\n point = coordinateToPoint(centerPoint[1], centerPoint[0], bounds, scale, xoffset, yoffset);\r\n let fontSize = data[i].textSize * opts.pix || config.fontSize;\r\n let text = data[i].properties.name;\r\n context.beginPath();\r\n context.setFontSize(fontSize)\r\n context.setFillStyle(data[i].textColor || opts.fontColor)\r\n context.fillText(text, point.x - measureText(text, fontSize, context) / 2, point.y + fontSize / 2);\r\n context.closePath();\r\n context.stroke();\r\n }\r\n }\r\n }\r\n opts.chartData.mapData = {\r\n bounds: bounds,\r\n scale: scale,\r\n xoffset: xoffset,\r\n yoffset: yoffset,\r\n mercator: mapOption.mercator\r\n }\r\n drawToolTipBridge(opts, config, context, 1);\r\n context.draw();\r\n}\r\n\r\nfunction normalInt(min, max, iter) {\r\n iter = iter == 0 ? 1 : iter;\r\n var arr = [];\r\n for (var i = 0; i < iter; i++) {\r\n arr[i] = Math.random();\r\n };\r\n return Math.floor(arr.reduce(function(i, j) {\r\n return i + j\r\n }) / iter * (max - min)) + min;\r\n};\r\n\r\nfunction collisionNew(area, points, width, height) {\r\n var isIn = false;\r\n for (let i = 0; i < points.length; i++) {\r\n if (points[i].area) {\r\n if (area[3] < points[i].area[1] || area[0] > points[i].area[2] || area[1] > points[i].area[3] || area[2] < points[i].area[0]) {\r\n if (area[0] < 0 || area[1] < 0 || area[2] > width || area[3] > height) {\r\n isIn = true;\r\n break;\r\n } else {\r\n isIn = false;\r\n }\r\n } else {\r\n isIn = true;\r\n break;\r\n }\r\n }\r\n }\r\n return isIn;\r\n};\r\n\r\nfunction getWordCloudPoint(opts, type, context) {\r\n let points = opts.series;\r\n switch (type) {\r\n case 'normal':\r\n for (let i = 0; i < points.length; i++) {\r\n let text = points[i].name;\r\n let tHeight = points[i].textSize * opts.pix;\r\n let tWidth = measureText(text, tHeight, context);\r\n let x, y;\r\n let area;\r\n let breaknum = 0;\r\n while (true) {\r\n breaknum++;\r\n x = normalInt(-opts.width / 2, opts.width / 2, 5) - tWidth / 2;\r\n y = normalInt(-opts.height / 2, opts.height / 2, 5) + tHeight / 2;\r\n area = [x - 5 + opts.width / 2, y - 5 - tHeight + opts.height / 2, x + tWidth + 5 + opts.width / 2, y + 5 +\r\n opts.height / 2\r\n ];\r\n let isCollision = collisionNew(area, points, opts.width, opts.height);\r\n if (!isCollision) break;\r\n if (breaknum == 1000) {\r\n area = [-100, -100, -100, -100];\r\n break;\r\n }\r\n };\r\n points[i].area = area;\r\n }\r\n break;\r\n case 'vertical':\r\n function Spin() {\r\n //获取均匀随机值,是否旋转,旋转的概率为(1-0.5)\r\n if (Math.random() > 0.7) {\r\n return true;\r\n } else {\r\n return false\r\n };\r\n };\r\n for (let i = 0; i < points.length; i++) {\r\n let text = points[i].name;\r\n let tHeight = points[i].textSize * opts.pix;\r\n let tWidth = measureText(text, tHeight, context);\r\n let isSpin = Spin();\r\n let x, y, area, areav;\r\n let breaknum = 0;\r\n while (true) {\r\n breaknum++;\r\n let isCollision;\r\n if (isSpin) {\r\n x = normalInt(-opts.width / 2, opts.width / 2, 5) - tWidth / 2;\r\n y = normalInt(-opts.height / 2, opts.height / 2, 5) + tHeight / 2;\r\n area = [y - 5 - tWidth + opts.width / 2, (-x - 5 + opts.height / 2), y + 5 + opts.width / 2, (-x + tHeight + 5 + opts.height / 2)];\r\n areav = [opts.width - (opts.width / 2 - opts.height / 2) - (-x + tHeight + 5 + opts.height / 2) - 5, (opts.height / 2 - opts.width / 2) + (y - 5 - tWidth + opts.width / 2) - 5, opts.width - (opts.width / 2 - opts.height / 2) - (-x + tHeight + 5 + opts.height / 2) + tHeight, (opts.height / 2 - opts.width / 2) + (y - 5 - tWidth + opts.width / 2) + tWidth + 5];\r\n isCollision = collisionNew(areav, points, opts.height, opts.width);\r\n } else {\r\n x = normalInt(-opts.width / 2, opts.width / 2, 5) - tWidth / 2;\r\n y = normalInt(-opts.height / 2, opts.height / 2, 5) + tHeight / 2;\r\n area = [x - 5 + opts.width / 2, y - 5 - tHeight + opts.height / 2, x + tWidth + 5 + opts.width / 2, y + 5 + opts.height / 2];\r\n isCollision = collisionNew(area, points, opts.width, opts.height);\r\n }\r\n if (!isCollision) break;\r\n if (breaknum == 1000) {\r\n area = [-1000, -1000, -1000, -1000];\r\n break;\r\n }\r\n };\r\n if (isSpin) {\r\n points[i].area = areav;\r\n points[i].areav = area;\r\n } else {\r\n points[i].area = area;\r\n }\r\n points[i].rotate = isSpin;\r\n };\r\n break;\r\n }\r\n return points;\r\n}\r\n\r\nfunction drawWordCloudDataPoints(series, opts, config, context) {\r\n let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n let wordOption = assign({}, {\r\n type: 'normal',\r\n autoColors: true\r\n }, opts.extra.word);\r\n if (!opts.chartData.wordCloudData) {\r\n opts.chartData.wordCloudData = getWordCloudPoint(opts, wordOption.type, context);\r\n }\r\n context.beginPath();\r\n context.setFillStyle(opts.background);\r\n context.rect(0, 0, opts.width, opts.height);\r\n context.fill();\r\n context.save();\r\n let points = opts.chartData.wordCloudData;\r\n context.translate(opts.width / 2, opts.height / 2);\r\n for (let i = 0; i < points.length; i++) {\r\n context.save();\r\n if (points[i].rotate) {\r\n context.rotate(90 * Math.PI / 180);\r\n }\r\n let text = points[i].name;\r\n let tHeight = points[i].textSize * opts.pix;\r\n let tWidth = measureText(text, tHeight, context);\r\n context.beginPath();\r\n context.setStrokeStyle(points[i].color);\r\n context.setFillStyle(points[i].color);\r\n context.setFontSize(tHeight);\r\n if (points[i].rotate) {\r\n if (points[i].areav[0] > 0) {\r\n if (opts.tooltip) {\r\n if (opts.tooltip.index == i) {\r\n context.strokeText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\r\n } else {\r\n context.fillText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\r\n }\r\n } else {\r\n context.fillText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\r\n }\r\n }\r\n } else {\r\n if (points[i].area[0] > 0) {\r\n if (opts.tooltip) {\r\n if (opts.tooltip.index == i) {\r\n context.strokeText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\r\n } else {\r\n context.fillText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\r\n }\r\n } else {\r\n context.fillText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\r\n }\r\n }\r\n }\r\n context.stroke();\r\n context.restore();\r\n }\r\n context.restore();\r\n}\r\n\r\nfunction drawFunnelDataPoints(series, opts, config, context) {\r\n let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n let funnelOption = assign({}, {\r\n type:'funnel',\r\n activeWidth: 10,\r\n activeOpacity: 0.3,\r\n border: false,\r\n borderWidth: 2,\r\n borderColor: '#FFFFFF',\r\n fillOpacity: 1,\r\n labelAlign: 'right',\r\n linearType: 'none',\r\n customColor: [],\r\n }, opts.extra.funnel);\r\n let eachSpacing = (opts.height - opts.area[0] - opts.area[2]) / series.length;\r\n let centerPosition = {\r\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\r\n y: opts.height - opts.area[2]\r\n };\r\n let activeWidth = funnelOption.activeWidth * opts.pix;\r\n let radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - activeWidth, (opts.height - opts.area[0] - opts.area[2]) / 2 - activeWidth);\r\n series = getFunnelDataPoints(series, radius, funnelOption.type, eachSpacing, process);\r\n context.save();\r\n context.translate(centerPosition.x, centerPosition.y);\r\n funnelOption.customColor = fillCustomColor(funnelOption.linearType, funnelOption.customColor, series, config);\r\n if(funnelOption.type == 'pyramid'){\r\n for (let i = 0; i < series.length; i++) {\r\n if (i == series.length -1) {\r\n if (opts.tooltip) {\r\n if (opts.tooltip.index == i) {\r\n context.beginPath();\r\n context.setFillStyle(hexToRgb(series[i].color, funnelOption.activeOpacity));\r\n context.moveTo(-activeWidth, -eachSpacing);\r\n context.lineTo(-series[i].radius - activeWidth, 0);\r\n context.lineTo(series[i].radius + activeWidth, 0);\r\n context.lineTo(activeWidth, -eachSpacing);\r\n context.lineTo(-activeWidth, -eachSpacing);\r\n context.closePath();\r\n context.fill();\r\n }\r\n }\r\n series[i].funnelArea = [centerPosition.x - series[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + series[i].radius, centerPosition.y - eachSpacing * i];\r\n context.beginPath();\r\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\r\n context.setStrokeStyle(funnelOption.borderColor);\r\n var fillColor = hexToRgb(series[i].color, funnelOption.fillOpacity);\r\n if (funnelOption.linearType == 'custom') {\r\n var grd = context.createLinearGradient(series[i].radius, -eachSpacing, -series[i].radius, -eachSpacing);\r\n grd.addColorStop(0, hexToRgb(series[i].color, funnelOption.fillOpacity));\r\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[i].linearIndex], funnelOption.fillOpacity));\r\n grd.addColorStop(1, hexToRgb(series[i].color, funnelOption.fillOpacity));\r\n fillColor = grd\r\n }\r\n context.setFillStyle(fillColor);\r\n context.moveTo(0, -eachSpacing);\r\n context.lineTo(-series[i].radius, 0);\r\n context.lineTo(series[i].radius, 0);\r\n context.lineTo(0, -eachSpacing);\r\n context.closePath();\r\n context.fill();\r\n if (funnelOption.border == true) {\r\n context.stroke();\r\n }\r\n } else {\r\n if (opts.tooltip) {\r\n if (opts.tooltip.index == i) {\r\n context.beginPath();\r\n context.setFillStyle(hexToRgb(series[i].color, funnelOption.activeOpacity));\r\n context.moveTo(0, 0);\r\n context.lineTo(-series[i].radius - activeWidth, 0);\r\n context.lineTo(-series[i + 1].radius - activeWidth, -eachSpacing);\r\n context.lineTo(series[i + 1].radius + activeWidth, -eachSpacing);\r\n context.lineTo(series[i].radius + activeWidth, 0);\r\n context.lineTo(0, 0);\r\n context.closePath();\r\n context.fill();\r\n }\r\n }\r\n series[i].funnelArea = [centerPosition.x - series[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + series[i].radius, centerPosition.y - eachSpacing * i];\r\n context.beginPath();\r\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\r\n context.setStrokeStyle(funnelOption.borderColor);\r\n var fillColor = hexToRgb(series[i].color, funnelOption.fillOpacity);\r\n if (funnelOption.linearType == 'custom') {\r\n var grd = context.createLinearGradient(series[i].radius, -eachSpacing, -series[i].radius, -eachSpacing);\r\n grd.addColorStop(0, hexToRgb(series[i].color, funnelOption.fillOpacity));\r\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[i].linearIndex], funnelOption.fillOpacity));\r\n grd.addColorStop(1, hexToRgb(series[i].color, funnelOption.fillOpacity));\r\n fillColor = grd\r\n }\r\n context.setFillStyle(fillColor);\r\n context.moveTo(0, 0);\r\n context.lineTo(-series[i].radius, 0);\r\n context.lineTo(-series[i + 1].radius, -eachSpacing);\r\n context.lineTo(series[i + 1].radius, -eachSpacing);\r\n context.lineTo(series[i].radius, 0);\r\n context.lineTo(0, 0);\r\n context.closePath();\r\n context.fill();\r\n if (funnelOption.border == true) {\r\n context.stroke();\r\n }\r\n }\r\n context.translate(0, -eachSpacing)\r\n }\r\n }else{\r\n for (let i = 0; i < series.length; i++) {\r\n if (i == 0) {\r\n if (opts.tooltip) {\r\n if (opts.tooltip.index == i) {\r\n context.beginPath();\r\n context.setFillStyle(hexToRgb(series[i].color, funnelOption.activeOpacity));\r\n context.moveTo(-activeWidth, 0);\r\n context.lineTo(-series[i].radius - activeWidth, -eachSpacing);\r\n context.lineTo(series[i].radius + activeWidth, -eachSpacing);\r\n context.lineTo(activeWidth, 0);\r\n context.lineTo(-activeWidth, 0);\r\n context.closePath();\r\n context.fill();\r\n }\r\n }\r\n series[i].funnelArea = [centerPosition.x - series[i].radius, centerPosition.y - eachSpacing, centerPosition.x + series[i].radius, centerPosition.y];\r\n context.beginPath();\r\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\r\n context.setStrokeStyle(funnelOption.borderColor);\r\n var fillColor = hexToRgb(series[i].color, funnelOption.fillOpacity);\r\n if (funnelOption.linearType == 'custom') {\r\n var grd = context.createLinearGradient(series[i].radius, -eachSpacing, -series[i].radius, -eachSpacing);\r\n grd.addColorStop(0, hexToRgb(series[i].color, funnelOption.fillOpacity));\r\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[i].linearIndex], funnelOption.fillOpacity));\r\n grd.addColorStop(1, hexToRgb(series[i].color, funnelOption.fillOpacity));\r\n fillColor = grd\r\n }\r\n context.setFillStyle(fillColor);\r\n context.moveTo(0, 0);\r\n context.lineTo(-series[i].radius, -eachSpacing);\r\n context.lineTo(series[i].radius, -eachSpacing);\r\n context.lineTo(0, 0);\r\n context.closePath();\r\n context.fill();\r\n if (funnelOption.border == true) {\r\n context.stroke();\r\n }\r\n } else {\r\n if (opts.tooltip) {\r\n if (opts.tooltip.index == i) {\r\n context.beginPath();\r\n context.setFillStyle(hexToRgb(series[i].color, funnelOption.activeOpacity));\r\n context.moveTo(0, 0);\r\n context.lineTo(-series[i - 1].radius - activeWidth, 0);\r\n context.lineTo(-series[i].radius - activeWidth, -eachSpacing);\r\n context.lineTo(series[i].radius + activeWidth, -eachSpacing);\r\n context.lineTo(series[i - 1].radius + activeWidth, 0);\r\n context.lineTo(0, 0);\r\n context.closePath();\r\n context.fill();\r\n }\r\n }\r\n series[i].funnelArea = [centerPosition.x - series[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + series[i].radius, centerPosition.y - eachSpacing * i];\r\n context.beginPath();\r\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\r\n context.setStrokeStyle(funnelOption.borderColor);\r\n var fillColor = hexToRgb(series[i].color, funnelOption.fillOpacity);\r\n if (funnelOption.linearType == 'custom') {\r\n var grd = context.createLinearGradient(series[i].radius, -eachSpacing, -series[i].radius, -eachSpacing);\r\n grd.addColorStop(0, hexToRgb(series[i].color, funnelOption.fillOpacity));\r\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[i].linearIndex], funnelOption.fillOpacity));\r\n grd.addColorStop(1, hexToRgb(series[i].color, funnelOption.fillOpacity));\r\n fillColor = grd\r\n }\r\n context.setFillStyle(fillColor);\r\n context.moveTo(0, 0);\r\n context.lineTo(-series[i - 1].radius, 0);\r\n context.lineTo(-series[i].radius, -eachSpacing);\r\n context.lineTo(series[i].radius, -eachSpacing);\r\n context.lineTo(series[i - 1].radius, 0);\r\n context.lineTo(0, 0);\r\n context.closePath();\r\n context.fill();\r\n if (funnelOption.border == true) {\r\n context.stroke();\r\n }\r\n }\r\n context.translate(0, -eachSpacing)\r\n }\r\n }\r\n \r\n context.restore();\r\n if (opts.dataLabel !== false && process === 1) {\r\n drawFunnelText(series, opts, context, eachSpacing, funnelOption.labelAlign, activeWidth, centerPosition);\r\n }\r\n return {\r\n center: centerPosition,\r\n radius: radius,\r\n series: series\r\n };\r\n}\r\n\r\nfunction drawFunnelText(series, opts, context, eachSpacing, labelAlign, activeWidth, centerPosition) {\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n if(item.labelShow === false){\r\n continue;\r\n }\r\n let startX, endX, startY, fontSize;\r\n let text = item.formatter ? item.formatter(item,i,series,opts) : util.toFixed(item._proportion_ * 100) + '%';\r\n text = item.labelText ? item.labelText : text;\r\n if (labelAlign == 'right') {\r\n if(opts.extra.funnel.type === 'pyramid'){\r\n if (i == series.length -1) {\r\n startX = (item.funnelArea[2] + centerPosition.x) / 2;\r\n } else {\r\n startX = (item.funnelArea[2] + series[i + 1].funnelArea[2]) / 2;\r\n }\r\n }else{\r\n if (i == 0) {\r\n startX = (item.funnelArea[2] + centerPosition.x) / 2;\r\n } else {\r\n startX = (item.funnelArea[2] + series[i - 1].funnelArea[2]) / 2;\r\n }\r\n }\r\n endX = startX + activeWidth * 2;\r\n startY = item.funnelArea[1] + eachSpacing / 2;\r\n fontSize = item.textSize * opts.pix || opts.fontSize * opts.pix;\r\n context.setLineWidth(1 * opts.pix);\r\n context.setStrokeStyle(item.color);\r\n context.setFillStyle(item.color);\r\n context.beginPath();\r\n context.moveTo(startX, startY);\r\n context.lineTo(endX, startY);\r\n context.stroke();\r\n context.closePath();\r\n context.beginPath();\r\n context.moveTo(endX, startY);\r\n context.arc(endX, startY, 2 * opts.pix, 0, 2 * Math.PI);\r\n context.closePath();\r\n context.fill();\r\n context.beginPath();\r\n context.setFontSize(fontSize);\r\n context.setFillStyle(item.textColor || opts.fontColor);\r\n context.fillText(text, endX + 5, startY + fontSize / 2 - 2);\r\n context.closePath();\r\n context.stroke();\r\n context.closePath();\r\n } else {\r\n if(opts.extra.funnel.type === 'pyramid'){\r\n if (i == series.length -1) {\r\n startX = (item.funnelArea[0] + centerPosition.x) / 2;\r\n } else {\r\n startX = (item.funnelArea[0] + series[i + 1].funnelArea[0]) / 2;\r\n }\r\n }else{\r\n if (i == 0) {\r\n startX = (item.funnelArea[0] + centerPosition.x) / 2;\r\n } else {\r\n startX = (item.funnelArea[0] + series[i - 1].funnelArea[0]) / 2;\r\n }\r\n }\r\n endX = startX - activeWidth * 2;\r\n startY = item.funnelArea[1] + eachSpacing / 2;\r\n fontSize = item.textSize * opts.pix || opts.fontSize * opts.pix;\r\n context.setLineWidth(1 * opts.pix);\r\n context.setStrokeStyle(item.color);\r\n context.setFillStyle(item.color);\r\n context.beginPath();\r\n context.moveTo(startX, startY);\r\n context.lineTo(endX, startY);\r\n context.stroke();\r\n context.closePath();\r\n context.beginPath();\r\n context.moveTo(endX, startY);\r\n context.arc(endX, startY, 2, 0, 2 * Math.PI);\r\n context.closePath();\r\n context.fill();\r\n context.beginPath();\r\n context.setFontSize(fontSize);\r\n context.setFillStyle(item.textColor || opts.fontColor);\r\n context.fillText(text, endX - 5 - measureText(text, fontSize, context), startY + fontSize / 2 - 2);\r\n context.closePath();\r\n context.stroke();\r\n context.closePath();\r\n }\r\n\r\n }\r\n}\r\n\r\n\r\nfunction drawCanvas(opts, context) {\r\n context.draw();\r\n}\r\n\r\nvar Timing = {\r\n easeIn: function easeIn(pos) {\r\n return Math.pow(pos, 3);\r\n },\r\n easeOut: function easeOut(pos) {\r\n return Math.pow(pos - 1, 3) + 1;\r\n },\r\n easeInOut: function easeInOut(pos) {\r\n if ((pos /= 0.5) < 1) {\r\n return 0.5 * Math.pow(pos, 3);\r\n } else {\r\n return 0.5 * (Math.pow(pos - 2, 3) + 2);\r\n }\r\n },\r\n linear: function linear(pos) {\r\n return pos;\r\n }\r\n};\r\n\r\nfunction Animation(opts) {\r\n this.isStop = false;\r\n opts.duration = typeof opts.duration === 'undefined' ? 1000 : opts.duration;\r\n opts.timing = opts.timing || 'easeInOut';\r\n var delay = 17;\r\n function createAnimationFrame() {\r\n if (typeof setTimeout !== 'undefined') {\r\n return function(step, delay) {\r\n setTimeout(function() {\r\n var timeStamp = +new Date();\r\n step(timeStamp);\r\n }, delay);\r\n };\r\n } else if (typeof requestAnimationFrame !== 'undefined') {\r\n return requestAnimationFrame;\r\n } else {\r\n return function(step) {\r\n step(null);\r\n };\r\n }\r\n };\r\n var animationFrame = createAnimationFrame();\r\n var startTimeStamp = null;\r\n var _step = function step(timestamp) {\r\n if (timestamp === null || this.isStop === true) {\r\n opts.onProcess && opts.onProcess(1);\r\n opts.onAnimationFinish && opts.onAnimationFinish();\r\n return;\r\n }\r\n if (startTimeStamp === null) {\r\n startTimeStamp = timestamp;\r\n }\r\n if (timestamp - startTimeStamp < opts.duration) {\r\n var process = (timestamp - startTimeStamp) / opts.duration;\r\n var timingFunction = Timing[opts.timing];\r\n process = timingFunction(process);\r\n opts.onProcess && opts.onProcess(process);\r\n animationFrame(_step, delay);\r\n } else {\r\n opts.onProcess && opts.onProcess(1);\r\n opts.onAnimationFinish && opts.onAnimationFinish();\r\n }\r\n };\r\n _step = _step.bind(this);\r\n animationFrame(_step, delay);\r\n}\r\n\r\nAnimation.prototype.stop = function() {\r\n this.isStop = true;\r\n};\r\n\r\nfunction drawCharts(type, opts, config, context) {\r\n var _this = this;\r\n var series = opts.series;\r\n //兼容ECharts饼图类数据格式\r\n if (type === 'pie' || type === 'ring' || type === 'mount' || type === 'rose' || type === 'funnel') {\r\n series = fixPieSeries(series, opts, config);\r\n }\r\n var categories = opts.categories;\r\n if (type === 'mount') {\r\n categories = [];\r\n for (let j = 0; j < series.length; j++) {\r\n if(series[j].show !== false) categories.push(series[j].name)\r\n }\r\n opts.categories = categories;\r\n }\r\n series = fillSeries(series, opts, config);\r\n var duration = opts.animation ? opts.duration : 0;\r\n _this.animationInstance && _this.animationInstance.stop();\r\n var seriesMA = null;\r\n if (type == 'candle') {\r\n let average = assign({}, opts.extra.candle.average);\r\n if (average.show) {\r\n seriesMA = calCandleMA(average.day, average.name, average.color, series[0].data);\r\n seriesMA = fillSeries(seriesMA, opts, config);\r\n opts.seriesMA = seriesMA;\r\n } else if (opts.seriesMA) {\r\n seriesMA = opts.seriesMA = fillSeries(opts.seriesMA, opts, config);\r\n } else {\r\n seriesMA = series;\r\n }\r\n } else {\r\n seriesMA = series;\r\n }\r\n /* 过滤掉show=false的series */\r\n opts._series_ = series = filterSeries(series);\r\n //重新计算图表区域\r\n opts.area = new Array(4);\r\n //复位绘图区域\r\n for (let j = 0; j < 4; j++) {\r\n opts.area[j] = opts.padding[j] * opts.pix;\r\n }\r\n //通过计算三大区域:图例、X轴、Y轴的大小,确定绘图区域\r\n var _calLegendData = calLegendData(seriesMA, opts, config, opts.chartData, context),\r\n legendHeight = _calLegendData.area.wholeHeight,\r\n legendWidth = _calLegendData.area.wholeWidth;\r\n\r\n switch (opts.legend.position) {\r\n case 'top':\r\n opts.area[0] += legendHeight;\r\n break;\r\n case 'bottom':\r\n opts.area[2] += legendHeight;\r\n break;\r\n case 'left':\r\n opts.area[3] += legendWidth;\r\n break;\r\n case 'right':\r\n opts.area[1] += legendWidth;\r\n break;\r\n }\r\n\r\n let _calYAxisData = {},\r\n yAxisWidth = 0;\r\n if (opts.type === 'line' || opts.type === 'column'|| opts.type === 'mount' || opts.type === 'area' || opts.type === 'mix' || opts.type === 'candle' || opts.type === 'scatter' || opts.type === 'bubble' || opts.type === 'bar') {\r\n _calYAxisData = calYAxisData(series, opts, config, context);\r\n yAxisWidth = _calYAxisData.yAxisWidth;\r\n //如果显示Y轴标题\r\n if (opts.yAxis.showTitle) {\r\n let maxTitleHeight = 0;\r\n for (let i = 0; i < opts.yAxis.data.length; i++) {\r\n maxTitleHeight = Math.max(maxTitleHeight, opts.yAxis.data[i].titleFontSize ? opts.yAxis.data[i].titleFontSize * opts.pix : config.fontSize)\r\n }\r\n opts.area[0] += maxTitleHeight;\r\n }\r\n let rightIndex = 0,\r\n leftIndex = 0;\r\n //计算主绘图区域左右位置\r\n for (let i = 0; i < yAxisWidth.length; i++) {\r\n if (yAxisWidth[i].position == 'left') {\r\n if (leftIndex > 0) {\r\n opts.area[3] += yAxisWidth[i].width + opts.yAxis.padding * opts.pix;\r\n } else {\r\n opts.area[3] += yAxisWidth[i].width;\r\n }\r\n leftIndex += 1;\r\n } else if (yAxisWidth[i].position == 'right') {\r\n if (rightIndex > 0) {\r\n opts.area[1] += yAxisWidth[i].width + opts.yAxis.padding * opts.pix;\r\n } else {\r\n opts.area[1] += yAxisWidth[i].width;\r\n }\r\n rightIndex += 1;\r\n }\r\n }\r\n } else {\r\n config.yAxisWidth = yAxisWidth;\r\n }\r\n opts.chartData.yAxisData = _calYAxisData;\r\n\r\n if (opts.categories && opts.categories.length && opts.type !== 'radar' && opts.type !== 'gauge' && opts.type !== 'bar') {\r\n opts.chartData.xAxisData = getXAxisPoints(opts.categories, opts, config);\r\n let _calCategoriesData = calCategoriesData(opts.categories, opts, config, opts.chartData.xAxisData.eachSpacing, context),\r\n xAxisHeight = _calCategoriesData.xAxisHeight,\r\n angle = _calCategoriesData.angle;\r\n config.xAxisHeight = xAxisHeight;\r\n config._xAxisTextAngle_ = angle;\r\n opts.area[2] += xAxisHeight;\r\n opts.chartData.categoriesData = _calCategoriesData;\r\n } else {\r\n if (opts.type === 'line' || opts.type === 'area' || opts.type === 'scatter' || opts.type === 'bubble' || opts.type === 'bar') {\r\n opts.chartData.xAxisData = calXAxisData(series, opts, config, context);\r\n categories = opts.chartData.xAxisData.rangesFormat;\r\n let _calCategoriesData = calCategoriesData(categories, opts, config, opts.chartData.xAxisData.eachSpacing, context),\r\n xAxisHeight = _calCategoriesData.xAxisHeight,\r\n angle = _calCategoriesData.angle;\r\n config.xAxisHeight = xAxisHeight;\r\n config._xAxisTextAngle_ = angle;\r\n opts.area[2] += xAxisHeight;\r\n opts.chartData.categoriesData = _calCategoriesData;\r\n } else {\r\n opts.chartData.xAxisData = {\r\n xAxisPoints: []\r\n };\r\n }\r\n }\r\n\r\n //计算右对齐偏移距离\r\n if (opts.enableScroll && opts.xAxis.scrollAlign == 'right' && opts._scrollDistance_ === undefined) {\r\n let offsetLeft = 0,\r\n xAxisPoints = opts.chartData.xAxisData.xAxisPoints,\r\n startX = opts.chartData.xAxisData.startX,\r\n endX = opts.chartData.xAxisData.endX,\r\n eachSpacing = opts.chartData.xAxisData.eachSpacing;\r\n let totalWidth = eachSpacing * (xAxisPoints.length - 1);\r\n let screenWidth = endX - startX;\r\n offsetLeft = screenWidth - totalWidth;\r\n _this.scrollOption.currentOffset = offsetLeft;\r\n _this.scrollOption.startTouchX = offsetLeft;\r\n _this.scrollOption.distance = 0;\r\n _this.scrollOption.lastMoveTime = 0;\r\n opts._scrollDistance_ = offsetLeft;\r\n }\r\n\r\n if (type === 'pie' || type === 'ring' || type === 'rose') {\r\n config._pieTextMaxLength_ = opts.dataLabel === false ? 0 : getPieTextMaxLength(seriesMA, config, context, opts);\r\n }\r\n \r\n switch (type) {\r\n case 'word':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n drawWordCloudDataPoints(series, opts, config, context, process);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'map':\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n drawMapDataPoints(series, opts, config, context);\r\n break;\r\n case 'funnel':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n opts.chartData.funnelData = drawFunnelDataPoints(series, opts, config, context, process);\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'line':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n drawYAxisGrid(categories, opts, config, context);\r\n drawXAxis(categories, opts, config, context);\r\n var _drawLineDataPoints = drawLineDataPoints(series, opts, config, context, process),\r\n xAxisPoints = _drawLineDataPoints.xAxisPoints,\r\n calPoints = _drawLineDataPoints.calPoints,\r\n eachSpacing = _drawLineDataPoints.eachSpacing;\r\n opts.chartData.xAxisPoints = xAxisPoints;\r\n opts.chartData.calPoints = calPoints;\r\n opts.chartData.eachSpacing = eachSpacing;\r\n drawYAxis(series, opts, config, context);\r\n if (opts.enableMarkLine !== false && process === 1) {\r\n drawMarkLine(opts, config, context);\r\n }\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'scatter':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n drawYAxisGrid(categories, opts, config, context);\r\n drawXAxis(categories, opts, config, context);\r\n var _drawScatterDataPoints = drawScatterDataPoints(series, opts, config, context, process),\r\n xAxisPoints = _drawScatterDataPoints.xAxisPoints,\r\n calPoints = _drawScatterDataPoints.calPoints,\r\n eachSpacing = _drawScatterDataPoints.eachSpacing;\r\n opts.chartData.xAxisPoints = xAxisPoints;\r\n opts.chartData.calPoints = calPoints;\r\n opts.chartData.eachSpacing = eachSpacing;\r\n drawYAxis(series, opts, config, context);\r\n if (opts.enableMarkLine !== false && process === 1) {\r\n drawMarkLine(opts, config, context);\r\n }\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'bubble':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n drawYAxisGrid(categories, opts, config, context);\r\n drawXAxis(categories, opts, config, context);\r\n var _drawBubbleDataPoints = drawBubbleDataPoints(series, opts, config, context, process),\r\n xAxisPoints = _drawBubbleDataPoints.xAxisPoints,\r\n calPoints = _drawBubbleDataPoints.calPoints,\r\n eachSpacing = _drawBubbleDataPoints.eachSpacing;\r\n opts.chartData.xAxisPoints = xAxisPoints;\r\n opts.chartData.calPoints = calPoints;\r\n opts.chartData.eachSpacing = eachSpacing;\r\n drawYAxis(series, opts, config, context);\r\n if (opts.enableMarkLine !== false && process === 1) {\r\n drawMarkLine(opts, config, context);\r\n }\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'mix':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n drawYAxisGrid(categories, opts, config, context);\r\n drawXAxis(categories, opts, config, context);\r\n var _drawMixDataPoints = drawMixDataPoints(series, opts, config, context, process),\r\n xAxisPoints = _drawMixDataPoints.xAxisPoints,\r\n calPoints = _drawMixDataPoints.calPoints,\r\n eachSpacing = _drawMixDataPoints.eachSpacing;\r\n opts.chartData.xAxisPoints = xAxisPoints;\r\n opts.chartData.calPoints = calPoints;\r\n opts.chartData.eachSpacing = eachSpacing;\r\n drawYAxis(series, opts, config, context);\r\n if (opts.enableMarkLine !== false && process === 1) {\r\n drawMarkLine(opts, config, context);\r\n }\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'column':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n drawYAxisGrid(categories, opts, config, context);\r\n drawXAxis(categories, opts, config, context);\r\n var _drawColumnDataPoints = drawColumnDataPoints(series, opts, config, context, process),\r\n xAxisPoints = _drawColumnDataPoints.xAxisPoints,\r\n calPoints = _drawColumnDataPoints.calPoints,\r\n eachSpacing = _drawColumnDataPoints.eachSpacing;\r\n opts.chartData.xAxisPoints = xAxisPoints;\r\n opts.chartData.calPoints = calPoints;\r\n opts.chartData.eachSpacing = eachSpacing;\r\n drawYAxis(series, opts, config, context);\r\n if (opts.enableMarkLine !== false && process === 1) {\r\n drawMarkLine(opts, config, context);\r\n }\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'mount':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n drawYAxisGrid(categories, opts, config, context);\r\n drawXAxis(categories, opts, config, context);\r\n var _drawMountDataPoints = drawMountDataPoints(series, opts, config, context, process),\r\n xAxisPoints = _drawMountDataPoints.xAxisPoints,\r\n calPoints = _drawMountDataPoints.calPoints,\r\n eachSpacing = _drawMountDataPoints.eachSpacing;\r\n opts.chartData.xAxisPoints = xAxisPoints;\r\n opts.chartData.calPoints = calPoints;\r\n opts.chartData.eachSpacing = eachSpacing;\r\n drawYAxis(series, opts, config, context);\r\n if (opts.enableMarkLine !== false && process === 1) {\r\n drawMarkLine(opts, config, context);\r\n }\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'bar':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n drawXAxis(categories, opts, config, context);\r\n var _drawBarDataPoints = drawBarDataPoints(series, opts, config, context, process),\r\n yAxisPoints = _drawBarDataPoints.yAxisPoints,\r\n calPoints = _drawBarDataPoints.calPoints,\r\n eachSpacing = _drawBarDataPoints.eachSpacing;\r\n opts.chartData.yAxisPoints = yAxisPoints;\r\n opts.chartData.xAxisPoints = opts.chartData.xAxisData.xAxisPoints;\r\n opts.chartData.calPoints = calPoints;\r\n opts.chartData.eachSpacing = eachSpacing;\r\n drawYAxis(series, opts, config, context);\r\n if (opts.enableMarkLine !== false && process === 1) {\r\n drawMarkLine(opts, config, context);\r\n }\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process, eachSpacing, yAxisPoints);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'area':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n drawYAxisGrid(categories, opts, config, context);\r\n drawXAxis(categories, opts, config, context);\r\n var _drawAreaDataPoints = drawAreaDataPoints(series, opts, config, context, process),\r\n xAxisPoints = _drawAreaDataPoints.xAxisPoints,\r\n calPoints = _drawAreaDataPoints.calPoints,\r\n eachSpacing = _drawAreaDataPoints.eachSpacing;\r\n opts.chartData.xAxisPoints = xAxisPoints;\r\n opts.chartData.calPoints = calPoints;\r\n opts.chartData.eachSpacing = eachSpacing;\r\n drawYAxis(series, opts, config, context);\r\n if (opts.enableMarkLine !== false && process === 1) {\r\n drawMarkLine(opts, config, context);\r\n }\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'ring':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process);\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'pie':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process);\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'rose':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n opts.chartData.pieData = drawRoseDataPoints(series, opts, config, context, process);\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'radar':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n opts.chartData.radarData = drawRadarDataPoints(series, opts, config, context, process);\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'arcbar':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n opts.chartData.arcbarData = drawArcbarDataPoints(series, opts, config, context, process);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'gauge':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n opts.chartData.gaugeData = drawGaugeDataPoints(categories, series, opts, config, context, process);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'candle':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n drawYAxisGrid(categories, opts, config, context);\r\n drawXAxis(categories, opts, config, context);\r\n var _drawCandleDataPoints = drawCandleDataPoints(series, seriesMA, opts, config, context, process),\r\n xAxisPoints = _drawCandleDataPoints.xAxisPoints,\r\n calPoints = _drawCandleDataPoints.calPoints,\r\n eachSpacing = _drawCandleDataPoints.eachSpacing;\r\n opts.chartData.xAxisPoints = xAxisPoints;\r\n opts.chartData.calPoints = calPoints;\r\n opts.chartData.eachSpacing = eachSpacing;\r\n drawYAxis(series, opts, config, context);\r\n if (opts.enableMarkLine !== false && process === 1) {\r\n drawMarkLine(opts, config, context);\r\n }\r\n if (seriesMA) {\r\n drawLegend(seriesMA, opts, config, context, opts.chartData);\r\n } else {\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n }\r\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n }\r\n}\r\n\r\nfunction uChartsEvent() {\r\n this.events = {};\r\n}\r\n\r\nuChartsEvent.prototype.addEventListener = function(type, listener) {\r\n this.events[type] = this.events[type] || [];\r\n this.events[type].push(listener);\r\n};\r\n\r\nuChartsEvent.prototype.delEventListener = function(type) {\r\n this.events[type] = [];\r\n};\r\n\r\nuChartsEvent.prototype.trigger = function() {\r\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key];\r\n }\r\n var type = args[0];\r\n var params = args.slice(1);\r\n if (!!this.events[type]) {\r\n this.events[type].forEach(function(listener) {\r\n try {\r\n listener.apply(null, params);\r\n } catch (e) {\r\n //console.log('[uCharts] '+e);\r\n }\r\n });\r\n }\r\n};\r\n\r\nvar uCharts = function uCharts(opts) {\r\n opts.pix = opts.pixelRatio ? opts.pixelRatio : 1;\r\n opts.fontSize = opts.fontSize ? opts.fontSize : 13;\r\n opts.fontColor = opts.fontColor ? opts.fontColor : config.fontColor;\r\n if (opts.background == \"\" || opts.background == \"none\") {\r\n opts.background = \"#FFFFFF\"\r\n }\r\n opts.title = assign({}, opts.title);\r\n opts.subtitle = assign({}, opts.subtitle);\r\n opts.duration = opts.duration ? opts.duration : 1000;\r\n opts.yAxis = assign({}, {\r\n data: [],\r\n showTitle: false,\r\n disabled: false,\r\n disableGrid: false,\r\n splitNumber: 5,\r\n gridType: 'solid',\r\n dashLength: 4 * opts.pix,\r\n gridColor: '#cccccc',\r\n padding: 10,\r\n fontColor: '#666666'\r\n }, opts.yAxis);\r\n opts.xAxis = assign({}, {\r\n rotateLabel: false,\r\n rotateAngle:45,\r\n disabled: false,\r\n disableGrid: false,\r\n splitNumber: 5,\r\n calibration:false,\r\n gridType: 'solid',\r\n dashLength: 4,\r\n scrollAlign: 'left',\r\n boundaryGap: 'center',\r\n axisLine: true,\r\n axisLineColor: '#cccccc'\r\n }, opts.xAxis);\r\n opts.xAxis.scrollPosition = opts.xAxis.scrollAlign;\r\n opts.legend = assign({}, {\r\n show: true,\r\n position: 'bottom',\r\n float: 'center',\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderColor: 'rgba(0,0,0,0)',\r\n borderWidth: 0,\r\n padding: 5,\r\n margin: 5,\r\n itemGap: 10,\r\n fontSize: opts.fontSize,\r\n lineHeight: opts.fontSize,\r\n fontColor: opts.fontColor,\r\n formatter: {},\r\n hiddenColor: '#CECECE'\r\n }, opts.legend);\r\n opts.extra = assign({}, opts.extra);\r\n opts.rotate = opts.rotate ? true : false;\r\n opts.animation = opts.animation ? true : false;\r\n opts.rotate = opts.rotate ? true : false;\r\n opts.canvas2d = opts.canvas2d ? true : false;\r\n \r\n let config$$1 = assign({}, config);\r\n config$$1.color = opts.color ? opts.color : config$$1.color;\r\n if (opts.type == 'pie') {\r\n config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.pie.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\r\n }\r\n if (opts.type == 'ring') {\r\n config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.ring.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\r\n }\r\n if (opts.type == 'rose') {\r\n config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.rose.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\r\n }\r\n config$$1.pieChartTextPadding = opts.dataLabel === false ? 0 : config$$1.pieChartTextPadding * opts.pix;\r\n\r\n //屏幕旋转\r\n config$$1.rotate = opts.rotate;\r\n if (opts.rotate) {\r\n let tempWidth = opts.width;\r\n let tempHeight = opts.height;\r\n opts.width = tempHeight;\r\n opts.height = tempWidth;\r\n }\r\n\r\n //适配高分屏\r\n opts.padding = opts.padding ? opts.padding : config$$1.padding;\r\n config$$1.yAxisWidth = config.yAxisWidth * opts.pix;\r\n config$$1.xAxisHeight = config.xAxisHeight * opts.pix;\r\n if (opts.enableScroll && opts.xAxis.scrollShow) {\r\n config$$1.xAxisHeight += 6 * opts.pix;\r\n }\r\n config$$1.fontSize = opts.fontSize * opts.pix;\r\n config$$1.titleFontSize = config.titleFontSize * opts.pix;\r\n config$$1.subtitleFontSize = config.subtitleFontSize * opts.pix;\r\n config$$1.toolTipPadding = config.toolTipPadding * opts.pix;\r\n config$$1.toolTipLineHeight = config.toolTipLineHeight * opts.pix;\r\n if(!opts.context){\r\n throw new Error('[uCharts] 未获取到context!注意:v2.0版本后,需要自行获取canvas的绘图上下文并传入opts.context!');\r\n }\r\n this.context = opts.context;\r\n if (!this.context.setTextAlign) {\r\n this.context.setStrokeStyle = function(e) {\r\n return this.strokeStyle = e;\r\n }\r\n this.context.setLineWidth = function(e) {\r\n return this.lineWidth = e;\r\n }\r\n this.context.setLineCap = function(e) {\r\n return this.lineCap = e;\r\n }\r\n this.context.setFontSize = function(e) {\r\n return this.font = e + \"px sans-serif\";\r\n }\r\n this.context.setFillStyle = function(e) {\r\n return this.fillStyle = e;\r\n }\r\n this.context.setTextAlign = function(e) {\r\n return this.textAlign = e;\r\n }\r\n this.context.draw = function() {}\r\n }\r\n //兼容NVUEsetLineDash\r\n if(!this.context.setLineDash){\r\n this.context.setLineDash = function(e) {}\r\n }\r\n opts.chartData = {};\r\n this.uevent = new uChartsEvent();\r\n this.scrollOption = {\r\n currentOffset: 0,\r\n startTouchX: 0,\r\n distance: 0,\r\n lastMoveTime: 0\r\n };\r\n this.opts = opts;\r\n this.config = config$$1;\r\n drawCharts.call(this, opts.type, opts, config$$1, this.context);\r\n};\r\n\r\nuCharts.prototype.updateData = function() {\r\n let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\r\n this.opts = assign({}, this.opts, data);\r\n this.opts.updateData = true;\r\n let scrollPosition = data.scrollPosition || 'current';\r\n switch (scrollPosition) {\r\n case 'current':\r\n this.opts._scrollDistance_ = this.scrollOption.currentOffset;\r\n break;\r\n case 'left':\r\n this.opts._scrollDistance_ = 0;\r\n this.scrollOption = {\r\n currentOffset: 0,\r\n startTouchX: 0,\r\n distance: 0,\r\n lastMoveTime: 0\r\n };\r\n break;\r\n case 'right':\r\n let _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config, this.context), yAxisWidth = _calYAxisData.yAxisWidth;\r\n this.config.yAxisWidth = yAxisWidth;\r\n let offsetLeft = 0;\r\n let _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config), xAxisPoints = _getXAxisPoints0.xAxisPoints,\r\n startX = _getXAxisPoints0.startX,\r\n endX = _getXAxisPoints0.endX,\r\n eachSpacing = _getXAxisPoints0.eachSpacing;\r\n let totalWidth = eachSpacing * (xAxisPoints.length - 1);\r\n let screenWidth = endX - startX;\r\n offsetLeft = screenWidth - totalWidth;\r\n this.scrollOption = {\r\n currentOffset: offsetLeft,\r\n startTouchX: offsetLeft,\r\n distance: 0,\r\n lastMoveTime: 0\r\n };\r\n this.opts._scrollDistance_ = offsetLeft;\r\n break;\r\n }\r\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\r\n};\r\n\r\nuCharts.prototype.zoom = function() {\r\n var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.opts.xAxis.itemCount;\r\n if (this.opts.enableScroll !== true) {\r\n console.log('[uCharts] 请启用滚动条后使用')\r\n return;\r\n }\r\n //当前屏幕中间点\r\n let centerPoint = Math.round(Math.abs(this.scrollOption.currentOffset) / this.opts.chartData.eachSpacing) + Math.round(this.opts.xAxis.itemCount / 2);\r\n this.opts.animation = false;\r\n this.opts.xAxis.itemCount = val.itemCount;\r\n //重新计算x轴偏移距离\r\n let _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config, this.context),\r\n yAxisWidth = _calYAxisData.yAxisWidth;\r\n this.config.yAxisWidth = yAxisWidth;\r\n let offsetLeft = 0;\r\n let _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),\r\n xAxisPoints = _getXAxisPoints0.xAxisPoints,\r\n startX = _getXAxisPoints0.startX,\r\n endX = _getXAxisPoints0.endX,\r\n eachSpacing = _getXAxisPoints0.eachSpacing;\r\n let centerLeft = eachSpacing * centerPoint;\r\n let screenWidth = endX - startX;\r\n let MaxLeft = screenWidth - eachSpacing * (xAxisPoints.length - 1);\r\n offsetLeft = screenWidth / 2 - centerLeft;\r\n if (offsetLeft > 0) {\r\n offsetLeft = 0;\r\n }\r\n if (offsetLeft < MaxLeft) {\r\n offsetLeft = MaxLeft;\r\n }\r\n this.scrollOption = {\r\n currentOffset: offsetLeft,\r\n startTouchX: 0,\r\n distance: 0,\r\n lastMoveTime: 0\r\n };\r\n calValidDistance(this, offsetLeft, this.opts.chartData, this.config, this.opts);\r\n this.opts._scrollDistance_ = offsetLeft;\r\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\r\n};\r\n\r\nuCharts.prototype.dobuleZoom = function(e) {\r\n if (this.opts.enableScroll !== true) {\r\n console.log('[uCharts] 请启用滚动条后使用')\r\n return;\r\n }\r\n const tcs = e.changedTouches;\r\n if (tcs.length < 2) {\r\n return;\r\n }\r\n for (var i = 0; i < tcs.length; i++) {\r\n tcs[i].x = tcs[i].x ? tcs[i].x : tcs[i].clientX;\r\n tcs[i].y = tcs[i].y ? tcs[i].y : tcs[i].clientY;\r\n }\r\n const ntcs = [getTouches(tcs[0], this.opts, e),getTouches(tcs[1], this.opts, e)]; \r\n const xlength = Math.abs(ntcs[0].x - ntcs[1].x);\r\n // 记录初始的两指之间的数据\r\n if(!this.scrollOption.moveCount){\r\n let cts0 = {changedTouches:[{x:tcs[0].x,y:this.opts.area[0] / this.opts.pix + 2}]};\r\n let cts1 = {changedTouches:[{x:tcs[1].x,y:this.opts.area[0] / this.opts.pix + 2}]};\r\n if(this.opts.rotate){\r\n cts0 = {changedTouches:[{x:this.opts.height / this.opts.pix - this.opts.area[0] / this.opts.pix - 2,y:tcs[0].y}]};\r\n cts1 = {changedTouches:[{x:this.opts.height / this.opts.pix - this.opts.area[0] / this.opts.pix - 2,y:tcs[1].y}]};\r\n }\r\n const moveCurrent1 = this.getCurrentDataIndex(cts0).index;\r\n const moveCurrent2 = this.getCurrentDataIndex(cts1).index;\r\n const moveCount = Math.abs(moveCurrent1 - moveCurrent2);\r\n this.scrollOption.moveCount = moveCount;\r\n this.scrollOption.moveCurrent1 = Math.min(moveCurrent1, moveCurrent2);\r\n this.scrollOption.moveCurrent2 = Math.max(moveCurrent1, moveCurrent2);\r\n return;\r\n }\r\n \r\n let currentEachSpacing = xlength / this.scrollOption.moveCount;\r\n let itemCount = (this.opts.width - this.opts.area[1] - this.opts.area[3]) / currentEachSpacing;\r\n itemCount = itemCount <= 2 ? 2 : itemCount;\r\n itemCount = itemCount >= this.opts.categories.length ? this.opts.categories.length : itemCount;\r\n this.opts.animation = false;\r\n this.opts.xAxis.itemCount = itemCount;\r\n // 重新计算滚动条偏移距离\r\n let offsetLeft = 0;\r\n let _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),\r\n xAxisPoints = _getXAxisPoints0.xAxisPoints,\r\n startX = _getXAxisPoints0.startX,\r\n endX = _getXAxisPoints0.endX,\r\n eachSpacing = _getXAxisPoints0.eachSpacing;\r\n let currentLeft = eachSpacing * this.scrollOption.moveCurrent1;\r\n let screenWidth = endX - startX;\r\n let MaxLeft = screenWidth - eachSpacing * (xAxisPoints.length - 1);\r\n offsetLeft = -currentLeft+Math.min(ntcs[0].x,ntcs[1].x)-this.opts.area[3]-eachSpacing;\r\n if (offsetLeft > 0) {\r\n offsetLeft = 0;\r\n }\r\n if (offsetLeft < MaxLeft) {\r\n offsetLeft = MaxLeft;\r\n }\r\n this.scrollOption.currentOffset= offsetLeft;\r\n this.scrollOption.startTouchX= 0;\r\n this.scrollOption.distance=0;\r\n calValidDistance(this, offsetLeft, this.opts.chartData, this.config, this.opts);\r\n this.opts._scrollDistance_ = offsetLeft;\r\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\r\n}\r\n\r\nuCharts.prototype.stopAnimation = function() {\r\n this.animationInstance && this.animationInstance.stop();\r\n};\r\n\r\nuCharts.prototype.addEventListener = function(type, listener) {\r\n this.uevent.addEventListener(type, listener);\r\n};\r\n\r\nuCharts.prototype.delEventListener = function(type) {\r\n this.uevent.delEventListener(type);\r\n};\r\n\r\nuCharts.prototype.getCurrentDataIndex = function(e) {\r\n var touches = null;\r\n if (e.changedTouches) {\r\n touches = e.changedTouches[0];\r\n } else {\r\n touches = e.mp.changedTouches[0];\r\n }\r\n if (touches) {\r\n let _touches$ = getTouches(touches, this.opts, e);\r\n if (this.opts.type === 'pie' || this.opts.type === 'ring') {\r\n return findPieChartCurrentIndex({\r\n x: _touches$.x,\r\n y: _touches$.y\r\n }, this.opts.chartData.pieData, this.opts);\r\n } else if (this.opts.type === 'rose') {\r\n return findRoseChartCurrentIndex({\r\n x: _touches$.x,\r\n y: _touches$.y\r\n }, this.opts.chartData.pieData, this.opts);\r\n } else if (this.opts.type === 'radar') {\r\n return findRadarChartCurrentIndex({\r\n x: _touches$.x,\r\n y: _touches$.y\r\n }, this.opts.chartData.radarData, this.opts.categories.length);\r\n } else if (this.opts.type === 'funnel') {\r\n return findFunnelChartCurrentIndex({\r\n x: _touches$.x,\r\n y: _touches$.y\r\n }, this.opts.chartData.funnelData);\r\n } else if (this.opts.type === 'map') {\r\n return findMapChartCurrentIndex({\r\n x: _touches$.x,\r\n y: _touches$.y\r\n }, this.opts);\r\n } else if (this.opts.type === 'word') {\r\n return findWordChartCurrentIndex({\r\n x: _touches$.x,\r\n y: _touches$.y\r\n }, this.opts.chartData.wordCloudData);\r\n } else if (this.opts.type === 'bar') {\r\n return findBarChartCurrentIndex({\r\n x: _touches$.x,\r\n y: _touches$.y\r\n }, this.opts.chartData.calPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset));\r\n } else {\r\n return findCurrentIndex({\r\n x: _touches$.x,\r\n y: _touches$.y\r\n }, this.opts.chartData.calPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset));\r\n }\r\n }\r\n return -1;\r\n};\r\n\r\nuCharts.prototype.getLegendDataIndex = function(e) {\r\n var touches = null;\r\n if (e.changedTouches) {\r\n touches = e.changedTouches[0];\r\n } else {\r\n touches = e.mp.changedTouches[0];\r\n }\r\n if (touches) {\r\n let _touches$ = getTouches(touches, this.opts, e);\r\n return findLegendIndex({\r\n x: _touches$.x,\r\n y: _touches$.y\r\n }, this.opts.chartData.legendData);\r\n }\r\n return -1;\r\n};\r\n\r\nuCharts.prototype.touchLegend = function(e) {\r\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n var touches = null;\r\n if (e.changedTouches) {\r\n touches = e.changedTouches[0];\r\n } else {\r\n touches = e.mp.changedTouches[0];\r\n }\r\n if (touches) {\r\n var _touches$ = getTouches(touches, this.opts, e);\r\n var index = this.getLegendDataIndex(e);\r\n if (index >= 0) {\r\n if (this.opts.type == 'candle') {\r\n this.opts.seriesMA[index].show = !this.opts.seriesMA[index].show;\r\n } else {\r\n this.opts.series[index].show = !this.opts.series[index].show;\r\n }\r\n this.opts.animation = option.animation ? true : false;\r\n this.opts._scrollDistance_ = this.scrollOption.currentOffset;\r\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\r\n }\r\n }\r\n\r\n};\r\n\r\nuCharts.prototype.showToolTip = function(e) {\r\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n var touches = null;\r\n if (e.changedTouches) {\r\n touches = e.changedTouches[0];\r\n } else {\r\n touches = e.mp.changedTouches[0];\r\n }\r\n if (!touches) {\r\n console.log(\"[uCharts] 未获取到event坐标信息\");\r\n }\r\n var _touches$ = getTouches(touches, this.opts, e);\r\n var currentOffset = this.scrollOption.currentOffset;\r\n var opts = assign({}, this.opts, {\r\n _scrollDistance_: currentOffset,\r\n animation: false\r\n });\r\n if (this.opts.type === 'line' || this.opts.type === 'area' || this.opts.type === 'column' || this.opts.type === 'scatter' || this.opts.type === 'bubble') {\r\n var current = this.getCurrentDataIndex(e);\r\n var index = option.index == undefined ? current.index : option.index;\r\n if (index > -1 || index.length>0) {\r\n var seriesData = getSeriesDataItem(this.opts.series, index, current.group);\r\n if (seriesData.length !== 0) {\r\n var _getToolTipData = getToolTipData(seriesData, this.opts, index, current.group, this.opts.categories, option),\r\n textList = _getToolTipData.textList,\r\n offset = _getToolTipData.offset;\r\n offset.y = _touches$.y;\r\n opts.tooltip = {\r\n textList: option.textList !== undefined ? option.textList : textList,\r\n offset: option.offset !== undefined ? option.offset : offset,\r\n option: option,\r\n index: index\r\n };\r\n }\r\n }\r\n drawCharts.call(this, opts.type, opts, this.config, this.context);\r\n }\r\n if (this.opts.type === 'mount') {\r\n var index = option.index == undefined ? this.getCurrentDataIndex(e).index : option.index;\r\n if (index > -1) {\r\n var opts = assign({}, this.opts, {animation: false});\r\n var seriesData = assign({}, opts._series_[index]);\r\n var textList = [{\r\n text: option.formatter ? option.formatter(seriesData, undefined, index, opts) : seriesData.name + ': ' + seriesData.data,\r\n color: seriesData.color\r\n }];\r\n var offset = {\r\n x: opts.chartData.calPoints[index].x,\r\n y: _touches$.y\r\n };\r\n opts.tooltip = {\r\n textList: option.textList ? option.textList : textList,\r\n offset: option.offset !== undefined ? option.offset : offset,\r\n option: option,\r\n index: index\r\n };\r\n }\r\n \r\n drawCharts.call(this, opts.type, opts, this.config, this.context);\r\n }\r\n if (this.opts.type === 'bar') {\r\n var current = this.getCurrentDataIndex(e);\r\n var index = option.index == undefined ? current.index : option.index;\r\n if (index > -1 || index.length>0) {\r\n var seriesData = getSeriesDataItem(this.opts.series, index, current.group);\r\n if (seriesData.length !== 0) {\r\n var _getToolTipData = getToolTipData(seriesData, this.opts, index, current.group, this.opts.categories, option),\r\n textList = _getToolTipData.textList,\r\n offset = _getToolTipData.offset;\r\n offset.x = _touches$.x;\r\n opts.tooltip = {\r\n textList: option.textList !== undefined ? option.textList : textList,\r\n offset: option.offset !== undefined ? option.offset : offset,\r\n option: option,\r\n index: index\r\n };\r\n }\r\n }\r\n drawCharts.call(this, opts.type, opts, this.config, this.context);\r\n }\r\n if (this.opts.type === 'mix') {\r\n var current = this.getCurrentDataIndex(e);\r\n var index = option.index == undefined ? current.index : option.index;\r\n if (index > -1) {\r\n var currentOffset = this.scrollOption.currentOffset;\r\n var opts = assign({}, this.opts, {\r\n _scrollDistance_: currentOffset,\r\n animation: false\r\n });\r\n var seriesData = getSeriesDataItem(this.opts.series, index);\r\n if (seriesData.length !== 0) {\r\n var _getMixToolTipData = getMixToolTipData(seriesData, this.opts, index, this.opts.categories, option),\r\n textList = _getMixToolTipData.textList,\r\n offset = _getMixToolTipData.offset;\r\n offset.y = _touches$.y;\r\n opts.tooltip = {\r\n textList: option.textList ? option.textList : textList,\r\n offset: option.offset !== undefined ? option.offset : offset,\r\n option: option,\r\n index: index\r\n };\r\n }\r\n }\r\n drawCharts.call(this, opts.type, opts, this.config, this.context);\r\n }\r\n if (this.opts.type === 'candle') {\r\n var current = this.getCurrentDataIndex(e);\r\n var index = option.index == undefined ? current.index : option.index;\r\n if (index > -1) {\r\n var currentOffset = this.scrollOption.currentOffset;\r\n var opts = assign({}, this.opts, {\r\n _scrollDistance_: currentOffset,\r\n animation: false\r\n });\r\n var seriesData = getSeriesDataItem(this.opts.series, index);\r\n if (seriesData.length !== 0) {\r\n var _getToolTipData = getCandleToolTipData(this.opts.series[0].data, seriesData, this.opts, index, this.opts.categories, this.opts.extra.candle, option),\r\n textList = _getToolTipData.textList,\r\n offset = _getToolTipData.offset;\r\n offset.y = _touches$.y;\r\n opts.tooltip = {\r\n textList: option.textList ? option.textList : textList,\r\n offset: option.offset !== undefined ? option.offset : offset,\r\n option: option,\r\n index: index\r\n };\r\n }\r\n }\r\n drawCharts.call(this, opts.type, opts, this.config, this.context);\r\n }\r\n if (this.opts.type === 'pie' || this.opts.type === 'ring' || this.opts.type === 'rose' || this.opts.type === 'funnel') {\r\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\r\n if (index > -1) {\r\n var opts = assign({}, this.opts, {animation: false});\r\n var seriesData = assign({}, opts._series_[index]);\r\n var textList = [{\r\n text: option.formatter ? option.formatter(seriesData, undefined, index, opts) : seriesData.name + ': ' + seriesData.data,\r\n color: seriesData.color\r\n }];\r\n var offset = {\r\n x: _touches$.x,\r\n y: _touches$.y\r\n };\r\n opts.tooltip = {\r\n textList: option.textList ? option.textList : textList,\r\n offset: option.offset !== undefined ? option.offset : offset,\r\n option: option,\r\n index: index\r\n };\r\n }\r\n drawCharts.call(this, opts.type, opts, this.config, this.context);\r\n }\r\n if (this.opts.type === 'map') {\r\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\r\n if (index > -1) {\r\n var opts = assign({}, this.opts, {animation: false});\r\n var seriesData = assign({}, this.opts.series[index]);\r\n seriesData.name = seriesData.properties.name\r\n var textList = [{\r\n text: option.formatter ? option.formatter(seriesData, undefined, index, this.opts) : seriesData.name,\r\n color: seriesData.color\r\n }];\r\n var offset = {\r\n x: _touches$.x,\r\n y: _touches$.y\r\n };\r\n opts.tooltip = {\r\n textList: option.textList ? option.textList : textList,\r\n offset: option.offset !== undefined ? option.offset : offset,\r\n option: option,\r\n index: index\r\n };\r\n }\r\n opts.updateData = false;\r\n drawCharts.call(this, opts.type, opts, this.config, this.context);\r\n }\r\n if (this.opts.type === 'word') {\r\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\r\n if (index > -1) {\r\n var opts = assign({}, this.opts, {animation: false});\r\n var seriesData = assign({}, this.opts.series[index]);\r\n var textList = [{\r\n text: option.formatter ? option.formatter(seriesData, undefined, index, this.opts) : seriesData.name,\r\n color: seriesData.color\r\n }];\r\n var offset = {\r\n x: _touches$.x,\r\n y: _touches$.y\r\n };\r\n opts.tooltip = {\r\n textList: option.textList ? option.textList : textList,\r\n offset: option.offset !== undefined ? option.offset : offset,\r\n option: option,\r\n index: index\r\n };\r\n }\r\n opts.updateData = false;\r\n drawCharts.call(this, opts.type, opts, this.config, this.context);\r\n }\r\n if (this.opts.type === 'radar') {\r\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\r\n if (index > -1) {\r\n var opts = assign({}, this.opts, {animation: false});\r\n var seriesData = getSeriesDataItem(this.opts.series, index);\r\n if (seriesData.length !== 0) {\r\n var textList = seriesData.map((item) => {\r\n return {\r\n text: option.formatter ? option.formatter(item, this.opts.categories[index], index, this.opts) : item.name + ': ' + item.data,\r\n color: item.color\r\n };\r\n });\r\n var offset = {\r\n x: _touches$.x,\r\n y: _touches$.y\r\n };\r\n opts.tooltip = {\r\n textList: option.textList ? option.textList : textList,\r\n offset: option.offset !== undefined ? option.offset : offset,\r\n option: option,\r\n index: index\r\n };\r\n }\r\n }\r\n drawCharts.call(this, opts.type, opts, this.config, this.context);\r\n }\r\n};\r\n\r\nuCharts.prototype.translate = function(distance) {\r\n this.scrollOption = {\r\n currentOffset: distance,\r\n startTouchX: distance,\r\n distance: 0,\r\n lastMoveTime: 0\r\n };\r\n let opts = assign({}, this.opts, {\r\n _scrollDistance_: distance,\r\n animation: false\r\n });\r\n drawCharts.call(this, this.opts.type, opts, this.config, this.context);\r\n};\r\n\r\nuCharts.prototype.scrollStart = function(e) {\r\n var touches = null;\r\n if (e.changedTouches) {\r\n touches = e.changedTouches[0];\r\n } else {\r\n touches = e.mp.changedTouches[0];\r\n }\r\n var _touches$ = getTouches(touches, this.opts, e);\r\n if (touches && this.opts.enableScroll === true) {\r\n this.scrollOption.startTouchX = _touches$.x;\r\n }\r\n};\r\n\r\nuCharts.prototype.scroll = function(e) {\r\n if (this.scrollOption.lastMoveTime === 0) {\r\n this.scrollOption.lastMoveTime = Date.now();\r\n }\r\n let Limit = this.opts.touchMoveLimit || 60;\r\n let currMoveTime = Date.now();\r\n let duration = currMoveTime - this.scrollOption.lastMoveTime;\r\n if (duration < Math.floor(1000 / Limit)) return;\r\n if (this.scrollOption.startTouchX == 0) return;\r\n this.scrollOption.lastMoveTime = currMoveTime;\r\n var touches = null;\r\n if (e.changedTouches) {\r\n touches = e.changedTouches[0];\r\n } else {\r\n touches = e.mp.changedTouches[0];\r\n }\r\n if (touches && this.opts.enableScroll === true) {\r\n var _touches$ = getTouches(touches, this.opts, e);\r\n var _distance;\r\n _distance = _touches$.x - this.scrollOption.startTouchX;\r\n var currentOffset = this.scrollOption.currentOffset;\r\n var validDistance = calValidDistance(this, currentOffset + _distance, this.opts.chartData, this.config, this.opts);\r\n this.scrollOption.distance = _distance = validDistance - currentOffset;\r\n var opts = assign({}, this.opts, {\r\n _scrollDistance_: currentOffset + _distance,\r\n animation: false\r\n });\r\n\t\tthis.opts = opts;\r\n drawCharts.call(this, opts.type, opts, this.config, this.context);\r\n return currentOffset + _distance;\r\n }\r\n};\r\n\r\nuCharts.prototype.scrollEnd = function(e) {\r\n if (this.opts.enableScroll === true) {\r\n var _scrollOption = this.scrollOption,\r\n currentOffset = _scrollOption.currentOffset,\r\n distance = _scrollOption.distance;\r\n this.scrollOption.currentOffset = currentOffset + distance;\r\n this.scrollOption.distance = 0;\r\n this.scrollOption.moveCount = 0;\r\n }\r\n};\r\n\r\nexport default uCharts;","/*\r\n * uCharts®\r\n * 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360)、Vue、Taro等支持canvas的框架平台\r\n * Copyright (c) 2021 QIUN®秋云 https://www.ucharts.cn All rights reserved.\r\n * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )\r\n * 复制使用请保留本段注释,感谢支持开源!\r\n * \r\n * uCharts®官方网站\r\n * https://www.uCharts.cn\r\n * \r\n * 开源地址:\r\n * https://gitee.com/uCharts/uCharts\r\n * \r\n * uni-app插件市场地址:\r\n * http://ext.dcloud.net.cn/plugin?id=271\r\n * \r\n */\r\n\r\n// 主题颜色配置:如每个图表类型需要不同主题,请在对应图表类型上更改color属性\r\nconst color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'];\r\n\r\n//事件转换函数,主要用作格式化x轴为时间轴,根据需求自行修改\r\nconst formatDateTime = (timeStamp, returnType)=>{\r\n var date = new Date();\r\n date.setTime(timeStamp * 1000);\r\n var y = date.getFullYear();\r\n var m = date.getMonth() + 1;\r\n m = m < 10 ? ('0' + m) : m;\r\n var d = date.getDate();\r\n d = d < 10 ? ('0' + d) : d;\r\n var h = date.getHours();\r\n h = h < 10 ? ('0' + h) : h;\r\n var minute = date.getMinutes();\r\n var second = date.getSeconds();\r\n minute = minute < 10 ? ('0' + minute) : minute;\r\n second = second < 10 ? ('0' + second) : second;\r\n if(returnType == 'full'){return y + '-' + m + '-' + d + ' '+ h +':' + minute + ':' + second;}\r\n if(returnType == 'y-m-d'){return y + '-' + m + '-' + d;}\r\n if(returnType == 'h:m'){return h +':' + minute;}\r\n if(returnType == 'h:m:s'){return h +':' + minute +':' + second;}\r\n return [y, m, d, h, minute, second];\r\n}\r\n\r\nconst cfu = {\r\n //demotype为自定义图表类型,一般不需要自定义图表类型,只需要改根节点上对应的类型即可\r\n\t\"type\":[\"pie\",\"ring\",\"rose\",\"word\",\"funnel\",\"map\",\"arcbar\",\"line\",\"column\",\"mount\",\"bar\",\"area\",\"radar\",\"gauge\",\"candle\",\"mix\",\"tline\",\"tarea\",\"scatter\",\"bubble\",\"demotype\"],\r\n\t\"range\":[\"饼状图\",\"圆环图\",\"玫瑰图\",\"词云图\",\"漏斗图\",\"地图\",\"圆弧进度条\",\"折线图\",\"柱状图\",\"山峰图\",\"条状图\",\"区域图\",\"雷达图\",\"仪表盘\",\"K线图\",\"混合图\",\"时间轴折线\",\"时间轴区域\",\"散点图\",\"气泡图\",\"自定义类型\"],\r\n //增加自定义图表类型,如果需要categories,请在这里加入您的图表类型,例如最后的\"demotype\"\r\n //自定义类型时需要注意\"tline\",\"tarea\",\"scatter\",\"bubble\"等时间轴(矢量x轴)类图表,没有categories,不需要加入categories\r\n\t\"categories\":[\"line\",\"column\",\"mount\",\"bar\",\"area\",\"radar\",\"gauge\",\"candle\",\"mix\",\"demotype\"],\r\n //instance为实例变量承载属性,不要删除\r\n \"instance\":{},\r\n //option为opts及eopts承载属性,不要删除\r\n \"option\":{},\r\n //下面是自定义format配置,因除H5端外的其他端无法通过props传递函数,只能通过此属性对应下标的方式来替换\r\n \"formatter\":{\r\n \"yAxisDemo1\":function(val, index, opts){return val+'元'},\r\n \"yAxisDemo2\":function(val, index, opts){return val.toFixed(2)},\r\n \"xAxisDemo1\":function(val, index, opts){return val+'年';},\r\n \"xAxisDemo2\":function(val, index, opts){return formatDateTime(val,'h:m')},\r\n \"seriesDemo1\":function(val, index, series, opts){return val+'元'},\r\n \"tooltipDemo1\":function(item, category, index, opts){\r\n if(index==0){\r\n \treturn '随便用'+item.data+'年'\r\n }else{\r\n \treturn '其他我没改'+item.data+'天'\r\n }\r\n },\r\n \"pieDemo\":function(val, index, series, opts){\r\n if(index !== undefined){\r\n return series[index].name+':'+series[index].data+'元'\r\n }\r\n },\r\n },\r\n //这里演示了自定义您的图表类型的option,可以随意命名,之后在组件上 type=\"demotype\" 后,组件会调用这个花括号里的option,如果组件上还存在opts参数,会将demotype与opts中option合并后渲染图表。\r\n \"demotype\":{\r\n //我这里把曲线图当做了自定义图表类型,您可以根据需要随意指定类型或配置\r\n \"type\": \"line\",\r\n \"color\": color,\r\n \"padding\": [15,10,0,15],\r\n \"xAxis\": {\r\n \"disableGrid\": true,\r\n },\r\n \"yAxis\": {\r\n \"gridType\": \"dash\",\r\n \"dashLength\": 2,\r\n },\r\n \"legend\": {\r\n },\r\n \"extra\": {\r\n \t\"line\": {\r\n \t\t\"type\": \"curve\",\r\n \t\t\"width\": 2\r\n \t},\r\n }\r\n },\r\n //下面是自定义配置,请添加项目所需的通用配置\r\n\t\"pie\":{\r\n\t\t\"type\": \"pie\",\r\n \"color\": color,\r\n\t\t\"padding\": [5,5,5,5],\r\n\t\t\"extra\": {\r\n\t\t\t\"pie\": {\r\n\t\t\t\t\"activeOpacity\": 0.5,\r\n\t\t\t\t\"activeRadius\": 10,\r\n\t\t\t\t\"offsetAngle\": 0,\r\n\t\t\t\t\"labelWidth\": 15,\r\n\t\t\t\t\"border\": true,\r\n\t\t\t\t\"borderWidth\": 3,\r\n\t\t\t\t\"borderColor\": \"#FFFFFF\"\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n\t\"ring\":{\r\n\t\t\"type\": \"ring\",\r\n \"color\": color,\r\n\t\t\"padding\": [5,5,5,5],\r\n\t\t\"rotate\": false,\r\n\t\t\"dataLabel\": true,\r\n\t\t\"legend\": {\r\n\t\t\t\"show\": true,\r\n\t\t\t\"position\": \"right\",\r\n \"lineHeight\": 25,\r\n\t\t},\r\n\t\t\"title\": {\r\n\t\t\t\"name\": \"收益率\",\r\n\t\t\t\"fontSize\": 15,\r\n\t\t\t\"color\": \"#666666\"\r\n\t\t},\r\n\t\t\"subtitle\": {\r\n\t\t\t\"name\": \"70%\",\r\n\t\t\t\"fontSize\": 25,\r\n\t\t\t\"color\": \"#7cb5ec\"\r\n\t\t},\r\n\t\t\"extra\": {\r\n\t\t\t\"ring\": {\r\n\t\t\t\t\"ringWidth\":30,\r\n\t\t\t\t\"activeOpacity\": 0.5,\r\n\t\t\t\t\"activeRadius\": 10,\r\n\t\t\t\t\"offsetAngle\": 0,\r\n\t\t\t\t\"labelWidth\": 15,\r\n\t\t\t\t\"border\": true,\r\n\t\t\t\t\"borderWidth\": 3,\r\n\t\t\t\t\"borderColor\": \"#FFFFFF\"\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\t\"rose\":{\r\n\t\t\"type\": \"rose\",\r\n \"color\": color,\r\n\t\t\"padding\": [5,5,5,5],\r\n\t\t\"legend\": {\r\n\t\t\t\"show\": true,\r\n\t\t\t\"position\": \"left\",\r\n \"lineHeight\": 25,\r\n\t\t},\r\n\t\t\"extra\": {\r\n\t\t\t\"rose\": {\r\n\t\t\t\t\"type\": \"area\",\r\n\t\t\t\t\"minRadius\": 50,\r\n\t\t\t\t\"activeOpacity\": 0.5,\r\n\t\t\t\t\"activeRadius\": 10,\r\n\t\t\t\t\"offsetAngle\": 0,\r\n\t\t\t\t\"labelWidth\": 15,\r\n\t\t\t\t\"border\": false,\r\n\t\t\t\t\"borderWidth\": 2,\r\n\t\t\t\t\"borderColor\": \"#FFFFFF\"\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n\t\"word\":{\r\n\t\t\"type\": \"word\",\r\n \"color\": color,\r\n\t\t\"extra\": {\r\n\t\t\t\"word\": {\r\n\t\t\t\t\"type\": \"normal\",\r\n\t\t\t\t\"autoColors\": false\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\t\"funnel\":{\r\n\t\t\"type\": \"funnel\",\r\n \"color\": color,\r\n\t\t\"padding\": [15,15,0,15],\r\n\t\t\"extra\": {\r\n\t\t\t\"funnel\": {\r\n\t\t\t\t\"activeOpacity\": 0.3,\r\n\t\t\t\t\"activeWidth\": 10,\r\n\t\t\t\t\"border\": true,\r\n\t\t\t\t\"borderWidth\": 2,\r\n\t\t\t\t\"borderColor\": \"#FFFFFF\",\r\n\t\t\t\t\"fillOpacity\": 1,\r\n\t\t\t\t\"labelAlign\": \"right\"\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n\t\"map\":{\r\n\t\t\"type\": \"map\",\r\n \"color\": color,\r\n\t\t\"padding\": [0,0,0,0],\r\n \"dataLabel\": true,\r\n\t\t\"extra\": {\r\n\t\t\t\"map\": {\r\n\t\t\t\t\"border\": true,\r\n\t\t\t\t\"borderWidth\": 1,\r\n\t\t\t\t\"borderColor\": \"#666666\",\r\n\t\t\t\t\"fillOpacity\": 0.6,\r\n\t\t\t\t\"activeBorderColor\": \"#F04864\",\r\n\t\t\t\t\"activeFillColor\": \"#FACC14\",\r\n\t\t\t\t\"activeFillOpacity\": 1\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n\t\"arcbar\":{\r\n\t\t\"type\": \"arcbar\",\r\n \"color\": color,\r\n\t\t\"title\": {\r\n\t\t\t\"name\": \"百分比\",\r\n\t\t\t\"fontSize\": 25,\r\n\t\t\t\"color\": \"#00FF00\"\r\n\t\t},\r\n\t\t\"subtitle\": {\r\n\t\t\t\"name\": \"默认标题\",\r\n\t\t\t\"fontSize\": 15,\r\n\t\t\t\"color\": \"#666666\"\r\n\t\t},\r\n\t\t\"extra\": {\r\n\t\t\t\"arcbar\": {\r\n\t\t\t\t\"type\": \"default\",\r\n\t\t\t\t\"width\": 12,\r\n\t\t\t\t\"backgroundColor\": \"#E9E9E9\",\r\n\t\t\t\t\"startAngle\": 0.75,\r\n\t\t\t\t\"endAngle\": 0.25,\r\n\t\t\t\t\"gap\": 2\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\t\"line\":{\r\n\t\t\"type\": \"line\",\r\n \"color\": color,\r\n\t\t\"padding\": [15,10,0,15],\r\n\t\t\"xAxis\": {\r\n \"disableGrid\": true,\r\n\t\t},\r\n\t\t\"yAxis\": {\r\n \"gridType\": \"dash\",\r\n \"dashLength\": 2,\r\n\t\t},\r\n\t\t\"legend\": {\r\n\t\t},\r\n\t\t\"extra\": {\r\n\t\t\t\"line\": {\r\n\t\t\t\t\"type\": \"straight\",\r\n\t\t\t\t\"width\": 2\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n \"tline\":{\r\n \t\"type\": \"line\",\r\n \"color\": color,\r\n \t\"padding\": [15,10,0,15],\r\n \t\"xAxis\": {\r\n \"disableGrid\": false,\r\n \"boundaryGap\":\"justify\",\r\n \t},\r\n \t\"yAxis\": {\r\n \"gridType\": \"dash\",\r\n \"dashLength\": 2,\r\n \"data\":[\r\n {\r\n \"min\":0,\r\n \"max\":80\r\n }\r\n ]\r\n \t},\r\n \t\"legend\": {\r\n \t},\r\n \t\"extra\": {\r\n \t\t\"line\": {\r\n \t\t\t\"type\": \"curve\",\r\n \t\t\t\"width\": 2\r\n \t\t},\r\n \t}\r\n },\r\n \"tarea\":{\r\n \t\"type\": \"area\",\r\n \"color\": color,\r\n \t\"padding\": [15,10,0,15],\r\n \t\"xAxis\": {\r\n \"disableGrid\": true,\r\n \"boundaryGap\":\"justify\",\r\n \t},\r\n \t\"yAxis\": {\r\n \"gridType\": \"dash\",\r\n \"dashLength\": 2,\r\n \"data\":[\r\n {\r\n \"min\":0,\r\n \"max\":80\r\n }\r\n ]\r\n \t},\r\n \t\"legend\": {\r\n \t},\r\n \t\"extra\": {\r\n \t\t\"area\": {\r\n \t\t\t\"type\": \"curve\",\r\n \t\t\t\"opacity\": 0.2,\r\n \t\t\t\"addLine\": true,\r\n \t\t\t\"width\": 2,\r\n \t\t\t\"gradient\": true\r\n \t\t},\r\n \t}\r\n },\r\n\t\"column\":{\r\n\t\t\"type\": \"column\",\r\n \"color\": color,\r\n\t\t\"padding\": [15,15,0,5],\r\n\t\t\"xAxis\": {\r\n \"disableGrid\": true,\r\n\t\t},\r\n\t\t\"yAxis\": {\r\n \"data\":[{\"min\":0}]\r\n\t\t},\r\n\t\t\"legend\": {\r\n\t\t},\r\n\t\t\"extra\": {\r\n\t\t\t\"column\": {\r\n\t\t\t\t\"type\": \"group\",\r\n\t\t\t\t\"width\": 30,\r\n\t\t\t\t\"activeBgColor\": \"#000000\",\r\n\t\t\t\t\"activeBgOpacity\": 0.08\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n \"mount\":{\r\n \t\"type\": \"mount\",\r\n \"color\": color,\r\n \t\"padding\": [15,15,0,5],\r\n \t\"xAxis\": {\r\n \"disableGrid\": true,\r\n \t},\r\n \t\"yAxis\": {\r\n \"data\":[{\"min\":0}]\r\n \t},\r\n \t\"legend\": {\r\n \t},\r\n \t\"extra\": {\r\n \t\t\"mount\": {\r\n \t\t\t\"type\": \"mount\",\r\n \t\t\t\"widthRatio\": 1.5,\r\n \t\t},\r\n \t}\r\n },\r\n \"bar\":{\r\n \t\"type\": \"bar\",\r\n \"color\": color,\r\n \t\"padding\": [15,30,0,5],\r\n \t\"xAxis\": {\r\n \"boundaryGap\":\"justify\",\r\n \"disableGrid\":false,\r\n \"min\":0,\r\n \"axisLine\":false\r\n \t},\r\n \t\"yAxis\": {\r\n \t},\r\n \t\"legend\": {\r\n \t},\r\n \t\"extra\": {\r\n \t\t\"bar\": {\r\n \t\t\t\"type\": \"group\",\r\n \t\t\t\"width\": 30,\r\n \t\t\t\"meterBorde\": 1,\r\n \t\t\t\"meterFillColor\": \"#FFFFFF\",\r\n \t\t\t\"activeBgColor\": \"#000000\",\r\n \t\t\t\"activeBgOpacity\": 0.08\r\n \t\t},\r\n \t}\r\n },\r\n\t\"area\":{\r\n\t\t\"type\": \"area\",\r\n\t\t\"color\": color,\r\n\t\t\"padding\": [15,15,0,15],\r\n\t\t\"xAxis\": {\r\n \"disableGrid\": true,\r\n\t\t},\r\n\t\t\"yAxis\": {\r\n \"gridType\": \"dash\",\r\n \"dashLength\": 2,\r\n\t\t},\r\n\t\t\"legend\": {\r\n\t\t},\r\n\t\t\"extra\": {\r\n\t\t\t\"area\": {\r\n\t\t\t\t\"type\": \"straight\",\r\n\t\t\t\t\"opacity\": 0.2,\r\n\t\t\t\t\"addLine\": true,\r\n\t\t\t\t\"width\": 2,\r\n\t\t\t\t\"gradient\": false\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n\t\"radar\":{\r\n\t\t\"type\": \"radar\",\r\n\t\t\"color\": color,\r\n\t\t\"padding\": [5,5,5,5],\r\n \"dataLabel\": false,\r\n\t\t\"legend\": {\r\n\t\t\t\"show\": true,\r\n\t\t\t\"position\": \"right\",\r\n \"lineHeight\": 25,\r\n\t\t},\r\n\t\t\"extra\": {\r\n\t\t\t\"radar\": {\r\n\t\t\t\t\"gridType\": \"radar\",\r\n\t\t\t\t\"gridColor\": \"#CCCCCC\",\r\n\t\t\t\t\"gridCount\": 3,\r\n\t\t\t\t\"opacity\": 0.2,\r\n\t\t\t\t\"max\": 200\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n\t\"gauge\":{\r\n\t\t\"type\": \"gauge\",\r\n\t\t\"color\": color,\r\n\t\t\"title\": {\r\n\t\t\t\"name\": \"66Km/H\",\r\n\t\t\t\"fontSize\": 25,\r\n\t\t\t\"color\": \"#2fc25b\",\r\n\t\t\t\"offsetY\": 50\r\n\t\t},\r\n\t\t\"subtitle\": {\r\n\t\t\t\"name\": \"实时速度\",\r\n\t\t\t\"fontSize\": 15,\r\n\t\t\t\"color\": \"#1890ff\",\r\n\t\t\t\"offsetY\": -50\r\n\t\t},\r\n\t\t\"extra\": {\r\n\t\t\t\"gauge\": {\r\n\t\t\t\t\"type\": \"default\",\r\n\t\t\t\t\"width\": 30,\r\n\t\t\t\t\"labelColor\": \"#666666\",\r\n\t\t\t\t\"startAngle\": 0.75,\r\n\t\t\t\t\"endAngle\": 0.25,\r\n\t\t\t\t\"startNumber\": 0,\r\n\t\t\t\t\"endNumber\": 100,\r\n\t\t\t\t\"labelFormat\": \"\",\r\n\t\t\t\t\"splitLine\": {\r\n\t\t\t\t\t\"fixRadius\": 0,\r\n\t\t\t\t\t\"splitNumber\": 10,\r\n\t\t\t\t\t\"width\": 30,\r\n\t\t\t\t\t\"color\": \"#FFFFFF\",\r\n\t\t\t\t\t\"childNumber\": 5,\r\n\t\t\t\t\t\"childWidth\": 12\r\n\t\t\t\t},\r\n\t\t\t\t\"pointer\": {\r\n\t\t\t\t\t\"width\": 24,\r\n\t\t\t\t\t\"color\": \"auto\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\t\"candle\":{\r\n\t\t\"type\": \"candle\",\r\n\t\t\"color\": color,\r\n\t\t\"padding\": [15,15,0,15],\r\n\t\t\"enableScroll\": true,\r\n\t\t\"enableMarkLine\": true,\r\n\t\t\"dataLabel\": false,\r\n\t\t\"xAxis\": {\r\n\t\t\t\"labelCount\": 4,\r\n\t\t\t\"itemCount\": 40,\r\n\t\t\t\"disableGrid\": true,\r\n\t\t\t\"gridColor\": \"#CCCCCC\",\r\n\t\t\t\"gridType\": \"solid\",\r\n\t\t\t\"dashLength\": 4,\r\n\t\t\t\"scrollShow\": true,\r\n\t\t\t\"scrollAlign\": \"left\",\r\n\t\t\t\"scrollColor\": \"#A6A6A6\",\r\n\t\t\t\"scrollBackgroundColor\": \"#EFEBEF\"\r\n\t\t},\r\n\t\t\"yAxis\": {\r\n\t\t},\r\n\t\t\"legend\": {\r\n\t\t},\r\n\t\t\"extra\": {\r\n\t\t\t\"candle\": {\r\n\t\t\t\t\"color\": {\r\n\t\t\t\t\t\"upLine\": \"#f04864\",\r\n\t\t\t\t\t\"upFill\": \"#f04864\",\r\n\t\t\t\t\t\"downLine\": \"#2fc25b\",\r\n\t\t\t\t\t\"downFill\": \"#2fc25b\"\r\n\t\t\t\t},\r\n\t\t\t\t\"average\": {\r\n\t\t\t\t\t\"show\": true,\r\n\t\t\t\t\t\"name\": [\"MA5\",\"MA10\",\"MA30\"],\r\n\t\t\t\t\t\"day\": [5,10,20],\r\n\t\t\t\t\t\"color\": [\"#1890ff\",\"#2fc25b\",\"#facc14\"]\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t\"markLine\": {\r\n\t\t\t\t\"type\": \"dash\",\r\n\t\t\t\t\"dashLength\": 5,\r\n\t\t\t\t\"data\": [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"value\": 2150,\r\n\t\t\t\t\t\t\"lineColor\": \"#f04864\",\r\n\t\t\t\t\t\t\"showLabel\": true\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"value\": 2350,\r\n\t\t\t\t\t\t\"lineColor\": \"#f04864\",\r\n\t\t\t\t\t\t\"showLabel\": true\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\t\"mix\":{\r\n\t\t\"type\": \"mix\",\r\n\t\t\"color\": color,\r\n\t\t\"padding\": [15,15,0,15],\r\n\t\t\"xAxis\": {\r\n \"disableGrid\": true,\r\n\t\t},\r\n\t\t\"yAxis\": {\r\n\t\t\t\"disabled\": false,\r\n\t\t\t\"disableGrid\": false,\r\n\t\t\t\"splitNumber\": 5,\r\n\t\t\t\"gridType\": \"dash\",\r\n\t\t\t\"dashLength\": 4,\r\n\t\t\t\"gridColor\": \"#CCCCCC\",\r\n\t\t\t\"padding\": 10,\r\n\t\t\t\"showTitle\": true,\r\n\t\t\t\"data\": []\r\n\t\t},\r\n\t\t\"legend\": {\r\n\t\t},\r\n\t\t\"extra\": {\r\n\t\t\t\"mix\": {\r\n\t\t\t\t\"column\": {\r\n\t\t\t\t\t\"width\": 20\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n\t\"scatter\":{\r\n\t\t\"type\": \"scatter\",\r\n\t\t\"color\":color,\r\n\t\t\"padding\":[15,15,0,15],\r\n \"dataLabel\":false,\r\n \"xAxis\": {\r\n \"disableGrid\": false,\r\n \"gridType\":\"dash\",\r\n \"splitNumber\":5,\r\n \"boundaryGap\":\"justify\",\r\n \"min\":0\r\n },\r\n \"yAxis\": {\r\n \"disableGrid\": false,\r\n \"gridType\":\"dash\",\r\n },\r\n \"legend\": {\r\n },\r\n \"extra\": {\r\n \t\"scatter\": {\r\n \t},\r\n }\r\n\t},\r\n\t\"bubble\":{\r\n\t\t\"type\": \"bubble\",\r\n\t\t\"color\":color,\r\n\t\t\"padding\":[15,15,0,15],\r\n \"xAxis\": {\r\n \"disableGrid\": false,\r\n \"gridType\":\"dash\",\r\n \"splitNumber\":5,\r\n \"boundaryGap\":\"justify\",\r\n \"min\":0,\r\n \"max\":250\r\n },\r\n \"yAxis\": {\r\n \"disableGrid\": false,\r\n \"gridType\":\"dash\",\r\n \"data\":[{\r\n \"min\":0,\r\n \"max\":150\r\n }]\r\n },\r\n \"legend\": {\r\n },\r\n \"extra\": {\r\n \t\"bubble\": {\r\n \"border\":2,\r\n \"opacity\": 0.5,\r\n \t},\r\n }\r\n\t}\r\n}\r\n\r\nexport default cfu;","module.exports = require(\"regenerator-runtime\");\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() {\n return this || (typeof self === \"object\" && self);\n})() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n // Restore the original runtime.\n g.regeneratorRuntime = oldRuntime;\n} else {\n // Remove the global property added by runtime.js.\n try {\n delete g.regeneratorRuntime;\n } catch(e) {\n g.regeneratorRuntime = undefined;\n }\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() {\n return this || (typeof self === \"object\" && self);\n })() || Function(\"return this\")()\n);\n","const api = 'https://fx.anxincloud.cn';\nconst domain = 'https://fx.anxincloud.cn';\n\nconst devApi = 'https://121.36.37.70:8204';\nconst devDomain = 'https://121.36.37.70:8204';\n\nconst online = false; //是否线上模式\n\nexport default {\n domain: online ? domain : devDomain,\n api: online ? api : devApi\n}","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","const alert = {\r\n // 显示等待对话框\r\n showLoading: function(msg) {\r\n uni.showToast({\r\n title: msg,\r\n icon: \"loading\",\r\n duration: 100000\r\n });\r\n },\r\n // 隐藏等待对话框\r\n hideLoading: function(msg) {\r\n uni.hideToast();\r\n },\r\n // 成功\r\n showSuccess: function(msg) {\r\n uni.showToast({\r\n title: msg,\r\n icon: \"success\",\r\n duration: 2000\r\n });\r\n },\r\n //显示警告\r\n showWarning: function(msg) {\r\n uni.showToast({\r\n title: msg,\r\n icon: \"none\",\r\n duration: 2000\r\n });\r\n },\r\n\r\n showError: function(msg) {\r\n uni.showToast({\r\n title: msg,\r\n icon: \"none\",\r\n duration: 2000\r\n });\r\n },\r\n askLogin: function () {\r\n uni.showModal({\r\n title: '尚未登录',\r\n content: '前往授权登录页面吗?',\r\n success(res) {\r\n console.log(res)\r\n if (res.confirm) {\r\n uni.redirectTo({\r\n url: '/pages/login/login'\r\n })\r\n }\r\n }\r\n })\r\n }\r\n}\r\n\r\nexport default alert","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar formats = require('./formats');\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) { // eslint-disable-line func-name-matching\n return prefix + '[]';\n },\n indices: function indices(prefix, key) { // eslint-disable-line func-name-matching\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) { // eslint-disable-line func-name-matching\n return prefix;\n }\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaults = {\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n serializeDate: function serializeDate(date) { // eslint-disable-line func-name-matching\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar stringify = function stringify( // eslint-disable-line func-name-matching\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n) {\n var obj = object;\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder) : prefix;\n }\n\n obj = '';\n }\n\n if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (Array.isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n\n if (Array.isArray(obj)) {\n values = values.concat(stringify(\n obj[key],\n generateArrayPrefix(prefix, key),\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n } else {\n values = values.concat(stringify(\n obj[key],\n prefix + (allowDots ? '.' + key : '[' + key + ']'),\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n }\n }\n\n return values;\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = opts ? utils.assign({}, opts) : {};\n\n if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter;\n var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;\n var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls;\n var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode;\n var encoder = typeof options.encoder === 'function' ? options.encoder : defaults.encoder;\n var sort = typeof options.sort === 'function' ? options.sort : null;\n var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;\n var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate;\n var encodeValuesOnly = typeof options.encodeValuesOnly === 'boolean' ? options.encodeValuesOnly : defaults.encodeValuesOnly;\n if (typeof options.format === 'undefined') {\n options.format = formats['default'];\n } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n var formatter = formats.formatters[options.format];\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (Array.isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (options.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = options.arrayFormat;\n } else if ('indices' in options) {\n arrayFormat = options.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (sort) {\n objKeys.sort(sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n\n keys = keys.concat(stringify(\n obj[key],\n key,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encode ? encoder : null,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n }\n\n var joined = keys.join(delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n var obj;\n\n while (queue.length) {\n var item = queue.pop();\n obj = item.obj[item.prop];\n\n if (Array.isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n\n return obj;\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (Array.isArray(target)) {\n target.push(source);\n } else if (typeof target === 'object') {\n if (options.plainObjects || options.allowPrototypes || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (Array.isArray(target) && !Array.isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (Array.isArray(target) && Array.isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n if (target[i] && typeof target[i] === 'object') {\n target[i] = merge(target[i], item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str) {\n try {\n return decodeURIComponent(str.replace(/\\+/g, ' '));\n } catch (e) {\n return str;\n }\n};\n\nvar encode = function encode(str) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = typeof str === 'string' ? str : String(str);\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n return compactQueue(queue);\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n merge: merge\n};\n","export default {\n \"id\": \"2852637\",\n \"name\": \"uniui图标库\",\n \"font_family\": \"uniicons\",\n \"css_prefix_text\": \"uniui-\",\n \"description\": \"\",\n \"glyphs\": [\n {\n \"icon_id\": \"25027049\",\n \"name\": \"yanse\",\n \"font_class\": \"color\",\n \"unicode\": \"e6cf\",\n \"unicode_decimal\": 59087\n },\n {\n \"icon_id\": \"25027048\",\n \"name\": \"wallet\",\n \"font_class\": \"wallet\",\n \"unicode\": \"e6b1\",\n \"unicode_decimal\": 59057\n },\n {\n \"icon_id\": \"25015720\",\n \"name\": \"settings-filled\",\n \"font_class\": \"settings-filled\",\n \"unicode\": \"e6ce\",\n \"unicode_decimal\": 59086\n },\n {\n \"icon_id\": \"25015434\",\n \"name\": \"shimingrenzheng-filled\",\n \"font_class\": \"auth-filled\",\n \"unicode\": \"e6cc\",\n \"unicode_decimal\": 59084\n },\n {\n \"icon_id\": \"24934246\",\n \"name\": \"shop-filled\",\n \"font_class\": \"shop-filled\",\n \"unicode\": \"e6cd\",\n \"unicode_decimal\": 59085\n },\n {\n \"icon_id\": \"24934159\",\n \"name\": \"staff-filled-01\",\n \"font_class\": \"staff-filled\",\n \"unicode\": \"e6cb\",\n \"unicode_decimal\": 59083\n },\n {\n \"icon_id\": \"24932461\",\n \"name\": \"VIP-filled\",\n \"font_class\": \"vip-filled\",\n \"unicode\": \"e6c6\",\n \"unicode_decimal\": 59078\n },\n {\n \"icon_id\": \"24932462\",\n \"name\": \"plus_circle_fill\",\n \"font_class\": \"plus-filled\",\n \"unicode\": \"e6c7\",\n \"unicode_decimal\": 59079\n },\n {\n \"icon_id\": \"24932463\",\n \"name\": \"folder_add-filled\",\n \"font_class\": \"folder-add-filled\",\n \"unicode\": \"e6c8\",\n \"unicode_decimal\": 59080\n },\n {\n \"icon_id\": \"24932464\",\n \"name\": \"yanse-filled\",\n \"font_class\": \"color-filled\",\n \"unicode\": \"e6c9\",\n \"unicode_decimal\": 59081\n },\n {\n \"icon_id\": \"24932465\",\n \"name\": \"tune-filled\",\n \"font_class\": \"tune-filled\",\n \"unicode\": \"e6ca\",\n \"unicode_decimal\": 59082\n },\n {\n \"icon_id\": \"24932455\",\n \"name\": \"a-rilidaka-filled\",\n \"font_class\": \"calendar-filled\",\n \"unicode\": \"e6c0\",\n \"unicode_decimal\": 59072\n },\n {\n \"icon_id\": \"24932456\",\n \"name\": \"notification-filled\",\n \"font_class\": \"notification-filled\",\n \"unicode\": \"e6c1\",\n \"unicode_decimal\": 59073\n },\n {\n \"icon_id\": \"24932457\",\n \"name\": \"wallet-filled\",\n \"font_class\": \"wallet-filled\",\n \"unicode\": \"e6c2\",\n \"unicode_decimal\": 59074\n },\n {\n \"icon_id\": \"24932458\",\n \"name\": \"paihangbang-filled\",\n \"font_class\": \"medal-filled\",\n \"unicode\": \"e6c3\",\n \"unicode_decimal\": 59075\n },\n {\n \"icon_id\": \"24932459\",\n \"name\": \"gift-filled\",\n \"font_class\": \"gift-filled\",\n \"unicode\": \"e6c4\",\n \"unicode_decimal\": 59076\n },\n {\n \"icon_id\": \"24932460\",\n \"name\": \"fire-filled\",\n \"font_class\": \"fire-filled\",\n \"unicode\": \"e6c5\",\n \"unicode_decimal\": 59077\n },\n {\n \"icon_id\": \"24928001\",\n \"name\": \"refreshempty\",\n \"font_class\": \"refreshempty\",\n \"unicode\": \"e6bf\",\n \"unicode_decimal\": 59071\n },\n {\n \"icon_id\": \"24926853\",\n \"name\": \"location-ellipse\",\n \"font_class\": \"location-filled\",\n \"unicode\": \"e6af\",\n \"unicode_decimal\": 59055\n },\n {\n \"icon_id\": \"24926735\",\n \"name\": \"person-filled\",\n \"font_class\": \"person-filled\",\n \"unicode\": \"e69d\",\n \"unicode_decimal\": 59037\n },\n {\n \"icon_id\": \"24926703\",\n \"name\": \"personadd-filled\",\n \"font_class\": \"personadd-filled\",\n \"unicode\": \"e698\",\n \"unicode_decimal\": 59032\n },\n {\n \"icon_id\": \"24923351\",\n \"name\": \"back\",\n \"font_class\": \"back\",\n \"unicode\": \"e6b9\",\n \"unicode_decimal\": 59065\n },\n {\n \"icon_id\": \"24923352\",\n \"name\": \"forward\",\n \"font_class\": \"forward\",\n \"unicode\": \"e6ba\",\n \"unicode_decimal\": 59066\n },\n {\n \"icon_id\": \"24923353\",\n \"name\": \"arrowthinright\",\n \"font_class\": \"arrow-right\",\n \"unicode\": \"e6bb\",\n \"unicode_decimal\": 59067\n },\n\t\t{\n\t\t \"icon_id\": \"24923353\",\n\t\t \"name\": \"arrowthinright\",\n\t\t \"font_class\": \"arrowthinright\",\n\t\t \"unicode\": \"e6bb\",\n\t\t \"unicode_decimal\": 59067\n\t\t},\n {\n \"icon_id\": \"24923354\",\n \"name\": \"arrowthinleft\",\n \"font_class\": \"arrow-left\",\n \"unicode\": \"e6bc\",\n \"unicode_decimal\": 59068\n },\n\t\t{\n\t\t \"icon_id\": \"24923354\",\n\t\t \"name\": \"arrowthinleft\",\n\t\t \"font_class\": \"arrowthinleft\",\n\t\t \"unicode\": \"e6bc\",\n\t\t \"unicode_decimal\": 59068\n\t\t},\n {\n \"icon_id\": \"24923355\",\n \"name\": \"arrowthinup\",\n \"font_class\": \"arrow-up\",\n \"unicode\": \"e6bd\",\n \"unicode_decimal\": 59069\n },\n\t\t{\n\t\t \"icon_id\": \"24923355\",\n\t\t \"name\": \"arrowthinup\",\n\t\t \"font_class\": \"arrowthinup\",\n\t\t \"unicode\": \"e6bd\",\n\t\t \"unicode_decimal\": 59069\n\t\t},\n {\n \"icon_id\": \"24923356\",\n \"name\": \"arrowthindown\",\n \"font_class\": \"arrow-down\",\n \"unicode\": \"e6be\",\n \"unicode_decimal\": 59070\n },{\n \"icon_id\": \"24923356\",\n \"name\": \"arrowthindown\",\n \"font_class\": \"arrowthindown\",\n \"unicode\": \"e6be\",\n \"unicode_decimal\": 59070\n },\n {\n \"icon_id\": \"24923349\",\n \"name\": \"arrowdown\",\n \"font_class\": \"bottom\",\n \"unicode\": \"e6b8\",\n \"unicode_decimal\": 59064\n },{\n \"icon_id\": \"24923349\",\n \"name\": \"arrowdown\",\n \"font_class\": \"arrowdown\",\n \"unicode\": \"e6b8\",\n \"unicode_decimal\": 59064\n },\n {\n \"icon_id\": \"24923346\",\n \"name\": \"arrowright\",\n \"font_class\": \"right\",\n \"unicode\": \"e6b5\",\n \"unicode_decimal\": 59061\n },\n\t\t{\n\t\t \"icon_id\": \"24923346\",\n\t\t \"name\": \"arrowright\",\n\t\t \"font_class\": \"arrowright\",\n\t\t \"unicode\": \"e6b5\",\n\t\t \"unicode_decimal\": 59061\n\t\t},\n {\n \"icon_id\": \"24923347\",\n \"name\": \"arrowup\",\n \"font_class\": \"top\",\n \"unicode\": \"e6b6\",\n \"unicode_decimal\": 59062\n },\n\t\t{\n\t\t \"icon_id\": \"24923347\",\n\t\t \"name\": \"arrowup\",\n\t\t \"font_class\": \"arrowup\",\n\t\t \"unicode\": \"e6b6\",\n\t\t \"unicode_decimal\": 59062\n\t\t},\n {\n \"icon_id\": \"24923348\",\n \"name\": \"arrowleft\",\n \"font_class\": \"left\",\n \"unicode\": \"e6b7\",\n \"unicode_decimal\": 59063\n },\n\t\t{\n\t\t \"icon_id\": \"24923348\",\n\t\t \"name\": \"arrowleft\",\n\t\t \"font_class\": \"arrowleft\",\n\t\t \"unicode\": \"e6b7\",\n\t\t \"unicode_decimal\": 59063\n\t\t},\n {\n \"icon_id\": \"24923334\",\n \"name\": \"eye\",\n \"font_class\": \"eye\",\n \"unicode\": \"e651\",\n \"unicode_decimal\": 58961\n },\n {\n \"icon_id\": \"24923335\",\n \"name\": \"eye-filled\",\n \"font_class\": \"eye-filled\",\n \"unicode\": \"e66a\",\n \"unicode_decimal\": 58986\n },\n {\n \"icon_id\": \"24923336\",\n \"name\": \"eye-slash\",\n \"font_class\": \"eye-slash\",\n \"unicode\": \"e6b3\",\n \"unicode_decimal\": 59059\n },\n {\n \"icon_id\": \"24923337\",\n \"name\": \"eye-slash-filled\",\n \"font_class\": \"eye-slash-filled\",\n \"unicode\": \"e6b4\",\n \"unicode_decimal\": 59060\n },\n {\n \"icon_id\": \"24923305\",\n \"name\": \"info-filled\",\n \"font_class\": \"info-filled\",\n \"unicode\": \"e649\",\n \"unicode_decimal\": 58953\n },\n {\n \"icon_id\": \"24923299\",\n \"name\": \"reload-01\",\n \"font_class\": \"reload\",\n \"unicode\": \"e6b2\",\n \"unicode_decimal\": 59058\n },\n {\n \"icon_id\": \"24923195\",\n \"name\": \"mic_slash_fill\",\n \"font_class\": \"micoff-filled\",\n \"unicode\": \"e6b0\",\n \"unicode_decimal\": 59056\n },\n {\n \"icon_id\": \"24923165\",\n \"name\": \"map-pin-ellipse\",\n \"font_class\": \"map-pin-ellipse\",\n \"unicode\": \"e6ac\",\n \"unicode_decimal\": 59052\n },\n {\n \"icon_id\": \"24923166\",\n \"name\": \"map-pin\",\n \"font_class\": \"map-pin\",\n \"unicode\": \"e6ad\",\n \"unicode_decimal\": 59053\n },\n {\n \"icon_id\": \"24923167\",\n \"name\": \"location\",\n \"font_class\": \"location\",\n \"unicode\": \"e6ae\",\n \"unicode_decimal\": 59054\n },\n {\n \"icon_id\": \"24923064\",\n \"name\": \"starhalf\",\n \"font_class\": \"starhalf\",\n \"unicode\": \"e683\",\n \"unicode_decimal\": 59011\n },\n {\n \"icon_id\": \"24923065\",\n \"name\": \"star\",\n \"font_class\": \"star\",\n \"unicode\": \"e688\",\n \"unicode_decimal\": 59016\n },\n {\n \"icon_id\": \"24923066\",\n \"name\": \"star-filled\",\n \"font_class\": \"star-filled\",\n \"unicode\": \"e68f\",\n \"unicode_decimal\": 59023\n },\n {\n \"icon_id\": \"24899646\",\n \"name\": \"a-rilidaka\",\n \"font_class\": \"calendar\",\n \"unicode\": \"e6a0\",\n \"unicode_decimal\": 59040\n },\n {\n \"icon_id\": \"24899647\",\n \"name\": \"fire\",\n \"font_class\": \"fire\",\n \"unicode\": \"e6a1\",\n \"unicode_decimal\": 59041\n },\n {\n \"icon_id\": \"24899648\",\n \"name\": \"paihangbang\",\n \"font_class\": \"medal\",\n \"unicode\": \"e6a2\",\n \"unicode_decimal\": 59042\n },\n {\n \"icon_id\": \"24899649\",\n \"name\": \"font\",\n \"font_class\": \"font\",\n \"unicode\": \"e6a3\",\n \"unicode_decimal\": 59043\n },\n {\n \"icon_id\": \"24899650\",\n \"name\": \"gift\",\n \"font_class\": \"gift\",\n \"unicode\": \"e6a4\",\n \"unicode_decimal\": 59044\n },\n {\n \"icon_id\": \"24899651\",\n \"name\": \"link\",\n \"font_class\": \"link\",\n \"unicode\": \"e6a5\",\n \"unicode_decimal\": 59045\n },\n {\n \"icon_id\": \"24899652\",\n \"name\": \"notification\",\n \"font_class\": \"notification\",\n \"unicode\": \"e6a6\",\n \"unicode_decimal\": 59046\n },\n {\n \"icon_id\": \"24899653\",\n \"name\": \"staff\",\n \"font_class\": \"staff\",\n \"unicode\": \"e6a7\",\n \"unicode_decimal\": 59047\n },\n {\n \"icon_id\": \"24899654\",\n \"name\": \"VIP\",\n \"font_class\": \"vip\",\n \"unicode\": \"e6a8\",\n \"unicode_decimal\": 59048\n },\n {\n \"icon_id\": \"24899655\",\n \"name\": \"folder_add\",\n \"font_class\": \"folder-add\",\n \"unicode\": \"e6a9\",\n \"unicode_decimal\": 59049\n },\n {\n \"icon_id\": \"24899656\",\n \"name\": \"tune\",\n \"font_class\": \"tune\",\n \"unicode\": \"e6aa\",\n \"unicode_decimal\": 59050\n },\n {\n \"icon_id\": \"24899657\",\n \"name\": \"shimingrenzheng\",\n \"font_class\": \"auth\",\n \"unicode\": \"e6ab\",\n \"unicode_decimal\": 59051\n },\n {\n \"icon_id\": \"24899565\",\n \"name\": \"person\",\n \"font_class\": \"person\",\n \"unicode\": \"e699\",\n \"unicode_decimal\": 59033\n },\n {\n \"icon_id\": \"24899566\",\n \"name\": \"email-filled\",\n \"font_class\": \"email-filled\",\n \"unicode\": \"e69a\",\n \"unicode_decimal\": 59034\n },\n {\n \"icon_id\": \"24899567\",\n \"name\": \"phone-filled\",\n \"font_class\": \"phone-filled\",\n \"unicode\": \"e69b\",\n \"unicode_decimal\": 59035\n },\n {\n \"icon_id\": \"24899568\",\n \"name\": \"phone\",\n \"font_class\": \"phone\",\n \"unicode\": \"e69c\",\n \"unicode_decimal\": 59036\n },\n {\n \"icon_id\": \"24899570\",\n \"name\": \"email\",\n \"font_class\": \"email\",\n \"unicode\": \"e69e\",\n \"unicode_decimal\": 59038\n },\n {\n \"icon_id\": \"24899571\",\n \"name\": \"personadd\",\n \"font_class\": \"personadd\",\n \"unicode\": \"e69f\",\n \"unicode_decimal\": 59039\n },\n {\n \"icon_id\": \"24899558\",\n \"name\": \"chatboxes-filled\",\n \"font_class\": \"chatboxes-filled\",\n \"unicode\": \"e692\",\n \"unicode_decimal\": 59026\n },\n {\n \"icon_id\": \"24899559\",\n \"name\": \"contact\",\n \"font_class\": \"contact\",\n \"unicode\": \"e693\",\n \"unicode_decimal\": 59027\n },\n {\n \"icon_id\": \"24899560\",\n \"name\": \"chatbubble-filled\",\n \"font_class\": \"chatbubble-filled\",\n \"unicode\": \"e694\",\n \"unicode_decimal\": 59028\n },\n {\n \"icon_id\": \"24899561\",\n \"name\": \"contact-filled\",\n \"font_class\": \"contact-filled\",\n \"unicode\": \"e695\",\n \"unicode_decimal\": 59029\n },\n {\n \"icon_id\": \"24899562\",\n \"name\": \"chatboxes\",\n \"font_class\": \"chatboxes\",\n \"unicode\": \"e696\",\n \"unicode_decimal\": 59030\n },\n {\n \"icon_id\": \"24899563\",\n \"name\": \"chatbubble\",\n \"font_class\": \"chatbubble\",\n \"unicode\": \"e697\",\n \"unicode_decimal\": 59031\n },\n {\n \"icon_id\": \"24881290\",\n \"name\": \"upload-filled\",\n \"font_class\": \"upload-filled\",\n \"unicode\": \"e68e\",\n \"unicode_decimal\": 59022\n },\n {\n \"icon_id\": \"24881292\",\n \"name\": \"upload\",\n \"font_class\": \"upload\",\n \"unicode\": \"e690\",\n \"unicode_decimal\": 59024\n },\n {\n \"icon_id\": \"24881293\",\n \"name\": \"weixin\",\n \"font_class\": \"weixin\",\n \"unicode\": \"e691\",\n \"unicode_decimal\": 59025\n },\n {\n \"icon_id\": \"24881274\",\n \"name\": \"compose\",\n \"font_class\": \"compose\",\n \"unicode\": \"e67f\",\n \"unicode_decimal\": 59007\n },\n {\n \"icon_id\": \"24881275\",\n \"name\": \"qq\",\n \"font_class\": \"qq\",\n \"unicode\": \"e680\",\n \"unicode_decimal\": 59008\n },\n {\n \"icon_id\": \"24881276\",\n \"name\": \"download-filled\",\n \"font_class\": \"download-filled\",\n \"unicode\": \"e681\",\n \"unicode_decimal\": 59009\n },\n {\n \"icon_id\": \"24881277\",\n \"name\": \"pengyouquan\",\n \"font_class\": \"pyq\",\n \"unicode\": \"e682\",\n \"unicode_decimal\": 59010\n },\n {\n \"icon_id\": \"24881279\",\n \"name\": \"sound\",\n \"font_class\": \"sound\",\n \"unicode\": \"e684\",\n \"unicode_decimal\": 59012\n },\n {\n \"icon_id\": \"24881280\",\n \"name\": \"trash-filled\",\n \"font_class\": \"trash-filled\",\n \"unicode\": \"e685\",\n \"unicode_decimal\": 59013\n },\n {\n \"icon_id\": \"24881281\",\n \"name\": \"sound-filled\",\n \"font_class\": \"sound-filled\",\n \"unicode\": \"e686\",\n \"unicode_decimal\": 59014\n },\n {\n \"icon_id\": \"24881282\",\n \"name\": \"trash\",\n \"font_class\": \"trash\",\n \"unicode\": \"e687\",\n \"unicode_decimal\": 59015\n },\n {\n \"icon_id\": \"24881284\",\n \"name\": \"videocam-filled\",\n \"font_class\": \"videocam-filled\",\n \"unicode\": \"e689\",\n \"unicode_decimal\": 59017\n },\n {\n \"icon_id\": \"24881285\",\n \"name\": \"spinner-cycle\",\n \"font_class\": \"spinner-cycle\",\n \"unicode\": \"e68a\",\n \"unicode_decimal\": 59018\n },\n {\n \"icon_id\": \"24881286\",\n \"name\": \"weibo\",\n \"font_class\": \"weibo\",\n \"unicode\": \"e68b\",\n \"unicode_decimal\": 59019\n },\n {\n \"icon_id\": \"24881288\",\n \"name\": \"videocam\",\n \"font_class\": \"videocam\",\n \"unicode\": \"e68c\",\n \"unicode_decimal\": 59020\n },\n {\n \"icon_id\": \"24881289\",\n \"name\": \"download\",\n \"font_class\": \"download\",\n \"unicode\": \"e68d\",\n \"unicode_decimal\": 59021\n },\n {\n \"icon_id\": \"24879601\",\n \"name\": \"help\",\n \"font_class\": \"help\",\n \"unicode\": \"e679\",\n \"unicode_decimal\": 59001\n },\n {\n \"icon_id\": \"24879602\",\n \"name\": \"navigate-filled\",\n \"font_class\": \"navigate-filled\",\n \"unicode\": \"e67a\",\n \"unicode_decimal\": 59002\n },\n {\n \"icon_id\": \"24879603\",\n \"name\": \"plusempty\",\n \"font_class\": \"plusempty\",\n \"unicode\": \"e67b\",\n \"unicode_decimal\": 59003\n },\n {\n \"icon_id\": \"24879604\",\n \"name\": \"smallcircle\",\n \"font_class\": \"smallcircle\",\n \"unicode\": \"e67c\",\n \"unicode_decimal\": 59004\n },\n {\n \"icon_id\": \"24879605\",\n \"name\": \"minus-filled\",\n \"font_class\": \"minus-filled\",\n \"unicode\": \"e67d\",\n \"unicode_decimal\": 59005\n },\n {\n \"icon_id\": \"24879606\",\n \"name\": \"micoff\",\n \"font_class\": \"micoff\",\n \"unicode\": \"e67e\",\n \"unicode_decimal\": 59006\n },\n {\n \"icon_id\": \"24879588\",\n \"name\": \"closeempty\",\n \"font_class\": \"closeempty\",\n \"unicode\": \"e66c\",\n \"unicode_decimal\": 58988\n },\n {\n \"icon_id\": \"24879589\",\n \"name\": \"clear\",\n \"font_class\": \"clear\",\n \"unicode\": \"e66d\",\n \"unicode_decimal\": 58989\n },\n {\n \"icon_id\": \"24879590\",\n \"name\": \"navigate\",\n \"font_class\": \"navigate\",\n \"unicode\": \"e66e\",\n \"unicode_decimal\": 58990\n },\n {\n \"icon_id\": \"24879591\",\n \"name\": \"minus\",\n \"font_class\": \"minus\",\n \"unicode\": \"e66f\",\n \"unicode_decimal\": 58991\n },\n {\n \"icon_id\": \"24879592\",\n \"name\": \"image\",\n \"font_class\": \"image\",\n \"unicode\": \"e670\",\n \"unicode_decimal\": 58992\n },\n {\n \"icon_id\": \"24879593\",\n \"name\": \"mic\",\n \"font_class\": \"mic\",\n \"unicode\": \"e671\",\n \"unicode_decimal\": 58993\n },\n {\n \"icon_id\": \"24879594\",\n \"name\": \"paperplane\",\n \"font_class\": \"paperplane\",\n \"unicode\": \"e672\",\n \"unicode_decimal\": 58994\n },\n {\n \"icon_id\": \"24879595\",\n \"name\": \"close\",\n \"font_class\": \"close\",\n \"unicode\": \"e673\",\n \"unicode_decimal\": 58995\n },\n {\n \"icon_id\": \"24879596\",\n \"name\": \"help-filled\",\n \"font_class\": \"help-filled\",\n \"unicode\": \"e674\",\n \"unicode_decimal\": 58996\n },\n {\n \"icon_id\": \"24879597\",\n \"name\": \"plus-filled\",\n \"font_class\": \"paperplane-filled\",\n \"unicode\": \"e675\",\n \"unicode_decimal\": 58997\n },\n {\n \"icon_id\": \"24879598\",\n \"name\": \"plus\",\n \"font_class\": \"plus\",\n \"unicode\": \"e676\",\n \"unicode_decimal\": 58998\n },\n {\n \"icon_id\": \"24879599\",\n \"name\": \"mic-filled\",\n \"font_class\": \"mic-filled\",\n \"unicode\": \"e677\",\n \"unicode_decimal\": 58999\n },\n {\n \"icon_id\": \"24879600\",\n \"name\": \"image-filled\",\n \"font_class\": \"image-filled\",\n \"unicode\": \"e678\",\n \"unicode_decimal\": 59000\n },\n {\n \"icon_id\": \"24855900\",\n \"name\": \"locked-filled\",\n \"font_class\": \"locked-filled\",\n \"unicode\": \"e668\",\n \"unicode_decimal\": 58984\n },\n {\n \"icon_id\": \"24855901\",\n \"name\": \"info\",\n \"font_class\": \"info\",\n \"unicode\": \"e669\",\n \"unicode_decimal\": 58985\n },\n {\n \"icon_id\": \"24855903\",\n \"name\": \"locked\",\n \"font_class\": \"locked\",\n \"unicode\": \"e66b\",\n \"unicode_decimal\": 58987\n },\n {\n \"icon_id\": \"24855884\",\n \"name\": \"camera-filled\",\n \"font_class\": \"camera-filled\",\n \"unicode\": \"e658\",\n \"unicode_decimal\": 58968\n },\n {\n \"icon_id\": \"24855885\",\n \"name\": \"chat-filled\",\n \"font_class\": \"chat-filled\",\n \"unicode\": \"e659\",\n \"unicode_decimal\": 58969\n },\n {\n \"icon_id\": \"24855886\",\n \"name\": \"camera\",\n \"font_class\": \"camera\",\n \"unicode\": \"e65a\",\n \"unicode_decimal\": 58970\n },\n {\n \"icon_id\": \"24855887\",\n \"name\": \"circle\",\n \"font_class\": \"circle\",\n \"unicode\": \"e65b\",\n \"unicode_decimal\": 58971\n },\n {\n \"icon_id\": \"24855888\",\n \"name\": \"checkmarkempty\",\n \"font_class\": \"checkmarkempty\",\n \"unicode\": \"e65c\",\n \"unicode_decimal\": 58972\n },\n {\n \"icon_id\": \"24855889\",\n \"name\": \"chat\",\n \"font_class\": \"chat\",\n \"unicode\": \"e65d\",\n \"unicode_decimal\": 58973\n },\n {\n \"icon_id\": \"24855890\",\n \"name\": \"circle-filled\",\n \"font_class\": \"circle-filled\",\n \"unicode\": \"e65e\",\n \"unicode_decimal\": 58974\n },\n {\n \"icon_id\": \"24855891\",\n \"name\": \"flag\",\n \"font_class\": \"flag\",\n \"unicode\": \"e65f\",\n \"unicode_decimal\": 58975\n },\n {\n \"icon_id\": \"24855892\",\n \"name\": \"flag-filled\",\n \"font_class\": \"flag-filled\",\n \"unicode\": \"e660\",\n \"unicode_decimal\": 58976\n },\n {\n \"icon_id\": \"24855893\",\n \"name\": \"gear-filled\",\n \"font_class\": \"gear-filled\",\n \"unicode\": \"e661\",\n \"unicode_decimal\": 58977\n },\n {\n \"icon_id\": \"24855894\",\n \"name\": \"home\",\n \"font_class\": \"home\",\n \"unicode\": \"e662\",\n \"unicode_decimal\": 58978\n },\n {\n \"icon_id\": \"24855895\",\n \"name\": \"home-filled\",\n \"font_class\": \"home-filled\",\n \"unicode\": \"e663\",\n \"unicode_decimal\": 58979\n },\n {\n \"icon_id\": \"24855896\",\n \"name\": \"gear\",\n \"font_class\": \"gear\",\n \"unicode\": \"e664\",\n \"unicode_decimal\": 58980\n },\n {\n \"icon_id\": \"24855897\",\n \"name\": \"smallcircle-filled\",\n \"font_class\": \"smallcircle-filled\",\n \"unicode\": \"e665\",\n \"unicode_decimal\": 58981\n },\n {\n \"icon_id\": \"24855898\",\n \"name\": \"map-filled\",\n \"font_class\": \"map-filled\",\n \"unicode\": \"e666\",\n \"unicode_decimal\": 58982\n },\n {\n \"icon_id\": \"24855899\",\n \"name\": \"map\",\n \"font_class\": \"map\",\n \"unicode\": \"e667\",\n \"unicode_decimal\": 58983\n },\n {\n \"icon_id\": \"24855825\",\n \"name\": \"refresh-filled\",\n \"font_class\": \"refresh-filled\",\n \"unicode\": \"e656\",\n \"unicode_decimal\": 58966\n },\n {\n \"icon_id\": \"24855826\",\n \"name\": \"refresh\",\n \"font_class\": \"refresh\",\n \"unicode\": \"e657\",\n \"unicode_decimal\": 58967\n },\n {\n \"icon_id\": \"24855808\",\n \"name\": \"cloud-upload\",\n \"font_class\": \"cloud-upload\",\n \"unicode\": \"e645\",\n \"unicode_decimal\": 58949\n },\n {\n \"icon_id\": \"24855809\",\n \"name\": \"cloud-download-filled\",\n \"font_class\": \"cloud-download-filled\",\n \"unicode\": \"e646\",\n \"unicode_decimal\": 58950\n },\n {\n \"icon_id\": \"24855810\",\n \"name\": \"cloud-download\",\n \"font_class\": \"cloud-download\",\n \"unicode\": \"e647\",\n \"unicode_decimal\": 58951\n },\n {\n \"icon_id\": \"24855811\",\n \"name\": \"cloud-upload-filled\",\n \"font_class\": \"cloud-upload-filled\",\n \"unicode\": \"e648\",\n \"unicode_decimal\": 58952\n },\n {\n \"icon_id\": \"24855813\",\n \"name\": \"redo\",\n \"font_class\": \"redo\",\n \"unicode\": \"e64a\",\n \"unicode_decimal\": 58954\n },\n {\n \"icon_id\": \"24855814\",\n \"name\": \"images-filled\",\n \"font_class\": \"images-filled\",\n \"unicode\": \"e64b\",\n \"unicode_decimal\": 58955\n },\n {\n \"icon_id\": \"24855815\",\n \"name\": \"undo-filled\",\n \"font_class\": \"undo-filled\",\n \"unicode\": \"e64c\",\n \"unicode_decimal\": 58956\n },\n {\n \"icon_id\": \"24855816\",\n \"name\": \"more\",\n \"font_class\": \"more\",\n \"unicode\": \"e64d\",\n \"unicode_decimal\": 58957\n },\n {\n \"icon_id\": \"24855817\",\n \"name\": \"more-filled\",\n \"font_class\": \"more-filled\",\n \"unicode\": \"e64e\",\n \"unicode_decimal\": 58958\n },\n {\n \"icon_id\": \"24855818\",\n \"name\": \"undo\",\n \"font_class\": \"undo\",\n \"unicode\": \"e64f\",\n \"unicode_decimal\": 58959\n },\n {\n \"icon_id\": \"24855819\",\n \"name\": \"images\",\n \"font_class\": \"images\",\n \"unicode\": \"e650\",\n \"unicode_decimal\": 58960\n },\n {\n \"icon_id\": \"24855821\",\n \"name\": \"paperclip\",\n \"font_class\": \"paperclip\",\n \"unicode\": \"e652\",\n \"unicode_decimal\": 58962\n },\n {\n \"icon_id\": \"24855822\",\n \"name\": \"settings\",\n \"font_class\": \"settings\",\n \"unicode\": \"e653\",\n \"unicode_decimal\": 58963\n },\n {\n \"icon_id\": \"24855823\",\n \"name\": \"search\",\n \"font_class\": \"search\",\n \"unicode\": \"e654\",\n \"unicode_decimal\": 58964\n },\n {\n \"icon_id\": \"24855824\",\n \"name\": \"redo-filled\",\n \"font_class\": \"redo-filled\",\n \"unicode\": \"e655\",\n \"unicode_decimal\": 58965\n },\n {\n \"icon_id\": \"24841702\",\n \"name\": \"list\",\n \"font_class\": \"list\",\n \"unicode\": \"e644\",\n \"unicode_decimal\": 58948\n },\n {\n \"icon_id\": \"24841489\",\n \"name\": \"mail-open-filled\",\n \"font_class\": \"mail-open-filled\",\n \"unicode\": \"e63a\",\n \"unicode_decimal\": 58938\n },\n {\n \"icon_id\": \"24841491\",\n \"name\": \"hand-thumbsdown-filled\",\n \"font_class\": \"hand-down-filled\",\n \"unicode\": \"e63c\",\n \"unicode_decimal\": 58940\n },\n {\n \"icon_id\": \"24841492\",\n \"name\": \"hand-thumbsdown\",\n \"font_class\": \"hand-down\",\n \"unicode\": \"e63d\",\n \"unicode_decimal\": 58941\n },\n {\n \"icon_id\": \"24841493\",\n \"name\": \"hand-thumbsup-filled\",\n \"font_class\": \"hand-up-filled\",\n \"unicode\": \"e63e\",\n \"unicode_decimal\": 58942\n },\n {\n \"icon_id\": \"24841494\",\n \"name\": \"hand-thumbsup\",\n \"font_class\": \"hand-up\",\n \"unicode\": \"e63f\",\n \"unicode_decimal\": 58943\n },\n {\n \"icon_id\": \"24841496\",\n \"name\": \"heart-filled\",\n \"font_class\": \"heart-filled\",\n \"unicode\": \"e641\",\n \"unicode_decimal\": 58945\n },\n {\n \"icon_id\": \"24841498\",\n \"name\": \"mail-open\",\n \"font_class\": \"mail-open\",\n \"unicode\": \"e643\",\n \"unicode_decimal\": 58947\n },\n {\n \"icon_id\": \"24841488\",\n \"name\": \"heart\",\n \"font_class\": \"heart\",\n \"unicode\": \"e639\",\n \"unicode_decimal\": 58937\n },\n {\n \"icon_id\": \"24839963\",\n \"name\": \"loop\",\n \"font_class\": \"loop\",\n \"unicode\": \"e633\",\n \"unicode_decimal\": 58931\n },\n {\n \"icon_id\": \"24839866\",\n \"name\": \"pulldown\",\n \"font_class\": \"pulldown\",\n \"unicode\": \"e632\",\n \"unicode_decimal\": 58930\n },\n {\n \"icon_id\": \"24813798\",\n \"name\": \"scan\",\n \"font_class\": \"scan\",\n \"unicode\": \"e62a\",\n \"unicode_decimal\": 58922\n },\n {\n \"icon_id\": \"24813786\",\n \"name\": \"bars\",\n \"font_class\": \"bars\",\n \"unicode\": \"e627\",\n \"unicode_decimal\": 58919\n },\n {\n \"icon_id\": \"24813788\",\n \"name\": \"cart-filled\",\n \"font_class\": \"cart-filled\",\n \"unicode\": \"e629\",\n \"unicode_decimal\": 58921\n },\n {\n \"icon_id\": \"24813790\",\n \"name\": \"checkbox\",\n \"font_class\": \"checkbox\",\n \"unicode\": \"e62b\",\n \"unicode_decimal\": 58923\n },\n {\n \"icon_id\": \"24813791\",\n \"name\": \"checkbox-filled\",\n \"font_class\": \"checkbox-filled\",\n \"unicode\": \"e62c\",\n \"unicode_decimal\": 58924\n },\n {\n \"icon_id\": \"24813794\",\n \"name\": \"shop\",\n \"font_class\": \"shop\",\n \"unicode\": \"e62f\",\n \"unicode_decimal\": 58927\n },\n {\n \"icon_id\": \"24813795\",\n \"name\": \"headphones\",\n \"font_class\": \"headphones\",\n \"unicode\": \"e630\",\n \"unicode_decimal\": 58928\n },\n {\n \"icon_id\": \"24813796\",\n \"name\": \"cart\",\n \"font_class\": \"cart\",\n \"unicode\": \"e631\",\n \"unicode_decimal\": 58929\n }\n ]\n}\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nmodule.exports = {\n 'default': 'RFC3986',\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return value;\n }\n },\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n parameterLimit: 1000,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n\n for (var i = 0; i < parts.length; ++i) {\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder);\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder);\n val = options.decoder(part.slice(pos + 1), defaults.decoder);\n }\n if (has.call(obj, key)) {\n obj[key] = [].concat(obj[key]).concat(val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options) {\n var leaf = val;\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]') {\n obj = [];\n obj = obj.concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys\n // that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while ((segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options);\n};\n\nmodule.exports = function (str, opts) {\n var options = opts ? utils.assign({}, opts) : {};\n\n if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n options.ignoreQueryPrefix = options.ignoreQueryPrefix === true;\n options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;\n options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth;\n options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit;\n options.parseArrays = options.parseArrays !== false;\n options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder;\n options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots;\n options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects;\n options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes;\n options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit;\n options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options);\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n","class Request {\n constructor(options = {}) {\n // 请求的根路径\n this.baseUrl = options.baseUrl || ''\n // 请求的 url 地址\n this.url = options.url || ''\n // 请求方式\n this.method = 'GET'\n // 请求的参数对象\n this.data = null\n // header 请求头\n this.header = options.header || {}\n this.beforeRequest = null\n this.afterRequest = null\n }\n\n get(url, data = {}) {\n this.method = 'GET'\n this.url = this.baseUrl + url\n this.data = data\n return this._()\n }\n\n post(url, data = {}) {\n this.method = 'POST'\n this.url = this.baseUrl + url\n this.data = data\n return this._()\n }\n\n put(url, data = {}) {\n this.method = 'PUT'\n this.url = this.baseUrl + url\n this.data = data\n return this._()\n }\n\n delete(url, data = {}) {\n this.method = 'DELETE'\n this.url = this.baseUrl + url\n this.data = data\n return this._()\n }\n\n _() {\n // 清空 header 对象\n this.header = {}\n // 请求之前做一些事\n this.beforeRequest && typeof this.beforeRequest === 'function' && this.beforeRequest(this)\n // 发起请求\n return new Promise((resolve, reject) => {\n let weixin = wx\n // 适配 uniapp\n if ('undefined' !== typeof uni) {\n weixin = uni\n }\n weixin.request({\n url: this.url,\n method: this.method,\n data: this.data,\n header: this.header,\n success: (res) => { resolve(res) },\n fail: (err) => { reject(err) },\n complete: (res) => {\n // 请求完成以后做一些事情\n this.afterRequest && typeof this.afterRequest === 'function' && this.afterRequest(res)\n }\n })\n })\n }\n}\n\nexport const $http = new Request()","const isArray = Array.isArray;\r\nconst isObject = (val) => val !== null && typeof val === 'object';\r\nconst defaultDelimiters = ['{', '}'];\r\nclass BaseFormatter {\r\n constructor() {\r\n this._caches = Object.create(null);\r\n }\r\n interpolate(message, values, delimiters = defaultDelimiters) {\r\n if (!values) {\r\n return [message];\r\n }\r\n let tokens = this._caches[message];\r\n if (!tokens) {\r\n tokens = parse(message, delimiters);\r\n this._caches[message] = tokens;\r\n }\r\n return compile(tokens, values);\r\n }\r\n}\r\nconst RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\r\nconst RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\r\nfunction parse(format, [startDelimiter, endDelimiter]) {\r\n const tokens = [];\r\n let position = 0;\r\n let text = '';\r\n while (position < format.length) {\r\n let char = format[position++];\r\n if (char === startDelimiter) {\r\n if (text) {\r\n tokens.push({ type: 'text', value: text });\r\n }\r\n text = '';\r\n let sub = '';\r\n char = format[position++];\r\n while (char !== undefined && char !== endDelimiter) {\r\n sub += char;\r\n char = format[position++];\r\n }\r\n const isClosed = char === endDelimiter;\r\n const type = RE_TOKEN_LIST_VALUE.test(sub)\r\n ? 'list'\r\n : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\r\n ? 'named'\r\n : 'unknown';\r\n tokens.push({ value: sub, type });\r\n }\r\n // else if (char === '%') {\r\n // // when found rails i18n syntax, skip text capture\r\n // if (format[position] !== '{') {\r\n // text += char\r\n // }\r\n // }\r\n else {\r\n text += char;\r\n }\r\n }\r\n text && tokens.push({ type: 'text', value: text });\r\n return tokens;\r\n}\r\nfunction compile(tokens, values) {\r\n const compiled = [];\r\n let index = 0;\r\n const mode = isArray(values)\r\n ? 'list'\r\n : isObject(values)\r\n ? 'named'\r\n : 'unknown';\r\n if (mode === 'unknown') {\r\n return compiled;\r\n }\r\n while (index < tokens.length) {\r\n const token = tokens[index];\r\n switch (token.type) {\r\n case 'text':\r\n compiled.push(token.value);\r\n break;\r\n case 'list':\r\n compiled.push(values[parseInt(token.value, 10)]);\r\n break;\r\n case 'named':\r\n if (mode === 'named') {\r\n compiled.push(values[token.value]);\r\n }\r\n else {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(`Type of token '${token.type}' and format of value '${mode}' don't match!`);\r\n }\r\n }\r\n break;\r\n case 'unknown':\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(`Detect 'unknown' type of token!`);\r\n }\r\n break;\r\n }\r\n index++;\r\n }\r\n return compiled;\r\n}\r\n\r\nconst LOCALE_ZH_HANS = 'zh-Hans';\r\nconst LOCALE_ZH_HANT = 'zh-Hant';\r\nconst LOCALE_EN = 'en';\r\nconst LOCALE_FR = 'fr';\r\nconst LOCALE_ES = 'es';\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\r\nconst defaultFormatter = new BaseFormatter();\r\nfunction include(str, parts) {\r\n return !!parts.find((part) => str.indexOf(part) !== -1);\r\n}\r\nfunction startsWith(str, parts) {\r\n return parts.find((part) => str.indexOf(part) === 0);\r\n}\r\nfunction normalizeLocale(locale, messages) {\r\n if (!locale) {\r\n return;\r\n }\r\n locale = locale.trim().replace(/_/g, '-');\r\n if (messages && messages[locale]) {\r\n return locale;\r\n }\r\n locale = locale.toLowerCase();\r\n if (locale.indexOf('zh') === 0) {\r\n if (locale.indexOf('-hans') > -1) {\r\n return LOCALE_ZH_HANS;\r\n }\r\n if (locale.indexOf('-hant') > -1) {\r\n return LOCALE_ZH_HANT;\r\n }\r\n if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {\r\n return LOCALE_ZH_HANT;\r\n }\r\n return LOCALE_ZH_HANS;\r\n }\r\n const lang = startsWith(locale, [LOCALE_EN, LOCALE_FR, LOCALE_ES]);\r\n if (lang) {\r\n return lang;\r\n }\r\n}\r\nclass I18n {\r\n constructor({ locale, fallbackLocale, messages, watcher, formater, }) {\r\n this.locale = LOCALE_EN;\r\n this.fallbackLocale = LOCALE_EN;\r\n this.message = {};\r\n this.messages = {};\r\n this.watchers = [];\r\n if (fallbackLocale) {\r\n this.fallbackLocale = fallbackLocale;\r\n }\r\n this.formater = formater || defaultFormatter;\r\n this.messages = messages || {};\r\n this.setLocale(locale || LOCALE_EN);\r\n if (watcher) {\r\n this.watchLocale(watcher);\r\n }\r\n }\r\n setLocale(locale) {\r\n const oldLocale = this.locale;\r\n this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale;\r\n if (!this.messages[this.locale]) {\r\n // 可能初始化时不存在\r\n this.messages[this.locale] = {};\r\n }\r\n this.message = this.messages[this.locale];\r\n // 仅发生变化时,通知\r\n if (oldLocale !== this.locale) {\r\n this.watchers.forEach((watcher) => {\r\n watcher(this.locale, oldLocale);\r\n });\r\n }\r\n }\r\n getLocale() {\r\n return this.locale;\r\n }\r\n watchLocale(fn) {\r\n const index = this.watchers.push(fn) - 1;\r\n return () => {\r\n this.watchers.splice(index, 1);\r\n };\r\n }\r\n add(locale, message, override = true) {\r\n const curMessages = this.messages[locale];\r\n if (curMessages) {\r\n if (override) {\r\n Object.assign(curMessages, message);\r\n }\r\n else {\r\n Object.keys(message).forEach((key) => {\r\n if (!hasOwn(curMessages, key)) {\r\n curMessages[key] = message[key];\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n this.messages[locale] = message;\r\n }\r\n }\r\n f(message, values, delimiters) {\r\n return this.formater.interpolate(message, values, delimiters).join('');\r\n }\r\n t(key, locale, values) {\r\n let message = this.message;\r\n if (typeof locale === 'string') {\r\n locale = normalizeLocale(locale, this.messages);\r\n locale && (message = this.messages[locale]);\r\n }\r\n else {\r\n values = locale;\r\n }\r\n if (!hasOwn(message, key)) {\r\n console.warn(`Cannot translate the value of keypath ${key}. Use the value of keypath as default.`);\r\n return key;\r\n }\r\n return this.formater.interpolate(message[key], values).join('');\r\n }\r\n}\r\n\r\nfunction watchAppLocale(appVm, i18n) {\r\n // 需要保证 watch 的触发在组件渲染之前\r\n if (appVm.$watchLocale) {\r\n // vue2\r\n appVm.$watchLocale((newLocale) => {\r\n i18n.setLocale(newLocale);\r\n });\r\n }\r\n else {\r\n appVm.$watch(() => appVm.$locale, (newLocale) => {\r\n i18n.setLocale(newLocale);\r\n });\r\n }\r\n}\r\nfunction getDefaultLocale() {\r\n if (typeof uni !== 'undefined' && uni.getLocale) {\r\n return uni.getLocale();\r\n }\r\n // 小程序平台,uni 和 uni-i18n 互相引用,导致访问不到 uni,故在 global 上挂了 getLocale\r\n if (typeof global !== 'undefined' && global.getLocale) {\r\n return global.getLocale();\r\n }\r\n return LOCALE_EN;\r\n}\r\nfunction initVueI18n(locale, messages = {}, fallbackLocale, watcher) {\r\n // 兼容旧版本入参\r\n if (typeof locale !== 'string') {\r\n [locale, messages] = [\r\n messages,\r\n locale,\r\n ];\r\n }\r\n if (typeof locale !== 'string') {\r\n // 因为小程序平台,uni-i18n 和 uni 互相引用,导致此时访问 uni 时,为 undefined\r\n locale = getDefaultLocale();\r\n }\r\n if (typeof fallbackLocale !== 'string') {\r\n fallbackLocale =\r\n (typeof __uniConfig !== 'undefined' && __uniConfig.fallbackLocale) ||\r\n LOCALE_EN;\r\n }\r\n const i18n = new I18n({\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n watcher,\r\n });\r\n let t = (key, values) => {\r\n if (typeof getApp !== 'function') {\r\n // app view\r\n /* eslint-disable no-func-assign */\r\n t = function (key, values) {\r\n return i18n.t(key, values);\r\n };\r\n }\r\n else {\r\n let isWatchedAppLocale = false;\r\n t = function (key, values) {\r\n const appVm = getApp().$vm;\r\n // 可能$vm还不存在,比如在支付宝小程序中,组件定义较早,在props的default里使用了t()函数(如uni-goods-nav),此时app还未初始化\r\n // options: {\r\n // \ttype: Array,\r\n // \tdefault () {\r\n // \t\treturn [{\r\n // \t\t\ticon: 'shop',\r\n // \t\t\ttext: t(\"uni-goods-nav.options.shop\"),\r\n // \t\t}, {\r\n // \t\t\ticon: 'cart',\r\n // \t\t\ttext: t(\"uni-goods-nav.options.cart\")\r\n // \t\t}]\r\n // \t}\r\n // },\r\n if (appVm) {\r\n // 触发响应式\r\n appVm.$locale;\r\n if (!isWatchedAppLocale) {\r\n isWatchedAppLocale = true;\r\n watchAppLocale(appVm, i18n);\r\n }\r\n }\r\n return i18n.t(key, values);\r\n };\r\n }\r\n return t(key, values);\r\n };\r\n return {\r\n i18n,\r\n f(message, values, delimiters) {\r\n return i18n.f(message, values, delimiters);\r\n },\r\n t(key, values) {\r\n return t(key, values);\r\n },\r\n add(locale, message, override = true) {\r\n return i18n.add(locale, message, override);\r\n },\r\n watch(fn) {\r\n return i18n.watchLocale(fn);\r\n },\r\n getLocale() {\r\n return i18n.getLocale();\r\n },\r\n setLocale(newLocale) {\r\n return i18n.setLocale(newLocale);\r\n },\r\n };\r\n}\r\n\r\nconst isString = (val) => typeof val === 'string';\r\nlet formater;\r\nfunction hasI18nJson(jsonObj, delimiters) {\r\n if (!formater) {\r\n formater = new BaseFormatter();\r\n }\r\n return walkJsonObj(jsonObj, (jsonObj, key) => {\r\n const value = jsonObj[key];\r\n if (isString(value)) {\r\n if (isI18nStr(value, delimiters)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n return hasI18nJson(value, delimiters);\r\n }\r\n });\r\n}\r\nfunction parseI18nJson(jsonObj, values, delimiters) {\r\n if (!formater) {\r\n formater = new BaseFormatter();\r\n }\r\n walkJsonObj(jsonObj, (jsonObj, key) => {\r\n const value = jsonObj[key];\r\n if (isString(value)) {\r\n if (isI18nStr(value, delimiters)) {\r\n jsonObj[key] = compileStr(value, values, delimiters);\r\n }\r\n }\r\n else {\r\n parseI18nJson(value, values, delimiters);\r\n }\r\n });\r\n return jsonObj;\r\n}\r\nfunction compileI18nJsonStr(jsonStr, { locale, locales, delimiters, }) {\r\n if (!isI18nStr(jsonStr, delimiters)) {\r\n return jsonStr;\r\n }\r\n if (!formater) {\r\n formater = new BaseFormatter();\r\n }\r\n const localeValues = [];\r\n Object.keys(locales).forEach((name) => {\r\n if (name !== locale) {\r\n localeValues.push({\r\n locale: name,\r\n values: locales[name],\r\n });\r\n }\r\n });\r\n localeValues.unshift({ locale, values: locales[locale] });\r\n try {\r\n return JSON.stringify(compileJsonObj(JSON.parse(jsonStr), localeValues, delimiters), null, 2);\r\n }\r\n catch (e) { }\r\n return jsonStr;\r\n}\r\nfunction isI18nStr(value, delimiters) {\r\n return value.indexOf(delimiters[0]) > -1;\r\n}\r\nfunction compileStr(value, values, delimiters) {\r\n return formater.interpolate(value, values, delimiters).join('');\r\n}\r\nfunction compileValue(jsonObj, key, localeValues, delimiters) {\r\n const value = jsonObj[key];\r\n if (isString(value)) {\r\n // 存在国际化\r\n if (isI18nStr(value, delimiters)) {\r\n jsonObj[key] = compileStr(value, localeValues[0].values, delimiters);\r\n if (localeValues.length > 1) {\r\n // 格式化国际化语言\r\n const valueLocales = (jsonObj[key + 'Locales'] = {});\r\n localeValues.forEach((localValue) => {\r\n valueLocales[localValue.locale] = compileStr(value, localValue.values, delimiters);\r\n });\r\n }\r\n }\r\n }\r\n else {\r\n compileJsonObj(value, localeValues, delimiters);\r\n }\r\n}\r\nfunction compileJsonObj(jsonObj, localeValues, delimiters) {\r\n walkJsonObj(jsonObj, (jsonObj, key) => {\r\n compileValue(jsonObj, key, localeValues, delimiters);\r\n });\r\n return jsonObj;\r\n}\r\nfunction walkJsonObj(jsonObj, walk) {\r\n if (isArray(jsonObj)) {\r\n for (let i = 0; i < jsonObj.length; i++) {\r\n if (walk(jsonObj, i)) {\r\n return true;\r\n }\r\n }\r\n }\r\n else if (isObject(jsonObj)) {\r\n for (const key in jsonObj) {\r\n if (walk(jsonObj, key)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nfunction resolveLocale(locales) {\r\n return (locale) => {\r\n if (!locale) {\r\n return locale;\r\n }\r\n locale = normalizeLocale(locale) || locale;\r\n return resolveLocaleChain(locale).find((locale) => locales.indexOf(locale) > -1);\r\n };\r\n}\r\nfunction resolveLocaleChain(locale) {\r\n const chain = [];\r\n const tokens = locale.split('-');\r\n while (tokens.length) {\r\n chain.push(tokens.join('-'));\r\n tokens.pop();\r\n }\r\n return chain;\r\n}\r\n\r\nexport { BaseFormatter as Formatter, I18n, LOCALE_EN, LOCALE_ES, LOCALE_FR, LOCALE_ZH_HANS, LOCALE_ZH_HANT, compileI18nJsonStr, hasI18nJson, initVueI18n, isI18nStr, isString, normalizeLocale, parseI18nJson, resolveLocale };\r\n","module.exports = \"/static/login/banner.jpg\";","module.exports = \"/static/login/title.png\";","/*!\n * Vue.js v2.6.11\n * (c) 2014-2022 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n if (vm.$options && vm.$options.__file) { // fixed by xxxxxx\n return ('') + vm.$options.__file\n }\n return ''\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm && vm.$options.name !== 'PageBody') {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n !vm.$options.isReserved && tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.SharedObject.target) {\n Dep.SharedObject.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\n// fixed by xxxxxx (nvue shared vuex)\n/* eslint-disable no-undef */\nDep.SharedObject = {};\nDep.SharedObject.target = null;\nDep.SharedObject.targetStack = [];\n\nfunction pushTarget (target) {\n Dep.SharedObject.targetStack.push(target);\n Dep.SharedObject.target = target;\n Dep.target = target;\n}\n\nfunction popTarget () {\n Dep.SharedObject.targetStack.pop();\n Dep.SharedObject.target = Dep.SharedObject.targetStack[Dep.SharedObject.targetStack.length - 1];\n Dep.target = Dep.SharedObject.target;\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n {// fixed by xxxxxx 微信小程序使用 plugins 之后,数组方法被直接挂载到了数组对象上,需要执行 copyAugment 逻辑\n if(value.push !== value.__proto__.push){\n copyAugment(value, arrayMethods, arrayKeys);\n } else {\n protoAugment(value, arrayMethods);\n }\n }\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.SharedObject.target) { // fixed by xxxxxx\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\n/* */\n\n// fixed by xxxxxx (mp properties)\nfunction extractPropertiesFromVNodeData(data, Ctor, res, context) {\n var propOptions = Ctor.options.mpOptions && Ctor.options.mpOptions.properties;\n if (isUndef(propOptions)) {\n return res\n }\n var externalClasses = Ctor.options.mpOptions.externalClasses || [];\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n var result = checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n // externalClass\n if (\n result &&\n res[key] &&\n externalClasses.indexOf(altKey) !== -1 &&\n context[camelize(res[key])]\n ) {\n // 赋值 externalClass 真正的值(模板里 externalClass 的值可能是字符串)\n res[key] = context[camelize(res[key])];\n }\n }\n }\n return res\n}\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag,\n context// fixed by xxxxxx\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, {}, context)\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, res, context)\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.