{"_id":"@chuguotech/ibi-vue2-comp","_rev":"24-d10d01d5f9fd4bf4025ca8b3e7ee7e08","name":"@chuguotech/ibi-vue2-comp","dist-tags":{"latest":"0.0.7-alpha.2"},"versions":{"0.0.3":{"name":"@chuguotech/ibi-vue2-comp","version":"0.0.3","_id":"@chuguotech/ibi-vue2-comp@0.0.3","maintainers":[{"name":"peter_zhang921","email":"peter@chuguotech.com"}],"dist":{"shasum":"7464a53785bd168adde74ac29f6020f92eaaeb5c","tarball":"https://registry.npmjs.org/@chuguotech/ibi-vue2-comp/-/ibi-vue2-comp-0.0.3.tgz","fileCount":17,"integrity":"sha512-S56NAi5aOrLJecCFr5fLPerMNHuLhIlqGFmr3ew6FUyDbWFdVF1FeSJm+l3KvbWomz5xliHbnmN+79jEt3B4IA==","signatures":[{"sig":"MEUCIQCJ7zE85LW6bnCtRoKdBClvXTO0wdvPA61fGKRP1tu5MAIgHqtDG3GlljsLT5Ai7l5/uLiEefQYoDA/qvlWObjzlx0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2302272,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjhZdbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoupA/+J6zGcKzkZSPwFDmY0IRWie0Il4EdYQwpn69e/FEPYLrojebI\r\nzrKVl2rUWsdk8n7SA6Tik9Md5U45DYwJ0ZbVGeyJDH9ggR/05nfK8E8C0Qpi\r\nTrX7Oy9XnuViIh3Len0pRl4D5QjLoGqu5arg3tnCTVxARq/ezKJ6TKdxKE0w\r\ng9/eajT+O8ADrBtSokGMqbBkixfoNNp0/RGKGbi/IJvo/EluvhEL5XghvqdY\r\nCCnt98/43sezHVJgiPQM5847lYQK1KOKDW+fZaJtHvebjp8ihUZd/QNoosuK\r\nplzYzRsb2MHnhJqdn9M8bwBot0TVw9ZCjeRpbWx9fsfWlCKGW4pVOyTJQT5D\r\nQf7M0thl5a2btGoWkmH6mqLfKJ6M9b7vrAt5moMJZBs25/KMcmnR/QJCTDaA\r\nB+H72deMTxauF/qziAEuDs8cetDSPAYGG4TruVscjoUbx9r6HaCYy/o5iuwi\r\nZH5i/2j2p/rZVOwcAYQt26e1E0wb90IJNoNixw/R7uV4HAY/VA23xDLBdeQU\r\nk9eFbTw1pqwcNjfJpZpclk5jxPMgs1LqIsP3lnuy/xLCAJpefqUSVaZdz+Mv\r\nqyHEMV9r1ckiMWu+NopR7bsq4UVsEbRSG5HFd5pyJ/sNE6j88Vg04fFSa3W6\r\nRZssBn1PG5I578/DG9n//7cwrH9Je6Ew64k=\r\n=8XZa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/ibi-vue2-comp.umd.min.js","gitHead":"5fec1ec987746125134b4f2682f7ba69bde2796c","scripts":{"lint":"vue-cli-service lint","build":"vue-cli-service build","serve":"vue-cli-service serve","build-lib":"vue-cli-service build --target lib --name ibi-vue2-comp --dest lib packages/index.js","link-deps":"npm link ee-library cboard-chart cboard-common chart-services"},"_npmUser":{"name":"peter_zhang921","email":"peter@chuguotech.com"},"_npmVersion":"6.14.17","description":"## Project setup ``` npm install ```","directories":{},"_nodeVersion":"14.20.0","browserslist":["> 1%","last 2 versions","not dead"],"dependencies":{"axios":"^1.2.0","jquery":"^3.6.1","moment":"^2.29.4","numbro":"^1.11.1","exceljs":"^4.3.0","tippy.js":"^6.3.7","countup.js":"^2.3.2","file-saver":"^2.0.5","html2canvas":"^1.4.1"},"eslintConfig":{"env":{"node":true},"root":true,"rules":{},"extends":["plugin:vue/essential","eslint:recommended"],"parserOptions":{"parser":"@babel/eslint-parser"}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.6.14","less":"^3.0.4","eslint":"^7.32.0","core-js":"^3.8.3","vue-i18n":"^8.28.2","element-ui":"^2.15.12","@babel/core":"^7.12.16","less-loader":"^4.1.0","@vue/cli-service":"~5.0.0","eslint-plugin-vue":"^8.0.3","@babel/eslint-parser":"^7.12.16","@vue/cli-plugin-babel":"~5.0.0","terser-webpack-plugin":"^4.2.3","vue-template-compiler":"^2.6.14","webpack-bundle-analyzer":"^3.9.0"},"_npmOperationalInternal":{"tmp":"tmp/ibi-vue2-comp_0.0.3_1669699419225_0.10881375654974712","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"@chuguotech/ibi-vue2-comp","version":"0.0.4","_id":"@chuguotech/ibi-vue2-comp@0.0.4","maintainers":[{"name":"peter_zhang921","email":"peter@chuguotech.com"}],"dist":{"shasum":"4b2fffb58d10530c9fad419358f9da86f2264ad0","tarball":"https://registry.npmjs.org/@chuguotech/ibi-vue2-comp/-/ibi-vue2-comp-0.0.4.tgz","fileCount":19,"integrity":"sha512-GTSrVUyzOixnDKswF714HQ699u3MXWe8bcrQVW7AdpV2FVbe+gttV5oT8KY8xhJAh7Dp6mFMj2z6jotS7h67ZA==","signatures":[{"sig":"MEUCIQDJoBN2adDudb3DsxK/3swAzYQlhxjJm2f8LoWprTWUIQIgL2mzQt3gajtAbpPyEKHEt4/Jvx13K59HJMboGT2EmTU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1819225,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjhgdzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpvbg//Ybopfkl49vNkSwVqHxUdkaVYfqVPSfFOjd7zoIb8v++bwstX\r\nkWrGaH1ZEns9f4tSXKYm30kcjqZXfQdek7FxG2p39plwM72bhteHmqXVlIgL\r\nCysPHHhfShaEZfsor7UcDNr+vgkfMuvyWUgTIlg/L2U2lTuO1YVGhqddPxYb\r\nCR1Jr+W6FTsbTM0j2WTWDQyy/lGB4bBAHVFVsImUuj+MWaWclQfnySv80k6B\r\n8vfwiHhXIRY/I+leZPrb+JHxAsWyA4cAA5tlxHFNRNAahfR2DZbXfkVzwOV1\r\nwwseIeCHN7CsGHrupcj1oSU3jjPuGsHIPgMmann+znquIiEM2V3uEHWi5pwB\r\nodV5y3F/Uy8ifelTZpbtlLbd9xZgOBnDVzOvuoAIhRBiL8sY3DM7CHTbS5+H\r\nQIfOGHlThwFszVJsElPDk57Q7YYuBCCeYqF9jwG6Q7FLLN9lUGWJyGwSxYzg\r\nHNDgLpv+5eQV/R1VCYGSE7vAQDkiFNV5DkbzwQcWc51Q4TqP9IuB866RQxNX\r\nthtj2cbA/iTTlfgM19W5RpfZSYGUqgvPdxX6Vxwo9efxFGXsjrprHJZNHaYI\r\nUbyoV3LxNb4UxEIhnUL+XeL8oZiq4OevVATc/4Fj3VURvgNMt0gDJ6iDNDC3\r\n1+gNd5KOFKLZ7P9RbveWDFGcXP6oNfchfbQ=\r\n=7fPq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/ibi-vue2-comp.umd.min.js","gitHead":"21b8101d3958df52d4e0e66560fd4fe87e771eb0","scripts":{"lint":"vue-cli-service lint","build":"vue-cli-service build","serve":"vue-cli-service serve","build-lib":"vue-cli-service build --target lib --name ibi-vue2-comp --dest lib packages/index.js --report","link-deps":"npm link ee-library cboard-chart cboard-common chart-services"},"_npmUser":{"name":"peter_zhang921","email":"peter@chuguotech.com"},"_npmVersion":"6.14.17","description":"## Project setup ``` npm install ```","directories":{},"_nodeVersion":"14.20.0","browserslist":["> 1%","last 2 versions","not dead"],"dependencies":{"axios":"^1.2.0","jquery":"^3.6.1","moment":"^2.29.4","numbro":"^1.11.1","exceljs":"^4.3.0","tippy.js":"^6.3.7","countup.js":"^2.3.2","file-saver":"^2.0.5","html2canvas":"^1.4.1"},"eslintConfig":{"env":{"node":true},"root":true,"rules":{},"extends":["plugin:vue/essential","eslint:recommended"],"parserOptions":{"parser":"@babel/eslint-parser"}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.6.14","less":"^3.0.4","vuex":"^3.0.1","eslint":"^7.32.0","core-js":"^3.8.3","vue-i18n":"^8.28.2","element-ui":"^2.15.12","@babel/core":"^7.12.16","less-loader":"^4.1.0","@vue/cli-service":"~5.0.0","eslint-plugin-vue":"^8.0.3","@babel/eslint-parser":"^7.12.16","@vue/cli-plugin-babel":"~5.0.0","terser-webpack-plugin":"^4.2.3","vue-template-compiler":"^2.6.14","webpack-bundle-analyzer":"^3.9.0"},"_npmOperationalInternal":{"tmp":"tmp/ibi-vue2-comp_0.0.4_1669728114812_0.4290059943194","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"@chuguotech/ibi-vue2-comp","version":"0.0.6","_id":"@chuguotech/ibi-vue2-comp@0.0.6","maintainers":[{"name":"peter_zhang921","email":"peter@chuguotech.com"}],"dist":{"shasum":"e81f3e866724a2e8e923229e73dba3d59db7143e","tarball":"https://registry.npmjs.org/@chuguotech/ibi-vue2-comp/-/ibi-vue2-comp-0.0.6.tgz","fileCount":8,"integrity":"sha512-oJj7wVxCkc1GXfigbc3pU1u0WDNLZzdENXZTEDvGEaP/R+4vHSAS0GGzCDmjxvYSIeYyqPvFlDs/G8hAV4Y6GQ==","signatures":[{"sig":"MEUCIQC1LrUS41nHz+vQV8SpvyfDIHKfQni03gkKobHP+uSHkQIgViGetGXYATW1/9fOq/cqzGxI9AE9HHwYSafzHjXJNg0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1461581,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkN/suACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqblBAAkBZIvXY7sqksZ5haWa+X01KBQXw3cEmHAuZe3Jyac40M3Wq6\r\nKOY5KFwDfRAXe7htHZjzYl/VQxLM9fyqaN2SeFWloDuTQx4sCP5cZrNDp4FL\r\nvY0EXFGGXaW55KAhP8Iso+/1jTtktQSMIJ/8UTvvkqeQMuzJIBxriuUDKJCJ\r\nFEF3zty25XlA3RVD289srNuknlHtImqSbMr5qW64XHsK+X16vDR8YsRlk/W4\r\n0SR3ff2/Z0X6DpHPTZIx28rxsvirP2s49eTQe9YOrQeJAzMy4knqmf4mdaQK\r\n3ceMQ5OMH92scRtbXLe+AT+YJl9vLsMk7qQqUBv1WNnDSGlxWwN7WTApgK2Z\r\niJ04NSFpF9gHFhvhhKsqbrBAO3vW3Yrr+Pk9BgfINqP0A88iC7YWCnFoCbqP\r\nmSbFz7zD796c/ZGJFIzJz0Eg1DjeZovIBp+5VXkWMEW4Ujv/TkimtvFc6bup\r\nZY2gaB7vgRXHKuow/qXHmj0jZhtt8SuR+z74ehdDy3bLIfvH2d63alkGYhkb\r\nxSIRru+DiXEL/2t4SrFryI6Wd8Sue1s3FXQE+M4TtnrZT2kEngBhuPjgC0e3\r\nYNbuK1/5Ihx0RcyvsE5hwgvL2WVfGOT5mb2AgsNo8VBEyrmeXzMMELWVQ+sv\r\nKJZWtz489/JcGK2LtAAXzaqrh+d57DO/31A=\r\n=OfPF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/ibi-vue2-comp.umd.min.js","gitHead":"852097ad8a6941e3583757be85d3eddac6dadf78","scripts":{"lint":"vue-cli-service lint","build":"vue-cli-service build","serve":"vue-cli-service serve","link-deps":"npm link cboard-common cboard-vue2-comp","build-lib-dev":"vue-cli-service build --mode development --target lib --name ibi-vue2-comp --dest lib src/packages/index.js","build-lib-prd":"vue-cli-service build --mode production --target lib --name ibi-vue2-comp --dest lib src/packages/index.js"},"_npmUser":{"name":"peter_zhang921","email":"peter@chuguotech.com"},"_npmVersion":"6.14.17","description":"--- title: Vue2组件化集成 icon: category: guide tags:","directories":{},"_nodeVersion":"14.20.0","browserslist":["> 1%","last 2 versions","not dead"],"dependencies":{"axios":"^1.2.0","jquery":"^3.6.1","lodash":"^4.17.21","moment":"^2.29.4","numbro":"^1.11.1","tippy.js":"^6.3.7","countup.js":"^2.3.2","file-saver":"^2.0.5","screenfull":"^6.0.2"},"eslintConfig":{"env":{"node":true},"root":true,"rules":{},"extends":["plugin:vue/essential","eslint:recommended"],"parserOptions":{"parser":"@babel/eslint-parser"}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.6.14","less":"^3.0.4","vuex":"^3.0.1","eslint":"^7.32.0","core-js":"^3.8.3","vue-i18n":"^8.28.2","element-ui":"^2.15.12","vue-router":"^3.0.1","@babel/core":"^7.12.16","less-loader":"^4.1.0","@vue/cli-service":"~5.0.0","eslint-plugin-vue":"^8.0.3","@babel/eslint-parser":"^7.12.16","@vue/cli-plugin-babel":"~5.0.0","terser-webpack-plugin":"^4.2.3","vue-template-compiler":"^2.6.14","babel-plugin-component":"^1.1.1","webpack-bundle-analyzer":"^3.9.0"},"_npmOperationalInternal":{"tmp":"tmp/ibi-vue2-comp_0.0.6_1681390381972_0.16810195825921848","host":"s3://npm-registry-packages"}},"0.0.7-alpha.1":{"name":"@chuguotech/ibi-vue2-comp","version":"0.0.7-alpha.1","_id":"@chuguotech/ibi-vue2-comp@0.0.7-alpha.1","maintainers":[{"name":"peter_zhang921","email":"peter@chuguotech.com"}],"dist":{"shasum":"2f464ff955453589e25eb8cac517d597793e5772","tarball":"https://registry.npmjs.org/@chuguotech/ibi-vue2-comp/-/ibi-vue2-comp-0.0.7-alpha.1.tgz","fileCount":8,"integrity":"sha512-iPJ4fvkmybxexhf7QvGZ4y9ix6XRNyFmAdQVOO4E0lPscvJ2kV3oL/AUC3Vn+u3oVFvrF7UpWOCUx45sSxOYFA==","signatures":[{"sig":"MEQCIC0hHMeAjMhuJXn25gt1WLKbNHjorvYgMod9GWP326seAiBBWiYHKrNVIxmGj5PVjM3QLOgM2cqqll8T8DGU4zXz7Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1599743,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkOPPVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrcBQ//es0ddVCtAQNZTeOC/O7a724Z8gny9s/vi668CX37+BnLjVeP\r\n0cZNvrxArSZnn7M0P5c5OKrO3PLRhPh6jcV1xw2TjfWQZXi1+WJT4hTvvsaC\r\nGnU/EnDCuE5pA7R/qeBjqOweluKCXEhZSSCcJeNAB0u9eecMTf/AU6lLV27G\r\nuxcLSNHp37QWpWZaLif5y0BBiJCPUEGoWZigE1fv1byBL6HvOF/YM3w4IQC6\r\nxkJInJKrsNkfN02bD4OZuIoXHQH33x18z4WLtTn5TlUCgBNIjRLUsH46BUuM\r\nQBKgijn+4QXrIu6RQ4lMnURjZLC0l5vw9fez5AmRH1EAGEV5wWrqme989PDc\r\nSBRi6o2TRrcRIObsEau2folJiIazak+XySYHTID73PuIu4J0pJZF43OqOj7n\r\nfrStFwvpy8geuvW9HBSPmXh6UM8W/iyznkaY7kMaKaj2frtclnsorAn+qYXG\r\n3s7yT59z8qnzlAnaB9nG9HeX/kuNULUkweITWzrpQzkYmJp4QGj8vmvFGkub\r\ntiF6iY3wufkMom5GdYuau0znScRU5UHKq0fRXxDbkFuauUrcSVlZwpbECgeB\r\na9QyxL76CDPLgcwUoebMUXl5WXP196oEYP7GqncpFwDrVyMtQHy8alHdbNAI\r\nXf4oIpRAZ3d/SHCxcK2XsAqFUD9nCFTHO0w=\r\n=XF02\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/ibi-vue2-comp.umd.min.js","gitHead":"852097ad8a6941e3583757be85d3eddac6dadf78","scripts":{"lint":"vue-cli-service lint","build":"vue-cli-service build","serve":"vue-cli-service serve","link-deps":"npm link cboard-common cboard-vue2-comp","build-lib-dev":"vue-cli-service build --mode development --target lib --name ibi-vue2-comp --dest lib src/packages/index.js","build-lib-prd":"vue-cli-service build --mode production --target lib --name ibi-vue2-comp --dest lib src/packages/index.js"},"_npmUser":{"name":"peter_zhang921","email":"peter@chuguotech.com"},"_npmVersion":"6.14.17","description":"--- title: Vue2组件化集成 icon: category: guide tags:","directories":{},"_nodeVersion":"14.20.0","browserslist":["> 1%","last 2 versions","not dead"],"dependencies":{"axios":"^1.2.0","jquery":"^3.6.1","lodash":"^4.17.21","moment":"^2.29.4","numbro":"^1.11.1","tippy.js":"^6.3.7","countup.js":"^2.3.2","ee-library":"1.9.2","file-saver":"^2.0.5","screenfull":"^6.0.2","cboard-chart":"^1.9.0","cboard-common":"^1.9.3","chart-services":"^1.9.3"},"eslintConfig":{"env":{"node":true},"root":true,"rules":{},"extends":["plugin:vue/essential","eslint:recommended"],"parserOptions":{"parser":"@babel/eslint-parser"}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^2.6.14","less":"^3.0.4","vuex":"^3.0.1","eslint":"^7.32.0","core-js":"^3.8.3","vue-i18n":"^8.28.2","element-ui":"^2.15.12","vue-router":"^3.0.1","@babel/core":"^7.12.16","less-loader":"^4.1.0","@vue/cli-service":"~5.0.0","eslint-plugin-vue":"^8.0.3","@babel/eslint-parser":"^7.12.16","@vue/cli-plugin-babel":"~5.0.0","terser-webpack-plugin":"^4.2.3","vue-template-compiler":"^2.6.14","babel-plugin-component":"^1.1.1","webpack-bundle-analyzer":"^3.9.0"},"_npmOperationalInternal":{"tmp":"tmp/ibi-vue2-comp_0.0.7-alpha.1_1681454037309_0.47533571224188","host":"s3://npm-registry-packages"}},"0.0.7-alpha.2":{"name":"@chuguotech/ibi-vue2-comp","version":"0.0.7-alpha.2","main":"lib/ibi-vue2-comp.umd.min.js","scripts":{"link-deps":"npm link cboard-common cboard-vue2-comp","serve":"vue-cli-service serve","build":"vue-cli-service build","build-lib-dev":"vue-cli-service build --mode development --target lib --name ibi-vue2-comp --dest lib src/packages/index.js","build-lib-prd":"vue-cli-service build --mode production --target lib --name ibi-vue2-comp --dest lib src/packages/index.js","lint":"vue-cli-service lint"},"dependencies":{"ee-library":"1.9.2","cboard-chart":"^1.9.0","cboard-common":"^1.9.3","chart-services":"^1.9.3","axios":"^1.2.0","countup.js":"^2.3.2","file-saver":"^2.0.5","jquery":"^3.6.1","lodash":"^4.17.21","moment":"^2.29.4","numbro":"^1.11.1","screenfull":"^6.0.2","tippy.js":"^6.3.7"},"devDependencies":{"@babel/core":"^7.12.16","@babel/eslint-parser":"^7.12.16","@vue/cli-plugin-babel":"~5.0.0","@vue/cli-service":"~5.0.0","babel-plugin-component":"^1.1.1","core-js":"^3.8.3","element-ui":"^2.15.12","eslint":"^7.32.0","eslint-plugin-vue":"^8.0.3","less":"^3.0.4","less-loader":"^4.1.0","terser-webpack-plugin":"^4.2.3","vue":"^2.6.14","vue-i18n":"^8.28.2","vue-template-compiler":"^2.6.14","vuex":"^3.0.1","vue-router":"^3.0.1","webpack-bundle-analyzer":"^3.9.0"},"eslintConfig":{"root":true,"env":{"node":true},"extends":["plugin:vue/essential","eslint:recommended"],"parserOptions":{"parser":"@babel/eslint-parser"},"rules":{}},"browserslist":["> 1%","last 2 versions","not dead"],"gitHead":"999a5d8c88f59a669cf793723ed177a240f79669","description":"--- title: Vue2组件化集成 icon: category: guide tags:","_id":"@chuguotech/ibi-vue2-comp@0.0.7-alpha.2","_nodeVersion":"16.20.1","_npmVersion":"8.19.4","dist":{"integrity":"sha512-tyA7ChWZtAUhZQN7wAEvnn8OL9VrFpOqQbnk9kkjuw0dskfTRHZK86CXWEpgAyGtea4qFB/ec0MVesTw2+JkEA==","shasum":"52415f22d27d457247568dab6db0c359006994db","tarball":"https://registry.npmjs.org/@chuguotech/ibi-vue2-comp/-/ibi-vue2-comp-0.0.7-alpha.2.tgz","fileCount":8,"unpackedSize":1338694,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGAuP+K/Sy8AyLe39KziMe7G+a8Zwk6Gb4JvjHf4RlIAAiBz2z4znYxZqfhhbu3cSwWiEso1KGzwmc95uEBKMUkOBA=="}]},"_npmUser":{"name":"peter_zhang921","email":"peter@chuguotech.com"},"directories":{},"maintainers":[{"name":"peter_zhang921","email":"peter@chuguotech.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ibi-vue2-comp_0.0.7-alpha.2_1729245194126_0.08228983264659795"},"_hasShrinkwrap":false}},"time":{"created":"2022-11-29T00:02:16.479Z","modified":"2024-10-18T09:53:14.560Z","0.0.1":"2022-11-28T10:28:48.841Z","0.0.2":"2022-11-29T00:02:16.823Z","0.0.3":"2022-11-29T05:23:39.438Z","0.0.4":"2022-11-29T13:21:55.036Z","0.0.4-alph.1":"2022-12-01T02:43:08.813Z","0.0.4-alph.2":"2022-12-01T03:18:54.856Z","0.0.4-alph.3":"2022-12-01T03:38:25.788Z","0.0.4-alph.4":"2022-12-01T04:04:48.563Z","0.0.4-alph.5":"2022-12-06T03:37:22.712Z","0.0.4-alph.8":"2023-01-11T02:56:34.560Z","0.0.4-alph.9":"2023-01-11T03:06:41.554Z","0.0.5":"2023-04-13T12:41:28.045Z","0.0.6":"2023-04-13T12:53:02.255Z","0.0.7-alpha.1":"2023-04-14T06:33:57.547Z","0.0.7-alpha.2":"2024-10-18T09:53:14.344Z"},"description":"--- title: Vue2组件化集成 icon: category: guide tags:","maintainers":[{"name":"peter_zhang921","email":"peter@chuguotech.com"}],"readme":"---\ntitle: Vue2组件化集成\nicon:\ncategory: guide\ntags:\n\n- 开发者\n\n---\n\n## 安装依赖\n\n- 项目与关键模块版本\n\n```json\n{\n  \"vue\": \"^2.6.14\",\n  \"vue-i18n\": \"^8.28.2\",\n  \"vuex\": \"^3.0.1\",\n  \"element-ui\": \"^2.15.12\"\n}\n```\n\n- 安装第三方npm依赖\n\n```bash\nnpm install element-ui axios numbro tippy.js file-saver countup.js moment \n```\n\n> 项目中原本已经存在的依赖可以不用重复安装\n\n:::details ElementUI按需引入\n\n- 如果您项目中没有用到明细表格，可以不引入element-ui\n- 如果您项目中使用的是其他的ui库，又需要使用明细表格，可以按需导入明细表依赖的组件\n\n借助 babel-plugin-component，我们可以只引入需要的组件，以达到减小项目体积的目的。\n首先，安装 babel-plugin-component：\n\n```bash\nnpm install babel-plugin-component -D\n```\n\n然后，将 .babelrc 修改为：\n\n```json\n{\n  \"presets\": [\n    [\n      \"es2015\",\n      {\n        \"modules\": false\n      }\n    ]\n  ],\n  \"plugins\": [\n    [\n      \"component\",\n      {\n        \"libraryName\": \"element-ui\",\n        \"styleLibraryName\": \"theme-chalk\"\n      }\n    ]\n  ]\n}\n```\n\n```javascript\nimport {\n  Table,\n  TableColumn,\n  Loading,\n  Row,\n  Pagination,\n  Popover,\n  Input,\n  Select,\n  Option,\n  CheckboxGroup,\n  Checkbox\n} from 'element-ui';\n\n[Table, TableColumn, Loading, Row, Pagination, Popover, Input, Select, Option, CheckboxGroup, Checkbox].forEach(e => Vue.use(e));\n```\n\n:::\n\n:::details IBI使用的element-ui定制化说明\nIBI对element-ui做了一些个性化定制工作，如：明细表分页按钮样式配置、颜色拾取器风格、各种表单样式属性等，但基本不影响原生功能，\n如果您需要整合之后呈现的效果与IBI一致可以把\n\n```javascript\nimport ElementUI from 'element-ui';\n\nVue.use(ElementUI);\n```\n\n修改为\n\n```javascript\nimport ChuguoUI from 'chuguo-ui';\n\nVue.use(ChuguoUI);\n````\n\n:::\n\n- 安装IBI npm依赖\n\n```\nnpm install @chuguotech/ibi-vue2-comp\n```\n\n- 其他外挂依赖\n\n```\n$ tree -L 1 vendor\nvendor\n├── echarts\n├── font-awesome-4.7.0\n├── jQuery\n├── jQueryUI\n├── jquery-contextmenu\n└── exceljs.min.js\n\n```\n\n如果你使用的vue-cli创建的项目，可以参考下面的demo项目\n\n[Demo项目地址]()\n\n## 开始\n\n### 组件注册\n\n```javascript\nimport IbiComp from '@chuguotech/ibi-vue2-comp';\nimport ElementUI from 'element-ui';\nimport 'element-ui/lib/theme-chalk/index.css';\n\n// ElementUI\nVue.use(ElementUI);\n\n// 安装IbiComp\nVue.use(IbiComp, {\n    baseServerUrl: 'http://localhost:8026/cboard' // IBI 服务地址\n});\n```\n\n### 整合外部vue-i18n\n\n如果您的项目中已经存在i18n国际化配置，可以使用下面办法融合ibi国际化配置\n\n```javascript\nimport Vue from 'vue'\nimport VueI18n from 'vue-i18n';\nimport { enLocale, zhLocale } from '@chuguotech/ibi-vue2-comp'\n\nconst messages = {\n    en: {\n        ...enLocale,\n        message: {\n            hello: 'hello world'\n        }\n    },\n    cn: {\n        ...zhLocale,\n        message: {\n            hello: '你好世界'\n        }\n    }\n};\n\nVue.use(VueI18n);\n\nconst i18n = new VueI18n({\n    locale: 'cn', // 设置地区\n    messages, // 设置地区信息\n});\n\n\nVue.use(IbiComp, {\n    baseServerUrl: 'http://localhost:8026/cboard' // IBI 服务地址\n    i18n //注册IbiComps时传入i18n对象\n});\n```\n\n### 整合外部Vuex\n\n如果您的项目中已经存在Vuex, 可以用下面的办法混入ibiStore模块\n\n```javascript\nimport Vue from 'vue';\nimport Vuex from 'vuex';\nimport { ibiStore } from '@chuguotech/ibi-vue2-comp';\n\nVue.use(Vuex);\n\nconst store = Vuex.Store({\n    state: {\n        ... // 您的项目中原有啊Vuex定义\n    },\n    modules: {\n        ...ibiStore.modules // 混入ibiStore模块\n    }\n});\n\nVue.use(IbiComp, {\n    baseServerUrl: 'http://localhost:8026/cboard' // IBI 服务地址\n    store //注册IbiComps时传入store对象\n});\n```\n\n## IbiChart组件\n\n用来展示IBI中的所有图表\n\n- 支持图表类型包含：交叉表、ECharts图表、KPI、明细表\n- 支持参数配置响应\n- 支持联动事件\n- 支持表格数据下载\n\n```html\n<ibi-chart\n        :chart-id=\"chartId\"\n        isInBoard\n>\n</ibi-chart>\n```\n\n### 认证\n\n我们知道访问IBI中的资源需要权限认证，IbiChart组件支持以下认证方式\n\n- 用户名密码props传递认证\n- SDK API统一认证\n- IBI Token认证\n\n#### 用户名密码props传递认证\n\n对于安全性要求不高的整合可以使用用户名密码的形式认证，认证用户名和密码可以通过表单动态传入，比如在展示图表之前让用户交互式传入用户名密码\n\n```html\n<ibi-chart\n        :chart-id=\"chartId\"\n        username=\"xxx\"\n        password=\"xxx\"\n        isInBoard\n>\n</ibi-chart>\n```\n\n#### SDK API统一认证\n\n在图表加载之前认证一次即可，\n\n```vue\nimport IbiComp, { cboardCommon } from '@chuguotech/ibi-vue2-comp';\n\ncboardCommon.loginService.auth('xxx', 'xxx').then(response => {\n  const {valid} = response.data;\n  if (valid) {\n    new Vue({\n      i18n,\n      store,\n      router,\n      render: h => h(App),\n    }).$mount('#app')\n  }\n});\n\n// 后续组件加载不需要传入认证信息\n\n<ibi-chart\n    :chart-id=\"chartId\"\n    isInBoard\n>\n</ibi-chart>\n```\n\n#### Token认证\n\n需要传入IBI认可的Token\n\n```html\n<ibi-chart\n        :chart-id=\"chartId\"\n        token=\"xxx\"\n        isInBoard\n>\n</ibi-chart>\n```\n\n### 参数\n\n```html\n<div>\n<el-select v-model=\"params[0].values\" multiple>\n    <el-option value=\"Mexico\"></el-option>\n    <el-option value=\"Canada\"></el-option>\n</el-select>\n<el-button @click=\"query\">Query</el-button>\n</div>\n\n<ibi-chart\n    :chart-id=\"chartId\"\n    :params=\"params\"\n    isInBoard\n    watchParam\n>\n</ibi-chart>\n\n```\n\n#### params格式\n\n```typescript\n// 参数数据，一个图可以接收多个参数\nparams: [BoardParam]\n\n// 参数对象\nclass BoardParam {\n    type: String // 过滤的类型 =, ≠, >, <, ≥, ≤, like, not like, [a, b]\n    values: String[] // 过滤设定值\n    col: ParamLink[] // 参数关联对象，一个参数可以关联到对个对象\n}\n\n// 关联对象, 一个参数可以关联到对个对象\nclass ParamLink {\n    // 设定关联对象类型\n    type: String // ‘dataset’, 'widget', 'report,\n    // 设定关联对象ID\n    targetId: String | Number // 如: 数据集ID， 图表\n    // 设定具体关联的维度或者字段，当type为dataset、widget的时候设定\n    col: String // 字段名\n    // 当type为report的时候设定\n    targetId: String  // ibi-report组件的sid\n    datasetName: String // 报表组件中的数据集名称\n    column: {\n        name: String // 改报表数据集的字段\n    }\n}\n```\n\n```javascript\n// 参数格式简单样例\nparams: [{\n    col: [{datasetId: 1, col: 'sales_country',}],\n    type: '=',\n    values: ['Canada'],\n}, {\n    col: [{datasetId: 1, col: 'age',}],\n    type: '>',\n    values: [30],\n}]\n\n// report参数格式样例\nrptParams: [{\n    type: '=',\n    values: [],\n    col: [{\n        type: 'report',\n        targetId: rptId,\n        datasetName: 'invoice-mtd',\n        column: {\n            name: 'bus_type'\n        }\n    }]\n}]\n```\n\n#### watchParam\n\n监控参数变动即时更新图表\n\n#### 通过vuex store发送全局图表更新消息\n\n```vue\n<el-button @click=\"query\">Query</el-button>\n\nimport { boardStore } from '@chuguotech/ibi-vue2-comp';\n\nmethods: {\n  query() {\n    this.updateBoardParamsTick(true);\n  },\n  ...boardStore.boardMapMutations({\n    updateBoardParamsTick: boardStore.M_BOARD_PARAMS_TICK,\n  }),\n}\n```\n\n### 联动\n\n#### relations联动定义\n\n```html\n<ibi-chart\n        :chart-id=\"chartId\"\n        :relations=\"relations\"\n        isInBoard\n>\n</ibi-chart>\n```\n\n```javascript\nrelations: {\n    excludeSelf: true,\n    links: [{\n      type: 'dataset',\n      targetId: 1,\n      conditions: [{\n          source: {\n              type: 'row',\n              index: 0,\n              column: 'the_year',\n          },\n          target: {\n              column: 'the_year'\n          },\n        }],\n    }]\n}\n```\n\n### 样式\n\n```html\n<ibi-chart\n        :chart-id=\"chartId\"\n        :relations=\"relations\"\n        :extOption=\"extOption\"\n        isInBoard\n>\n</ibi-chart>\n```\n\n#### expOption格式\n\n- 配置Option样式融合\n  通过传入与原图样式配置结构一致的对象覆盖修改样式\n\n```javascript\nextOption = {\n    title: {\n        text: '名称改变'\n    }\n}\n```\n\n- 钩子函数\n\n**优势**：通过回调函数修改样式，该方法的优势是能够debug，与IBI中ECharts图表开发者模式原理一致，在render之前被调用，然后通过代码修改，好处是方便debug  \n**缺点**：该模式目前仅支持ECharts图表\n\n```javascript\n extOption = {\n  devTool: {\n    beforeRender(option) {\n      console.log(option);\n      _.merge(option, {\n        title: {\n          text: '名称改变',\n        }\n      })\n    },\n    beforeDestroy(echartsInstance) {\n      //\n    }\n  }\n}\n```\n\n\n","readmeFilename":"README.md"}