{"_id":"@ahcui/vue3-multiplex","_rev":"7-7085db8cfe93035f5b6f1f8d0cd90bb4","time":{"created":"2022-04-26T03:46:10.174Z","1.0.0-rc1":"2022-04-26T01:51:45.263Z","modified":"2023-11-07T09:16:14.735Z","1.0.0-rc2":"2022-04-26T03:46:10.412Z","1.0.0-rc4":"2022-07-19T01:38:00.420Z","1.0.0-rc5":"2022-08-24T06:35:59.109Z","1.0.0-rc6":"2022-11-23T07:42:11.318Z","1.0.0-rc7":"2023-11-07T09:16:14.556Z"},"name":"@ahcui/vue3-multiplex","dist-tags":{"latest":"1.0.0-rc7"},"versions":{"1.0.0-rc2":{"name":"@ahcui/vue3-multiplex","version":"1.0.0-rc2","description":"这是一个基于vue@3.x、element-plus@2.x、webpack@5.x、babel@7开发的前端UI框架核心库","author":{"name":"zerostyle"},"private":false,"license":"","main":"dist/lib/js/ahcui.multiplex.umd.min.js","keywords":["@ahcui","vue3-multiplex"],"scripts":{"postinstall":"node dist/postinstall.js","build:core":"webpack --config  build/webpack.conf.js","pack:core":"npm pack ","pub:core":"npm publish --access public","unpub:core":"npm unpublish @ahcui/vue3-multiplex@1.0.0-rc1"},"dependencies":{"@ahcui/lib-jsext":"^0.1.2","axios":"^0.25.0","element-plus":"2.0.2","mitt":"^3.0.0","vue":"3.2.29","vue-router":"^4.0.12","vuex":"^4.0.2","@babel/runtime":"^7.14.0","build":"^0.1.4","color-convert":"^2.0.1","eslint-plugin-promise":"^5.1.0","nprogress":"^0.2.0","@babel/core":"^7.14.3","@babel/plugin-proposal-decorators":"^7.14.2","@babel/plugin-syntax-jsx":"^7.12.13","@babel/plugin-transform-runtime":"^7.14.3","@babel/polyfill":"7.12.1","@babel/preset-env":"^7.14.4","@babel/runtime-corejs3":"^7.14.0","@webpack-cli/serve":"^1.4.0","autoprefixer":"^10.2.5","babel-helper-vue-jsx-merge-props":"^2.0.3","babel-loader":"^8.2.2","babel-plugin-transform-vue-jsx":"^3.7.0","cache-loader":"^4.1.0","chalk":"^4.1.1","clean-friendly-errors-webpack-plugin":"^2.1.0","copy-webpack-plugin":"9.0.0","core-js":"^3.14.0","cross-env":"7.0.3","css-loader":"^5.2.6","css-minimizer-webpack-plugin":"3.0.1","eslint":"^7.27.0","eslint-config-standard":"^16.0.3","eslint-friendly-formatter":"^4.0.1","eslint-plugin-import":"^2.23.3","eslint-plugin-node":"^11.1.0","eslint-plugin-standard":"^5.0.0","eslint-webpack-plugin":"^2.5.4","file-loader":"^6.2.0","html-webpack-plugin":"^5.3.2","mini-css-extract-plugin":"^2.1.0","node-notifier":"^6.0.0","ora":"^5.4.0","postcss":"8.3.0","postcss-import":"^14.0.0","postcss-loader":"^5.3.0","rimraf":"^3.0.2","semver":"^7.3.5","shelljs":"^0.8.3","unplugin-auto-import":"^0.5.11","unplugin-vue-components":"^0.17.18","url-loader":"^3.0.0","vue-loader":"^16.8.3","vue-style-loader":"^4.1.3","vue-template-compiler":"^2.6.12","webpack":"5.64.1","webpack-cli":"^4.7.0","webpack-dev-server":"^3.11.2","webpack-merge":"^5.7.3"},"peerDependencies":{"@ahcui/lib-jsext":"^0.1.2","axios":"^0.25.0","element-plus":"^2.0.2","mitt":"^3.0.0","vue":"^3.2.0","vue-router":"^4.0.12","vuex":"^4.0.2"},"devDependencies":{},"engines":{"node":">= 14.17.0","npm":">= 6.14.0"},"gitHead":"44e251af910c030397b8d6e66a546e78736101ed","_id":"@ahcui/vue3-multiplex@1.0.0-rc2","_nodeVersion":"14.17.0","_npmVersion":"6.14.15","_npmUser":{"name":"zero_style","email":"zerostyle@126.com"},"dist":{"integrity":"sha512-gAqSdehAemddoxzd7rJRi0rRpLGiSXeaZMO6NmF/iJx2zPkkTpJvH79BwW9kT8/XFs7NwA+sDdBsVxBmNnBC3w==","shasum":"67f66b82d6f608fc2e21fdf46c4806a292b4f0ce","tarball":"https://registry.npmjs.org/@ahcui/vue3-multiplex/-/vue3-multiplex-1.0.0-rc2.tgz","fileCount":12,"unpackedSize":1740687,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDkq+jKFCZrMKPL1790Z7ISgprl3bjrGeuolW/gbe8qVAIgfbjQ4lSqDuUBVUl56eKtY39mUEChEfMHHepfYyNtJpw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZ2sCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpSag//Q3IQP91guo9ucpV460BiN7JdjpBEUEV3GjpYzwBR30aUcEj3\r\nQm8KtTcYXgj+bJNtwOXbK0eGXrK2qm02GsR69UH38gR6m6qrBKlwJ7jKentR\r\n5eKGUmQlGuDMQDmkw15gCDKMGg6Xr3+QPgM2oksMBfZ3F9N9jEH6PwPDHW0A\r\nxwhiQdXEOpF10//xYZkx9kxWAvN8L4d6oUH6gpirtbIwIW6hLmPNMwCftTNk\r\nQqpMV8TL6Lm/ZlDdBjNxd1QPXl85WPtJLJcnU7AIz0/k99FDklv5zmitx5v/\r\nHUUWouVIHsCD2I+sFR4K6Gifyh/DuG3hNB4XcLPpeQab/20f3IszYgKd9TMh\r\npld0WqmIHCHKg3OrLkGlzdM8Vn/opa/UXtYp72T+EPnRqbdlViZxRRmt0BKG\r\nrrt17DFdnq/I+7axuU11tXOZV2rHHcDV6dsQMa+OJTXM792W9AjfO+PVy5W8\r\nX6jGbWwEtOf1uZBjYdagWyAQZG4k4666k7mZust0EXffMnbazIiEANQtmPIk\r\nujHmS8qwJwFV9Z6CeuIhE5bh4crPf1beh8tNp+3IkvIv3eTQY0N0V/vbPJ00\r\n7RWkY/o+AGVeMNC2/byRFkPzgx/AgPA3RgGlphiqRCqrOnFAMh5ap6zOY8Zw\r\nwSUwhhgoLevrrybb2jvQcGwzpBG00acf3yA=\r\n=q7BP\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"zero_style","email":"zerostyle@126.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-multiplex_1.0.0-rc2_1650944770226_0.6877075246221345"},"_hasShrinkwrap":false},"1.0.0-rc4":{"name":"@ahcui/vue3-multiplex","version":"1.0.0-rc4","description":"这是一个基于vue@3.x、element-plus@2.x、webpack@5.x、babel@7开发的前端UI框架核心库","author":{"name":"zerostyle"},"email":"zerostyle@126.com","private":false,"license":"","main":"dist/lib/js/ahcui.multiplex.umd.min.js","keywords":["@ahcui","vue3-multiplex"],"scripts":{"postinstall":"node dist/postinstall.js","build:core":"webpack --config  build/webpack.conf.js","pack:core":"npm pack ","pub:core":"npm publish --access public","unpub:core":"npm unpublish @ahcui/vue3-multiplex@1.0.0-rc4"},"dependencies":{"@ahcui/lib-jsext":"^0.1.2","@babel/core":"^7.14.3","@babel/plugin-proposal-decorators":"^7.14.2","@babel/plugin-syntax-jsx":"^7.12.13","@babel/plugin-transform-runtime":"^7.14.3","@babel/polyfill":"7.12.1","@babel/preset-env":"^7.14.4","@babel/runtime":"^7.14.0","@babel/runtime-corejs3":"^7.14.0","@webpack-cli/serve":"^1.4.0","autoprefixer":"^10.2.5","axios":"^0.27.2","babel-helper-vue-jsx-merge-props":"^2.0.3","babel-loader":"^8.2.2","babel-plugin-transform-vue-jsx":"^3.7.0","build":"^0.1.4","cache-loader":"^4.1.0","chalk":"^4.1.1","clean-friendly-errors-webpack-plugin":"^2.1.0","color-convert":"^2.0.1","copy-webpack-plugin":"9.0.0","core-js":"^3.14.0","cross-env":"7.0.3","css-loader":"^5.2.6","css-minimizer-webpack-plugin":"3.0.1","element-plus":"^2.2.2","eslint":"^7.27.0","eslint-config-standard":"^16.0.3","eslint-friendly-formatter":"^4.0.1","eslint-plugin-import":"^2.23.3","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-standard":"^5.0.0","eslint-webpack-plugin":"^2.5.4","file-loader":"^6.2.0","font-awesome":"^4.7.0","html-webpack-plugin":"^5.3.2","mini-css-extract-plugin":"^2.6.0","mitt":"^3.0.0","node-notifier":"^6.0.0","nprogress":"^0.2.0","ora":"^5.4.0","postcss":"8.3.0","postcss-import":"^14.0.0","postcss-loader":"^5.3.0","rimraf":"^3.0.2","semver":"^7.3.5","shelljs":"^0.8.3","unplugin-auto-import":"^0.5.11","unplugin-vue-components":"^0.17.18","url-loader":"^3.0.0","vue":"^3.2.33","vue-loader":"^16.8.3","vue-router":"^4.0.15","vue-style-loader":"^4.1.3","vue-template-compiler":"^2.6.12","vuex":"^4.0.2","webpack":"5.64.1","webpack-cli":"^4.7.0","webpack-dev-server":"^3.11.2","webpack-merge":"^5.7.3"},"peerDependencies":{"@ahcui/lib-jsext":"^0.1.2","axios":"^0.27.2","element-plus":"^2.2.2","mitt":"^3.0.0","vue":"^3.2.33","vue-router":"^4.0.15","vuex":"^4.0.2"},"devDependencies":{},"engines":{"node":">= 14.17.0","npm":">= 6.14.0"},"gitHead":"a5ee4add234014c6a1b16a22e14060c5275e90ba","_id":"@ahcui/vue3-multiplex@1.0.0-rc4","_nodeVersion":"16.15.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-Ii80qFotgE11u6fV04XW0//ZK/9PGpuhmq0/rYiZo/a7q4tzziuemK3S7l5rJmB9EzZTFOsVaBIsVraDi8qeng==","shasum":"df77439102df1776deb57d0ee1e6d2ce8e7702be","tarball":"https://registry.npmjs.org/@ahcui/vue3-multiplex/-/vue3-multiplex-1.0.0-rc4.tgz","fileCount":11,"unpackedSize":1829737,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC7B5nGawC/5RkeH3/NMsRkx2S25p8156RrlxStJetgWAIhAOgL32IwIC88Wi80c+Gleorzh3LiH2HJX/v+eXQnnKh7"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi1gr4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpCnhAAlWDv9pRjrOQUkQymtwXGpfGfvcPIiOA1ZKVXSYqvB639UH5V\r\nKeRGYA3JTrXGZPD4PFItprljKbySpwUgECIZEasIQJ+6O7VJB1hDpWm1AWH8\r\nl4cqotIqkSAqKiaKrbMQ1+Oe/HnE7jJGkRzMhqkbNhrMT3KL2SRsWeX1rNgP\r\nMVHB26z8Zl/NnxmXOhCmGLhjuYe/PHT29P0f6B1EChVGsv15C1Pc56QasQYy\r\n0FmWlgHV/QosMeqnfZI+cYiA8g9X+9xsvAGtNnQvXZQ6aX3NwLfDsqA3VMVn\r\nDDmcBSI2/ar8Hwz8FdSqRGErtINeBetVZ6NFE/p9G1QZhaUADtMdpMujmlZR\r\nNZSTvXjsl4iSNnmoDjjnjPxR1DhgjPrDqWVy7LxYlYcUu1FLKeCvi+uLNWTX\r\nFtlDJFw5rNnKLlvP7dt7sRkV+6fWyJTCWB6LDHHUCrpoMjyb1LcUi0h4n9yH\r\nayA3VyNOwWm6c/YEZtYH+xvlKRK7bP1IeYaEgfYkrSg8ApdivRK9wdvwfLh5\r\nME32L27fbfvIhI2mFywstAqN7Q8ihoZx4/SiH7ypjTwSw073XGSOK2EHyGyr\r\nBTNpXv4zs0dBqRPJf0/VABPQj4W0LdoucF04BFnEFSKgj914rHprgpGklapM\r\nRKdfI8oL+2owcM2MKZTn7WFViWMujAPND7Y=\r\n=iYi7\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zero_style","email":"zerostyle@126.com"},"directories":{},"maintainers":[{"name":"zero_style","email":"zerostyle@126.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-multiplex_1.0.0-rc4_1658194680093_0.7888982828206792"},"_hasShrinkwrap":false},"1.0.0-rc5":{"name":"@ahcui/vue3-multiplex","version":"1.0.0-rc5","description":"这是一个基于vue@3.x、element-plus@2.x、webpack@5.x、babel@7开发的前端UI框架核心库","author":{"name":"zerostyle"},"email":"zerostyle@126.com","private":false,"license":"","main":"dist/lib/js/ahcui.multiplex.umd.min.js","keywords":["@ahcui","vue3-multiplex"],"scripts":{"postinstall":"node dist/postinstall.js","build:core":"webpack --config  build/webpack.conf.js","pack:core":"npm pack ","pub:core":"npm publish --access public","unpub:core":"npm unpublish @ahcui/vue3-multiplex@1.0.0-rc5"},"dependencies":{"@ahcui/lib-jsext":"^0.1.2","@babel/core":"^7.14.3","@babel/plugin-proposal-decorators":"^7.14.2","@babel/plugin-syntax-jsx":"^7.12.13","@babel/plugin-transform-runtime":"^7.14.3","@babel/polyfill":"7.12.1","@babel/preset-env":"^7.14.4","@babel/runtime":"^7.14.0","@babel/runtime-corejs3":"^7.14.0","@webpack-cli/serve":"^1.4.0","autoprefixer":"^10.2.5","axios":"^0.27.2","babel-helper-vue-jsx-merge-props":"^2.0.3","babel-loader":"^8.2.2","babel-plugin-transform-vue-jsx":"^3.7.0","build":"^0.1.4","cache-loader":"^4.1.0","chalk":"^4.1.1","clean-friendly-errors-webpack-plugin":"^2.1.0","color-convert":"^2.0.1","copy-webpack-plugin":"9.0.0","core-js":"^3.14.0","cross-env":"7.0.3","css-loader":"^5.2.6","css-minimizer-webpack-plugin":"3.0.1","element-plus":"^2.2.2","eslint":"^7.27.0","eslint-config-standard":"^16.0.3","eslint-friendly-formatter":"^4.0.1","eslint-plugin-import":"^2.23.3","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-standard":"^5.0.0","eslint-webpack-plugin":"^2.5.4","file-loader":"^6.2.0","font-awesome":"^4.7.0","html-webpack-plugin":"^5.3.2","mini-css-extract-plugin":"^2.6.0","mitt":"^3.0.0","node-notifier":"^6.0.0","nprogress":"^0.2.0","ora":"^5.4.0","postcss":"8.3.0","postcss-import":"^14.0.0","postcss-loader":"^5.3.0","rimraf":"^3.0.2","semver":"^7.3.5","shelljs":"^0.8.3","unplugin-auto-import":"^0.5.11","unplugin-vue-components":"^0.17.18","url-loader":"^3.0.0","vue":"^3.2.33","vue-loader":"^16.8.3","vue-router":"^4.0.15","vue-style-loader":"^4.1.3","vue-template-compiler":"^2.6.12","vuex":"^4.0.2","webpack":"5.64.1","webpack-cli":"^4.7.0","webpack-dev-server":"^3.11.2","webpack-merge":"^5.7.3"},"peerDependencies":{"@ahcui/lib-jsext":"^0.1.2","axios":"^0.27.2","element-plus":"^2.2.2","mitt":"^3.0.0","vue":"^3.2.33","vue-router":"^4.0.15","vuex":"^4.0.2"},"devDependencies":{},"engines":{"node":">= 14.17.0","npm":">= 6.14.0"},"gitHead":"6e1f8288f757c1c3e964402db361e247d51b3873","_id":"@ahcui/vue3-multiplex@1.0.0-rc5","_nodeVersion":"14.18.2","_npmVersion":"6.14.15","dist":{"integrity":"sha512-JmIZh111tPuUTLA3efydVMJDg8zeQsi8yVeJeYKkHgc+0OnrnC1/yOm4oL8s+JcX0hTOMSUi7YF7uyKjBqW3xA==","shasum":"bea2810f84c5774e172d79fd90c367338a2818f8","tarball":"https://registry.npmjs.org/@ahcui/vue3-multiplex/-/vue3-multiplex-1.0.0-rc5.tgz","fileCount":10,"unpackedSize":1821634,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCEIvnUIG/1iQjk9ftlKsSnnI5D/zBLmUDKWzHOtAuU4QIgXaIMFHR6Dirqz74/LdyYOk8z7tmy+zDQoRUk1DI9/1U="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBcbPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpo0g/9HRceqCGYcPFpgOApEklbDLmGNbuMhtLG5a8gKyUK4i95l6F2\r\nNJktGIlLroriYfgRbS7yC6nqDjRCmFvh38RTLorQSeGWP4ru3QGiRXqtC1io\r\nz2RkKz8TD6/satYrHYda6TinXuj12RcE3pRV80Qyo8TznTllj6P8oaZBOM05\r\nm+nXgfKQ3lmam7yzKOxrYwCF5do/EiMuYFOtTNHhEOdEyTCPWOE1uelDBtbS\r\nO+X+u7uIMVApwpekFxE0t+e9lsIBWFC18Gln7iP84vrP/xMWeqgOzVtyM0CG\r\n+cSNyuRo+5Yrx6x+kvge2HfnujPDT5h7UdoHNFzC/tsdPfJgO4bYmlSs2aRr\r\n4Z61ztHUG76wbHBaYW4yq6zTZlRct4/tEMJbWBfzTgROJnX5iCgxVry8ibRz\r\nTzl0Gk1jqjDec1c7qWPwWSkGYlZzZdA0CAsp/eEXTBaDg8SQoQ2wAZbaKRKE\r\nSkQT/ifvH1eoOQ6wksTMD4j7dpmSJHPnKH8guX2lP1GRGAdwcLqxGKVLyUm+\r\nf4vAUIA2JW6eBUebCUvdIlQyy1ANFYTqOWY4g0xhj12dTSxzg1HogZULkHVu\r\n4IpFeMmDIqhGRVv57bUH1IqOWeTtkz0MVCZZjQ4CETtaVTdfrg/Ef7mLn1KI\r\n/I5RdFgyt6KlFdGccIIA8ccx6GL2fCNCw9c=\r\n=/41C\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zero_style","email":"zerostyle@126.com"},"directories":{},"maintainers":[{"name":"zero_style","email":"zerostyle@126.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-multiplex_1.0.0-rc5_1661322958913_0.625824325968475"},"_hasShrinkwrap":false},"1.0.0-rc6":{"name":"@ahcui/vue3-multiplex","version":"1.0.0-rc6","description":"这是一个基于vue@3.x、element-plus@2.x、webpack@5.x、babel@7开发的前端UI框架核心库","author":{"name":"zerostyle"},"email":"zerostyle@126.com","private":false,"license":"","main":"dist/lib/js/ahcui.multiplex.umd.min.js","keywords":["@ahcui","vue3-multiplex"],"scripts":{"postinstall":"node dist/postinstall.js","build:core":"webpack --config  build/webpack.conf.js","pack:core":"npm pack ","pub:core":"npm publish --access public","unpub:core":"npm unpublish @ahcui/vue3-multiplex@1.0.0-rc6"},"dependencies":{"@ahcui/lib-jsext":"^0.1.2","@babel/core":"^7.14.3","@babel/plugin-proposal-decorators":"^7.14.2","@babel/plugin-syntax-jsx":"^7.12.13","@babel/plugin-transform-runtime":"^7.14.3","@babel/polyfill":"7.12.1","@babel/preset-env":"^7.14.4","@babel/runtime":"^7.14.0","@babel/runtime-corejs3":"^7.14.0","@webpack-cli/serve":"^1.4.0","autoprefixer":"^10.2.5","axios":"^0.27.2","babel-helper-vue-jsx-merge-props":"^2.0.3","babel-loader":"^8.2.2","babel-plugin-transform-vue-jsx":"^3.7.0","build":"^0.1.4","cache-loader":"^4.1.0","chalk":"^4.1.1","clean-friendly-errors-webpack-plugin":"^2.1.0","color-convert":"^2.0.1","copy-webpack-plugin":"9.0.0","core-js":"^3.14.0","cross-env":"7.0.3","css-loader":"^5.2.6","css-minimizer-webpack-plugin":"3.0.1","element-plus":"^2.2.2","eslint":"^7.27.0","eslint-config-standard":"^16.0.3","eslint-friendly-formatter":"^4.0.1","eslint-plugin-import":"^2.23.3","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-standard":"^5.0.0","eslint-webpack-plugin":"^2.5.4","file-loader":"^6.2.0","font-awesome":"^4.7.0","html-webpack-plugin":"^5.3.2","mini-css-extract-plugin":"^2.6.0","mitt":"^3.0.0","node-notifier":"^6.0.0","nprogress":"^0.2.0","ora":"^5.4.0","postcss":"8.3.0","postcss-import":"^14.0.0","postcss-loader":"^5.3.0","rimraf":"^3.0.2","semver":"^7.3.5","shelljs":"^0.8.3","unplugin-auto-import":"^0.5.11","unplugin-vue-components":"^0.17.18","url-loader":"^3.0.0","vue":"^3.2.33","vue-loader":"^16.8.3","vue-router":"^4.0.15","vue-style-loader":"^4.1.3","vue-template-compiler":"^2.6.12","vuex":"^4.0.2","webpack":"5.64.1","webpack-cli":"^4.7.0","webpack-dev-server":"^3.11.2","webpack-merge":"^5.7.3"},"peerDependencies":{"@ahcui/lib-jsext":"^0.1.2","axios":"^0.27.2","element-plus":"^2.2.2","mitt":"^3.0.0","vue":"^3.2.33","vue-router":"^4.0.15","vuex":"^4.0.2"},"devDependencies":{},"engines":{"node":">= 14.17.0","npm":">= 6.14.0"},"gitHead":"44893c5a558e615658ee3acc4c2d299297e35ae1","_id":"@ahcui/vue3-multiplex@1.0.0-rc6","_nodeVersion":"17.9.1","_npmVersion":"6.14.15","dist":{"integrity":"sha512-1J99LGVuQi9Zij5ucX2vzZXCk0a2bIV371C2njpv1IMBDu8q5CjCWtbEzNB46rX81ItDYgvKLbqeMKml/EGBQw==","shasum":"ffee40b0ea9a0c122c26b9c8a2152d8896168b44","tarball":"https://registry.npmjs.org/@ahcui/vue3-multiplex/-/vue3-multiplex-1.0.0-rc6.tgz","fileCount":10,"unpackedSize":1820870,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCML+Au2FOY7YZrNi/Ho62zSkwUD5izRWJ3/ezCUcXbQIgMgwofGRTmbcgXd1V6Vc9o/kqGEbpQNxCIgLZEuDcyg0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjfc7TACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqAshAAiuqw2csenjmRSunavLscyM0M2OgRuFr7mCCOp8iRCKOK5I7n\r\nKaBZTOsBauoEPOfIHqTlknQNnXWYCaJsubK05/IjsypmYeW1Gwb0opa5dkNG\r\n+7MXNY6G3M8T05FPds+7M2VobvQaQo1bcGjArAdKZ1CBI3XtCEIsgSjJIaGy\r\nt0DbpOIoPqZvqmwN3gk7Pny/Y/wA7VlS7fww+TSGRXKG1rM8I7C4t61Q7Q62\r\no38l1knheIKN7Cqenl3MG//hL0FxJTHR7sWTubnCQGwvMZLgvqHpMSKx05IG\r\nF3XPwvL5wALtFVBAqTQNEWgdGUeJor3zk72pPVCqMB5yYcr45qVZavrsK6kM\r\ncchLvcpmhXbb/JD/CP2lWRDFIGoSUEMqd6bRCKjLTB6a+1UOgw70YLNq4yMp\r\nlffERuPXVMn4BS86c6kFyoU7FRoB7+S/TGFP+XUCOtt2FkqXw4AF8LesGetH\r\nB7FIypKF91qcimr1G5vTP7R/i7nyaig0hxtb8aApXh8rujs22w/XMcQDti+n\r\ncW4GkHdmiTAJg8oBJvjmRnpDcmyTvMx7qRjd+x/TMfLzmnPY0EpMaeW333BX\r\npipS9ChAuPHKQEuxC0K7NJUEyngLQOYAOsbEMF/u+p+nKiNq84BvMU4+ESeH\r\ndcx4fJ9hn2C1pU/1kLYPqBQzmsCu7OoTlM8=\r\n=6zxK\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zero_style","email":"zerostyle@126.com"},"directories":{},"maintainers":[{"name":"zero_style","email":"zerostyle@126.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-multiplex_1.0.0-rc6_1669189331101_0.23957084847482224"},"_hasShrinkwrap":false},"1.0.0-rc7":{"name":"@ahcui/vue3-multiplex","version":"1.0.0-rc7","description":"这是一个基于vue@3.x、element-plus@2.x的前端UI框架核心库","author":{"name":"zerostyle"},"email":"zerostyle@126.com","company":"暂无","private":false,"license":"MIT","repository":{"type":"git","url":"https://gitee.com/ahcui/vue3-multiplex"},"homepage":"http://www.ahcui.com/","main":"dist/lib/js/ahcui.multiplex.umd.min.js","keywords":["@ahcui","vue3-multiplex"],"scripts":{"postinstall":"node dist/postinstall.js","build:core":"webpack --config  build/webpack.conf.js","pack:core":"npm pack ","pub:core":"npm publish --access public","unpub:core":"npm unpublish @ahcui/vue3-multiplex@1.0.0-rc7"},"dependencies":{"@ahcui/lib-jsext":"^0.1.2","axios":"^0.27.2","color-convert":"^2.0.1","element-plus":"^2.2.2","font-awesome":"^4.7.0","mitt":"^3.0.0","nprogress":"^0.2.0","vue":"^3.2.33","vue-router":"^4.0.15","vuex":"^4.0.2"},"peerDependencies":{"@ahcui/lib-jsext":"^0.1.2","axios":"^0.27.2","element-plus":"^2.2.2","font-awesome":"^4.7.0","mitt":"^3.0.0","vue":"^3.2.33","vue-router":"^4.0.15","vuex":"^4.0.2"},"devDependencies":{"@babel/core":"^7.14.3","@babel/plugin-proposal-decorators":"^7.14.2","@babel/plugin-syntax-jsx":"^7.12.13","@babel/plugin-transform-runtime":"^7.14.3","@babel/preset-env":"^7.14.4","@babel/runtime":"^7.14.0","@babel/runtime-corejs3":"^7.14.0","@vue/compiler-sfc":"^3.2.41","autoprefixer":"^10.2.5","babel-loader":"^8.2.2","copy-webpack-plugin":"9.0.0","core-js":"^3.23.5","css-loader":"^6.7.1","css-minimizer-webpack-plugin":"3.0.1","file-loader":"^6.2.0","mini-css-extract-plugin":"^2.6.0","node-notifier":"^6.0.0","postcss":"8.4.20","postcss-import":"^14.0.0","postcss-loader":"^7.0.2","terser-webpack-plugin":"^5.1.3","url-loader":"^4.1.1","vue-loader":"^17.0.0","vue-style-loader":"^4.1.3","webpack":"5.75.0","webpack-cli":"^4.10.0"},"engines":{"node":">= 14.17.0","npm":">= 8.1.0"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"gitHead":"bea366721bc0af5c40f0c2c9e8e5a50b18b27cc3","_id":"@ahcui/vue3-multiplex@1.0.0-rc7","_nodeVersion":"16.9.1","_npmVersion":"7.21.1","dist":{"integrity":"sha512-/guXutiiQF4fNuM3FcfyUNwQqPml0k/1o61koXCaTjVLpSIGNqWkrEn8M3Xh3bGMNueMozpNqgvnEAg0ie1Dvw==","shasum":"a3fc4e41abbbd1385f83c4381ad35bb50b257518","tarball":"https://registry.npmjs.org/@ahcui/vue3-multiplex/-/vue3-multiplex-1.0.0-rc7.tgz","fileCount":10,"unpackedSize":1829768,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYxjREocPTEs9kntcQ3H63/gWzWNP7z3fmlT3EcjwPwwIgRj5E7rRPmX3/jY42939bQqSxRtXuYbYmY0iKfrMUDtI="}]},"_npmUser":{"name":"zero_style","email":"zerostyle@126.com"},"directories":{},"maintainers":[{"name":"zero_style","email":"zerostyle@126.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue3-multiplex_1.0.0-rc7_1699348574295_0.7615310570436997"},"_hasShrinkwrap":false}},"maintainers":[{"name":"zero_style","email":"zerostyle@126.com"}],"description":"这是一个基于vue@3.x、element-plus@2.x的前端UI框架核心库","keywords":["@ahcui","vue3-multiplex"],"author":{"name":"zerostyle"},"readme":"\r\n## @ahcui/vue3-multiplex框架核心组件文档\r\n\r\n##### 组织：ahcui\r\n\r\n### **当前版本:** @ahcui/vue3-multiplex@1.0.0-rc7\r\n\r\n\r\n***<font size=\"12px\" color=\"red\">使用时，请明确使用的版本号，请勿使用^1.0.0或~1.0.0之类模糊的版本！</font>***\r\n\r\n\r\n演示地址：\r\n\r\nhttp://www.ahcui.com\r\n\r\n\r\n效果图如下：\r\n\r\n[![查看框架核心组件项目模板](\r\nhttp://www.ahcui.com/static/img/demo-img1.jpg\r\n)](http://www.ahcui.com)\r\n\r\n\r\n\r\n## 服务支持\r\n\r\n\r\n[![进群获取更详细文档](http://www.ahcui.com/static/img/qq.png)](https://qm.qq.com/cgi-bin/qm/qr?k=x4TwOgNRzdNlB_MNEDpWGRaHlMElDvZi&jump_from=webapi)\r\n\r\n请扫码或点击图片进群获取更详细文档，密码为群名称。\r\n\r\n\r\n\r\n## 1：版本演化\r\n\r\n\r\n### V1.0.0-rc7新特性\r\n\r\n特性继承自rc5版本，仅修改部分已知问题\r\n\r\n### V1.0.0-rc7升级内容\r\n\r\n处理多页面模式下页面加载与切换时导致的url变成小写的问题\r\n\r\n优化多页面模式的按需加载过程与props传参方式\r\n \r\n\r\n\r\n### 依赖升级\r\n\r\n- 无\r\n\r\n\r\n\r\n### 定制说明\r\n\r\n如果此前端框架提供的配置项无法实现您的需求时，您可以选择：\r\n\r\n1：入群联系开发者，由开发者甄别是否在不影响框架复杂配置与切换机制的前提下，能够融入您的界面需求；\r\n\r\n2：通过扩展坞机制或vue3的teleport实现\r\n\r\n3：最终用户对界面布局与风格没有配置要求，且界面元素与客户要求无差别，仅在配色上存在差别，您首先通过配置实现界面布局，然后通过注入css样式实现之；\r\n\r\n4：其他未尽事宜请联系框架开发者\r\n\r\n本组件免费使用，但定制开发与技术支持可能会产生费。\r\n\r\n\r\n## 2：开发说明\r\n\r\n### 2.1：如何获取一个开发环境\r\n\r\n框架以NPM组件的方式提供，并且提供项目开发模板，这使得项目开发模板的目录结构极其简单，开发模板中有如何启用/引入框架的基本代码，您只需要关注您的业务页面得开发。\r\n\r\n框架核心组件无法直接运行，您需要一个vue工程。[点击查看或下载在gitee上的示例工程](\"https://gitee.com/ahcui/vue3-multiplex-project\",示例工程)，以源码方式，手把手教你如何引入、使用框架。您也可以自己搭建一个工程，仿照示例工程引入框架核心库。\r\n\r\n\r\n## 3：<a id=\"core\">组件开放对象</a>\r\n\r\n### 3.1：<a id=\"core-export\">组件内核公开点</a>\r\n```script\r\nexport {\r\n\tvue, app, cuiapi, router, store, mixin, elementPlus, axios, auth, NameSpace, namespace, eventDefine, eventBus, version ,runtimeCfg\r\n}\r\n```\r\n\r\n使用框架核心组件，意味着您需要使核心组件提供的导出组件，创建过程由框架核心库完成并导出到项目中，开发者通过调用API来完成项目内的扩展需要。\r\n\r\n\r\n\r\n#### 3.1.1：<a id=\"core-export-app\">app</a>\r\n\r\napp公开了核心组件内部通过vue的API接口createApp构建的应用对象，此对象没有安装任何VUE插件,您仍需要在项目中调用use安装插件，例如：\r\n```\r\nimport { app, router, store , elementPlus } from \"@ahcui/vue3-multiplex\";\r\n\r\n app\r\n .use(router)\r\n .use(store)\r\n .use(elementPlus, { size: 'small', zIndex: 3000 })\r\n .mount('#app');\r\n \r\n```\r\n<font size=\"12px\" color=\"#666\">\r\n\r\ntips：*具体代码请查看示例工程*\r\n\r\n</font>\r\n\r\n\r\n\r\n#### 3.1.2：<a id=\"core-export-vue\">vue</a>\r\n\r\n这里完整导出vue,伪代码如下：\r\n```\r\nexport * from 'vue';\r\n```\r\n\r\n您可以在工程中引入该组件使用vue,如：\r\n```\r\n//引入框架导出的vue\r\nimport{vue} from '@ahcui/vue3-multiplex';\r\n\r\nconst index=vue.ref(0);\r\n```\r\n\r\n也可以 使用\r\n```\r\n//引入vue\r\nimport{ref} from 'vue';\r\n\r\nconst index=ref(0);\r\n```\r\n\r\n<font size=\"12px\" color=\"#666\">\r\n\r\ntips：*使用@ahcui/vue3-multiplex公开的vue对象可以借助开发工具的接口发现可以自动提示，原生引入vue需要您自行查找定义与API接口*\r\n\r\n</font>\r\n\r\n#### 3.1.3：<a id=\"core-export-api\">api</a>\r\n\r\nAPI接口请参照<a href=\"#core-cuiapi\">3.4:cuiapi</a>节的单独介绍\r\n\r\n#### 3.1.4：<a id=\"core-export-router\">router</a>\r\n\r\n核心组件内构建router，注册内置拦截器，并完整导出vue-router，供外部扩展与使用伪代码如下：\r\n```\r\nconst router = new createRouter({})\r\n```\r\n内置路由默认注册了4个默认路由地址：\r\n\r\n* 核心库UI的挂载点，请参考<a href=\"#core-ui\">3.2:UI界面挂载点</a>；\r\n\r\n* 默认首页面dashboard；\r\n\r\n* 403页面；\r\n\r\n* 404页面；\r\n\r\n项目中注册router时，请通过VUE-Router的API接口[addRoute](https://router.vuejs.org/api/#addroute-1)进行扩展\r\n\r\n#### 3.1.5：<a id=\"core-export-store\">store</a>\r\n\r\n核心组件内构建vuex，用于存储核心组件的内置状态，并完整导出vuex，供外部扩展与使用，\r\n\r\n项目中注册存储模块时，请通过VUEX的API接口[registerModule](https://vuex.vuejs.org/api/#registermodule)进行扩展\r\n\r\n#### 3.1.6：<a id=\"core-export-mixin\">mixin</a>\r\n\r\n非vue2中的混入，此库将常用对象进行封装，可以直接在组件中导入使用：\r\n```\r\nimport { mixin} from '@ahcui/vue3-multiplex';\r\nsetup(){\r\n\tconst {\r\n\t\t/**\r\n\t\t* 前端运行的虚拟目录，取值自runtimeCfg.app_public_path，引入资源时需要将此作为前缀\r\n\t\t*/\r\n\t\tbasePath,\r\n\t\t/**\r\n\t\t* 当前路由信息 = useRoute()\r\n\t\t*/\r\n\t\tcuiRoute,\r\n\t\t/**\r\n\t\t* 路由定义信息，@ahcui/vue3-multiplex导出的router对象\r\n\t\t*/\r\n\t\tcuiRouter,\r\n\t\t/*\r\n\t\t* 核心组件认证对象\r\n\t\t*/\r\n\t\tcuiAuth,\r\n\t\t/**\r\n\t\t* 状态定义信息，@ahcui/vue3-multiplex导出的vuex对象\r\n\t\t*/\r\n\t\tcuiStore,\r\n\t\t/**\r\n\t\t* Axios实例\r\n\t\t*/\r\n\t\tcuiAxios,\r\n\t\t/**\r\n\t\t* 全局事件总线,@ahcui/vue3-multiplex导出的eventBus对象\r\n\t\t*/\r\n\t\tcuiEventbus\r\n\t} = mixin();\r\n}\r\n```\r\n#### 3.1.7：<a id=\"core-export-elementplus\">elementPlus</a>\r\n\r\n核心组件默认引入Element-Plus的主题样式，语言、以及核心库对组件的主题自动适配。\r\n\r\n开发者无需手动操作，这是内置能力。\r\n\r\n#### 3.1.8：<a id=\"core-export-axios\">axios</a>\r\n\r\n核心库导出一个默认的axios操作实例。\r\n\r\n#### 3.1.9：<a id=\"core-export-console\">console</a>\r\n\r\n核心库对控制台输出的控制，可以通过外置配置文件__app_log_open__设置日志开关，外置配置文件请参考<a src=\"#\">组件外置配置<a/>\r\n\r\n#### 3.1.10：<a id=\"core-export-auth\">auth</a>\r\n\r\n核心组件提供的用户认证信息的初始化入口，auth对象提供一个createAuth初始化函数，函数接受一个配置，配置结构如下：\r\n```\r\n{\r\n\t/**\r\n\t * 必须实现\r\n\t * 当前登录用户名字符串\r\n\t * 数据示例：\"admin\",\r\n\t * @return 返回用户名字符串\r\n\t */\r\n\tgetUserName:function(){\r\n\t\treturn \"\"\r\n\t},\r\n    /**\r\n     * 必须实现\r\n     * 当前登录用户名字符串\r\n     * 数据示例：\"zerostyle\",\r\n\t * @return 返回用户真实名称字符串\r\n     */\r\n    getRealName () {\r\n\t\treturn \"\";\r\n\t  },\r\n\t/**\r\n\t * 非必须实现\r\n\t * 用户的权限完整信息，JSON对象,结构自定义,框架中仅做保存，未使用，以备业务需要\r\n\t * 数据示例:{权限JSON对象,结构自定义,框架中仅做保存，未使用，以备业务需要}\r\n\t * @return 返回用户权限信息原示数据\r\n\t */\r\n\tgetPermission(){\r\n\t\t//数据转换操作\r\n\t\treturn Object;\r\n\t},\r\n\t/**\r\n\t *\r\n\t * 必须实现\r\n\t * 用户资源菜单为树状结构\r\n\t * 结构如下：\r\n\t *      [{\r\n\t *           resId:\"菜单唯一识别符,必选\",\r\n\t *           iconColor:\"#000,代表菜单图标字体颜色，可选\",\r\n\t *           iconClass:\"fa fa-bus 字体字库名称，代表菜单图标，可选\",\r\n\t *           resPath:\"菜单url路径，第一级非必选，二级及以下菜单必选\",\r\n\t *           resName:\"菜单名称文字\",\r\n\t *           children:[{\r\n\t *\t\t\t\t resId:\"菜单唯一识别符,必选\",\r\n\t *               iconColor:\"#000,代表菜单图标字体颜色，可选\",\r\n\t *               iconClass:\"fa fa-bus 字体字库名称，代表菜单图标，可选\",\r\n\t *               resPath:\"菜单url路径，第一级非必选，二级及以下菜单必选\",\r\n\t *               resName:\"菜单名称文字\"},\r\n\t *               {...},\r\n\t *               {...}]\r\n\t *          }],\r\n\t * @return 模块树状菜单\r\n\t */\r\n\tgetModulesTree(){ \r\n\t\t//数据转换操作\r\n\t\treturn Array;\r\n\t},\r\n\t/**\r\n\t * 非必须\r\n\t * 为使用jwt等模式的登陆时预留\r\n\t * 在REST无会话模式下使用的票据信息\r\n\t * @return token\r\n\t */\r\n\tgetToken(){\r\n\t\treturn \"\";\r\n\t},\r\n}\r\n```\r\n\r\n<font size=\"12px\" color=\"#666\">\r\n\r\ntips 1：*函数体return之前您可以转换您的数据格式为@ahcui/vue3-multiplex使用的数据；*\r\n\r\n</font>\r\n\r\n\r\n#### 3.1.11：<a id=\"core-export-NameSpace\">NameSpace</a>\r\n\r\n核心组件增加对命名空间的支持。命名空间用于隔离应用公开的变量，避免多个应用在集成时存在同名变量而丢失变量的问题，该库来源自[@ahcui/lib-jsext](https://www.npmjs.com/package/@ahcui/lib-jsext)组件。\r\n\r\n#### 3.1.12：<a id=\"core-export-namespace\">namespace</a>\r\n\r\n核心组件注册的命名空间，可以在window下直接访问，格式大致如：window.ahcui.software.frame，这是核心库的命名空间，请区别项目的命名空间。\r\n\r\n#### 3.1.13：<a id=\"core-export-eventDefine\">eventDefine</a>\r\n\r\n事件是核心库的重要组成部分，也是组件化后需要考虑的对外消息通知点，优秀的事件定义描述将有效的帮助开发人员鉴别消息，此内容将另外展开描述，<a href=\"#core-events-eventDefine\">点击查看详情</a>。\r\n\r\n#### 3.1.14：<a id=\"core-export-eventBus\">eventBus</a>\r\n\r\n事件是核心库的重要组成部分，也是组件化后需要考虑的对外消息通知点，全面的事件触发机制将是开发者可以灵活订阅消息，充分利用观察者模式来处理相应操作。 此内容将另外展开描述，<a href=\"#core-events-eventBus\">点击查看详情</a>。\r\n\r\n全局事件总线。为了便于开发者进行二次开发，框架存在诸多的事件通知，eventBus是事件通知的一种，这种方式请见<a href=\"#core-export-console\">eventDefine</a>对事件的订阅方式\r\n\r\n#### 3.1.15：<a id=\"core-export-version\">version</a>\r\n\r\n@ahcui/vue3-multiplex组件的版本信息描述。其描述信息如下：\r\n```\r\n{\r\n    name:\"@ahcui/vue3-multiplex\",\r\n    release:\"发布版本\",\r\n    developer:\"开发者\",\r\n    email:\"开发者邮箱\",\r\n}\r\n```\r\n\r\n#### 3.1.16：<a id=\"core-export-runtimeCfg\">runtimeCfg</a>\r\n\r\n运行时配置作为@ahcui/vue3-multiplex核心库的重点特色，将另外展开描述，<a href=\"#config\">点击查看详情</a>。\r\n\r\n\r\n### 3.2：<a id=\"core-ui\">UI界面挂载点</a>\r\n\r\n框架核心库的界面UI默认挂在路由名为\"@ahcui/vue3-multiplex\",路径为\"/\"的节点上，UI的路由定义伪代码如下：\r\n```\r\n   {\r\n     path: '/',\r\n     name: \"@ahcui/vue3-multiplex\",\r\n     component: @ahcui/vue3-multiplex UI组件,\r\n   },\r\n```\r\n<font size=\"12px\" color=\"#666\">\r\n\r\ntips 1：*您可以在工程中通过VUE-Router的API接口[addRoute(route: RouteRecordRaw): () => void](https://router.vuejs.org/api/#addroute-1)进行调整，*\r\n\r\ntips 2：*模板工程中，通过使用VUE-Router的API接口[addRoute(parentName: string | symbol, route: RouteRecordRaw): () => void](https://router.vuejs.org/api/#addroute)将使用框架的路由页面注册到框架路由下*\r\n\r\n</font>\r\n\r\n### 3.3：<a id=\"core-events\">组件内核事件</a>\r\n\r\n组件事件通知分为事件定义与事件通知两部分\r\n\r\n#### 3.3.1 <a id=\"core-events-eventDefine\">事件定义</a>\r\n\r\n核心组件（rc4版本调整了事件定义）开放的事件定义信息，所有事件定义如下：\r\n```\r\n{\r\n \r\n     header:{\r\n        menuItemClicked:\"头部菜单点击事件，此时路由地址已变化，函数签名：({module:菜单对应的模块信息})\",\r\n    },\r\n    sidebar:{\r\n        main:{\r\n          menuItemClicked:\"侧边栏无子菜单项的主菜单项被点击后所触发的事件，框架对此事件进行了路由切换的操作，外部还可以监听进行其他处理，函数签名：({module:菜单对应的模块信息})\",\r\n          subMenuOpen:\"侧边栏有子菜单项的主菜单项被展开时触发的事件，框架不响应此事件，仅传出事件，外部可以监听进行其他处理，函数签名：({module:菜单对应的模块信息,state:扩展信息})\",\r\n          subMenuClose:\"侧边栏有子菜单项的主菜单项被关闭时触发的事件，框架不响应此事件，仅传出事件，外部可以监听进行其他处理，函数签名：({module:菜单对应的模块信息,state:扩展信息})\",\r\n        },\r\n        sub:{\r\n          menuItemClicked:\"侧栏双菜单模式时，副菜单的最终极菜单项被点击后所触发的事件，框架对此事件进行了路由切换的操作，外部还可以监听进行其他处理\",\r\n          subMenuOpen:\"侧边双菜单模式时，有子菜单项的副菜单项被展开时触发的事件，框架不响应此事件，仅传出事件，外部可以监听进行其他处理，函数签名：({module:菜单对应的模块信息})\",\r\n          subMenuClose:\"侧边双菜单模式时，有子菜单项的副菜单项被关闭时触发的事件，框架不响应此事件，仅传出事件，外部可以监听进行其他处理，函数签名：({module:菜单对应的模块信息})\",\r\n        }  \r\n    },\r\n    content:{\r\n        multipage:{\r\n            changeCurrentTab:\"当多页面模式时，切换多页面的选项卡时触发本事件，函数签名：({oldValue:原选项卡名称,newValue:新选项卡名称,allowChange:允许切换})\",\r\n        },\r\n        singlepage:{\r\n\r\n        },\r\n        refreshcurrentroute:\"刷新当前工作区\",\r\n    },\r\n \r\n     \"changedSideBarCollapse\":\"修改侧边栏区域展开合并设置，函数签名：(旧状态布尔值，新状态布尔值)；如启用，则自动增加样式名：cui-style-layout-sidebar-collapse\",\r\n     \"changedSideBarClassName\":\"设置侧边栏风格样式，函数签名：(旧模式字符串，新模式字符串)；取值：cui-style-theme-sidebar-dark，cui-style-theme-sidebar-light，切换风格则自动设置为相应状态的样式名\",\r\n     \"changedHeaderBarClassName\":\"设置头部风格样式，函数签名：(旧模式字符串，新模式字符串)；取值：cui-style-theme-header-dark,cui-style-theme-header-light,cui-style-theme-header-color，切换风格则自动设置为相应状态的样式名\",\r\n     \"changedControlClassName\":`修改界面风格（主题）设置，函数签名：(旧模式字符串，新模式字符串)；取值：cui-style-theme-color-1[-8]，切换风格则自动设置为相应状态的样式名,`,\r\n     \"changedControlCustomColor\":`当changedControlClassName为cui-style-theme-color-custom时，由用户指定的主色调,`,\r\n     \"changedDarkMode\":\"修改黑暗模式设置，函数签名：(旧状态布尔值，新状态布尔值)；bool值：是/否，如启用，则自动增加样式名：cui-style-theme-dark\",\r\n     \"changedNavigationMode\":\"修改导航模式，函数签名：(旧模式字符串，新模式字符串)；取值：cui-style-layout-nav-mode-side:左侧菜单布局（所有级别,侧边显示，向下展开）,cui-style-layout-nav-mode-header:顶部菜单布局（所有级别，头部显示，向下展开）,cui-style-layout-nav-mode-mixture:混合菜单布局（顶部显示一级菜单，侧边为二级及以下），切换模式则自动设置为相应状态的样式名\",\r\n     \"changedDoubleSidebar\":\"侧栏双排菜单模式，函数签名：(旧状态布尔值，新状态布尔值)；如启用，则自动增加样式名：cui-style-layout-doublesidebar\",\r\n     \"changedBodyBespread\":\"修改内容区域铺满设置，函数签名：(旧状态布尔值，新状态布尔值)；如启用，则自动增加样式名：cui-style-layout-bodybespread\",\r\n     \"changedFixedHeader\":\"修改固定顶栏区域设置，函数签名：(旧状态布尔值，新状态布尔值)；如启用，则自动增加样式名：cui-style-layout-fixedheader\",\r\n     \"changedFixedSidebar\":\"修改固定侧边栏区域设置，函数签名：(旧状态布尔值，新状态布尔值)；如启用，则自动增加样式名：cui-style-layout-fixedsidebar\",\r\n     \"changedFixedBody\":\"修改固定主题区域设置，函数签名：(旧状态布尔值，新状态布尔值)；如启用，则自动增加样式名：cui-style-layout-fixedbody\",\r\n     \r\n     \"changedLogoAuto\":\"\",\r\n     \"changeSidebarIconColorful\":\"修改侧边栏图标为彩色，函数签名：(旧状态布尔值，新状态布尔值)；\",\r\n     \"changeShowFooter\":\"修改显示全局页脚，函数签名：(旧状态布尔值，新状态布尔值)；如启用，则自动增加样式名：cui-style-layout-showfooter\",\r\n     \"changeColorWeakMode\":\"修改色弱模式，函数签名：(旧状态布尔值，新状态布尔值)；如启用，则自动增加样式名：\",\r\n     \"changeMultiPageMode\":\"修改多页面模式，函数签名：(旧状态布尔值，新状态布尔值)；无论是否启用，页面都不含影响此模式的样式名称\",\r\n     \"changeTabsStyle\":\"修改（多页面模式时）选项卡的样式，函数签名：(旧样式名，新样式名)；\",\r\n     \"changeMenuIconBGColorMode\":\"更改菜单栏按钮背景色为彩色/默认时触发：(旧样式名，新样式名)；\",\r\n     \"changeLogoAreaAutoWidth\":\"更改左上角Logo区域宽度布局模式时触发,只在导航为cui-style-layout-nav-mode-header模式时有效\",\r\n     \"changeLoadingAnimation\":\"更改页面加载动画时触发\",\r\n\r\n     \"changeSideBarMainMenuDefaultWidth\":\"当修改侧边栏主菜单默认状态下的宽度时触发\",\r\n \r\n     \"changeSideBarMainMenuCollapseWidth\":\"侧边栏在cui-style-layout-nav-mode-side/cui-style-layout-nav-mode-mixture状态+主菜单收缩模式，调整主菜单项的宽度时触发\",\r\n     \"changeSideBarMainMenuDoubleWidth\":\"侧边栏在cui-style-layout-nav-mode-side/cui-style-layout-nav-mode-mixture状态+双菜单栏模式下，调整主菜单项的宽度时触发\",\r\n     \"changeSideBarMainMenuDoubleHeight\":\"侧边栏在cui-style-layout-nav-mode-side/cui-style-layout-nav-mode-mixture状态+双菜单栏模式，调整主菜单项的高度时触发\",\r\n     \"changeSideBarMainMenuDoubleIconSize\":\"侧边栏在cui-style-layout-nav-mode-side/cui-style-layout-nav-mode-mixture状态+双菜单栏模式，调整主菜单项的图标大小时触发\",\r\n     \"changeSideBarMainMenuItemHeight\":\"当修改侧边栏主菜单菜单项高度时触发\",\r\n     \"changeSideBarMainMenuItemIconTextMargin\":\"当修改侧边栏主菜单菜单项图标与文字间距时触发\",\r\n     \"changeSideBarMainMenuItemIconSize\":\"当修改侧边栏主菜单菜单项图标大小时触发\",\r\n     \"changeSideBarMainMenuItemFontSize\":\"当修改侧边栏主菜单菜单项文字大小时触发\",\r\n\r\n     \"changeHeaderHeight\":\"当修改头部高度时触发\",\r\n     \"changeHeaderMenuItemPadding\":\"当修改头部菜单的菜单项间距时触发\",\r\n \r\n     \"haSubModulesWhenChangeToDoubleSidebar\":\"当界面修改为双菜单模式时，当前页面的显示存在双菜单并会显示时触发本事件,函数签名(当前页面的父模块对象)\",\r\n     \"changedDoubleSidebarData\":\"当界面为双菜单模式时，父模块选中状态改变时，会导致子菜单数据变更，函数签名(父模块对象，子菜单的数据列表)\",\r\n     \"closeCuiSetting\":\"当关闭框架设置对话框时触发，函数签名：(配置信息的JSON对象)；\",\r\n  \r\n }\r\n```\r\n\r\n\r\n#### 3.3.2 <a id=\"core-events-eventBus\">事件通知</a>\r\n\r\n事件会以两种方式传出，一种是以原生window.CustomEvent自定义事件的方式传出，订阅事件代码如下：\r\n\r\n```\r\n\t//这是某个js文件\r\n\timport {eventDefine} from \"@ahcui/vue3-multiplex\";\r\n\t\r\n\t1：通过浏览器自定义事件机制，适用于原生js：\r\n\twindow.addEventListener(eventDefine.事件定义,function(eventArgs){\r\n\t\tlet args=eventArgs.detail;//这里是事件参数\r\n\t\t///something\r\n\t});\r\n\t\r\n \r\n```\r\n\r\n，一种是借助全局事件总线eventBus在vue组件中使用，使用代码如下：\r\n```\r\n\t//这是某个vue文件\r\n\timport { vue, eventBus, eventDefine } from \"@ahcui/vue3-multiplex\";\r\n\texport default {\r\n\t\tsetup(){\r\n\t\t\tvue.onMounted(()=>{\r\n\t\t\t\teventBus.on(eventDefine.事件定义,(eventArgObj)=>{\r\n\t\t\t\t\tconsole.log(\"接收到事件\");\r\n\t\t\t\t\tlet args1=eventArgObj[xxx];//这里是事件参数1\r\n\t\t\t\t\tlet args2=eventArgObj[xxx];//这里是事件参数2\r\n\t\t\t\t\t//...\r\n\t\t\t\t\t///something\r\n\t\t\t\t })\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n```\r\n\r\n两种事件通知机制的使用，可兼顾原生js文件与当前框架使用的vue技术栈。\r\n\r\n### 3.4：<a id=\"core-cuiapi\">cuiapi</a>\r\n\r\nAPI是UI框架提供的接口，API接口基于界面组件，如多页面模式的添加选项卡接口，必须是在多页面模式下才有此接口，否则调用后会抛出\"页面中不存在相应此事件的组件Content.MultiPage,此调用无效\"的错误\r\n\r\n#### 3.4.1：<a id=\"core-cuiapi-headerapi\">头部API</a>\r\n\t\r\n\topenSetting：打开核心库UI界面设置抽屉框\r\n\t\r\n\tcloseSetting：关闭核心库UI界面设置抽屉框\r\n\t\r\n\t\r\n调用API的代码示例如下：\r\n```\r\nimport{cuiapi} from '@ahcui/vue3-multiplex';\r\n\r\nexport default {\r\n    name:\"dashboard\",\r\n\r\n    setup(){\r\n\r\n        const click1 = ()=>{\r\n            cuiapi.header.openSetting();\r\n        }\r\n        const click2 = ()=>{\r\n            cuiapi.header.closeSetting();\r\n        }\r\n\r\n        return {\r\n            click1,\r\n            click2,\r\n        }\r\n    }\r\n}\r\n\r\n```\r\n\t\r\n#### 3.4.2：<a id=\"core-cuiapi-contentapi\">工作区API</a>\r\n\r\n\r\n\r\n* 公共API：\r\n\t\r\n\t\t/**\r\n\t\t * 刷新当前工作区的api，不区分单页面还是多页面，两者共用\r\n\t\t */\r\n\t\trefreshCurrent()\r\n\t\t\r\n调用公共API的代码示例如下：\r\n```\r\nimport{cuiapi} from '@ahcui/vue3-multiplex';\r\n\r\nexport default {\r\n    name:\"dashboard\",\r\n\r\n    setup(){\r\n\r\n        const refresh = ()=>{\r\n            cuiapi.content.refreshCurrent();\r\n        }\r\n\t\treturn{\r\n\t\t\trefresh,\r\n\t\t}\r\n\t}\r\n}\r\n```\r\n\t\r\n* 多页面模式API：\r\n\t\r\n```\r\n\t\r\n\t    /**\r\n         * !!!Deprecated \r\n         * 弃用，请见下方的rc4版本升级内容\r\n         * 添加一个新的tab页面,新页面会首先判断name是否是路由地址，如果是路由地址，则会跳入路由地址，面包屑会使用路由定义的title\r\n         * @param {*} title 页面标题\r\n         * @param {*} name 页面唯一字符串，通过框架UI菜单操作默认传入的是路径（路由地址）\r\n         * @param {*} componentInfo 组件对象\r\n         * @param {*} componentProps 组件默认参数\r\n         * @param {*} data 扩展数据，通过框架UI菜单操作默认传入的是菜单模块信息\r\n         */\r\n        addTab(title,name,componentInfo,componentProps,data)\r\n\t\t\r\n        /**\r\n         * !!!New\r\n         * 新增，rc4版本新增api\r\n         * 添加一个新的tab页面,因此API用于用户自定义操作，该API只做增加选项卡的动作，不做跳转、激活等动作，如有其他动作，请结合其他API进行组合使用\r\n         * @param {string} title 页面标题\r\n         * @param {string} name 页面唯一字符串，用户自定义唯一识别符，如希望使用路由地址对应的组件，请使用addTabByRoutePath\r\n         * @param {vue} componentInfo 组件对象\r\n         * @param {object} componentProps 组件默认参数\r\n         * @param {object} data 扩展数据，通过框架UI菜单操作默认传入的是菜单模块信息\r\n         */\r\n         addTabByCustomName : (title,name,componentInfo,componentProps,data)\r\n        \r\n        /**\r\n         * !!!New\r\n         * 新增，rc4版本新增api\r\n         * 添加一个新的tab页面,因添加的选项卡与路由定义由匹配关系，所以会影响title和面包屑，不做跳转、激活等动作，如有其他动作，请结合其他API进行组合使用\r\n         * @param {string} title 页面标题\r\n         * @param {string} routePath 路由地址(必须是路由中存在的地址)，如希望使用非路由中的组件，请使用addTabByCustomName\r\n         * @param {object} componentProps 组件默认参数(此参数为undefined的情况下，会使用路由定义中的默认参数)\r\n         * @param {object} data 扩展数据，通过框架UI菜单操作默认传入的是菜单模块信息\r\n         */\r\n         addTabByRoutePath : (title,routePath,componentProps,data)\r\n\t\t\r\n\t    /*\r\n         * 获取当前选中项的信息\r\n         * @returns {index:索引,tabItem:调用addTab时传入的信息}\r\n         */\r\n        getCurrentTabInfo()\r\n\t\t\r\n\t    /**\r\n         * 通过索引设置当前选中项\r\n         * @param {*} index \r\n         */\r\n        setCurrentTabByIndex(index)\r\n\r\n\t    /**\r\n        * !!!Changed \r\n        * 修改，请见下方的rc4版本升级内容\r\n        * 通过名称（默认是路由地址,如果是自己创建的tab，则传入自定义的名称）设置当前选中项\r\n        * @param {*} path 通过框架UI操作默认是路由地址,如果是自己创建的tab，则传入自定义的名称\r\n        */\r\n        setCurrentTabByPath(path)\r\n\r\n\t    /**\r\n         * 通过索引关闭指定的tab\r\n         * @param {*} index \r\n         */\r\n        closeTabByIndex(index)\r\n\r\n        /**\r\n         * 通过名称（默认是路由地址,如果是自己创建的tab，则传入自定义的名称）关闭指定的tab\r\n         * @param {*} path 通过框架UI操作默认是路由地址,如果是自己创建的tab，则传入自定义的名称\r\n         */\r\n        closeTabByPath(path)\r\n\r\n        /**\r\n         * 获取tab的数量\r\n         */\r\n        getTabsLength:()\r\n\r\n\r\n\t\t\r\n```\r\n调用多页面模式API的代码示例如下：\r\n```\r\nimport{cuiapi} from '@ahcui/vue3-multiplex';\r\n\r\nexport default {\r\n    name:\"dashboard\",\r\n\r\n    setup(){\r\n\r\n        const openNewTab1 = ()=>{\r\n            cuiapi.content.multipage.addTab(\"你好\",\"dasfdfd\",example,{name:\"world\"},{});\r\n        }\r\n\t\treturn {\r\n            openNewTab1,\r\n\t\t}\r\n\t}\r\n}\r\n```\r\n\r\n\r\n\r\n* 单页面模式API：\r\n```\r\n暂无API\r\n```\r\n\r\n\r\n## 4：<a id=\"config\">组件外置配置</a>\r\n\r\n运行时配置为编译后的项目提供了可配置与调整的能力。\r\n\r\n运行时配置信息，具体内容请复制如下内容项目文件中，并使前端程序在运行时能够加载此文件内容。\r\n\r\n前端模板工程对本组件的配置进行了扩展，并提供项目完整配置文件：static\\js\\runtime\\config.js，无需创建。\r\n\r\n```\r\n\r\n\r\n\r\n\r\n     {\r\n\r\n         /**\r\n        * 前端程序发布路径，该配置项仅在生产模式（build）启作用\r\n        * example:\"/cui/vue/\" \r\n        * default:\"/\"\r\n        * 此配置项是为了配合在容器环境的虚拟路径下发布程序使用，如不想把程序放入容器根路径下，则需要配置此项为需要的目录\r\n        * 如想把程序发布到\"http://ip:port/cui/\"下(\"cui\"为创建的虚拟路径或站点下cui目录)\r\n        * 配置了此项后，项目资源路径会指向该目录下（dist目录下的结构不变），同时在生产环境下在nginx的根目录创建此目录并作目录映射,\r\n        * */\r\n        __app_public_path__ : \"/\",\r\n\r\n        __app_logo_url__ :'/static/img/logo.png',\r\n\r\n        __app_project_name__ :'ahcui',\r\n\r\n        __app_page_title__ : \"@ahcui框架\",\r\n\r\n        __app_page_keyWords__ : \"请输入您想设置的应用关键字\",\r\n        \r\n        __app_page_description__ : \"请输入您想设置的应用说明\",\r\n\r\n        /**\r\n        * RestApi后端接口基地址,该配置项在开发与生产模式下均有效\r\n        * 该基地址用于配置代理使用，因此必须是当前应用地址的子路径,末尾不加'/'\r\n        * example1:\"/restful/api\" \r\n        * example2:\"http://localhost:8080/restful/api\"\r\n        * \r\n        * \r\n        */\r\n        __rest_base_path__ : \"/restful/api\",\r\n        \r\n        \r\n        __page_hid_topbottom__ : false,\r\n        \r\n        __page_hid_sidebar__ : false,\r\n\r\n        __multiplex_console__:{\r\n            debug:{\r\n                open: true,\r\n            },\r\n            error:{\r\n                open: true,\r\n            },\r\n            info:{\r\n                ope_: true,\r\n            },\r\n            log:{\r\n                open: true,\r\n            },\r\n            warn:{\r\n                open: true,\r\n            },\r\n        },\r\n\r\n        __multiplex_style__:\r\n        {\r\n            /**\r\n             * 是否收缩侧边栏，boolean\r\n             * 如启用，则自动增加样式名：cui-style-layout-sidebar-collapse\r\n             * \r\n             */\r\n            sideBarCollapse:false,\r\n            /**\r\n             * 侧边栏样式名称\r\n             * 取值：\r\n             * cui-style-theme-sidebar-dark\r\n             * cui-style-theme-sidebar-light\r\n             */\r\n            sideBarClassName: 'cui-style-theme-sidebar-dark',\r\n\r\n            /**\r\n             * 顶栏设置\r\n             * 取值：\r\n             * cui-style-theme-header-dark\r\n             * cui-style-theme-header-light\r\n             * cui-style-theme-header-color\r\n             * \r\n             */\r\n            headerBarClassName: 'cui-style-theme-header-dark',\r\n\r\n            /**\r\n             * 界面风格名称\r\n             */\r\n            controlClassName: 'cui-style-theme-color-2',\r\n\r\n            /**\r\n             * 当界面风格名称为自定义：cui-style-theme-color-custom 时，由用户指定的颜色\r\n             */\r\n            controlCustomColor:'#000',\r\n            /**\r\n             * 黑暗模式\r\n             */\r\n            darkMode: false,\r\n\r\n            /**\r\n             * 导航模式\r\n             * 取值：\r\n             * cui-style-layout-nav-mode-side:左侧菜单布局（所有级别,向下展开）\r\n             * cui-style-layout-nav-mode-header:顶部菜单布局（所有级别，向下展开）\r\n             * cui-style-layout-nav-mode-mixture:混合菜单布局（顶部为一级，测边为二级及以下）\r\n             */\r\n            navigationMode: 'cui-style-layout-nav-mode-mixture',\r\n\r\n            /**\r\n             * 侧栏双排菜单模式\r\n             * 如启用，则自动增加样式名：cui-style-layout-doublesidebar\r\n             */\r\n            doubleSidebar: false,\r\n\r\n            /**\r\n             * 内容区域铺满模式\r\n             * 如启用，则自动增加样式名：cui-style-layout-bodybespread\r\n             */\r\n            bodyBespread: false,\r\n\r\n            /**\r\n                * 是否固定顶栏区域\r\n                * 如启用，则自动增加样式名：cui-style-layout-fixedheader\r\n                */\r\n            fixedHeader: false,\r\n\r\n            /**\r\n                * 是否固定侧边栏区域\r\n                * 如启用，则自动增加样式名：cui-style-layout-fixedsidebar\r\n                */\r\n            fixedSidebar: false,\r\n\r\n            /**\r\n                * 是否固定主体区域\r\n                * 如启用，则自动增加样式名：cui-style-layout-fixedbody\r\n                */\r\n            fixedBody: false,\r\n\r\n            /**\r\n                * logo宽度自动\r\n                */\r\n            logoAuto: false,\r\n\r\n            /**\r\n                * 侧栏彩色图标\r\n                */\r\n            sidebarIconColorful: false,\r\n\r\n            /**\r\n                * 显示页脚，则自动增加样式名：cui-style-layout-showfooter\r\n                */\r\n            showFooter: false,\r\n\r\n            /**\r\n                * 色弱模式\r\n                */\r\n            colorWeakMode: false,\r\n\r\n            /**\r\n                * 使用多页面模式\r\n                */\r\n            multiPageMode: true,\r\n\r\n            /**\r\n                 * 多标签页样式\r\n                 */\r\n            tabsStyle: '',\r\n\r\n            /**\r\n             * 启用菜单栏图标背景的彩色模式\r\n             */\r\n            menuIconBGColorMode: false,\r\n\r\n            /**\r\n             * logo区域宽度自动\r\n             */\r\n            logoAreaAutoWidth:true,\r\n\r\n            /**\r\n             * 加载动画\r\n             */\r\n            loadingAnimation:1,\r\n\r\n            detail:{\r\n                sidebar:{\r\n                    sideBarMainMenuDefaultWidth:200,\r\n                    sideBarMainMenuCollapseWidth:50,\r\n                    sideBarMainMenuDoubleWidth:70,\r\n                    sideBarMainMenuDoubleHeight:50,\r\n                    sideBarMainMenuDoubleIconSize:18,\r\n                    sideBarMainMenuItemHeight:50,\r\n                    sideBarMainMenuItemIconTextMargin:4,\r\n                    sideBarMainMenuItemIconSize:14,\r\n                    sideBarMainMenuItemFontSize:14\r\n                },\r\n                header:{\r\n                    headerUserInfoMenus:[\r\n                        /*\r\n\t\t\t\t\t\t右上角用户下拉菜单内容项\r\n\t\t\t\t\t\ticon：图标，label：文字，event：点击后的事件名，会通过全局事件触发，请注意接收处理\r\n\t\t\t\t\t\t/*\r\n\t\t\t\t\t\t/*{icon:\"\",label:\"修改密码\",event:\"changePasswd\"},*/\r\n                        {icon:\"fa fa-user-o\",label:\"个人信息\",event:\"showuserinfo\"},\r\n                        {icon:\"fa fa-cog\",label:\"主题设置\",event:\"styleSetting\",divided:false},\r\n                        {icon:\"fa fa-sign-out\",label:\"退出登录\",event:\"logout\",divided:true}\r\n                    ],\r\n                    headerHeight:48,\r\n                    headerMenuItemPadding:20,\r\n                }\r\n            }\r\n        },\r\n\r\n        __multiplex_config__:{\r\n            show:true,\r\n            /**\r\n             * 第一列配置项\r\n             */\r\n            \"10000\":{\r\n                show:true\r\n            },\r\n            /**\r\n             * 第二列配置\r\n             */\r\n            \"20000\":{\r\n                show:false\r\n            },\r\n            \"30000\":{\r\n                show:false\r\n            },\r\n            \"40000\":{\r\n                show:false\r\n            },\r\n        },\r\n\r\n        __multiplex_animate__:{\r\n\t\t\t/**工作区切入时的动画样式*/\r\n            router_view_enter_active_class:\"\",\r\n\t\t\t/**工作区切出时的动画样式*/\r\n            router_view_leave_active_class:\"\"\r\n        },\r\n    \r\n    \r\n        /***************************************配置项均在此配置项之上，配置文件结束标记，以下配置项请勿删除***********************************************/\r\n        ______finished______:\"\"\r\n    }\r\n```\r\n\r\n\r\n你也可以在项目中抽离配置信息放入本文件中，例如项目中提取一个配置项\r\n```\r\n\tcustomConfig:{\r\n\t\ta:1,\r\n\t\tb:'123',\r\n\t\tc:{\r\n\t\t\tc1:\"s\",\r\n\t\t}\r\n\t}\r\n```\r\n您可以在配置中增加相应代码，如下：\r\n```\r\nwindow.__cui_runtime_config__ = {\r\n\t...其他配置项\r\n\t\r\n\t/*******************************************************自定义配置项请添加到下方****************************************************************/\r\n\t__customConfig__:{\r\n\t\ta:1,\r\n\t\tb:'123',\r\n\t\tc:{\r\n\t\t\tc1:\"s\",\r\n\t\t}\r\n\t},\r\n\t/***************************************配置项均在此配置项之上，配置文件结束标记，以下配置项请勿删除***********************************************/\r\n\t______finished______:\"\"\r\n}\r\n```\r\n<font size=\"12px\" color=\"#666\">\r\n\r\ntips 1：*配置内容您可以部分或者整体保存入数据库，通过接口返回来实现不同用户、机构、岗位配置不同；*\r\n\r\n</font>\r\n\r\n\r\n\r\n## 5：<a id=\"secdev\">二次开发</a>\r\n\r\n### 5.1：<a id=\"secdev-events\">订阅框架事件来进行自定义处理</a>\r\n\r\n在<a href=\"#core-events\">3.3：组件内核事件</a>中已经对事件定义与使用进行了介绍，此处不再复述，请查看文档相应章节\r\n\r\n### 5.2：<a id=\"secdev-api\">通过调用框架API函数</a>\r\n\r\n在<a href=\"#core-cuiapi\">3.4：api</a>中已经对API接口进行了介绍，此处不再复述，请查看文档相应章节\r\n\r\n### 5.3：<a id=\"secdev-uiexpend\">对界面UI进行扩展</a>\r\n\r\n自@ahcui/vue3-multiplex@1.0.0-rc1 版本增加了扩展坞定义，开发者可以根据自己的需要对扩展坞进行自定义\r\n\r\n扩展坞位置为红框所示如下：\r\n\r\n[![查看框架核心组件项目模板](\r\nhttp://www.ahcui.com/static/img/demo-img2.jpg\r\n)](http://www.ahcui.com/ahcui-multiplex-ui-extend/demo)\r\n\r\n扩展方案可参考web components与vue3 teleport两种，前者基于原生web标准，后者使用vue3新功能，具体使用请见模板工程.\r\n\r\n\r\n\r\n### 5.4 <a id=\"secdev-darkMode\">黑暗模式的开发</a>\r\n\r\n#### 5.4.1：黑暗模式的识别\r\n\r\n##### 5.4.1.1：按需获取\r\n\r\n一种用于JS代码中，可以通过判断运行时配置信息实现：\r\n```\r\nimport {runtimeCfg} from '../../../assets/core';\r\nexport default {\r\n    components:{},\r\n    props:{},\r\n    setup() {\r\n        let isDarkMode=vue.ref(runtimeCfg.multiplex_style.darkMode);\r\n        return {\r\n            isDarkMode,\r\n        }\r\n    }\r\n}\r\n```\r\n一种用于css代码中，开启黑暗模式会在body标签中增加独立的class名称\"cui-style-theme-dark\"，您可以使用选择器对页面进行独立控制或处理\r\n```html\r\n<body class=\"cui-style-theme-dark\">\r\n\t\t<div id=\"app\" class=\"cui-multiplex\">\r\n\t\t\t<div class=\"cui-layout cui-theme cui-style-layout-nav-mode-side cui-style-theme-dark cui-style-theme-header-light cui-style-theme-sidebar-dark cui-style-theme-color-2 cui-style-layout-sidebar-collapse cui-style-layout-doublesidebar cui-style-layout-fixedbody\" >\r\n\t\t\t....\r\n\t\t\t</div>\r\n\t\t</div>\t\r\n</body>\r\n```\r\n您可以使用以下类似代码实现黑暗模式下的某元素样式控制\r\n```css\r\n.cui-style-theme-dark .cui-multiplex .cui-theme ....到您的dom元素\r\n{\r\n\tbackground:var(--element-ui-color-dark-mode-bg1) #这里使用了一个变量来设置背景色，您也可以使用明确的颜色值\r\n}\r\n\r\n```\r\n\r\n##### 5.4.1.2：实时监听\r\n\r\n这种方式通过@ahcui/vue3-multiplex事件机制实时将变更动作传出，您可以监听changedDarkMode的事件定义，举一种代码实现如下:\r\n```\r\n//这是某个vue文件\r\nimport { vue, eventBus, eventDefine } from '../../../assets/core';\r\nexport default {\r\n\t\tsetup(){\r\n\t\t\tvue.onMounted(()=>{\r\n\t\t\t\teventBus.on(eventDefine.changedDarkMode,(eventArgObj)=>{\r\n\t\t\t\t\tconsole.log(\"接收到事件\");\r\n\t\t\t\t\tlet args1=eventArgObj[xxx];//这里是事件参数1\r\n\t\t\t\t\tlet args2=eventArgObj[xxx];//这里是事件参数2\r\n\t\t\t\t\t//...\r\n\t\t\t\t\t///something\r\n\t\t\t\t })\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n```\r\n事件使用请见3.3.2\r\n\r\n#### 5.4.2：如何开发支持黑暗模式切换的项目\r\n\r\n* 推荐使用原生dom编写与布局有关的结构，如左右结构的工作区，上下结构的工作区，此内容不应设置背景色，文字颜色等，否则会影响主题色与黑暗模式的切换效果\r\n\r\n* 使用Element-Plus进行内容区元素填充，如工作区中左侧内容为菜单、树、列表等，可使用Element-Plus对应组件填充，\r\n\r\n* 框架以element-plus为UI控件库，黑暗模式与主题色切换是对Element-Plus的样式进行特殊适配得来，即这种模式适配是需要单独处理的，而非不劳而获\r\n\r\n* 三方组件想要获得此能力，可能需要适配，适配的方案是通过css选择器判断是否是黑暗模式从而开启另一套适配样式来实现\r\n\r\n\r\n#### 5.4.3：如何自定义黑暗模式的颜色\r\n\r\n颜色适配、颜色变量数量、颜色防干扰、颜色反差等诸多因素的平衡是困难的，好在强大的@ahcui/vue3-multiplex框架核心库考虑到了这一点，提供了简单适配模式与专业适配模式两种模式\r\n\r\n##### 5.4.3.1：简单适配模式：\r\n\r\n@ahcui/vue3-multiplex框架核心库为黑暗模式定义了一套简单的配色，涉及背景色、文字颜色、边框颜色等，您可以通过声明一套新的定义覆盖之\r\n\r\n```\r\nbody.cui-style-theme-dark {\r\n    color-scheme:dark;\r\n    --element-ui-color-dark-mode-bg0: #000000;\r\n    --element-ui-color-dark-mode-bg1: #141414;\r\n    --element-ui-color-dark-mode-bg3: #1f1f1f;\r\n    --element-ui-color-dark-mode-font0:#ffffff;\r\n    --element-ui-color-dark-mode-font1:rgba(255, 255, 255, .85);;\r\n    --element-ui-color-dark-mode-font2:rgba(255,255,255,.65);\r\n    --element-ui-color-dark-mode-border0:#000000;\r\n    --element-ui-color-dark-mode-border1:#141414;\r\n}\r\n```\r\n\r\n##### 5.4.3.2：专业适配模式：\r\n\r\n除了简单适配使用到的变量外，@ahcui/vue3-multiplex框架核心库为黑暗模式维持了一套与Element-plus适配色，涉及诸多细节，乃至每个Element-plus组件的dom控件，您可以通过声明一套新的定义覆盖之\r\n```\r\nbody.cui-style-theme-dark {\r\n    color-scheme:dark;\r\n    --el-color-primary:var(--element-ui-color-main,#409eff);\r\n    --el-color-primary-light-3:var(--element-ui-color-assist-3,#79bbff);\r\n    --el-color-primary-light-5:var(--element-ui-color-assist-5,#a0cfff);\r\n    --el-color-primary-light-7:var(--element-ui-color-assist-7,#c6e2ff);\r\n    --el-color-primary-light-8:var(--element-ui-color-assist-8,#d9ecff);\r\n    --el-color-primary-light-9:var(--element-ui-color-assist-9,#ecf5ff);\r\n\r\n    --el-color-primary-dark-2:var(--element-ui-color-main,#337ecc);\r\n    --el-color-success:#67c23a;\r\n    --el-color-success-light-3:#4e8e2f;\r\n    --el-color-success-light-5:#3e6b27;\r\n    --el-color-success-light-7:#2d481f;\r\n    --el-color-success-light-8:#25371c;\r\n    --el-color-success-light-9:#1c2518;\r\n    --el-color-success-dark-2:#85ce61;\r\n    --el-color-warning:#e6a23c;\r\n    --el-color-warning-light-3:#a77730;\r\n    --el-color-warning-light-5:#7d5b28;\r\n    --el-color-warning-light-7:#533f20;\r\n    --el-color-warning-light-8:#3e301c;\r\n    --el-color-warning-light-9:#292218;\r\n    --el-color-warning-dark-2:#ebb563;\r\n    --el-color-danger:#f56c6c;\r\n    --el-color-danger-light-3:#b25252;\r\n    --el-color-danger-light-5:#854040;\r\n    --el-color-danger-light-7:#582e2e;\r\n    --el-color-danger-light-8:#412626;\r\n    --el-color-danger-light-9:#2b1d1d;\r\n    --el-color-danger-dark-2:#f78989;\r\n    --el-color-error:#f56c6c;\r\n    --el-color-error-light-3:#b25252;\r\n    --el-color-error-light-5:#854040;\r\n    --el-color-error-light-7:#582e2e;\r\n    --el-color-error-light-8:#412626;\r\n    --el-color-error-light-9:#2b1d1d;\r\n    --el-color-error-dark-2:#f78989;\r\n    --el-color-info:var(--element-ui-color-main,#909399);\r\n    --el-color-info-light-3:var(--element-ui-color-assist-3,#b1b3b8);\r\n    --el-color-info-light-5:var(--element-ui-color-assist-5,#c8c9cc);\r\n    --el-color-info-light-7:var(--element-ui-color-assist-7,#dedfe0);\r\n    --el-color-info-light-8:var(--element-ui-color-assist-8,#e9e9eb);\r\n    --el-color-info-light-9:var(--element-ui-color-assist-9,#f4f4f5);\r\n    --el-color-info-dark-2:var(--element-ui-color-main,#73767a);\r\n    --el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, 0.36), 0px 8px 20px rgba(0, 0, 0, 0.72);\r\n    --el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, 0.72);\r\n    --el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, 0.72);\r\n    --el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, 0.72), 0px 12px 32px #000000, 0px 8px 16px -8px #000000;\r\n    --el-bg-color-page:#0a0a0a;\r\n    --el-bg-color:var(--element-ui-color-dark-mode-bg1);\r\n    --el-bg-color-overlay:#1d1e1f;\r\n    --el-text-color-primary:#E5EAF3;\r\n    --el-text-color-regular:#CFD3DC;\r\n    --el-text-color-secondary:var(--element-ui-color-assist-5,#909399);\r\n    --el-text-color-placeholder:#8D9095;\r\n    --el-text-color-disabled:#6C6E72;\r\n    --el-border-color-darker:#636466;\r\n    --el-border-color-dark:#58585B;\r\n    --el-border-color: var(--element-ui-color-assist-5,#dcdfe6);\r\n    --el-border-color-light:var(--element-ui-color-dark-mode-border0,#414243);\r\n    --el-border-color-lighter:#363637;\r\n    --el-border-color-extra-light:#2B2B2C;\r\n    --el-fill-color-darker:#424243;\r\n    --el-fill-color-dark:#39393A;\r\n    --el-fill-color:#303030;\r\n    --el-fill-color-light:#262727;\r\n    --el-fill-color-lighter:#1D1D1D;\r\n    --el-fill-color-extra-light:#191919;\r\n    --el-fill-color-blank:var(--element-ui-color-dark-mode-bg1,transparent);\r\n    --el-mask-color:rgba(0, 0, 0, 0.8);\r\n    --el-mask-color-extra-light:rgba(0, 0, 0, 0.3)\r\n}\r\n\r\n```\r\n\r\n专业级适配不仅包含以上信息，还包括在Element-plus样式定义文件对每个空间的定义信息，您如果有很强的css能力，可以试一下从入门到放弃的感觉。\r\n\r\n#### 5.4.4：黑暗模式免责声明\r\n\r\n注黑暗模式是自@ahcui/vue3-multiplex@1.0.0-rc4增加的对Element-plus@2.2.2控件库的适配，未特殊说明仍是对Element-plus@2.2.2控件库的适配，如果在项目中使用其他版本的Element-plus可能会因为未做适配而出现问题，项目技术负责人等相关人员应对技术选型、版本区别有一定认识，该行为属于使用者的自主行为，且框架开发者对于这一问题提前尽到了告知义务，因此不承担任何责任。\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n## @ahcui/vue3-multiplex未最终定版，文档持续完善中\r\n\r\n","readmeFilename":"README.md","homepage":"http://www.ahcui.com/","repository":{"type":"git","url":"https://gitee.com/ahcui/vue3-multiplex"},"license":"MIT"}