1 line
15 KiB
JSON
1 line
15 KiB
JSON
{"remainingRequest":"C:\\Users\\hua\\Desktop\\suyi1111\\suyi1111\\suyi1111\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\hua\\Desktop\\suyi1111\\suyi1111\\suyi1111\\node_modules\\@jiaminghi\\data-view\\lib\\components\\percentPond\\src\\main.vue?vue&type=script&lang=js&","dependencies":[{"path":"C:\\Users\\hua\\Desktop\\suyi1111\\suyi1111\\suyi1111\\node_modules\\@jiaminghi\\data-view\\lib\\components\\percentPond\\src\\main.vue","mtime":499162500000},{"path":"C:\\Users\\hua\\Desktop\\suyi1111\\suyi1111\\suyi1111\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\hua\\Desktop\\suyi1111\\suyi1111\\suyi1111\\node_modules\\babel-loader\\lib\\index.js","mtime":499162500000},{"path":"C:\\Users\\hua\\Desktop\\suyi1111\\suyi1111\\suyi1111\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\hua\\Desktop\\suyi1111\\suyi1111\\suyi1111\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCB7IGRlZXBNZXJnZSB9IGZyb20gJ0BqaWFtaW5naGkvY2hhcnRzL2xpYi91dGlsL2luZGV4JwoKaW1wb3J0IHsgZGVlcENsb25lIH0gZnJvbSAnQGppYW1pbmdoaS9jLXJlbmRlci9saWIvcGx1Z2luL3V0aWwnCgpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogJ0R2UGVyY2VudFBvbmQnLAogIHByb3BzOiB7CiAgICBjb25maWc6IHsKICAgICAgdHlwZTogT2JqZWN0LAogICAgICBkZWZhdWx0OiAoKSA9PiAoe30pCiAgICB9CiAgfSwKICBkYXRhICgpIHsKICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCkKICAgIHJldHVybiB7CiAgICAgIGdyYWRpZW50SWQxOiBgcGVyY2VudC1wb25kLWdyYWRpZW50SWQxLSR7dGltZXN0YW1wfWAsCiAgICAgIGdyYWRpZW50SWQyOiBgcGVyY2VudC1wb25kLWdyYWRpZW50SWQyLSR7dGltZXN0YW1wfWAsCgogICAgICB3aWR0aDogMCwKICAgICAgaGVpZ2h0OiAwLAoKICAgICAgZGVmYXVsdENvbmZpZzogewogICAgICAgIC8qKgogICAgICAgICAqIEBkZXNjcmlwdGlvbiBWYWx1ZQogICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9CiAgICAgICAgICogQGRlZmF1bHQgdmFsdWUgPSAwCiAgICAgICAgICovCiAgICAgICAgdmFsdWU6IDAsCiAgICAgICAgLyoqCiAgICAgICAgICogQGRlc2NyaXB0aW9uIENvbG9ycyAoaGV4fHJnYnxyZ2JhfGNvbG9yIGtleXdvcmRzKQogICAgICAgICAqIEB0eXBlIHtBcnJheTxTdHJpbmc+fQogICAgICAgICAqIEBkZWZhdWx0IGNvbG9ycyA9IFsnIzAwQkFGRicsICcjM0RFN0M5J10KICAgICAgICAgKiBAZXhhbXBsZSBjb2xvcnMgPSBbJyMwMDAnLCAncmdiKDAsIDAsIDApJywgJ3JnYmEoMCwgMCwgMCwgMSknLCAncmVkJ10KICAgICAgICAgKi8KICAgICAgICBjb2xvcnM6IFsnIzNERTdDOScsICcjMDBCQUZGJ10sCiAgICAgICAgLyoqCiAgICAgICAgICogQGRlc2NyaXB0aW9uIEJvcmRlciB3aWR0aAogICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9CiAgICAgICAgICogQGRlZmF1bHQgYm9yZGVyV2lkdGggPSAzCiAgICAgICAgICovCiAgICAgICAgYm9yZGVyV2lkdGg6IDMsCiAgICAgICAgLyoqCiAgICAgICAgICogQGRlc2NyaXB0aW9uIEdhcCBiZXR3ZWVuIGJvcmRlciBhbmQgcG9uZAogICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9CiAgICAgICAgICogQGRlZmF1bHQgYm9yZGVyR2FwID0gMwogICAgICAgICAqLwogICAgICAgIGJvcmRlckdhcDogMywKICAgICAgICAvKioKICAgICAgICAgKiBAZGVzY3JpcHRpb24gTGluZSBkYXNoCiAgICAgICAgICogQHR5cGUge0FycmF5PE51bWJlcj59CiAgICAgICAgICogQGRlZmF1bHQgbGluZURhc2ggPSBbNSwgMV0KICAgICAgICAgKi8KICAgICAgICBsaW5lRGFzaDogWzUsIDFdLAogICAgICAgIC8qKgogICAgICAgICAqIEBkZXNjcmlwdGlvbiBUZXh0IGNvbG9yCiAgICAgICAgICogQHR5cGUge1N0cmluZ30KICAgICAgICAgKiBAZGVmYXVsdCB0ZXh0Q29sb3IgPSAnI2ZmZicKICAgICAgICAgKi8KICAgICAgICB0ZXh0Q29sb3I6ICcjZmZmJywKICAgICAgICAvKioKICAgICAgICAgKiBAZGVzY3JpcHRpb24gQm9yZGVyIHJhZGl1cwogICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9CiAgICAgICAgICogQGRlZmF1bHQgYm9yZGVyUmFkaXVzID0gNQogICAgICAgICAqLwogICAgICAgIGJvcmRlclJhZGl1czogNSwKICAgICAgICAvKioKICAgICAgICAgKiBAZGVzY3JpcHRpb24gTG9jYWwgR3JhZGllbnQKICAgICAgICAgKiBAdHlwZSB7Qm9vbGVhbn0KICAgICAgICAgKiBAZGVmYXVsdCBsb2NhbEdyYWRpZW50ID0gZmFsc2UKICAgICAgICAgKiBAZXhhbXBsZSBsb2NhbEdyYWRpZW50ID0gZmFsc2UgfCB0cnVlCiAgICAgICAgICovCiAgICAgICAgbG9jYWxHcmFkaWVudDogZmFsc2UsCiAgICAgICAgLyoqCiAgICAgICAgICogQGRlc2NyaXB0aW9uIEZvcm1hdHRlcgogICAgICAgICAqIEB0eXBlIHtTdHJpbmd9CiAgICAgICAgICogQGRlZmF1bHQgZm9ybWF0dGVyID0gJ3t2YWx1ZX0lJwogICAgICAgICAqLwogICAgICAgIGZvcm1hdHRlcjogJ3t2YWx1ZX0lJwogICAgICB9LAoKICAgICAgbWVyZ2VkQ29uZmlnOiBudWxsCiAgICB9CiAgfSwKICBjb21wdXRlZDogewogICAgcmVjdFdpZHRoICgpIHsKICAgICAgY29uc3QgeyBtZXJnZWRDb25maWcsIHdpZHRoIH0gPSB0aGlzCgogICAgICBpZiAoIW1lcmdlZENvbmZpZykgcmV0dXJuIDAKCiAgICAgIGNvbnN0IHsgYm9yZGVyV2lkdGggfSA9IG1lcmdlZENvbmZpZwoKICAgICAgcmV0dXJuIHdpZHRoIC0gYm9yZGVyV2lkdGgKICAgIH0sCiAgICByZWN0SGVpZ2h0ICgpIHsKICAgICAgY29uc3QgeyBtZXJnZWRDb25maWcsIGhlaWdodCB9ID0gdGhpcwoKICAgICAgaWYgKCFtZXJnZWRDb25maWcpIHJldHVybiAwCgogICAgICBjb25zdCB7IGJvcmRlcldpZHRoIH0gPSBtZXJnZWRDb25maWcKCiAgICAgIHJldHVybiBoZWlnaHQgLSBib3JkZXJXaWR0aAogICAgfSwKICAgIHBvaW50cyAoKSB7CiAgICAgIGNvbnN0IHsgbWVyZ2VkQ29uZmlnLCB3aWR0aCwgaGVpZ2h0IH0gPSB0aGlzCgogICAgICBjb25zdCBoYWxmSGVpZ2h0ID0gaGVpZ2h0IC8gMgoKICAgICAgaWYgKCFtZXJnZWRDb25maWcpIHJldHVybiBgMCwgJHtoYWxmSGVpZ2h0fSAwLCAke2hhbGZIZWlnaHR9YAoKICAgICAgY29uc3QgeyBib3JkZXJXaWR0aCwgYm9yZGVyR2FwLCB2YWx1ZSB9ID0gbWVyZ2VkQ29uZmlnCgogICAgICBjb25zdCBwb2x5bGluZUxlbmd0aCA9ICh3aWR0aCAtIChib3JkZXJXaWR0aCArIGJvcmRlckdhcCkgKiAyKSAvIDEwMCAqIHZhbHVlCgogICAgICByZXR1cm4gYAogICAgICAgICR7Ym9yZGVyV2lkdGggKyBib3JkZXJHYXB9LCAke2hhbGZIZWlnaHR9CiAgICAgICAgJHtib3JkZXJXaWR0aCArIGJvcmRlckdhcCArIHBvbHlsaW5lTGVuZ3RofSwgJHtoYWxmSGVpZ2h0ICsgMC4wMDF9CiAgICAgIGAKICAgIH0sCiAgICBwb2x5bGluZVdpZHRoICgpIHsKICAgICAgY29uc3QgeyBtZXJnZWRDb25maWcsIGhlaWdodCB9ID0gdGhpcwoKICAgICAgaWYgKCFtZXJnZWRDb25maWcpIHJldHVybiAwCgogICAgICBjb25zdCB7IGJvcmRlcldpZHRoLCBib3JkZXJHYXAgfSA9IG1lcmdlZENvbmZpZwoKICAgICAgcmV0dXJuIGhlaWdodCAtIChib3JkZXJXaWR0aCArIGJvcmRlckdhcCkgKiAyCiAgICB9LAogICAgbGluZWFyR3JhZGllbnQgKCkgewogICAgICBjb25zdCB7IG1lcmdlZENvbmZpZyB9ID0gdGhpcwoKICAgICAgaWYgKCFtZXJnZWRDb25maWcpIHJldHVybiBbXQoKICAgICAgY29uc3QgeyBjb2xvcnMgfSA9IG1lcmdlZENvbmZpZwoKICAgICAgY29uc3QgY29sb3JOdW0gPSBjb2xvcnMubGVuZ3RoCgogICAgICBjb25zdCBjb2xvck9mZnNldEdhcCA9IDEwMCAvIChjb2xvck51bSAtIDEpCgogICAgICByZXR1cm4gY29sb3JzLm1hcCgoYywgaSkgPT4gW2NvbG9yT2Zmc2V0R2FwICogaSwgY10pCiAgICB9LAogICAgcG9seWxpbmVHcmFkaWVudCAoKSB7CiAgICAgIGNvbnN0IHsgZ3JhZGllbnRJZDEsIGdyYWRpZW50SWQyLCBtZXJnZWRDb25maWcgfSA9IHRoaXMKCiAgICAgIGlmICghbWVyZ2VkQ29uZmlnKSByZXR1cm4gZ3JhZGllbnRJZDIKCiAgICAgIGlmIChtZXJnZWRDb25maWcubG9jYWxHcmFkaWVudCkgcmV0dXJuIGdyYWRpZW50SWQxCgogICAgICByZXR1cm4gZ3JhZGllbnRJZDIKICAgIH0sCiAgICBncmFkaWVudDJYUG9zICgpIHsKICAgICAgY29uc3QgeyBtZXJnZWRDb25maWcgfSA9IHRoaXMKCiAgICAgIGlmICghbWVyZ2VkQ29uZmlnKSByZXR1cm4gJzEwMCUnCgogICAgICBjb25zdCB7IHZhbHVlIH0gPSBtZXJnZWRDb25maWcKCiAgICAgIHJldHVybiBgJHsyMDAgLSB2YWx1ZX0lYAogICAgfSwKICAgIGRldGFpbHMgKCkgewogICAgICBjb25zdCB7IG1lcmdlZENvbmZpZyB9ID0gdGhpcwoKICAgICAgaWYgKCFtZXJnZWRDb25maWcpIHJldHVybiAnJwoKICAgICAgY29uc3QgeyB2YWx1ZSwgZm9ybWF0dGVyIH0gPSBtZXJnZWRDb25maWcKCiAgICAgIHJldHVybiBmb3JtYXR0ZXIucmVwbGFjZSgne3ZhbHVlfScsIHZhbHVlKQogICAgfQogIH0sCiAgd2F0Y2g6IHsKICAgIGNvbmZpZyAoKSB7CiAgICAgIGNvbnN0IHsgbWVyZ2VDb25maWcgfSA9IHRoaXMKCiAgICAgIG1lcmdlQ29uZmlnKCkKICAgIH0KICB9LAogIG1ldGhvZHM6IHsKICAgIGFzeW5jIGluaXQgKCkgewogICAgICBjb25zdCB7IGluaXRXSCwgY29uZmlnLCBtZXJnZUNvbmZpZyB9ID0gdGhpcwoKICAgICAgYXdhaXQgaW5pdFdIKCkKCiAgICAgIGlmICghY29uZmlnKSByZXR1cm4KCiAgICAgIG1lcmdlQ29uZmlnKCkKICAgIH0sCiAgICBhc3luYyBpbml0V0ggKCkgewogICAgICBjb25zdCB7ICRuZXh0VGljaywgJHJlZnMgfSA9IHRoaXMKCiAgICAgIGF3YWl0ICRuZXh0VGljaygpCgogICAgICBjb25zdCBkb20gPSAkcmVmc1sncGVyY2VudC1wb25kJ10KCiAgICAgIHRoaXMud2lkdGggPSBkb20uY2xpZW50V2lkdGgKICAgICAgdGhpcy5oZWlnaHQgPSBkb20uY2xpZW50SGVpZ2h0CiAgICB9LAogICAgbWVyZ2VDb25maWcgKCkgewogICAgICBjb25zdCB7IGNvbmZpZywgZGVmYXVsdENvbmZpZyB9ID0gdGhpcwoKICAgICAgdGhpcy5tZXJnZWRDb25maWcgPSBkZWVwTWVyZ2UoZGVlcENsb25lKGRlZmF1bHRDb25maWcsIHRydWUpLCBjb25maWcgfHwge30pCiAgICB9CiAgfSwKICBtb3VudGVkICgpIHsKICAgIGNvbnN0IHsgaW5pdCB9ID0gdGhpcwoKICAgIGluaXQoKQogIH0KfQo="},{"version":3,"sources":["main.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA","file":"main.vue","sourceRoot":"node_modules/@jiaminghi/data-view/lib/components/percentPond/src","sourcesContent":["<template>\n <div class=\"dv-percent-pond\" ref=\"percent-pond\">\n <svg>\n <defs>\n <linearGradient :id=\"gradientId1\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n <stop v-for=\"lc in linearGradient\" :key=\"lc[0]\"\n :offset=\"`${lc[0]}%`\"\n :stop-color=\"lc[1]\" />\n </linearGradient>\n\n <linearGradient :id=\"gradientId2\" x1=\"0%\" y1=\"0%\" :x2=\"gradient2XPos\" y2=\"0%\">\n <stop v-for=\"lc in linearGradient\" :key=\"lc[0]\"\n :offset=\"`${lc[0]}%`\"\n :stop-color=\"lc[1]\" />\n </linearGradient>\n </defs>\n <rect\n :x=\"mergedConfig ? mergedConfig.borderWidth / 2 : '0'\"\n :y=\"mergedConfig ? mergedConfig.borderWidth / 2 : '0'\"\n :rx=\"mergedConfig ? mergedConfig.borderRadius : '0'\"\n :ry=\"mergedConfig ? mergedConfig.borderRadius : '0'\"\n fill=\"transparent\"\n :stroke-width=\"mergedConfig ? mergedConfig.borderWidth : '0'\"\n :stroke=\"`url(#${gradientId1})`\"\n :width=\"rectWidth > 0 ? rectWidth : 0\"\n :height=\"rectHeight > 0 ? rectHeight : 0\"\n />\n <polyline\n :stroke-width=\"polylineWidth\"\n :stroke-dasharray=\"mergedConfig ? mergedConfig.lineDash.join(',') : '0'\"\n :stroke=\"`url(#${polylineGradient})`\"\n :points=\"points\"\n />\n <text\n :stroke=\"mergedConfig ? mergedConfig.textColor : '#fff'\"\n :fill=\"mergedConfig ? mergedConfig.textColor : '#fff'\"\n :x=\"width / 2\"\n :y=\"height / 2\"\n >\n {{ details }}\n </text>\n </svg>\n </div>\n</template>\n\n<script>\nimport { deepMerge } from '@jiaminghi/charts/lib/util/index'\n\nimport { deepClone } from '@jiaminghi/c-render/lib/plugin/util'\n\nexport default {\n name: 'DvPercentPond',\n props: {\n config: {\n type: Object,\n default: () => ({})\n }\n },\n data () {\n const timestamp = Date.now()\n return {\n gradientId1: `percent-pond-gradientId1-${timestamp}`,\n gradientId2: `percent-pond-gradientId2-${timestamp}`,\n\n width: 0,\n height: 0,\n\n defaultConfig: {\n /**\n * @description Value\n * @type {Number}\n * @default value = 0\n */\n value: 0,\n /**\n * @description Colors (hex|rgb|rgba|color keywords)\n * @type {Array<String>}\n * @default colors = ['#00BAFF', '#3DE7C9']\n * @example colors = ['#000', 'rgb(0, 0, 0)', 'rgba(0, 0, 0, 1)', 'red']\n */\n colors: ['#3DE7C9', '#00BAFF'],\n /**\n * @description Border width\n * @type {Number}\n * @default borderWidth = 3\n */\n borderWidth: 3,\n /**\n * @description Gap between border and pond\n * @type {Number}\n * @default borderGap = 3\n */\n borderGap: 3,\n /**\n * @description Line dash\n * @type {Array<Number>}\n * @default lineDash = [5, 1]\n */\n lineDash: [5, 1],\n /**\n * @description Text color\n * @type {String}\n * @default textColor = '#fff'\n */\n textColor: '#fff',\n /**\n * @description Border radius\n * @type {Number}\n * @default borderRadius = 5\n */\n borderRadius: 5,\n /**\n * @description Local Gradient\n * @type {Boolean}\n * @default localGradient = false\n * @example localGradient = false | true\n */\n localGradient: false,\n /**\n * @description Formatter\n * @type {String}\n * @default formatter = '{value}%'\n */\n formatter: '{value}%'\n },\n\n mergedConfig: null\n }\n },\n computed: {\n rectWidth () {\n const { mergedConfig, width } = this\n\n if (!mergedConfig) return 0\n\n const { borderWidth } = mergedConfig\n\n return width - borderWidth\n },\n rectHeight () {\n const { mergedConfig, height } = this\n\n if (!mergedConfig) return 0\n\n const { borderWidth } = mergedConfig\n\n return height - borderWidth\n },\n points () {\n const { mergedConfig, width, height } = this\n\n const halfHeight = height / 2\n\n if (!mergedConfig) return `0, ${halfHeight} 0, ${halfHeight}`\n\n const { borderWidth, borderGap, value } = mergedConfig\n\n const polylineLength = (width - (borderWidth + borderGap) * 2) / 100 * value\n\n return `\n ${borderWidth + borderGap}, ${halfHeight}\n ${borderWidth + borderGap + polylineLength}, ${halfHeight + 0.001}\n `\n },\n polylineWidth () {\n const { mergedConfig, height } = this\n\n if (!mergedConfig) return 0\n\n const { borderWidth, borderGap } = mergedConfig\n\n return height - (borderWidth + borderGap) * 2\n },\n linearGradient () {\n const { mergedConfig } = this\n\n if (!mergedConfig) return []\n\n const { colors } = mergedConfig\n\n const colorNum = colors.length\n\n const colorOffsetGap = 100 / (colorNum - 1)\n\n return colors.map((c, i) => [colorOffsetGap * i, c])\n },\n polylineGradient () {\n const { gradientId1, gradientId2, mergedConfig } = this\n\n if (!mergedConfig) return gradientId2\n\n if (mergedConfig.localGradient) return gradientId1\n\n return gradientId2\n },\n gradient2XPos () {\n const { mergedConfig } = this\n\n if (!mergedConfig) return '100%'\n\n const { value } = mergedConfig\n\n return `${200 - value}%`\n },\n details () {\n const { mergedConfig } = this\n\n if (!mergedConfig) return ''\n\n const { value, formatter } = mergedConfig\n\n return formatter.replace('{value}', value)\n }\n },\n watch: {\n config () {\n const { mergeConfig } = this\n\n mergeConfig()\n }\n },\n methods: {\n async init () {\n const { initWH, config, mergeConfig } = this\n\n await initWH()\n\n if (!config) return\n\n mergeConfig()\n },\n async initWH () {\n const { $nextTick, $refs } = this\n\n await $nextTick()\n\n const dom = $refs['percent-pond']\n\n this.width = dom.clientWidth\n this.height = dom.clientHeight\n },\n mergeConfig () {\n const { config, defaultConfig } = this\n\n this.mergedConfig = deepMerge(deepClone(defaultConfig, true), config || {})\n }\n },\n mounted () {\n const { init } = this\n\n init()\n }\n}\n</script>"]}]} |