suyiScreen/node_modules/.cache/vue-loader/c300dbd92c413650dacad7820bb...

1 line
17 KiB
JSON

{"remainingRequest":"C:\\hjmWeb\\suyiScreen\\suyiScreen\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\hjmWeb\\suyiScreen\\suyiScreen\\node_modules\\@jiaminghi\\data-view\\lib\\components\\activeRingChart\\src\\main.vue?vue&type=script&lang=js&","dependencies":[{"path":"C:\\hjmWeb\\suyiScreen\\suyiScreen\\node_modules\\@jiaminghi\\data-view\\lib\\components\\activeRingChart\\src\\main.vue","mtime":1670640065262},{"path":"C:\\hjmWeb\\suyiScreen\\suyiScreen\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1670640066936},{"path":"C:\\hjmWeb\\suyiScreen\\suyiScreen\\node_modules\\babel-loader\\lib\\index.js","mtime":1670640065986},{"path":"C:\\hjmWeb\\suyiScreen\\suyiScreen\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1670640066936},{"path":"C:\\hjmWeb\\suyiScreen\\suyiScreen\\node_modules\\vue-loader\\lib\\index.js","mtime":1670640074287}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQgQ2hhcnRzIGZyb20gJ0BqaWFtaW5naGkvY2hhcnRzJw0KDQppbXBvcnQgZHZEaWdpdGFsRmxvcCBmcm9tICcuLi8uLi9kaWdpdGFsRmxvcC9zcmMvbWFpbi52dWUnDQoNCmltcG9ydCB7IGRlZXBNZXJnZSB9IGZyb20gJ0BqaWFtaW5naGkvY2hhcnRzL2xpYi91dGlsL2luZGV4Jw0KDQppbXBvcnQgeyBkZWVwQ2xvbmUgfSBmcm9tICdAamlhbWluZ2hpL2MtcmVuZGVyL2xpYi9wbHVnaW4vdXRpbCcNCg0KZXhwb3J0IGRlZmF1bHQgew0KICBuYW1lOiAnRHZBY3RpdmVSaW5nQ2hhcnQnLA0KICBjb21wb25lbnRzOiB7DQogICAgZHZEaWdpdGFsRmxvcA0KICB9LA0KICBwcm9wczogew0KICAgIGNvbmZpZzogew0KICAgICAgdHlwZTogT2JqZWN0LA0KICAgICAgZGVmYXVsdDogKCkgPT4gKHt9KQ0KICAgIH0NCiAgfSwNCiAgZGF0YSAoKSB7DQogICAgcmV0dXJuIHsNCiAgICAgIGRlZmF1bHRDb25maWc6IHsNCiAgICAgICAgLyoqDQogICAgICAgICAqIEBkZXNjcmlwdGlvbiBSaW5nIHJhZGl1cw0KICAgICAgICAgKiBAdHlwZSB7U3RyaW5nfE51bWJlcn0NCiAgICAgICAgICogQGRlZmF1bHQgcmFkaXVzID0gJzUwJScNCiAgICAgICAgICogQGV4YW1wbGUgcmFkaXVzID0gJzUwJScgfCAxMDANCiAgICAgICAgICovDQogICAgICAgIHJhZGl1czogJzUwJScsDQogICAgICAgIC8qKg0KICAgICAgICAgKiBAZGVzY3JpcHRpb24gQWN0aXZlIHJpbmcgcmFkaXVzDQogICAgICAgICAqIEB0eXBlIHtTdHJpbmd8TnVtYmVyfQ0KICAgICAgICAgKiBAZGVmYXVsdCBhY3RpdmVSYWRpdXMgPSAnNTUlJw0KICAgICAgICAgKiBAZXhhbXBsZSBhY3RpdmVSYWRpdXMgPSAnNTUlJyB8IDExMA0KICAgICAgICAgKi8NCiAgICAgICAgYWN0aXZlUmFkaXVzOiAnNTUlJywNCiAgICAgICAgLyoqDQogICAgICAgICAqIEBkZXNjcmlwdGlvbiBSaW5nIGRhdGENCiAgICAgICAgICogQHR5cGUge0FycmF5PE9iamVjdD59DQogICAgICAgICAqIEBkZWZhdWx0IGRhdGEgPSBbeyBuYW1lOiAnJywgdmFsdWU6IDAgfV0NCiAgICAgICAgICovDQogICAgICAgIGRhdGE6IFt7IG5hbWU6ICcnLCB2YWx1ZTogMCB9XSwNCiAgICAgICAgLyoqDQogICAgICAgICAqIEBkZXNjcmlwdGlvbiBSaW5nIGxpbmUgd2lkdGgNCiAgICAgICAgICogQHR5cGUge051bWJlcn0NCiAgICAgICAgICogQGRlZmF1bHQgbGluZVdpZHRoID0gMjANCiAgICAgICAgICovDQogICAgICAgIGxpbmVXaWR0aDogMjAsDQogICAgICAgIC8qKg0KICAgICAgICAgKiBAZGVzY3JpcHRpb24gQWN0aXZlIHRpbWUgZ2FwIChtcykNCiAgICAgICAgICogQHR5cGUge051bWJlcn0NCiAgICAgICAgICogQGRlZmF1bHQgYWN0aXZlVGltZUdhcCA9IDMwMDANCiAgICAgICAgICovDQogICAgICAgIGFjdGl2ZVRpbWVHYXA6IDMwMDAsDQogICAgICAgIC8qKg0KICAgICAgICAgKiBAZGVzY3JpcHRpb24gUmluZyBjb2xvciAoaGV4fHJnYnxyZ2JhfGNvbG9yIGtleXdvcmRzKQ0KICAgICAgICAgKiBAdHlwZSB7QXJyYXk8U3RyaW5nPn0NCiAgICAgICAgICogQGRlZmF1bHQgY29sb3IgPSBbQ2hhcnRzIERlZmF1bHQgQ29sb3JdDQogICAgICAgICAqIEBleGFtcGxlIGNvbG9yID0gWycjMDAwJywgJ3JnYigwLCAwLCAwKScsICdyZ2JhKDAsIDAsIDAsIDEpJywgJ3JlZCddDQogICAgICAgICAqLw0KICAgICAgICBjb2xvcjogW10sDQogICAgICAgIC8qKg0KICAgICAgICAgKiBAZGVzY3JpcHRpb24gRGlnaXRhbCBmbG9wIHN0eWxlDQogICAgICAgICAqIEB0eXBlIHtPYmplY3R9DQogICAgICAgICAqLw0KICAgICAgICBkaWdpdGFsRmxvcFN0eWxlOiB7DQogICAgICAgICAgZm9udFNpemU6IDI1LA0KICAgICAgICAgIGZpbGw6ICcjZmZmJw0KICAgICAgICB9LA0KICAgICAgICAvKioNCiAgICAgICAgICogQGRlc2NyaXB0aW9uIERpZ2l0YWwgZmxvcCB0b0ZpeGVkDQogICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9DQogICAgICAgICAqLw0KICAgICAgICBkaWdpdGFsRmxvcFRvRml4ZWQ6IDAsDQogICAgICAgIC8qKg0KICAgICAgICAgKiBAZGVzY3JpcHRpb24gQ1JlbmRlciBhbmltYXRpb25DdXJ2ZQ0KICAgICAgICAgKiBAdHlwZSB7U3RyaW5nfQ0KICAgICAgICAgKiBAZGVmYXVsdCBhbmltYXRpb25DdXJ2ZSA9ICdlYXNlT3V0Q3ViaWMnDQogICAgICAgICAqLw0KICAgICAgICBhbmltYXRpb25DdXJ2ZTogJ2Vhc2VPdXRDdWJpYycsDQogICAgICAgIC8qKg0KICAgICAgICAgKiBAZGVzY3JpcHRpb24gQ1JlbmRlciBhbmltYXRpb25GcmFtZQ0KICAgICAgICAgKiBAdHlwZSB7U3RyaW5nfQ0KICAgICAgICAgKiBAZGVmYXVsdCBhbmltYXRpb25GcmFtZSA9IDUwDQogICAgICAgICAqLw0KICAgICAgICBhbmltYXRpb25GcmFtZTogNTANCiAgICAgIH0sDQoNCiAgICAgIG1lcmdlZENvbmZpZzogbnVsbCwNCg0KICAgICAgY2hhcnQ6IG51bGwsDQoNCiAgICAgIGFjdGl2ZUluZGV4OiAwLA0KDQogICAgICBhbmltYXRpb25IYW5kbGVyOiAnJw0KICAgIH0NCiAgfSwNCiAgY29tcHV0ZWQ6IHsNCiAgICBkaWdpdGFsRmxvcCAoKSB7DQogICAgICBjb25zdCB7IG1lcmdlZENvbmZpZywgYWN0aXZlSW5kZXggfSA9IHRoaXMNCg0KICAgICAgaWYgKCFtZXJnZWRDb25maWcpIHJldHVybiB7fQ0KDQogICAgICBjb25zdCB7IGRpZ2l0YWxGbG9wU3R5bGUsIGRpZ2l0YWxGbG9wVG9GaXhlZCwgZGF0YSB9ID0gbWVyZ2VkQ29uZmlnDQoNCiAgICAgIGNvbnN0IHZhbHVlID0gZGF0YS5tYXAoKHsgdmFsdWUgfSkgPT4gdmFsdWUpDQoNCiAgICAgIGNvbnN0IHN1bSA9IHZhbHVlLnJlZHVjZSgoYWxsLCB2KSA9PiBhbGwgKyB2LCAwKQ0KDQogICAgICBjb25zdCBwZXJjZW50ID0gcGFyc2VGbG9hdCh2YWx1ZVthY3RpdmVJbmRleF0gLyBzdW0gKiAxMDApIHx8IDANCg0KICAgICAgcmV0dXJuIHsNCiAgICAgICAgY29udGVudDogJ3tudH0lJywNCiAgICAgICAgbnVtYmVyOiBbcGVyY2VudF0sDQogICAgICAgIHN0eWxlOiBkaWdpdGFsRmxvcFN0eWxlLA0KICAgICAgICB0b0ZpeGVkOiBkaWdpdGFsRmxvcFRvRml4ZWQNCiAgICAgIH0NCiAgICB9LA0KICAgIHJpbmdOYW1lICgpIHsNCiAgICAgIGNvbnN0IHsgbWVyZ2VkQ29uZmlnLCBhY3RpdmVJbmRleCB9ID0gdGhpcw0KDQogICAgICBpZiAoIW1lcmdlZENvbmZpZykgcmV0dXJuICcnDQoNCiAgICAgIHJldHVybiBtZXJnZWRDb25maWcuZGF0YVthY3RpdmVJbmRleF0ubmFtZQ0KICAgIH0sDQogICAgZm9udFNpemUgKCkgew0KICAgICAgY29uc3QgeyBtZXJnZWRDb25maWcgfSA9IHRoaXMNCg0KICAgICAgaWYgKCFtZXJnZWRDb25maWcpIHJldHVybiAnJw0KDQogICAgICByZXR1cm4gYGZvbnQtc2l6ZTogJHttZXJnZWRDb25maWcuZGlnaXRhbEZsb3BTdHlsZS5mb250U2l6ZX1weDtgDQogICAgfQ0KICB9LA0KICB3YXRjaDogew0KICAgIGNvbmZpZyAoKSB7DQogICAgICBjb25zdCB7IGFuaW1hdGlvbkhhbmRsZXIsIG1lcmdlQ29uZmlnLCBzZXRSaW5nT3B0aW9uIH0gPSB0aGlzDQoNCiAgICAgIGNsZWFyVGltZW91dChhbmltYXRpb25IYW5kbGVyKQ0KDQogICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gMA0KDQogICAgICBtZXJnZUNvbmZpZygpDQoNCiAgICAgIHNldFJpbmdPcHRpb24oKQ0KICAgIH0NCiAgfSwNCiAgbWV0aG9kczogew0KICAgIGluaXQgKCkgew0KICAgICAgY29uc3QgeyBpbml0Q2hhcnQsIG1lcmdlQ29uZmlnLCBzZXRSaW5nT3B0aW9uIH0gPSB0aGlzDQoNCiAgICAgIGluaXRDaGFydCgpDQoNCiAgICAgIG1lcmdlQ29uZmlnKCkNCg0KICAgICAgc2V0UmluZ09wdGlvbigpDQogICAgfSwNCiAgICBpbml0Q2hhcnQgKCkgew0KICAgICAgY29uc3QgeyAkcmVmcyB9ID0gdGhpcw0KDQogICAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0cygkcmVmc1snYWN0aXZlLXJpbmctY2hhcnQnXSkNCiAgICB9LA0KICAgIG1lcmdlQ29uZmlnICgpIHsNCiAgICAgIGNvbnN0IHsgZGVmYXVsdENvbmZpZywgY29uZmlnIH0gPSB0aGlzDQoNCiAgICAgIHRoaXMubWVyZ2VkQ29uZmlnID0gZGVlcE1lcmdlKGRlZXBDbG9uZShkZWZhdWx0Q29uZmlnLCB0cnVlKSwgY29uZmlnIHx8IHt9KQ0KICAgIH0sDQogICAgc2V0UmluZ09wdGlvbiAoKSB7DQogICAgICBjb25zdCB7IGdldFJpbmdPcHRpb24sIGNoYXJ0LCByaW5nQW5pbWF0aW9uIH0gPSB0aGlzDQoNCiAgICAgIGNvbnN0IG9wdGlvbiA9IGdldFJpbmdPcHRpb24oKQ0KDQogICAgICBjaGFydC5zZXRPcHRpb24ob3B0aW9uLCB0cnVlKQ0KDQogICAgICByaW5nQW5pbWF0aW9uKCkNCiAgICB9LA0KICAgIGdldFJpbmdPcHRpb24gKCkgew0KICAgICAgY29uc3QgeyBtZXJnZWRDb25maWcsIGdldFJlYWxSYWRpdXMgfSA9IHRoaXMNCg0KICAgICAgY29uc3QgcmFkaXVzID0gZ2V0UmVhbFJhZGl1cygpDQoNCiAgICAgIG1lcmdlZENvbmZpZy5kYXRhLmZvckVhY2goZGF0YUl0ZW0gPT4gew0KICAgICAgICBkYXRhSXRlbS5yYWRpdXMgPSByYWRpdXMNCiAgICAgIH0pDQoNCiAgICAgIHJldHVybiB7DQogICAgICAgIHNlcmllczogWw0KICAgICAgICAgIHsNCiAgICAgICAgICAgIHR5cGU6ICdwaWUnLA0KICAgICAgICAgICAgLi4ubWVyZ2VkQ29uZmlnLA0KICAgICAgICAgICAgb3V0c2lkZUxhYmVsOiB7DQogICAgICAgICAgICAgIHNob3c6IGZhbHNlDQogICAgICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICBdLA0KICAgICAgICBjb2xvcjogbWVyZ2VkQ29uZmlnLmNvbG9yDQogICAgICB9DQogICAgfSwNCiAgICBnZXRSZWFsUmFkaXVzIChhY3RpdmUgPSBmYWxzZSkgew0KICAgICAgY29uc3QgeyBtZXJnZWRDb25maWcsIGNoYXJ0IH0gPSB0aGlzDQoNCiAgICAgIGNvbnN0IHsgcmFkaXVzLCBhY3RpdmVSYWRpdXMsIGxpbmVXaWR0aCB9ID0gbWVyZ2VkQ29uZmlnDQoNCiAgICAgIGNvbnN0IG1heFJhZGl1cyA9IE1hdGgubWluKC4uLmNoYXJ0LnJlbmRlci5hcmVhKSAvIDINCg0KICAgICAgY29uc3QgaGFsZkxpbmVXaWR0aCA9IGxpbmVXaWR0aCAvIDINCg0KICAgICAgbGV0IHJlYWxSYWRpdXMgPSBhY3RpdmUgPyBhY3RpdmVSYWRpdXMgOiByYWRpdXMNCg0KICAgICAgaWYgKHR5cGVvZiByZWFsUmFkaXVzICE9PSAnbnVtYmVyJykgcmVhbFJhZGl1cyA9IHBhcnNlSW50KHJlYWxSYWRpdXMpIC8gMTAwICogbWF4UmFkaXVzDQoNCiAgICAgIGNvbnN0IGluc2lkZVJhZGl1cyA9IHJlYWxSYWRpdXMgLSBoYWxmTGluZVdpZHRoDQogICAgICBjb25zdCBvdXRTaWRlUmFkaXVzID0gcmVhbFJhZGl1cyArIGhhbGZMaW5lV2lkdGgNCg0KICAgICAgcmV0dXJuIFtpbnNpZGVSYWRpdXMsIG91dFNpZGVSYWRpdXNdDQogICAgfSwNCiAgICByaW5nQW5pbWF0aW9uICgpIHsNCiAgICAgIGxldCB7IGFjdGl2ZUluZGV4LCBnZXRSaW5nT3B0aW9uLCBjaGFydCwgZ2V0UmVhbFJhZGl1cyB9ID0gdGhpcw0KDQogICAgICBjb25zdCByYWRpdXMgPSBnZXRSZWFsUmFkaXVzKCkNCiAgICAgIGNvbnN0IGFjdGl2ZSA9IGdldFJlYWxSYWRpdXModHJ1ZSkNCg0KICAgICAgY29uc3Qgb3B0aW9uID0gZ2V0UmluZ09wdGlvbigpDQoNCiAgICAgIGNvbnN0IHsgZGF0YSB9ID0gb3B0aW9uLnNlcmllc1swXQ0KDQogICAgICBkYXRhLmZvckVhY2goKGRhdGFJdGVtLCBpKSA9PiB7DQogICAgICAgIGlmIChpID09PSBhY3RpdmVJbmRleCkgew0KICAgICAgICAgIGRhdGFJdGVtLnJhZGl1cyA9IGFjdGl2ZQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIGRhdGFJdGVtLnJhZGl1cyA9IHJhZGl1cw0KICAgICAgICB9DQogICAgICB9KQ0KDQogICAgICBjaGFydC5zZXRPcHRpb24ob3B0aW9uLCB0cnVlKQ0KDQogICAgICBjb25zdCB7IGFjdGl2ZVRpbWVHYXAgfSA9IG9wdGlvbi5zZXJpZXNbMF0NCg0KICAgICAgdGhpcy5hbmltYXRpb25IYW5kbGVyID0gc2V0VGltZW91dChmb28gPT4gew0KICAgICAgICBhY3RpdmVJbmRleCArPSAxDQoNCiAgICAgICAgaWYgKGFjdGl2ZUluZGV4ID49IGRhdGEubGVuZ3RoKSBhY3RpdmVJbmRleCA9IDANCg0KICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gYWN0aXZlSW5kZXgNCg0KICAgICAgICB0aGlzLnJpbmdBbmltYXRpb24oKQ0KICAgICAgfSwgYWN0aXZlVGltZUdhcCkNCiAgICB9DQogIH0sDQogIG1vdW50ZWQgKCkgew0KICAgIGNvbnN0IHsgaW5pdCB9ID0gdGhpcw0KDQogICAgaW5pdCgpDQogIH0sDQogIGJlZm9yZURlc3Ryb3kgKCkgew0KICAgIGNvbnN0IHsgYW5pbWF0aW9uSGFuZGxlciB9ID0gdGhpcw0KDQogICAgY2xlYXJUaW1lb3V0KGFuaW1hdGlvbkhhbmRsZXIpDQogIH0NCn0NCg=="},{"version":3,"sources":["main.vue"],"names":[],"mappings":";;;;;;;;;;;AAWA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA","file":"main.vue","sourceRoot":"node_modules/@jiaminghi/data-view/lib/components/activeRingChart/src","sourcesContent":["<template>\r\n <div class=\"dv-active-ring-chart\">\r\n <div class=\"active-ring-chart-container\" ref=\"active-ring-chart\" />\r\n <div class=\"active-ring-info\">\r\n <dv-digital-flop :config=\"digitalFlop\" />\r\n <div class=\"active-ring-name\" :style=\"fontSize\">{{ ringName }}</div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport Charts from '@jiaminghi/charts'\r\n\r\nimport dvDigitalFlop from '../../digitalFlop/src/main.vue'\r\n\r\nimport { deepMerge } from '@jiaminghi/charts/lib/util/index'\r\n\r\nimport { deepClone } from '@jiaminghi/c-render/lib/plugin/util'\r\n\r\nexport default {\r\n name: 'DvActiveRingChart',\r\n components: {\r\n dvDigitalFlop\r\n },\r\n props: {\r\n config: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n data () {\r\n return {\r\n defaultConfig: {\r\n /**\r\n * @description Ring radius\r\n * @type {String|Number}\r\n * @default radius = '50%'\r\n * @example radius = '50%' | 100\r\n */\r\n radius: '50%',\r\n /**\r\n * @description Active ring radius\r\n * @type {String|Number}\r\n * @default activeRadius = '55%'\r\n * @example activeRadius = '55%' | 110\r\n */\r\n activeRadius: '55%',\r\n /**\r\n * @description Ring data\r\n * @type {Array<Object>}\r\n * @default data = [{ name: '', value: 0 }]\r\n */\r\n data: [{ name: '', value: 0 }],\r\n /**\r\n * @description Ring line width\r\n * @type {Number}\r\n * @default lineWidth = 20\r\n */\r\n lineWidth: 20,\r\n /**\r\n * @description Active time gap (ms)\r\n * @type {Number}\r\n * @default activeTimeGap = 3000\r\n */\r\n activeTimeGap: 3000,\r\n /**\r\n * @description Ring color (hex|rgb|rgba|color keywords)\r\n * @type {Array<String>}\r\n * @default color = [Charts Default Color]\r\n * @example color = ['#000', 'rgb(0, 0, 0)', 'rgba(0, 0, 0, 1)', 'red']\r\n */\r\n color: [],\r\n /**\r\n * @description Digital flop style\r\n * @type {Object}\r\n */\r\n digitalFlopStyle: {\r\n fontSize: 25,\r\n fill: '#fff'\r\n },\r\n /**\r\n * @description Digital flop toFixed\r\n * @type {Number}\r\n */\r\n digitalFlopToFixed: 0,\r\n /**\r\n * @description CRender animationCurve\r\n * @type {String}\r\n * @default animationCurve = 'easeOutCubic'\r\n */\r\n animationCurve: 'easeOutCubic',\r\n /**\r\n * @description CRender animationFrame\r\n * @type {String}\r\n * @default animationFrame = 50\r\n */\r\n animationFrame: 50\r\n },\r\n\r\n mergedConfig: null,\r\n\r\n chart: null,\r\n\r\n activeIndex: 0,\r\n\r\n animationHandler: ''\r\n }\r\n },\r\n computed: {\r\n digitalFlop () {\r\n const { mergedConfig, activeIndex } = this\r\n\r\n if (!mergedConfig) return {}\r\n\r\n const { digitalFlopStyle, digitalFlopToFixed, data } = mergedConfig\r\n\r\n const value = data.map(({ value }) => value)\r\n\r\n const sum = value.reduce((all, v) => all + v, 0)\r\n\r\n const percent = parseFloat(value[activeIndex] / sum * 100) || 0\r\n\r\n return {\r\n content: '{nt}%',\r\n number: [percent],\r\n style: digitalFlopStyle,\r\n toFixed: digitalFlopToFixed\r\n }\r\n },\r\n ringName () {\r\n const { mergedConfig, activeIndex } = this\r\n\r\n if (!mergedConfig) return ''\r\n\r\n return mergedConfig.data[activeIndex].name\r\n },\r\n fontSize () {\r\n const { mergedConfig } = this\r\n\r\n if (!mergedConfig) return ''\r\n\r\n return `font-size: ${mergedConfig.digitalFlopStyle.fontSize}px;`\r\n }\r\n },\r\n watch: {\r\n config () {\r\n const { animationHandler, mergeConfig, setRingOption } = this\r\n\r\n clearTimeout(animationHandler)\r\n\r\n this.activeIndex = 0\r\n\r\n mergeConfig()\r\n\r\n setRingOption()\r\n }\r\n },\r\n methods: {\r\n init () {\r\n const { initChart, mergeConfig, setRingOption } = this\r\n\r\n initChart()\r\n\r\n mergeConfig()\r\n\r\n setRingOption()\r\n },\r\n initChart () {\r\n const { $refs } = this\r\n\r\n this.chart = new Charts($refs['active-ring-chart'])\r\n },\r\n mergeConfig () {\r\n const { defaultConfig, config } = this\r\n\r\n this.mergedConfig = deepMerge(deepClone(defaultConfig, true), config || {})\r\n },\r\n setRingOption () {\r\n const { getRingOption, chart, ringAnimation } = this\r\n\r\n const option = getRingOption()\r\n\r\n chart.setOption(option, true)\r\n\r\n ringAnimation()\r\n },\r\n getRingOption () {\r\n const { mergedConfig, getRealRadius } = this\r\n\r\n const radius = getRealRadius()\r\n\r\n mergedConfig.data.forEach(dataItem => {\r\n dataItem.radius = radius\r\n })\r\n\r\n return {\r\n series: [\r\n {\r\n type: 'pie',\r\n ...mergedConfig,\r\n outsideLabel: {\r\n show: false\r\n }\r\n }\r\n ],\r\n color: mergedConfig.color\r\n }\r\n },\r\n getRealRadius (active = false) {\r\n const { mergedConfig, chart } = this\r\n\r\n const { radius, activeRadius, lineWidth } = mergedConfig\r\n\r\n const maxRadius = Math.min(...chart.render.area) / 2\r\n\r\n const halfLineWidth = lineWidth / 2\r\n\r\n let realRadius = active ? activeRadius : radius\r\n\r\n if (typeof realRadius !== 'number') realRadius = parseInt(realRadius) / 100 * maxRadius\r\n\r\n const insideRadius = realRadius - halfLineWidth\r\n const outSideRadius = realRadius + halfLineWidth\r\n\r\n return [insideRadius, outSideRadius]\r\n },\r\n ringAnimation () {\r\n let { activeIndex, getRingOption, chart, getRealRadius } = this\r\n\r\n const radius = getRealRadius()\r\n const active = getRealRadius(true)\r\n\r\n const option = getRingOption()\r\n\r\n const { data } = option.series[0]\r\n\r\n data.forEach((dataItem, i) => {\r\n if (i === activeIndex) {\r\n dataItem.radius = active\r\n } else {\r\n dataItem.radius = radius\r\n }\r\n })\r\n\r\n chart.setOption(option, true)\r\n\r\n const { activeTimeGap } = option.series[0]\r\n\r\n this.animationHandler = setTimeout(foo => {\r\n activeIndex += 1\r\n\r\n if (activeIndex >= data.length) activeIndex = 0\r\n\r\n this.activeIndex = activeIndex\r\n\r\n this.ringAnimation()\r\n }, activeTimeGap)\r\n }\r\n },\r\n mounted () {\r\n const { init } = this\r\n\r\n init()\r\n },\r\n beforeDestroy () {\r\n const { animationHandler } = this\r\n\r\n clearTimeout(animationHandler)\r\n }\r\n}\r\n</script>"]}]}